Tag: pdf

在Java中为PDF创建缩略图图像

我正在寻找一个可以从第一页获取PDF并创建缩略图(PNG)的Java库。 我已经看过JPedal,但其疯狂的许可费完全是令人望而却步的。 我目前正在使用iText来处理PDF文件,但我相信它不会生成缩略图。 我可以在命令行上使用类似Ghostscript的东西,但我希望尽可能保持我的项目全Java。

适用于Java的高级PDF解析器

我想从Java中提取PDF文件中的不同内容: 完整的可见文字 图片 链接 是否也可以得到以下内容? 文档元标记,如标题,描述或作者 只是头条新闻 如果文档包含表单,则输入元素 我不需要操纵或渲染PDF文件。 哪个库最适合这种用途? UPDATE 好的,我试过PDFBox: Document luceneDocument = LucenePDFDocument.getDocument(new File(path)); Field contents = luceneDocument.getField(“contents”); System.out.println(contents.stringValue()); 但输出为空。 虽然字段“摘要”是可以的。 下一个片段工作正常。 PDDocument doc = PDDocument.load(path); PDFTextStripper stripper = new PDFTextStripper(); String text = stripper.getText(doc); System.out.println(text); doc.close(); 但是,我不知道如何提取图像,链接等。 更新2 我找到了一个如何提取图像的例子,但我仍然没有得到如何提取的答案: 链接 文档元标记,如标题,描述或作者 只是头条新闻 如果文档包含表单,则输入元素

如何扩展PDF的页面大小以添加水印?

我的Web应用程序签署PDF文档。 我想让用户下载原始PDF文档(未签名),但在pdf文档的左边缘添加图像和签名者。 我在另一个Web应用程序中看到了这个想法,我也想这样做。 当然我想用itext库来做。 我附上了两张图片,原始PDF文件(未签名)和修改后的PDF文件。

如何在angularjs中阅读pdf流

我从服务器获得以下PDF流: 如何在AngularJS中读取此流? 我尝试使用以下代码在新窗口中将其作为PDF文件打开: .success(function(data) { window.open(“data:application/pdf,” + escape(data)); }); 但我无法在打开的窗口中看到内容。

如何在不在服务器端存储文件的情况下将PDF提供给浏览器?

