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

时间:2016-03-01 17:18:12

标签: ios parsing pdf cgpdfdocument

我知道之前已经问过这个问题,但我会更具体。

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

苹果库似乎没有办法允许我进入这本词典。

您可以使用CGPDFDocumentGetCatalog()获取目录 有没有相当于CGPDFDocumentGetTrailer()?

如果不是,我想我必须自己手动解析预告片的PDF文档。

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

谈论编写这样一个低级解析器。

如何获取他们正在解析的代码?

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

谢谢!

1 个答案:

答案 0 :(得分:1)

双重答案:

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

2)很可能,你不需要(幸运的是,因为它不是一件容易的事)。 Apple精心为您提供以下两个功能:

bool CGPDFDocumentIsEncrypted ( CGPDFDocumentRef document );

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

bool CGPDFDocumentAllowsCopying ( CGPDFDocumentRef document );

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