Tag: itextpdf

iText PDF正文内容在页脚部分重叠

我使用itextpdf-5.5.3版本。 当我生成PDF并使用PdfPTable时,它在页脚部分重叠。 一些PDF代码。 writer=PdfWriter.getInstance(document, out); document.setPageSize(PageSize.A4); document.setMargins(50, 45, 50, 40); document.setMarginMirroring(false); writer.setPageEvent(new HeaderAndFooter()); document.open(); 对于页脚, public class HeaderAndFooter extends PdfPageEventHelper { private Font footerFont; public HeaderAndFooter() { super(); footerFont = getFontObj(BaseColor.LIGHT_GRAY, 15); footerFont.setStyle(Font.ITALIC); } @Override public void onEndPage(PdfWriter writer, Document document) { PdfContentByte canvas = writer.getDirectContent(); canvas.rectangle(50, 30, 500, 780); canvas.setColorStroke(BaseColor.LIGHT_GRAY); canvas.stroke(); PdfContentByte cb = […]

在现有PDF中使用Rectangle缩小PDF页面的旋转

我使用以下代码缩小现有pdf的每个页面 (顶部和底部)使用iText库。 代码工作正常。 但是现在如果我处理结果pdf ,我得到每个页面旋转的0值 ,而旧的pdf也有其他旋转(即90deg)。 我希望保持旋转,但不能这样做。 我使用的代码如下缩小页面 public void shrinkPDFPages() throws Exception { PdfReader reader = new PdfReader(“D:/testpdfs/test.pdf”); Document doc = new Document(); PdfWriter writer = PdfWriter.getInstance(doc, new FileOutputStream( “D://testpdfs/result.pdf”)); doc.open(); PdfContentByte cb = writer.getDirectContent(); for (int i = 1; i <= reader.getNumberOfPages(); i++) { PdfImportedPage page = writer.getImportedPage(reader, i); float pageHeight = reader.getPageSizeWithRotation(i).getHeight(); […]

在iText PDF文档中拟合JTable

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

如何将iTextPDF文档转换为字节数组

我需要在内存中创建后将iTextPDF Document文件转换为byte [] 。 我已经测试过,我没有正确创建PDF的问题。 问题是如何将其转换为字节数组以存储在DB中。 这是我的代码: Document generatedDocument = reportService.generateRequestForm(scdUser, jsonObject, 0, null); reportService.generateRequestForm(scdUser, jsonObject, 0, null); ByteArrayOutputStream baos = new ByteArrayOutputStream(); PdfWriter pdfWriter = PdfWriter.getInstance(generatedDocument, baos); generatedDocument.open(); document.setDocument(baos.toByteArray()); // stores as blob 我在数据库blob列中得到null值。 这是我的Document域对象: 文档域对象 @Entity @Table(name = “document”) public class Document implements java.io.Serializable { @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = “document_id”, nullable […]

使用itextpdf,横向和纵向之间PDF的PageSize始终相同

我有一个PDFReader,其中包含一些横向模式的页面和其他纵向页面。 我需要区分它们来做一些处理……但是,如果我调用getOrientation或getPageSize,则值总是相同的(页面大小为595,方向为0)。 为什么景观中的页面的值不同? 我试图找到其他方法来检索页面宽度/方向但没有任何效果。 这是我的代码: for(int i = 0; i < pdfreader.getNumberOfPages(); i++) { document = PdfStamper.getOverContent(i).getPdfDocument(); document.getPageSize().getWidth; //this will always be the same } 谢谢 !

在java中使用iText pdf替换pdf页面的颜色

我正在根据客户活动创建报告。 我是在iText PDF库的帮助下创建此报告的。 我想创建前两个页面,蓝色背景颜色(产品名称和免责声明)和其余页面白色(没有背景颜色)。 我在报告的最开始用蓝色使用以下代码着色了两页。 Rectangle pageSize = new Rectangle(PageSize.A4); pageSize.setBackgroundColor(new BaseColor(84, 141, 212)); Document document = new Document( pageSize ); 但是当我使用document.newpage()移动到第3页时,页面仍然是蓝色的。 我无法改变第3页的颜色。 我想将第3页的颜色改为白色。 我怎么能用iText做到这一点?

iText – 避免最后一行不将页面拆分到下一页

我正在使用java在itext 5上工作。 我的页面包含多个动态行表。 在某些情况下,表格的最后一行将被拆分为下一页,其中包含以下标题。 我正在使用setHeaderRows()和setSkipFirstHeader()来管理下一页的继续。 最后一行有足够的空间放在前面的页面上。 我想将最后一行放在同一页面而不是下一页。 例如,在第1页上,最后一行被拆分为下一页的第一行。 相反,我想在第1页中安装该行,因此请保留一个包含所有空白的额外页面。 我尝试使用setExtendLastRow() ,但它无法正常工作。 有谁知道如何解决这个问题。 我附上了一份工作示例代码。 public class ProposalItextSplitLastRow { public static void main(String[] args) { try { Document document = new Document(); document.setPageSize(PageSize.LETTER); document.setMargins(16, 14, 14, 14); PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(“C:/SplitLastRow.pdf”)); document.open(); document.setPageSize(PageSize.LETTER); document.setMargins(16, 14, 42, 38); for (int m = 1; m < 20; […]

PDF页面使用itext重新排序

我正在使用itext pdf库。 任何人都知道如何在现有的PDF格式中移动页面? 实际上我想在文件开头移动几页。 它是下面的东西,但我不明白它是如何工作的。 reader = new PdfReader(baos.toByteArray()); n = reader.getNumberOfPages(); reader.selectPages(String.format(“%d, 1-%d”, n, n-1)); PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(filename)); stamper.close(); 任何人都可以详细解释一下吗?

使用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 […]