可移植文档格式(PDF)是由国际标准化组织(ISO)维护的电子文档交换的开放标准。问题可以是使用不同语言创建,阅读,编辑PDF。
我们公司生成了很多好看的报告。目前,其中大部分都是通过 Crystal Reports 完成的。 我发现该软件臃肿且难以使用。 有没有什么替代软件...
我有一个庞大的 PDF 文件,其中包含带有特定科学计数法的文本。我正在尝试使用 pdfplumber 提取文本。 起初,我注意到某些符号被提取为大写 La...
我有一个带标签的 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; }
如何为 iOS 的 React Native 项目指定 pdf 打印的名称
我正在使用expo-print和expo-sharing来保存文件。 const { uri } = 等待 Print.printToFileAsync({html}); 等待 shareAsync(uri, { UTI: ".pdf", mimeType: "application/pdf" }...
SyncFusion 使用外部机构的时间戳签署 pdf 文档
我正在使用数字签名签署 PDF 文件。我使用 SyncFusion 作为 PDF 库,使用 GlobalSign 作为证书提供商/颁发机构。 与外部方签署文件时,实施...
ASP.NET Core MVC:通过Ajax调用Rotativa并在另一个选项卡中打开
我正在开发一个 ASP.NET Core MVC 应用程序,我必须将一些视图迁移到 PDF。 我正在使用 Rotativa,到目前为止效果很好。 PDF 在新选项卡中打开。我正在运行它 @Html。行动李...
使用 Java Apache PdfBox 在 PDF 模板中生成边框
在不久的将来我将开发一个PDF生成服务。这都是关于使用来自请求的数据填充一个简单的模板。 在我的研究过程中,我听说了 Apache PDFBox 和...
我正在 Postscript 文件中添加 XMP 元数据,但在使用 Adobe Distiller 将其转换为 PDF 时遇到问题。 这是我的 PS 文件 /主字体 /Helvetica-Bold findfont 15 比例字体 def /标语字体 /
我正在尝试从 PDF 格式的研究论文中提取标题、标题和副标题。我尝试了各种方法,但未能获得准确的结果。这是我采取的步骤...
我用 Markdown 编写了大量技术文档。我选择使用它进行版本控制,因此我们可以在 GitHub 上查看。 我们现在需要与外部用户分享这一点(他们不太舒服......
我正在尝试编写代码,在护照上盖上系统用户姓名、日期和签名图像(我将其作为 varbinary 存储在 sql 数据库中,并在模型中存储为 byte)。 这是我的...
我正在使用 Android Studio 制作一个简单的应用程序来创建一些 PDF 文件来存储一些数据。我只想为用户自动打开生成的 PDF 做一个意图。 这只是画布图
自动从 SolidWorks PDM 获取 PDF 文件并合并到一个组合中
我正在尝试自动化创建包含存储在 SolidWorks PDM 中的多个 PDF 报告的 PDF 组合的过程。 (不是将这些 PDF 合并为一个 PDF,而是创建一个组合,其中包含这些
使用nodejs pdf-lib和Edge使用非双面打印机打印pdf小册子
我有一台便宜的爱普生喷墨彩色打印机,我想以双面A5小册子形式打印一些A4格式的pdf。 例如,有一个包含 8 个横向页面的 pdf: 1, 2, 3, 4, 5, 6, 7, 8 该项目...
PyPDF2 PdfFileMerger 在合并文件中丢失 PDF 模块
我正在使用 PyPDF2 合并 PDF 文件,但是,当其中一个文件包含填充有数据的 PDF 模块(典型的应用程序填充的 PDF)时,在合并的文件中,该模块为空,不显示任何数据。 哈...
我发现 PDF24 Windows 应用程序 https://tools.pdf24.org/en/creator 非常适合我的 PDF 到 Excel 转换输出。但是,有什么方法可以编写自动脚本来安排此转换
我确信我在这里遗漏了一些非常基本的东西。我有一个 excel 文件,我想在其中创建一个 pdf(或打印),其中显示某些列、横向、各种格式......在 11x17 上。一切...
我能够使用 fpdf2 生成 pdf,但我希望它在 Adobe Acrobat Reader 中与 PDF/A 合规性标签一起显示。基本上我希望打开 PDF 时显示以下文本。 我需要...
使用withHTMLContent openHTmlToPDF时如何丢弃基本uri
我正在使用 openHTMLtoPDF 将 HTML 转换为 PDF。我已经给出了图像的完整路径,因此,我不希望库使用基本路径。 例如:我的图像路径是:C:\Users\hmt\Desktop\pdf\
如何直接从 macOS 应用程序打印显示打印对话框的 PDF 文件?
我希望能够显示 macOS 打印对话框,以便直接从我的应用程序打印 PDF 文件。有办法做到这一点吗? 以下是一些不太满足我的需求的解决方案: 我...