ios - 如何从 CGPDFDocumentRef 获取预告片字典?

标签 ios parsing pdf cgpdfdocument

我知道之前有人问过这个问题,但我会更具体一些。

我有一个 CGPDFDocumentRef 文档,我想找到预告片,最好是 CGPDFDictionaryRef 的形式,这样我就可以查看它的 Encrypt 字典,看看它是否允许文本提取。

苹果图书馆似乎没有办法让我找到这本字典。

您可以使用 CGPDFDocumentGetCatalog() 获取目录 是否有 CGPDFDocumentGetTrailer() 的等价物?

如果不是,我想我将不得不自己手动解析预告片的 PDFDocument。

这些家伙:How to find the trailer dictionary?

谈论编写如此低级的解析器。

我怎样才能得到他们正在解析的代码?

我能否将 PDF 中的最后一页转换为 CGPDFStream,然后将该流转换为 NSData,然后可能转换为 ascii,然后开始实现他们正在讨论的 Trailer 解析器?

谢谢!

最佳答案

双重答案:

1) 不,Apple 不提供访问预告片的功能。如果您仍然想访问它,则必须将 PDF 文件作为二进制文件打开,并构建一个解析器来解析它(如描述 PDF 文件格式的 ISO 32000-1 标准中所述)。

2)很可能,您不需要(幸运的是,因为这不是一件容易的事)。苹果贴心地为你提供了这两个功能:

bool CGPDFDocumentIsEncrypted ( CGPDFDocumentRef document );

这将告诉您文档是否已加密。

bool CGPDFDocumentAllowsCopying ( CGPDFDocumentRef document );

这将告诉您文档是否允许从中复制文本(从而提取文本)。

关于ios - 如何从 CGPDFDocumentRef 获取预告片字典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35729231/

相关文章:

java - 通过 ROME 解析 RSS 提要获取空作为源

javascript - PDF 到 Node JS 上的图像

ios - 创建一组图像并在 Apple Watch 上随机显示一个

ios - 如何使用star micronics SDK打印欧元符号?

ios - 如何将自定义手势添加到 UITabBarController 中的选项卡

c# - 当我尝试压缩不同级别的 pdf 文件时,ITextSharp 返回相同大小的 pdf

用于显示pdf文件的Java lib

ios - 从子类设置父类(super class)的属性?

parsing - 在 F# 中将标记序列解析为分层类型

java - 如何在Java中解析JSON