- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 Quartz 解析 pdf 文件。
除了一个文件外,一切正常。回调函数根本不是调用。
我的运算符表已创建,我使用 CGPDFOperatorTableSetCallback 将运算符添加到其中。一切正常,只是没有调用回调。
你知道是什么导致了这种行为吗?
最佳答案
页面内容是一个大窗体 XObject。 Form XObjects 是自包含的图形对象,它们使用类似于页面的内容流。
您需要执行以下操作:在扫描的运算符列表中包含“Do”运算符。遇到它时,它的操作数是 XObject 的符号名称。从页面字典中获取“资源”字典。从“资源”字典中获取“XObject”字典。使用与“Do”运算符一起使用的符号名称,从“XObject”字典中获取您的 xobject。从 xobject 中获取“子类型”键的值。如果它是“图像”,则忽略 xobject,因为它是图像。如果它是“表单”,那么您就有一个表单 XObject。从 xobject 中获取流并像扫描页面内容流一样扫描它。您可以重复使用相同的扫描器类,您只需要保留上下文即可知道您正在扫描的对象。表单 XObjects 可以使用其他表单 XObjects,它们位于父表单 XObject 的“资源”字典中。
您的页面字典如下所示:
<<
/ArtBox[0.0 0.0 768.0 7066.0]
/BleedBox[0.0 0.0 768.0 7066.0]
/Contents 29 0 R
/CropBox[0.0 0.0 768.0 7066.0]
/Group 62 0 R
/MediaBox[0.0 0.0 768.0 7066.0]
/Parent 23 0 R
/Resources
<<
/ExtGState<</GS0 30 0 R>>
/XObject<</Fm0 61 0 R>>
>>
/Rotate 0
/TrimBox[0.0 0.0 768.0 7066.0]
/Type/Page
>>
“Fm0”是页面内容流中使用的表单 XObject 的名称,是“Do”运算符的操作数。它的资源字典如下所示:
/Resources
<<
/ColorSpace<</CS0 32 0 R>>
/ExtGState<</GS0 34 0 R/GS1 30 0 R>>
/Font<</T1_0 38 0 R/T1_1 40 0 R>>
/ProcSet[/PDF/Text]
/XObject<</Fm0 45 0 R/Fm1 48 0 R/Fm2 51 0 R/Fm3 54 0 R/Fm4 57 0 R/Fm5 60 0 R>>
>>
如您所见,它使用了几种其他形式的 XObject。
关于objective-c - CGPDFScannerScan 不触发回调函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11083261/
我正在尝试从一个 pdfFile 中获取 strings,该文件通过 open in... 菜单从另一个应用程序发送到我的应用程序。我写了一个 pdfscanner,我将一个 pdfPage 传递给它
我使用 Quartz 解析 pdf 文件。 除了一个文件外,一切正常。回调函数根本不是调用。 我的运算符表已创建,我使用 CGPDFOperatorTableSetCallback 将运算符添加到其中
我是一名优秀的程序员,十分优秀!