是否有任何方法用CGPDF<...>创建PDF对象(例如,包含自定义PDF生产者/使用者/查看器所需参数的PDF字典),或者我是否必须编写自己的解析器并创建新的拖车、xref等,以便向PDF中添加新的对象?据我所知,CG在创建PDF时将其图形上下文的所有绘图调用转换为正确的PDF对应项--但我有自定义数据/对象(例如注释、线程等)。它应该存储在PDF中,但显然不能由CG自动创建。
我只能找到所有这些
从字典中获取数据
CGPDFDictionaryGetArray
CGPDFDictionaryGetBoolean
CGPDFDictionaryGetCount
CGPDFDictionaryGetDictionary
CGPDFDictionaryGetInteger
CGPDFDictionaryGetName
CGPDFDictionaryGetNumber
CGPDFDictionaryGetObject
CGPDFDictionaryGetStream
CGPDFDictionaryGetString
有什么需要帮忙的吗?
顺便说一句,有人知道一些链接吗?在这里,我可以找到一个人在现实世界中可以通过这个函数和它的回调实现什么。
CGPDFDictionaryApplyFunction
CGPDFDictionaryApplierFunction
也许是一个示例应用程序来查看它的运行情况?
Thx预先
发布于 2015-07-19 06:24:13
没有赛特人。CGPDF是只读的。
CGPDFDictionaryApplyFunction只允许您枚举字典对象中的条目。如果您想看到实际的使用情况,PDFKitten框架会在几个地方使用这个函数。
发布于 2016-04-16 19:35:27
当我们在商业的PSPDFKit SDK中为iOS和安卓添加注释支持时,我们发现了这一点。
查看PDF规格,Page23ff,获取您需要支持的标准过滤器列表,旁边是一个简单的lexer/解析器。
我们在Objective中构建了初始版本,使用原始文件访问,然后使用我们自己的小型解析器。一旦你分析了所有的对象,你就可以用你想要改变的对象来附加一个新的预告片。但是,如果没有对上述所有压缩方法的支持,这并不能适用于所有文档。花了几年的时间,我们可以说,它能处理99.9%的文档。这里有PDF规范,还有一些文件不应该在任何正常的渲染程序中工作,但是Acrobat很高兴地呈现文档。PDF格式更像HTML,在HTML中,即使是在糟糕和坏的情况下,浏览器仍然会显示一些东西。
最后,我们重新实现了C++中的所有内容,以获得良好的解析性能,并且仅针对该组件就进行了数千次测试。您还可以查看其他商业产品,如muPDF,这些产品可能会对您有所帮助--我只是想让您避免从头开始重新实现所有的东西,因为要使代码达到可接受的兼容性和性能水平,只需几年时间。
https://stackoverflow.com/questions/31497910
复制相似问题