pdf 相关问题

可移植文档格式(PDF)是由国际标准化组织(ISO)维护的电子文档交换的开放标准。问题可以是使用不同语言创建,阅读,编辑PDF。

水晶报表的功能替代品

我们公司生成了很多好看的报告。目前,其中大部分都是通过 Crystal Reports 完成的。 我发现该软件臃肿且难以使用。 有没有什么替代软件...

回答 2 投票 0

使用自定义字体从 pdf 中提取文本

我有一个庞大的 PDF 文件,其中包含带有特定科学计数法的文本。我正在尝试使用 pdfplumber 提取文本。 起初,我注意到某些符号被提取为大写 La...

回答 1 投票 0

如何使用PDFBox在带标签的PDF中添加注释标签

我有一个带标签的 PDF(符合 PDF-UA 标准),结构简单: 我需要添加注释: 我有一个带标签的 PDF(符合 PDF-UA 标准),结构简单: 我需要添加注释: <?xml version="1.0" encoding="UTF-8"?> <xfdf xmlns="http://ns.adobe.com/xfdf/"> <annots> <text color="#FFC333" date="D:20240425000000" flags="print,nozoom,norotate" opacity="0.600000" page="0" rect="43.086,707.79,63.086,732.79" title="ABC"> <contents-richtext> <body xmlns="http://www.w3.org/1999/xhtml"> <p dir="ltr">Sample comment</p> </body> </contents-richtext> <popup flags="nozoom,norotate" open="yes" page="0" rect="595.0,507.78998,790.0,632.79"/> </text> </annots> </xfdf> 在嵌套标签Annot中,在标签P中。像这样(我在 Adobe Acrobat 中手动制作): 我能够将 XFDF XML 导入 PDF: PDDocument document = PDDocument.load(new File("tagged.pdf")); FDFDocument fdfDoc = FDFDocument.loadXFDF(new File("annotation.xfdf")); List<FDFAnnotation> fdfAnnots = fdfDoc.getCatalog().getFDF().getAnnotations(); List<PDAnnotation> pageAnnotations = new ArrayList<>(); for (int i=0; i < fdfAnnots.size(); i++) { FDFAnnotation fdfannot = fdfAnnots.get(i); PDAnnotation pdfannot = PDAnnotation.createAnnotation(fdfannot.getCOSObject()); pdfannot.constructAppearances(); pageAnnotations.add(pdfannot); } document.getPage(0).setAnnotations(pageAnnotations); document.save(new File("tagged_with_annotation.pdf")); 但是 veraPDF 检查器输出: 注释(不包括子类型 Widget、PrinterMark 或 Link 的注释)应嵌套在 Annot 标签内 和 PDF 辅助功能检查器(PAC 工具)输出: 注释未嵌套在“Annot”结构元素内 正如预期的那样,因为我没有为导入的注释设置“annot”标签(和具体位置)。 此外,我还可以获得标签P对象: PDDocumentCatalog pdDocumentCatalog = document.getDocumentCatalog(); PDStructureTreeRoot pdStructureTreeRoot = pdDocumentCatalog.getStructureTreeRoot(); COSArray aDocument = (COSArray)(pdStructureTreeRoot.getK().getCOSObject()); COSObject oDocument = (COSObject) aDocument.get(0); COSArray aPart = (COSArray)oDocument.getItem(COSName.K).getCOSObject(); COSObject oPart = (COSObject) aPart.get(0); COSArray aSect = (COSArray)oPart.getItem(COSName.K).getCOSObject(); COSObject oSect = (COSObject) aSect.get(0); COSArray aP = (COSArray)oSect.getItem(COSName.K).getCOSObject(); COSObject oP= (COSObject) aP.get(0); 但我不明白如何编辑PDF中现有的标签树。 问题:如何使用PDFBox将现有标签树中的标签和注释添加到PDF中? 更新:示例 PDF 和 XFDF 此处。 这是我的第一次尝试。我没有 PAC 工具(或者我找不到它),所以我需要知道出了什么问题(如果有)。我已将注释放在数组的末尾Root/StructTreeRoot/K/[0]/K/[0]/K/[0]/K,在另一个文件中,它是数组中的第一项。 (COSArray 显然没有“插入”) PDStructureTreeRoot structureTreeRoot = doc.getDocumentCatalog().getStructureTreeRoot(); PDPage page = doc.getPage(0); PDAnnotation annotation = page.getAnnotations().get(0); COSArray aDocument = (COSArray) structureTreeRoot.getK(); COSDictionary oDocument = (COSDictionary) aDocument.getObject(0); COSArray aPart = oDocument.getCOSArray(COSName.K); COSDictionary oPart = (COSDictionary) aPart.getObject(0); COSArray aSect = oPart.getCOSArray(COSName.K); COSDictionary oSect = (COSDictionary) aSect.getObject(0); COSArray aP = oSect.getCOSArray(COSName.K); COSDictionary anDict = new COSDictionary(); // PDStructureElement anDict.setItem(COSName.S, COSName.ANNOT); anDict.setItem(COSName.P, aSect.get(0)); // assign aP but as ref PDObjectReference objRef = new PDObjectReference(); anDict.setItem(COSName.K, objRef); objRef.setReferencedObject(page.getAnnotations().get(0)); objRef.getCOSObject().setItem(COSName.P, anDict); //TODO check if needed in PDObjectReference API? objRef.getCOSObject().setItem(COSName.PG, page); //TODO check if needed in PDObjectReference API? aP.add(anDict); int parentTreeNextKey = structureTreeRoot.getParentTreeNextKey(); // -1, ignored here PDNumberTreeNode parentTree = structureTreeRoot.getParentTree(); Map<Integer, COSObjectable> numberTreeAsMap = getNumberTreeAsMap(parentTree); Set<Integer> keySet = numberTreeAsMap.keySet(); int maximum = keySet.stream().reduce(Integer::max).get(); annotation.setStructParent(maximum + 1); structureTreeRoot.setParentTreeNextKey(maximum + 2); numberTreeAsMap.put(maximum + 1, anDict); parentTree = new PDNumberTreeNode(PDParentTreeValue.class); parentTree.setNumbers(numberTreeAsMap); structureTreeRoot.setParentTree(parentTree); getNumberTreeAsMap 是 PDFMergerUtility 中的一个便捷方法 static Map<Integer, COSObjectable> getNumberTreeAsMap(PDNumberTreeNode tree) throws IOException { if (tree == null) { return new LinkedHashMap<>(); } Map<Integer, COSObjectable> numbers = tree.getNumbers(); if (numbers == null) { numbers = new LinkedHashMap<>(); } else { // must copy because the map is read only numbers = new LinkedHashMap<>(numbers); } List<PDNumberTreeNode> kids = tree.getKids(); if (kids != null) { for (PDNumberTreeNode kid : kids) { numbers.putAll(getNumberTreeAsMap(kid)); } } return numbers; }

