Tag: pdfbox

使用PDFBox获取PDF TextObjects

我有一个PDF,我使用PDFBox从中提取了一个页面: (…) File input = new File(“C:\\temp\\sample.pdf”); document = PDDocument.load(input); List allPages = document.getDocumentCatalog().getAllPages(); PDPage page = (PDPage) allPages.get(2); PDStream contents = page.getContents(); if (contents != null) { System.out.println(contents.getInputStreamAsString()); (…) 根据PDF规范 ,这给出了以下结果,看起来像您期望的结果。 q /GS0 gs /Fm0 Do Q /Span <>BDC BT /CS0 cs 0 0 0 scn /GS1 gs /T1_0 1 Tf 8.5 0 0 […]

从文件摘要创建pkcs7签名

目前我有一个客户端 – 服务器应用程序,给定一个PDF文件,签名(使用服务器证书),将签名附加到原始文件并将输出返回给客户端(所有这些都是通过PDFBox实现的)。 我有一个签名处理程序,这是我的外部签名支持(其中内容是PDF文件) public byte[] sign(InputStream content) throws IOException { try { System.out.println(“Generating CMS signed data”); CMSSignedDataGenerator generator = new CMSSignedDataGenerator(); ContentSigner sha1Signer = new JcaContentSignerBuilder(“Sha1WithRSA”).build(privateKey); generator.addSignerInfoGenerator( new JcaSignerInfoGeneratorBuilder(new JcaDigestCalculatorProviderBuilder().build()) .build(sha1Signer, new X509CertificateHolder(certificate.getEncoded()))); CMSTypedData cmsData = new CMSProcessableByteArray(IOUtils.toByteArray(content)); CMSSignedData signedData = generator.generate(cmsData, false); return signedData.getEncoded(); } catch (GeneralSecurityException e) { throw new IOException(e); } […]

使用PDFbox确定文档中单词的坐标

我正在使用PDFbox提取PDF文档中单词/字符串的坐标,并且到目前为止已成功确定单个字符的位置。 这是迄今为止的代码,来自PDFbox doc: package printtextlocations; import java.io.*; import org.apache.pdfbox.exceptions.InvalidPasswordException; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPage; import org.apache.pdfbox.pdmodel.common.PDStream; import org.apache.pdfbox.util.PDFTextStripper; import org.apache.pdfbox.util.TextPosition; import java.io.IOException; import java.util.List; public class PrintTextLocations extends PDFTextStripper { public PrintTextLocations() throws IOException { super.setSortByPosition(true); } public static void main(String[] args) throws Exception { PDDocument document = null; try { File input = new File(“C:\\path\\to\\PDF.pdf”); […]

为什么不在java servlet中创建pdf文档?

我使用iText / Pdfbox创建PDF文档。 当我使用像这样的独立Java类创建PDF时,一切正常: public static void main(String[] args){ … … … } 文档已正确创建。 但我需要从Servlet创建一个PDF文档。 我将代码粘贴到get或post方法中,在服务器上运行该servlet,但不创建PDF文档! 此代码作为独立应用程序运行: 此代码不起作用:

如何缩小PDF格式的内容?

我有一个pdf,我需要缩小规模。 pdf处于A4纵向模式,我需要的是将pdf的内容缩小到5%,并将其放入A4 A4和纵向模式的新PDF中。 它不是将pdf转换为图像,缩放它们并将其放回pdf的选项。 我正在寻找一种方法来解决这个问题。 有没有办法用pdfbox或itext解决这个问题?

打开带参数的PDF文件

我正在研究一个基于java的工具,它应该搜索所选目录上的PDF文件,并且应该搜索此PDF文件中的特殊单词/句子。 之后,JList显示适合的文件,双击其中一个条目,PDF Reader(Adobe Reader)应直接在出现单词/句子的页面上打开此文件。 我尝试了两件不同的事情。 的Runtime.exec: try{ Runtime.getRuntime().exec(“rundll32″ + ” ” + “url.dll,FileProtocolHandler /A page=4″ + ” ” + o.toString()); }catch(IOException ex) { ex.printStackTrace(); } 桌面打开: if(Desktop.isDesktopSupported()) { try{ Desktop d = Desktop.getDesktop(); d.open(new File(o.toString())); }catch(IOException ex) { ex.printStackTrace(); } } 有没有办法用“page = 4”之类的参数启动PDF阅读器直接跳到右页? 提前致谢

如何使用pdfbox检查文本是否透明

我PDFStreamEngine并重载了processTextPosition ,我现在能够重建像PDFTextStripper这样的文本,但我不想处理透明文本,这通常是垃圾。 我怎么知道某些文字是否透明?

如何将PDTextbox的文本设置为颜色?

我想PDTextbox有红色文本。 我能够写出红色文本,我可以设置文本框的值,但我不确定如何将文本框内容设置为红色。 即。 if (field instanceof PDTextbox) { field.setValue(field.getPartialName()); //SOME WAY TO SET COLOR HERE? 这是我正在使用的测试代码: package com.circumail; import java.awt.Color; import java.io.File; import java.io.IOException; import java.util.List; import org.apache.fontbox.util.BoundingBox; import org.apache.pdfbox.cos.COSArray; import org.apache.pdfbox.cos.COSDictionary; import org.apache.pdfbox.cos.COSName; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDDocumentCatalog; import org.apache.pdfbox.pdmodel.PDPage; import org.apache.pdfbox.pdmodel.common.PDRectangle; import org.apache.pdfbox.pdmodel.edit.PDPageContentStream; import org.apache.pdfbox.pdmodel.font.PDType1Font; import org.apache.pdfbox.pdmodel.interactive.form.PDAcroForm; import org.apache.pdfbox.pdmodel.interactive.form.PDField; import org.apache.pdfbox.pdmodel.interactive.form.PDTextbox; public class Test […]

Radiobutton显示PDFBox的问题

我使用了来自这个问题的答案中的代码来创建我的radiobuttons: 如何使用PDFBox 2.0创建单选按钮组 创建我的PDF并尝试从中读取(以编程方式)选择的值后,此代码工作正常: PDDocumentCatalog catalog = doc.getDocumentCatalog(); PDAcroForm form = catalog.getAcroForm(); List fields = form.getFields(); for(PDField field: fields) { Object value = field.getValueAsString(); String name = field.getFullyQualifiedName(); if (field instanceof PDRadioButton) { // value is correct and field is instance of PDRadioButton works too } } 当我在Acrobat Reader DC中打开PDF时,进行更改并再次保存,代码不再起作用。 PDRadioButton不再有实例,值始终为空字符串。 当我在Acrobat Touch中打开PDF时,它甚至无法正常显示。 (当我打开之前由Acrobat Reader […]

PDFBox 2.0.7 ExtractText无效,但1.8.13和PDFReader也有效

希望您能够了解使用pdfbox 2.0.7从PDF中提取文本时出了什么问题。 结果很奇怪: 使用1.8.13,命令java -jar pdfbox-app-1.8.13.jar ExtractText -sort -nonSeq test.pdf导致 Deutsche Bank Privat- und Geschäftskunden AG Bruttoertrag 43,80 USD 37,15 EUR Kapitalertragsteuer (KESt) – 5,36 USD – 4,55 EUR Solidaritätszuschlag auf KESt – 0,29 USD – 0,25 EUR Umrechnungskurs USD zu EUR 1,1791000000 Gutschrift mit Wert 15.08.2017 32,35 EUR 使用2.0.7,命令java -jar pdfbox-app-2.0.7.jar ExtractText -sort test.pdf导致 […]