我正在使用iText生成PDF。我创建了一个自定义PdfPageEventHelper,以向每个页面添加页眉(和页脚)。
我的问题是我不知道如何添加图像,以使其显示在“页眉框”中。我只知道如何将图像添加到文档内容本身(如果这样)。
这是一些代码片段…
public static void main(String[] args) {
Rectangle headerBox = new Rectangle(36, 54, 559, 788);
/* ... */
Document document = new Document(PageSize.A4, 36, 36, 154, 54);
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(FILENAME));
HeaderFooter event = new HeaderFooter();
writer.setBoxSize("headerBox", headerBox);
writer.setPageEvent(event);
document.open();
addContent();
document.close();
}
static class HeaderFooter extends PdfPageEventHelper {
public void onEndPage(PdfWriter writer, Document document) {
Rectangle rect = writer.getBoxSize("headerBox");
// add header text
ColumnText.showTextAligned(writer.getDirectContent(),
Element.ALIGN_RIGHT, new Phrase("Hello", fontHeader1),
rect.getLeft(), rect.getTop(), 0);
// add header image
try {
Image img = Image.getInstance("c:/mylogo.PNG");
img.scaleToFit(100,100);
document.add(img);
} catch (Exception x) {
x.printStackTrace();
}
}
}
任何有关将图像添加到标题的适当方式的建议都将受到赞赏!!
抢
您正在犯两个主要错误。
Image
在onEndPage()
方法之外创建对象,然后重用它。这样,图像字节将仅添加到PDF一次。Document
传递给onEndPage()
方法的参数应被视为只读参数。禁止向其中添加内容。与您使用创建的对象不同new Document(PageSize.A4, 36, 36, 154, 54)
。实际上,它是由实例PdfDocument
内部创建的类的PdfWriter
实例。要添加图片,您需要PdfContentByte
从作家处获得,然后使用来添加图片addImage()
。阅读文档可以轻松避免此类错误。通过阅读我的《iText in Action》,您可以节省大量时间。
问题内容: 我需要有关iText的帮助。我需要在其他现有的iText文档或PDF文档中添加现有的pdf封面。有人可以帮助我吗?我已经搜索了一些书籍(iText在使用中),但有些复杂。 问题答案: 假设我们有一个名为pages.pdf的文档,并且我们想添加封面hero.pdf作为本文档的封面。 方法1: 使用 看一下AddCover1示例: 结果是一个文档,在这里您首先有封面,然后是文档的其余部分:
我正在使用iText生成Pdf。但当我试图在pdf中添加图像时, 我mage.get实例(新的URL(timetableResource.getImageUrl()));document.add(学校标志); 但我得到的错误是 HTTP状态500-服务器为URL返回了HTTP响应代码400:http://139.59.72.150:8080/sms/attachments/23/42/school
问题内容: 我是库的新手。谁能指导我如何使用Java中的将背景色添加到整个页面(而不是块或段落)pdf。 问题答案: 此代码将完成此工作:
这是我尝试过的代码,但我得到以下异常: iText。内核PDFEException:“无法在已刷新的页面上绘制元素。” 我需要在最后添加页码,因为在生成pdf的内容后,我生成了一个目录并将其移动到文档的开头。因此,我只知道生成所有页面后的页码。
在“在另一个PDF文件的可用空间追加PDF”之前,我问了一个问题,我已经成功地将原生iText和JFreeChart结合在一个页面中制作了一个PDF。 我使用教程“SpringWebMVC与PDF视图示例(使用iText5.x)”将此设置合并到我的SpringMVC应用程序中。 我明白使用Spring的并反过来实现为 并且JFreeChart实例需要将现有PDF文件插入其中,如“使用嵌入式JFre
问题内容: 我正在尝试使用acrofields填充PDF,我能够完美地添加字符串数据,但是在向acrofields添加图像时遇到了问题。这是我添加字符串数据的代码。 问题答案: 实现此目的的“官方”方法是,将Button字段用作图像的占位符,并按照我的书中所述替换按钮的“ icon” : 有关完整的代码示例,请参见ReplaceIcon.java。 免责声明:我是iText的原始开发人员,也是“