Tag: pdf

如何使用Apache PDFBox拆分PDF?

我正在使用Apache PDFBox来处理我的Java应用程序中的PDF文件。 我想在每个页面上拆分PDF文档。 有可能做这个wirth Apache PDFBox吗? 如果是这样,怎么样?

在ClientSide浏览器上打印PDF而无需打开PDF

我希望在用户点击特定链接时在客户端打印PDF。 但是,PDF不应该打开,应该触发打印。 它可能不是静音打印,要求打印机使用的OS弹出窗口可以来。 我的PDF阅读器应为Adobe Reader。 我发现很多链接试图发现它们依赖于浏览器的使用。 我尝试使用此代码片段在Chrome中成功打印,但我认为chrome有自己的PDF渲染器。 function iprint(ptarget){ ptarget.focus(); ptarget.print(); } 还尝试了这段代码,但这会打开PDF然后打印: timerID = setTimeout(“exPDF.print();”, 1000); 非常感谢任何帮助。

如何使用iText将Swing组件绘制为PDF文件?

我想通过iText将我的Swing JComponent打印到pdf。 JComponent com = new JPanel(); com.add( new JLabel(“hello”) ); PdfWriter writer = PdfWriter.getInstance( document, new FileOutputStream( dFile ) ); document.open( ); PdfContentByte cb = writer.getDirectContent( ); PdfTemplate tp = cb.createTemplate( pageImageableWidth, pageImageableHeight ); Graphics2D g2d = tp.createGraphics( pageImageableWidth, pageImageableHeight, new DefaultFontMapper( ) ); g2d.translate( pf.getImageableX( ), pf.getImageableY( ) ); g2d.scale( 0.4d, 0.4d ); […]

iText中的图像定位 – Java

我正在尝试阅读一个PDF并将其数据复制到另一个PDF中。 第一个PDF包含一些文本和图像,我希望在第二个PDF中准确地写出文本结束的位置(这基本上是PDF文件的结尾)。 现在它只是打印在顶部。 我怎样才能做出这个改变? PdfReader reader = null; reader = new PdfReader(Var.input); Document document=new Document(); PdfWriter writer = null; writer = PdfWriter.getInstance(document,new FileOutputStream(Var.output)); PdfImportedPage page = writer.getImportedPage(reader, 1); reader.close(); document.open(); PdfContentByte cb = writer.getDirectContent(); // Copy first page of existing PDF into output PDF document.newPage(); cb.addTemplate(page, 0, 0); // Add your new data / text […]

如何使用PDFBox的PDFPagePanel查看PDF文档

我似乎无法弄清楚如何使用PDFBox及其PDFPagePanel组件查看PDF页面。 因此,似乎使用PDFBox我的选项是创建一个PDPage对象列表或PDDocument对象,我已经使用PDPage列表(而不是使用Splitter()用于PDDocument对象) 以下代码创建名为testPage的PDPage对象 File PDF_Path = new File(“C:\\PDF.PDF”); PDDocument inputPDF = PDDocument.load(PDF_Path); List allPages = inputPDF.getDocumentCatalog().getAllPages(); inputPDF.close(); PDPage testPage = (PDPage)allPages.get(0); 从这里我想创建一个PDFPagePanel并使用其setPage()方法将PDPage放入组件中。 从这里我想将组件添加到JFrame。 当我这样做时,我只看到空白。 JFrame testFrame = new JFrame(); testFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); PDFPagePanel pdfPanel = new PDFPagePanel(); pdfPanel.setPage(testPage); testFrame.add(pdfPanel); testFrame.setBounds(40, 40, pdfPanel.getWidth(), pdfPanel.getHeight()); testFrame.setVisible(true); 我找到了一个“解决方案”,建议将PDF转换为图像并将其显示为缓冲图像,虽然这样做但似乎不是正确的方法。 我是否错误地尝试使用PDFBox的PDFPagePanel作为显示PDF的方法?

如何提高PDF渲染器中图像的分辨率?

