问题标签 [cgpdf]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
iphone - CGPDF - 使用 FlateDecode 过滤器保存图像
我正在为工作编写一个 PDF 解析器,我们使用 Core Graphics 通过回调读取所有数据,然后使用 Lib Haru 将其写出,因为我们的客户需要写出“真实”注释而 CG 不能做。
好吧,我已经到了获取图像的地步(并将它们保存到一个文件中,以确保在开始绘制它们之前我正在做它)并且我遇到了一个问题。我正在从 Resource 字典中获取所有 Image XObjects,然后尝试使用此代码将它们保存出来
其中 objectStream 使用 CGPDFDictionaryGetStream 来提取 XObject。好吧,当过滤器是“DCTDecode”时它工作正常,但是当过滤器是“FlateDecode”时,保存的图像已损坏并且无法打开。
我在这篇文章中读到 CGPDFStreamCopyData 可以使用 FlateDecode 解码文本(一直到评论中文章的底部),但是 CGPDFDataFormats 中只有 3 种数据格式,并且它们都不起作用。
我相信我也遇到了使用 FlatDecode 编码的文本的问题。有没有人对如何解码这个有任何建议?当然 CGPDF 有一些东西可以处理这个问题,因为它几乎出现在我试图打开的每个 pdf 中(尽管我无法找到它)。
编辑:我在几个地方读到了可以使用 zlib 解压缩它,所以我尝试了这段代码,我可以找到关于如何做到这一点的代码:
当我运行该代码时,它没有抛出任何异常,但生成的图像仍然不可读。
objective-c - CGPDFScannerScan 不会触发回调函数
我使用 Quartz 解析 pdf 文件。
除了一个文件外,一切正常。回调函数根本不被调用。
我的运算符表已经创建,我使用CGPDFOperatorTableSetCallback添加了运算符。一切似乎都很好,只是没有调用回调。
你知道什么会导致这种行为吗?
ios - iOS PDF 到纯文本解析器
我在这个问题上很迷茫。我已经阅读了几乎所有关于它的帖子,如果有人能将我推向正确的方向,我将非常感激。
我有一个 PDF,我想提取它的文本,我只对单词和空格感兴趣。我已经设置了一个 CGPDFScanner 和它的回调方法。我读到的是,就提取文本而言,我只需要考虑 4 个运算符 TJ、Tj、qout(') 和 doubleqout(")。
我想我还需要跟踪文本空间,以便能够确定字母是应该放在一起形成一个单词还是应该用空格分隔。但我不知道我将如何做到这一点。
在 PDF 中,所有文本都采用格式
但我无法弄清楚(使用 PDF 规范)这些数字的含义。SO上有人说你不应该害怕PDF规范,但坦率地说,我觉得它们不太容易阅读/理解。
我研究了有用的 PDFKitten 代码。
任何帮助将不胜感激。
ios - CGPDFObject 获取 ID
如何获取 CGPDFObject 的 ID?
我的 PDF 中有这本字典:
我使用以下方法获得:
现在我知道CGPDFDictionaryApplyFunction
要在字典中获取键/值对。但是我怎样才能得到自己的对象 ID 和代号呢?(在本例中为 3 和 0)。
编辑:为什么我需要这些信息?我正在尝试向文件添加文本注释。据我了解,在 iOS 中没有“高级”方法可以做到这一点。您必须手动添加一个新部分(外部参照表、覆盖的对象、预告片等)。因此,不可避免地要获取我想要覆盖的对象的 ID 和代号,以及那些在我覆盖的对象中引用的对象(例如,/Resources、/Contents 在被覆盖的页面中)。
iphone - CGPDFScannerPopString 返回奇怪的结果
我终于可以使用某种 pdf 扫描仪了。它毫无问题地读入回调函数,但是当我尝试 NSLog 来自 CGPDFScannerPopString 的结果时,我得到如下结果:
这里找不到字符串...
关于它可能是什么的任何想法?这是我的回调函数:
已经谢谢了!
编辑:示例 PDF
objective-c - Duplicate CGPDFStrings from a CGPDFArray generated from a TJ callback on a PDF stream
OK, so I'm parsing through the PDF content stream, discovered that the TJ callback produces an array of strings, so I grab it and start iterating through it to get the string values like so:
Only problem is, this is my output:
I've resorted to exiting the for loop if i
equals a number divisible by 2, but this is extremely sloppy and seems inefficient, so I'm wondering if anyone has a solution or any idea what the problem might be... I've tried multiple PDF files with the same results.
My simple quick fix was to change the for loop from this:
to this:
ios - 在 iOS 中合并 2 个 pdf 文件
我正在尝试在 iOS 中合并两个 PDF 文件。我正在逐页合并。如果文件很大,则需要很长时间。有什么办法,我们可以合并这两个文件,而不是逐页合并?
如果你愿意,我可以发布我的代码。
我的代码类似于SO 上的代码
ios - 在 PDF iOS 中查找对象的位置
我有一个结构如下的PDF:
用户在应用程序中填写此问题空气,完成后需要打印带有选定“A、B、C、D、E、F、G”的 PDF 问题空气,并在其周围绘制圆圈。
我可以加载 PDF 并为其添加注释,但问题是我不知道如何找到“A、B、C、D、E、F、G”的坐标来围绕它画圆。有没有办法以编程方式解决这个问题?我最后的手段是在 UIImageView 中打开它并在那里绘制所有圆圈,但这会显着降低分辨率,这并不好。
objective-c - Tm算子如何使用CGPDF传递PDF文档中的数据?
根据“Pdf Reference Version 1.7”,文本定位运算符“Tm”描述如下:
...虽然操作数指定了一个矩阵,但它们作为六个单独的数字而不是数组传递给 Tm。
我不明白我应该如何检索一系列不是数组、字符串或任何类似内容的数字。当我实现这段代码时,我知道对象类型是真实的,当我尝试获取它的值时,我最终得到的是数组的最后一个数字。
我检查了传递的值是否属于任何其他类型,但它是真实的,所以我真的不知道如何检索其他数字。
任何帮助,将不胜感激。
cocoa-touch - PDF 文件已加载到 CGPDFDocumentRef 中,但未显示在视图中
我想使用 CGPDF API 在 IPAD 上显示和操作 PDF,但首先,我试图以简单的方式在我的视图上显示 PDF(无需屏幕调整)。我不知道为什么我的应用程序中没有出现 PDF,也许我做错了。我正在使用 NSLOG 来计算页数,它确实有效,但 PDF 没有出现,只是在我的模拟器屏幕上出现白色背景。
这是我的代码: