如何在iOS上绘制PDF?

com*_*ech 5 pdf cocoa-touch annotations xamarin.ios ios

我试图找到一种方法,允许用户在iOS中注释(即自由格式绘图)现有的PDF文件,但我发现的唯一方法似乎非常麻烦.

解决方案是在Monotouch中,但如果需要,我可以从Objective-C翻译.这也意味着非Monotouch开发人员可能不熟悉许多方法和属性名称,但我只是在寻找一种方法.

我目前有代码允许用户使用UIView上的TouchesMoved和TouchesBegan事件来注释图像(jpg,png).这很好用,可以完成我的需要.

但是,在使用现有PDF文件时,似乎大多数CGPDF功能都围绕创建新文件而不是编辑现有文件.

我能够想出的唯一方法是:

  1. 打开UIView时,创建一个临时文件并将PDF上下文设置为该文件(UIGraphics.BeginPDFContext(filename)).

  2. 从原始文件创建一个新的CGPDFDocument,然后将原始PDF中的每个页面绘制到当前上下文中,该上下文将是新的临时文件.

  3. 销毁在步骤2中创建的原始PDF文档.

  4. 向用户显示第一页,然后让它们在上面绘图,并将绘图命令发送到新文件的上下文.还有一些方法可以让用户更改页面.

  5. 用户完成后,关闭PDF上下文,这会将所有注释保存到新的PDF文件中.

这似乎有可能是一个巨大的记忆和性能生长,所以我想知道是否有任何其他方法来解决这个问题?

com*_*ech 6

我们最终完成此操作的方式是将PDF绘制到常规视图中,然后在此视图上方插入子视图,其中实际绘制了注释.我们必须记录注释,并调整缩放.用户完成后,我们将PDF的每个页面绘制成一个新的PDF文件,并将注释回放到该页面,从而有效地为现有PDF添加注释.

  • 如果你有如何在现有PDF上进行绘图的话,你能帮忙解决一些示例代码吗?这将非常有帮助..谢谢. (3认同)