我想提高图像的分辨率。 我用过PDFRenderer-0.9.0 jar。 它从java.net下载,用于将PDF页面转换为图像。 我想将46_2.pdf PDF文件转换为图像。 转换后的46_2.png图片很小,尺寸为612 x 792 [ width x height ] , 所以我想将图像尺寸增加到1200 x 1400 [ width x height] 。 我以前试过PdfBox将PDF页面转换成PNG图像文件。 有一个问题, only page is converted but text is missing 。 所以我尝试了PdfRenderer进行图像转换。 码: package com.pdfrenderer.examples; import java.awt.Graphics2D; import java.awt.Image; import java.awt.Rectangle; import java.awt.image.BufferedImage; import java.io.File; import java.io.RandomAccessFile; import java.nio.ByteBuffer; import java.nio.channels.FileChannel; import […]

在Struts-2中使用iText生成PDF:结果类型流不起作用

我的要求是使用iText生成PDF文件,我使用下面的代码创建一个示例PDF Document document = new Document(); ByteArrayOutputStream baos = new ByteArrayOutputStream(); PdfWriter.getInstance(document, baos); document.open(); document.add(new Paragraph(“success PDF FROM STRUTS”)); document.close(); ServletOutputStream outputStream = response.getOutputStream() ; baos.writeTo(outputStream); response.setHeader(“Content-Disposition”, “attachment; filename=\”stuReport.pdf\””); response.setContentType(“application/pdf”); outputStream.flush(); outputStream.close(); 如果您在上面的代码中看到,iText没有使用任何inputStream参数,而是直接写入响应的输出流。 struts-2强制我们使用InputStream参数(参见下面的配置) inputStream application/pdf attachment;filename=”sample.pdf” 1024 我知道我的类应该有inputStream的getter和setter,我也有struts-configuration中提到的类 private InputStream inputStream; public InputStream getInputStream() { return inputStream; } public void setInputStream(InputStream inputStream) { this.inputStream […]

在PDFBox中,如何更改PDRectangle对象的原点(0,0)?

情况: 在PDFBox中,PDRectangle对象的默认原点(0,0)似乎是页面的左下角。 例如,下面的代码在页面的左下角为您提供了一个正方形,每边长度为100个单位。 PDRectangle rectangle = new PDRectangle(0, 0, 100, 100); 问题: 是否可以将原点更改为UPPER-LEFT转角,例如,上面的代码会在页面的左上角为您提供相同的方块? 我问的原因是: 我使用PDFTextStripper来获取文本的坐标(通过使用提取的TextPosition对象的getX()和getY()方法)。 从TextPosition对象检索的坐标似乎在UPPER-LEFT CORNER处具有原点(0,0)。 我希望我的PDRectangle对象的坐标与我的TextPosition对象的坐标具有相同的原点。 我试图通过“页面高度减去Y坐标”来调整PDRectangle的Y坐标。 这给了我想要的结果,但它并不优雅。 我想要一个优雅的解决方案 注意 :有人问过类似的问题。 答案就是我尝试过的,这不是最优雅的。 如何从左下角到左上角更改pdf页面中文本的坐标

使用iText在PDF文档中绘制一个矩形

iText中有没有办法在PDF文档中绘制矩形?

使用pdfbox从单独的pdf(不同页面大小)添加页面作为图层

如果页面大小不同,如何将外部pdf文档中的页面添加到目标pdf? 这是我想要完成的事情: 我尝试使用LayerUtility(就像在这个例子中PDFBox LayerUtility – 将图层导入到现有PDF中 ),但是一旦我从外部pdf导入页面,该过程就会挂起: PDDocument destinationPdfDoc = PDDocument.load(fileInputStream); PDDocument externalPdf = PDDocument.load(EXTERNAL PDF); List destinationPages = destinationPdfDoc.getDocumentCatalog().getAllPages(); LayerUtility layerUtility = new LayerUtility(destinationPdfDoc); // process hangs here PDXObjectForm firstForm = layerUtility.importPageAsForm(externalPdf, 0); AffineTransform affineTransform = new AffineTransform(); layerUtility.appendFormAsLayer(destinationPages.get(0), firstForm, affineTransform, “external page”); destinationPdfDoc.save(resultTempFile); destinationPdfDoc.close(); externalPdf.close(); 我做错了什么?