回答 1 投票 0

如何为 iOS 的 React Native 项目指定 pdf 打印的名称

我正在使用expo-print和expo-sharing来保存文件。 const { uri } = 等待 Print.printToFileAsync({html}); 等待 shareAsync(uri, { UTI: ".pdf", mimeType: "application/pdf" }...

回答 2 投票 0

SyncFusion 使用外部机构的时间戳签署 pdf 文档

我正在使用数字签名签署 PDF 文件。我使用 SyncFusion 作为 PDF 库,使用 GlobalSign 作为证书提供商/颁发机构。 与外部方签署文件时,实施...

回答 1 投票 0

ASP.NET Core MVC:通过Ajax调用Rotativa并在另一个选项卡中打开

我正在开发一个 ASP.NET Core MVC 应用程序,我必须将一些视图迁移到 PDF。 我正在使用 Rotativa,到目前为止效果很好。 PDF 在新选项卡中打开。我正在运行它 @Html。行动李...

回答 1 投票 0

使用 Java Apache PdfBox 在 PDF 模板中生成边框

在不久的将来我将开发一个PDF生成服务。这都是关于使用来自请求的数据填充一个简单的模板。 在我的研究过程中,我听说了 Apache PDFBox 和...

回答 1 投票 0

在 Postscript 中添加 XMP 元数据

我正在 Postscript 文件中添加 XMP 元数据,但在使用 Adobe Distiller 将其转换为 PDF 时遇到问题。 这是我的 PS 文件 /主字体 /Helvetica-Bold findfont 15 比例字体 def /标语字体 /

回答 1 投票 0

如何从PDF研究论文中准确提取标题、标题和副标题?

我正在尝试从 PDF 格式的研究论文中提取标题、标题和副标题。我尝试了各种方法,但未能获得准确的结果。这是我采取的步骤...

回答 1 投票 0

将多个带有链接的 Markdown 文件转换为 PDF

我用 Markdown 编写了大量技术文档。我选择使用它进行版本控制,因此我们可以在 GitHub 上查看。 我们现在需要与外部用户分享这一点(他们不太舒服......

回答 4 投票 0

这里使用 MemoryStream 两次的替代方案是什么?

我正在尝试编写代码,在护照上盖上系统用户姓名、日期和签名图像(我将其作为 varbinary 存储在 sql 数据库中,并在模型中存储为 byte)。 这是我的...

回答 1 投票 0

打开最近在 Android 中创建的 PDF

我正在使用 Android Studio 制作一个简单的应用程序来创建一些 PDF 文件来存储一些数据。我只想为用户自动打开生成的 PDF 做一个意图。 这只是画布图

回答 1 投票 0

自动从 SolidWorks PDM 获取 PDF 文件并合并到一个组合中

我正在尝试自动化创建包含存储在 SolidWorks PDM 中的多个 PDF 报告的 PDF 组合的过程。 (不是将这些 PDF 合并为一个 PDF,而是创建一个组合,其中包含这些

回答 1 投票 0

使用nodejs pdf-lib和Edge使用非双面打印机打印pdf小册子

我有一台便宜的爱普生喷墨彩色打印机,我想以双面A5小册子形式打印一些A4格式的pdf。 例如,有一个包含 8 个横向页面的 pdf: 1, 2, 3, 4, 5, 6, 7, 8 该项目...

回答 1 投票 0

PyPDF2 PdfFileMerger 在合并文件中丢失 PDF 模块

我正在使用 PyPDF2 合并 PDF 文件,但是,当其中一个文件包含填充有数据的 PDF 模块(典型的应用程序填充的 PDF)时,在合并的文件中,该模块为空,不显示任何数据。 哈...

回答 3 投票 0

PDF24自动转换

我发现 PDF24 Windows 应用程序 https://tools.pdf24.org/en/creator 非常适合我的 PDF 到 Excel 转换输出。但是,有什么方法可以编写自动脚本来安排此转换

回答 1 投票 0

VBA 生成 11x17 错误的 pdf?

我确信我在这里遗漏了一些非常基本的东西。我有一个 excel 文件,我想在其中创建一个 pdf(或打印),其中显示某些列、横向、各种格式......在 11x17 上。一切...

回答 1 投票 0

如何使 PDF/A 符合 fpdf2

我能够使用 fpdf2 生成 pdf,但我希望它在 Adobe Acrobat Reader 中与 PDF/A 合规性标签一起显示。基本上我希望打开 PDF 时显示以下文本。 我需要...

回答 1 投票 0

使用withHTMLContent openHTmlToPDF时如何丢弃基本uri

我正在使用 openHTMLtoPDF 将 HTML 转换为 PDF。我已经给出了图像的完整路径,因此,我不希望库使用基本路径。 例如:我的图像路径是:C:\Users\hmt\Desktop\pdf\

回答 2 投票 0

如何直接从 macOS 应用程序打印显示打印对话框的 PDF 文件?

我希望能够显示 macOS 打印对话框,以便直接从我的应用程序打印 PDF 文件。有办法做到这一点吗? 以下是一些不太满足我的需求的解决方案: 我...

回答 2 投票 0

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.