提问人:TheMulittle 提问时间:10/28/2023 最后编辑:John KugelmanTheMulittle 更新时间:10/28/2023 访问量:39
如何使用 PDFBox 从 xRef Stream 读取翻译矩阵
How to read Translation Matrix from xRef Stream using PDFBox
问:
我有一个 PDF,我想从中读取特定文本注释的翻译矩阵。使用 iText RUPS 我可以看到 /AP 键有一个指向 xRef 流的 /N 条目
查看 xRef 表,我可以看到流包含我正在寻找的转换矩阵
问题是我没有找到一种通过 PDFBox 3.0.0 以编程方式访问此信息的方法(我也尝试了 iText)。我得到的最接近的是使用以下代码摘录:
URL file = Main.class.getClassLoader().getResource("document.pdf");
PDDocument document = Loader.loadPDF(new File(file.toURI()));
System.out.println(document.getDocument().getObjectFromPool(new COSObjectKey(28, 0)).getObject())
这段代码打印了表示对象的字符串,最后我可以看到 COSStream{363946310},但找不到访问此内容的方法
COSDictionary{COSName{Length}:COSInt{189};COSName{BBox}:COSArray{COSFloat{153.0};COSFloat{198.0};COSFloat{459.0};COSFloat{594.0};};COSName{Resources}:COSDictionary{COSName{ExtGState}:COSDictionary{COSName{TRP11}:COSDictionary{COSName{CA}:COSFloat{0.300003};COSName{Type}:COSName{ExtGState};COSName{ca}:1050253822;};};COSName{Font}:COSDictionary{COSName{C2_0}:COSObject{COSNull{}};};COSName{ProcSet}:COSArray{COSName{PDF};COSName{Text};};};COSName{Subtype}:COSName{Form};}**COSStream{363946310}**
我也尝试了以下代码:
URL file = Main.class.getClassLoader().getResource("document.pdf");
PDDocument document = Loader.loadPDF(new File(file.toURI()));
document.getPage(0).getAnnotations().get(0).getAppearance().getNormalAppearance().getAppearanceStream().getMatrix()
但是这段代码返回的翻译矩阵与我在 RUPS 中看到的翻译矩阵不同:
[1.0,0.0,0.0,1.0,0.0,0.0]
这是在 PDFBox Debugger 中分析的相同文件
答: 暂无答案
下一个:PDFBox 的签名无效
评论
PDFStreamParser