Android上使用MuPDF的pdf注释

Android上使用MuPDF的pdf注释,android,pdf,annotations,mupdf,Android,Pdf,Annotations,Mupdf,我正在开发一个android应用程序,可以帮助用户对PDF文件进行注释。我正在使用MuPDF解析android设备上的PDF。我能够阅读PDF,但无法找到一种方法来帮助我实现PDF的注释功能。我找不到任何样品芯,也找不到任何说明我要找什么的手册。任何人都有任何示例代码、任何其他材料或任何链接,可以让我了解如何支持简单的注释,例如绘制矩形或在PDF文件上自由书写 在这方面的任何帮助都是非常感谢的 提前感谢。要将批注存储在PDF文件中还是单独存储 前者不适用于muPDF 但是,如果您打算单独存储注释

我正在开发一个android应用程序,可以帮助用户对PDF文件进行注释。我正在使用MuPDF解析android设备上的PDF。我能够阅读PDF,但无法找到一种方法来帮助我实现PDF的注释功能。我找不到任何样品芯,也找不到任何说明我要找什么的手册。任何人都有任何示例代码、任何其他材料或任何链接,可以让我了解如何支持简单的注释,例如绘制矩形或在PDF文件上自由书写

在这方面的任何帮助都是非常感谢的


提前感谢。

要将批注存储在PDF文件中还是单独存储

前者不适用于muPDF

但是,如果您打算单独存储注释,则可以将PDF渲染到画布作为背景,然后在其上绘制。你仍然需要编写相当于绘图应用程序的程序。Android示例中有FingerPaint,开源中也有


如果要突出显示PDF中的特定文本,事情会变得相当复杂。您必须从fitz中提取角色维度,并在触摸处理程序中管理各种类型的光标。这并非不可能,但绝非小事。

您可以通过完全委托到MuPDF库中来绘制注释

我给他们提供的示例应用程序包含了这方面的代码

MuPDF本机层中支持此操作的方法是addMarkupAnnotationInternalint页面,PointF[]quadPoints,int类型

传递的PointF[]定义要注释的矩形。这很可能来自用户选择的文本

如果您使用的是他们提供的java包装器com.artifex.mupdfdemo.MuPDFCore.java,那么他们提供的方法称为:

MuPDFCore#addMarkupAnnotation(int page, PointF[] quadPoints, Annotation.Type type)
要查看它实际上是如何完成的,以及MuPDFCoreaddMarkupAnnotation如何从用户的选择中接收四点,请在阅读代码的同时尝试示例应用程序

基本上,要添加注释,您需要:

1-提供定义方框和高亮显示区域页面的点四边形列表。 2-通过使用上述方法将注释添加到文档并呈现,将其委托到MuPDF库中

对于第一步,您可能希望让用户选择要突出显示的文档区域。如果是,您可以让用户通过以下方式启动选择模式进行选择:

MuPDFReaderView#setMode(MuPDFReaderView.Mode.Selecting);
当用户完成时,使用以下命令获取选择:

MuPDFView#selectText();
完成所有这些并不简单,您需要理解API,因此,我建议您阅读示例代码

至于在哪里保存注释,这是另一个故事。您可以将它们保存在PDF文件中MuPDF允许您这样做,或者您可以将它们存储在其他任何地方,这将需要更多代码,并将注释与PDF文件分离


因此,您可以完全使用MuPDF完成此操作,无需使用Android API将注释绘制为画布/视图的另一层。

感谢您的快速回复。我可以理解你的答案,但我不知道如何将PDF呈现到画布作为背景。仅供参考:我正在使用一个包含我的PDF的PixmapView对象,它被添加到显示它的pdfContainerRelativeLayout中。我也希望强调具体的文本,所以你能告诉我你在这里对菲茨的确切含义吗?谢谢是的,我想单独保存到注释。在这种情况下,您必须扩展PixMapView来处理您自己的图形。Fitz是muPDF的渲染引擎,其中有一些结构,如bb_rect,您需要访问。我正在尝试了解更多关于Fitz的信息,如果您能提供更多详细信息、链接或示例代码等,我将非常感谢您,基本上任何关于FItz的东西,这样我就可以大致了解我应该如何在我的项目中使用它们。谢谢。谷歌代码上有几个开源项目,一点也不例外,这里有一个列表:请告诉我们你说的阅读是什么意思,是在屏幕上显示pdf还是阅读pdf数据,比如元数据、文本、图像,etc@SalmanKhakwani当前位置我需要同时完成这两项工作,即,在屏幕上显示PDF,并读取PDF数据,如元数据文本、图像等。如果您已经开放了商业解决方案,如MUPDF,考虑作为替代,具有用于编辑批注的完全预构建的UI。您能解释一下为什么我的答案对您不起作用,而您否决了它吗?您能帮助我在密码保护的pdf中添加批注吗?这里是链接:你能告诉我如何显示/隐藏特定页面的注释吗?@SaravanaKumarChinnaraj看看你的mupdf项目中的MuPdfActivity。在那里你可以找到样品code@Manoj实际上很抱歉这么说。。我需要用pdf做便笺批注。。