Tag: pdf

如何缩小PDF格式的内容?

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

Pdf文件未正确加载由servlet创建

朋友们,我已经实现了一个jsp表单,它接受pdf文件的标题,描述和内容等输入。 提交jsp表单时,在servlet的帮助下使用itext创建pdf,名为’pdfGenServlet.java’。 我的jsp表格是 Create Note Reset servlet’pdfGenServlet.java’ //imports for itext import java.io.FileOutputStream; import java.io.StringReader; import com.itextpdf.text.BaseColor; import com.itextpdf.text.DocumentException; import com.itextpdf.text.Font; import com.itextpdf.text.Font.FontFamily; import com.itextpdf.text.Document; import com.itextpdf.text.PageSize; import com.itextpdf.text.Paragraph; import com.itextpdf.text.html.simpleparser.HTMLWorker; // deprecated import com.itextpdf.text.pdf.PdfWriter; //servlet imports import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; //File handling and java util import java.io.ByteArrayOutputStream; […]

在iText PDF文档中拟合JTable

我有一个有四列的JTable 。 我正在使用iText库来打印带有JTable数据的PDF文档。 问题是JTable在PDF中没有正确显示。 我在Google上搜索过,并在这里遇到了同样的情况 。 代码类似于我的以及输出。 我也尝试使用模板这个例子 ,但结果并没有改变。 我们如何解决这个问题? 请协助。 如果代码是必要的,我会发布,但他们是太多的类 – 我正在开发一个大型应用程序。 我想要的概念是使JTable适合文档。

如何在pdf中导出一对一的JTable

可能重复: 为什么JTable标题没有出现在图像中? 在Panel上绘制JTable行和列 我正在编写一个报表应用程序,我必须以报表的forms导出JTable。 但是当我尝试在PDF上直接绘制JTable时,它不会显示第一行和列边框。 为此我尝试使用默认颜色网格左上边框。 这给了我一个更深的PDF格式。 但是,当尝试使用颜色填充任何特定单元格并将其导出为PDF输出时,所有网格线都是不可见的。 SimpleTableDemo.java : package com.swing.table; import java.awt.Color; import java.awt.Component; import java.awt.Dimension; import java.awt.Graphics2D; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.FileOutputStream; import java.util.HashMap; import java.util.Map; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.border.LineBorder; import javax.swing.table.TableCellRenderer; import javax.swing.table.TableColumn; import javax.swing.table.TableColumnModel; import com.itextpdf.text.Document; import com.itextpdf.text.PageSize; import […]

如何在Java中提供本地PDF文件的下载?

我将JBoss作为应用程序服务器运行,并且在我的HD上的某处有一个PDF文件,当用户点击特定操作时会创建该文件。 假设文件在这里: C:/PDF/doonot/10.07.2012/doonot.pdf 。 我如何提供此文件作为下载? 我已经为CSV文件做过,但我不知道如何用PDF做。 任何帮助深表感谢。

尝试使用fileProvider从assets文件夹打开PDF文件,但它给出FileNotFoundException:没有这样的文件或目录

我正在尝试显示存储在我的Android应用程序的资产文件夹中的“NEFT.pdf”文件。 以下代码在API 25之前完全正常 private void CopyReadAssets(String filename) { AssetManager assetManager = getAssets(); InputStream in = null; OutputStream out = null; File file = new File(getFilesDir(), filename); try { in = assetManager.open(filename); out = openFileOutput(file.getName(), Context.MODE_WORLD_READABLE); copyFile(in, out); in.close(); in = null; out.flush(); out.close(); out = null; Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType( Uri.parse(“file://” + getFilesDir() […]

如何关闭PDF文件以重新创建它? (正在使用的文件)

我有可以创建PDF文件的Java应用程序。 所以例如,我从我的程序创建一个简单的文件,我已经构建了代码来打开文件。 所以我创建了文件,我看到它然后就可以了。 如果我想修改该文件,我必须关闭此文件然后重新创建它,如果我没有关闭文件我有这个错误: java.io.FileNotFoundException: Archivio_Etichette\_12-4-2015.pdf (Impossibile accedere al file. Il file è utilizzato da un altro processo) at java.io.FileOutputStream.open(Native Method) at java.io.FileOutputStream.(FileOutputStream.java:221) at java.io.FileOutputStream.(FileOutputStream.java:171) at com.mcsolution.easyMgmt.print.pdf.FoglioFattura.stampaEtichette(FoglioFattura.java:2215) at Etichette.PanelBigliettiAdesivi.stampaEtichette(PanelBigliettiAdesivi.java:242) at Etichette.PanelBigliettiAdesivi$1.actionPerformed(PanelBigliettiAdesivi.java:273) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252) at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289) at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289) at java.awt.Component.processMouseEvent(Component.java:6516) at javax.swing.JComponent.processMouseEvent(JComponent.java:3320) at java.awt.Component.processEvent(Component.java:6281) at java.awt.Container.processEvent(Container.java:2229) at java.awt.Component.dispatchEventImpl(Component.java:4872) […]

JTable到PDF转换器

我在Java代码中遇到问题,无法将JTable转换为PDF。 它抛出NullPointerException并且相同的代码在另一个页面中工作,两者都没有区别。 代码 private void print() { Document document = new Document(); try { PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(“jTable.pdf”)); document.open(); PdfContentByte cb = writer.getDirectContent(); cb.saveState(); Graphics2D g2 = cb.createGraphicsShapes(800, 500); Shape oldClip = g2.getClip(); g2.clipRect(0, 0, 800, 500); table.print(g2); g2.setClip(oldClip); g2.dispose(); cb.restoreState(); } catch (Exception e) { e.printStackTrace(); } document.close(); }

如何重新排序PDF文件的页面?

我最后生成目录,我想在开始时移动目录。 假设我的PDF中有16页,TOC从第13页开始,到第15页结束。我想将TOC移到第二页,这样第一页仍然是第1页,最后一页仍然是第16页。这段代码没有给我我想要的东西: public void changePagesOrder() { try { PdfReader sourcePDFReader = new PdfReader(RESULT1); int n = sourcePDFReader.getNumberOfPages(); System.out.println(“no of pages in pdf files…”+n); int totalNoPages=n; int tocStartsPage=13; sourcePDFReader.selectPages(String.format(“%d-%d, 2-%d”, tocStartsPage, totalNoPages-1, tocStartsPage -2)); PdfStamper stamper = new PdfStamper(sourcePDFReader, new FileOutputStream(RESULT2)); stamper.close(); System.out.println(“pdf changes are done…..”); } catch(Exception ex) { } } 请提出一些解决方案。

如何使用链接注释向现有pdf添加叠加文本?

我想在我的叠加文字中添加一个链接。 我已经读过,使用Anchor只适用于从头开始制作的文档,但不适用于现有的pdf文件。 我的代码是为每个页面添加叠加文本。 我的目标是使该文本的一部分可以点击。 我不知道如何制作链接注释,这是一个短语的一部分。 这是我的代码: int n = reader.getNumberOfPages(); // step 4: we add content PdfImportedPage page; PdfCopy.PageStamp stamp; for (int j = 0; j < n; ) { ++j; page = writer.getImportedPage(reader, j); if (i == 1) { stamp = writer.createPageStamp(page); Rectangle mediabox = reader.getPageSize(j); Rectangle crop = new Rectangle(mediabox); writer.setCropBoxSize(crop); // add […]