CGPDF<...> - setter 在哪里?
CGPDF<...> - where are the setters?
有什么方法可以使用 CGPDF<...> 创建 PDF 对象(例如,带有自定义 PDF producer/consumer/viewer 所需参数的 PDF 字典),还是我必须编写自己的解析器并创建新的预告片、外部参照等以向 PDF 添加新对象?据我了解,CG 在创建 PDF 时将其图形上下文的所有绘图调用转换为正确的 PDF 对应项 - 但我有自定义 data/objects(例如用于注释、线程等)应该存储在 PDF 中但是显然不能由CG自动创建。
我只能找到所有这些吸气剂
从字典中获取数据
CGPDFDictionaryGetArray
CGPDFDictionaryGetBoolean
CGPDFDictionaryGetCount
CGPDFDictionaryGetDictionary
CGPDFDictionaryGetInteger
CGPDFDictionaryGetName
CGPDFDictionaryGetNumber
CGPDFDictionaryGetObject
CGPDFDictionaryGetStream
CGPDFDictionaryGetString
如有任何帮助,我们将不胜感激?
顺便说一下 - 有没有人知道一些链接,我可以从中找出使用此函数及其回调在现实世界中可以实现什么。
CGPDFDictionaryApplyFunction
CGPDFDictionaryApplierFunction
也许是一个示例应用程序以查看它的运行情况?
提前致谢
没有二传手。 CGPDF API 是只读的。
CGPDFDictionaryApplyFunction 只是让您枚举字典对象中的条目。如果您想查看真实世界的用法,PDFKitten 框架会在几个地方使用此函数。
我们在 iOS 和 Android 的商业 PSPDFKit SDK 中添加注释支持时发现了困难。
查看第 23 页的 PDF Specification,了解您需要支持的标准过滤器列表,旁边是一个简单的 lexer/parser。
我们在 Objective-C 中构建了初始版本,使用原始文件访问,然后使用我们自己的小型解析器。解析完所有对象后,您可以在新预告片中附加要更改的对象。如果不支持上述所有压缩方法,这将不适用于所有文档。花了几年时间才达到我们可以说它适用于 99.9% 的所有文档的状态。有 PDF 规范,然后有一些文件不应该在任何理智的渲染器中工作,但 Adobe Acrobat 很乐意渲染文档。其中的 PDF 更像是 HTML,即使事情很糟糕和损坏,浏览器仍然会显示一些东西。
我们最终用 C++ 重新实现了所有内容,以实现出色的解析性能,并且仅针对此组件就进行了数千次测试。您还可以查看其他可能对您有帮助的商业产品,例如 muPDF - 我只是想避免您走上从头开始重新实现所有内容的道路,因为只需要几年时间就可以使代码达到可接受的程度兼容性和性能水平。
有什么方法可以使用 CGPDF<...> 创建 PDF 对象(例如,带有自定义 PDF producer/consumer/viewer 所需参数的 PDF 字典),还是我必须编写自己的解析器并创建新的预告片、外部参照等以向 PDF 添加新对象?据我了解,CG 在创建 PDF 时将其图形上下文的所有绘图调用转换为正确的 PDF 对应项 - 但我有自定义 data/objects(例如用于注释、线程等)应该存储在 PDF 中但是显然不能由CG自动创建。
我只能找到所有这些吸气剂
从字典中获取数据
CGPDFDictionaryGetArray
CGPDFDictionaryGetBoolean
CGPDFDictionaryGetCount
CGPDFDictionaryGetDictionary
CGPDFDictionaryGetInteger
CGPDFDictionaryGetName
CGPDFDictionaryGetNumber
CGPDFDictionaryGetObject
CGPDFDictionaryGetStream
CGPDFDictionaryGetString
如有任何帮助,我们将不胜感激?
顺便说一下 - 有没有人知道一些链接,我可以从中找出使用此函数及其回调在现实世界中可以实现什么。
CGPDFDictionaryApplyFunction
CGPDFDictionaryApplierFunction
也许是一个示例应用程序以查看它的运行情况?
提前致谢
没有二传手。 CGPDF API 是只读的。
CGPDFDictionaryApplyFunction 只是让您枚举字典对象中的条目。如果您想查看真实世界的用法,PDFKitten 框架会在几个地方使用此函数。
我们在 iOS 和 Android 的商业 PSPDFKit SDK 中添加注释支持时发现了困难。
查看第 23 页的 PDF Specification,了解您需要支持的标准过滤器列表,旁边是一个简单的 lexer/parser。
我们在 Objective-C 中构建了初始版本,使用原始文件访问,然后使用我们自己的小型解析器。解析完所有对象后,您可以在新预告片中附加要更改的对象。如果不支持上述所有压缩方法,这将不适用于所有文档。花了几年时间才达到我们可以说它适用于 99.9% 的所有文档的状态。有 PDF 规范,然后有一些文件不应该在任何理智的渲染器中工作,但 Adobe Acrobat 很乐意渲染文档。其中的 PDF 更像是 HTML,即使事情很糟糕和损坏,浏览器仍然会显示一些东西。
我们最终用 C++ 重新实现了所有内容,以实现出色的解析性能,并且仅针对此组件就进行了数千次测试。您还可以查看其他可能对您有帮助的商业产品,例如 muPDF - 我只是想避免您走上从头开始重新实现所有内容的道路,因为只需要几年时间就可以使代码达到可接受的程度兼容性和性能水平。