Tag: itext

如何计算元素的高度?

我正在通过XML数据生成pdf文件。 我计算段落元素的高度为: float paraWidth = 0.0f; for (Object o : el.getChunks()) { paraWidth += ((Chunk) o).getWidthPoint(); } float paraHeight = paraWidth/PageSize.A4.getWidth(); 但是这种方法不能正常工作。 你能给我一个想法吗?

如何缩小PDF格式的内容?

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

使用Android Studio将iTextG包含在Android项目中

在Android Studio中包含iTextG时出现以下错误 com.android.dex.DexException: Multiple dex files define Lcom/itextpdf/awt/geom/AffineTransform; at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596) at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554) at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535) at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171) at com.android.dx.merge.DexMerger.merge(DexMerger.java:189) at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454) at com.android.dx.command.dexer.Main.runMonoDex(Main.java:303) at com.android.dx.command.dexer.Main.run(Main.java:246) at com.android.dx.command.dexer.Main.main(Main.java:215) at com.android.dx.command.Main.main(Main.java:106) 我不知道为什么但似乎这个库里也有awt。 这是我包括它的方式: 从http://sourceforge.net/projects/itextg/下载itextg 解压缩jar文件 将itextg-5.5.4.jar复制到app目录中的libs文件夹 Gradle清洁 为什么awt还在图书馆?

iText – 将内容添加到现有页面的底部

我想在PDF文件的每个页面上添加一段文字。 这个答案在SO中工作得很好。 但是,文本被添加到页面顶部。 我想将我的文字添加到每个页面的底部。 我该怎么做呢? 这是代码的相关部分。 while (iteratorPDFReader.hasNext()) { PdfReader pdfReader = iteratorPDFReader.next(); // Create a new page in the target for each source page. while (pageOfCurrentReaderPDF < pdfReader.getNumberOfPages()) { document.newPage(); pageOfCurrentReaderPDF++; currentPageNumber++; page = writer.getImportedPage(pdfReader, pageOfCurrentReaderPDF); cb.addTemplate(page, 0, 0); document.add(new Paragraph("My Text here")); //As per the SO answer } pageOfCurrentReaderPDF = 0; } 代码是函数的一部分,该函数接受文件夹,读取其中的PDF文件并将它们合并为一个文件。 […]

itext更改所有超链接的缩放级别以inheritance现有pdf的缩放

我使用以下代码来更改所有超链接的缩放级别以inheritance缩放 ,但无法更改。 可能是我在PdfName.DEST和条件中犯了一些错误,因为第一页的pdf中没有DEST数组(查看屏幕截图)。 for (int count = 0; count < reader.getNumberOfPages(); count++) { PdfDictionary page = reader.getPageN(count+1); PdfArray annots = page.getAsArray(PdfName.ANNOTS); if (annots != null) { for (int i = 0; i < annots.size(); i++) { PdfDictionary annotation = annots.getAsDict(i); if (PdfName.LINK.equals(annotation.getAsName(PdfName.SUBTYPE))) { if(annotation.get(PdfName.A)==null){ continue; } PdfArray d = annotation.getAsArray(PdfName.DEST); if (d != null && […]

使用iText将行添加到PDF表格中

我在这段代码中得到的是一个包含8列和3行的表。 我该怎么办才能获得2排? 并且3行中的第1列是空的,但剩余的单元格用“hi”填充。 PdfPTable table = new PdfPTable(8); PdfPCell cell; cell = new PdfPCell(); cell.setRowspan(2); table.addCell(cell); for(int aw=0;aw<8;aw++){ table.addCell("hi"); }

将jasper导出为pdf时,NoClassDefFoundError:com / itextpdf / text / DocumentException

我创建了一个jasper报告,现在我需要将该报告导出为pdf格式。 这是我的代码。 // compiles jrxml JasperCompileManager.compileReportToFile(reportName + “.jrxml”); // fills compiled report with parameters and a connection JasperPrint print = JasperFillManager.fillReport(reportName + “.jasper”, parameters, connection); // to view the report //JasperViewer.viewReport(print, false); // export repor to pdf JasperExportManager.exportReportToPdfFile(print, “fromXml.pdf”); 当我使用JasperViewer查看报告时,它工作正常。 但是当我将报告导出为pdf格式时,它给出了以下exception。 Exception in thread “main” java.lang.NoClassDefFoundError: com/itextpdf/text/DocumentException 但我已将iText jar放入我的库中。 但有一点,我之前有另一个版本的iText jar。 它给了我同样的例外。 我认为它的版本可能存在一些问题。(我遵循了一个教程,所以我添加了与他们在教程中使用的相同的jar替换我使用过的新jar)。 但问题仍然存在。 我认为这可能是现在的问题(问题的公认答案)。 […]

关于Java Servlet使用iText打开PDF文件的问题

下面的代码抓取PDF文件并在浏览器中显示。 import java.io.ByteArrayOutputStream; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintWriter; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.lowagie.text.Document; import com.lowagie.text.DocumentException; import com.lowagie.text.pdf.PdfReader; import com.lowagie.text.pdf.PdfStamper; import com.lowagie.text.pdf.PdfStream; import com.lowagie.text.pdf.PdfWriter; public class WelcomeServlet extends HttpServlet { private static final String DOCUMENT_LOCATION = “H:\\testPDF.pdf”; // a test […]

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; […]

将JFreeChart从Itext 5迁移到7

我正在将我的应用程序从Itext 5迁移到7,并且无法找到有关如何将JFreeChart添加到我的文档的任何内容。 我问过那个论坛,但他们无能为力,所以他们把我送到了这里。 这是我的工作Itext 5代码: PdfContentByte cb=writer.getDirectContent(); PdfTemplate tp=cb.createTemplate(sizeX*scale+1,sizeY*scale+1); PdfGraphics2D g2d=new PdfGraphics2D(cb,sizeX*scale+1,sizeY*scale+1); tp.setWidth(sizeX*scale+1); tp.setHeight(sizeY*scale+1); Chart.getInstance().getChart().draw(g2d, new java.awt.geom.Rectangle2D.Float(0,0,sizeX*scale,sizeY*scale)); g2d.dispose(); cb.add(tp); 有人可以帮我创建等效的itext 7吗? TIA。