我有两种方法。 一个在服务器端生成PDF,另一个在客户端下载PDF。 如何在不将其存储在服务器端并允许客户端直接下载它的情况下执行此操作。 以下是两种方法: public void downloadPDF(HttpServletRequest request, HttpServletResponse response) throws IOException{ response.setContentType(“application/pdf”); response.setHeader(“Content-disposition”,”attachment;filename=”+ “testPDF.pdf”); FileInputStream fis = null; DataOutputStream os = null; try { File f = new File(“C://New folder//itext3.pdf”); response.setHeader(“Content-Length”,String.valueOf(f.length())); fis = new FileInputStream(f); os = new DataOutputStream(response.getOutputStream()); byte[] buffer = new byte[1024]; int len = 0; while ((len = fis.read(buffer)) >= 0) […]

在同一页面上将表添加到现有PDF – ITEXT

我的java项目有两个部分。 我需要填写pdf的字段 我需要在页面空白区域的填充部分下面添加一个表(这个表需要能够翻转到下一页)。 我能够单独做这些事情(填充pdf并创建一个表)。 但我无法有效地合并它们。 我试过做一个doc.add(table),这会导致表格在pdf的下一页上,这是我不想要的。 我基本上只需要能够指定表在页面上的起始位置(因此它不会与现有内容重叠),然后将表格标记到现有的pdf上。 如果这不起作用,我的另一个选择是尝试将字段添加到将由表内容填充的原始pdf(因此它将是基于字段的表)。 有什么建议么? 编辑: 我是iText的新手,之前没有使用过columntext,但是我试图在下面的代码中测试它,但是没有显示表。 我查看了其他列文本示例,我还没有看到将columntext添加回pdf的确切位置。 //CREATE FILLED FORM PDF PdfReader reader = new PdfReader(sourcePath); PdfStamper pdfStamper = new PdfStamper(reader, new FileOutputStream(destPath)); pdfStamper.setFormFlattening(true); AcroFields form = pdfStamper.getAcroFields(); form.setField(“ID”, “99999”); form.setField(“ADDR1”, “425 Test Street”); form.setField(“ADDR2”, “Test, WA 91334”); form.setField(“PHNBR”, “(999)999-9999”); form.setField(“NAME”, “John Smith”); //CREATE TABLE PdfPTable table = new PdfPTable(3); […]

Java PDF Viewer

我正在使用java和RCP,我试图在我的视图上显示带有Acrobat的pdf文档。 我不需要改变它们。 我有这个代码的错误。 知道如何解决这个问题吗? Ps:它同时运作良好。 PDFFile pdfFile; pdfFile = PdfFileLoader.loadPdf(file, new NullProgressMonitor()); PdfDocument pdfDocument = new OneDimensionalPdfDocument(pdfFile, new NullProgressMonitor()); pdfViewer.setPdfDocument(pdfDocument); Error from PdfDocument pdfDocument = new OneDimensionalPdfDocument(pdfFile, new NullProgressMonitor()) : Unsupport CMap format: 6 java.nio.BufferUnderflowException at java.nio.Buffer.nextGetIndex(Unknown Source) at java.nio.HeapByteBuffer.getShort(Unknown Source) at com.sun.pdfview.font.ttf.HmtxTable.setData(HmtxTable.java:79) at com.sun.pdfview.font.ttf.TrueTypeTable.createTable(TrueTypeTable.java:113) at com.sun.pdfview.font.ttf.TrueTypeFont.getTable(TrueTypeFont.java:106) at com.sun.pdfview.font.TTFFont.getOutline(TTFFont.java:129) at com.sun.pdfview.font.TTFFont.getOutline(TTFFont.java:89) at com.sun.pdfview.font.OutlineFont.getGlyph(OutlineFont.java:118) at com.sun.pdfview.font.PDFFont.getCachedGlyph(PDFFont.java:307) […]

使用java中的itext库为合并的pdf创建索引文件(TOC)

我正在使用iText 通过使用PDFCopy合并大量PDF来创建单个PDF 。 我需要在本文档的开头创建一个TOC (而不是书签),其中包含指向每个源PDF的第一页的可点击链接。 合并pdf的代码 Document PDFJoinInJava = new Document(); PdfCopy PDFCombiner = new PdfCopy(PDFJoinInJava, outputStream); PdfCopy.PageStamp stamp; PDFJoinInJava.open(); PdfReader ReadInputPDF; List pdfs = streamOfPDFFiles; List readers = new ArrayList(); int totalPages = 0; Iterator iteratorPDFs = pdfs.iterator(); for (; iteratorPDFs.hasNext(); pdfCounter++) { InputStream pdf = iteratorPDFs.next(); PdfReader pdfReader = new PdfReader(pdf); readers.add(pdfReader); totalPages […]

编辑浏览器中嵌入的pdf并将pdf直接保存到服务器

我有这个工作流程。 将包含表单字段的pdf加载到浏览器中(pdf在iframe或div中)。 用户填写它 用户单击“提交”按钮(在另一个div中)以保存pdf。 我想在#3中做的是收集与表单字段相关的所有数据,并将数据保存到数据库表中。 我不希望用户将pdf保存到他/她的本地计算机并将其上传到服务器。 我想让它更加用户友好。 我将在服务器端使用Java / JSP / Servlet。 我查看了似乎在处理pdf文件时流行/众所周知的itext,但是itext似乎用于生成/编辑pdf,但我不确定是否有任何方法可以使某个function能够编辑嵌入浏览器的pdf并保存到数据库。 是否有任何adobe软件提供某种function,我可以注入某种可以捕获用户提交的脚本? 我知道PDF不是前端脚本语言,但我只想问。 我打算创建一个HTML表单,看起来像这个PDF,当用户点击“提交”按钮时将其填充到PDF中,但正如我所说,我想让它更加用户友好。 我很感激,如果有人看过这种类型的function或者已经完成它给了我一些资源或提示。

使用PDFBox加水印

我正在尝试使用PDFBox专门为PDF添加水印。 我已经能够让图像显示在每个页面上,但它会失去背景透明度,因为它看起来好像PDJpeg将其转换为JPG。 也许有一种方法可以使用PDXObjectImage来完成它。 这是我到目前为止所写的内容: public static void watermarkPDF(PDDocument pdf) throws IOException { // Load watermark BufferedImage buffered = ImageIO.read(new File(“C:\\PDF_Test\\watermark.png”)); PDJpeg watermark = new PDJpeg(pdf, buffered); // Loop through pages in PDF List pages = pdf.getDocumentCatalog().getAllPages(); Iterator iter = pages.iterator(); while(iter.hasNext()) { PDPage page = (PDPage)iter.next(); // Add watermark to individual page PDPageContentStream stream = […]