我想在我的 PDF 的每一页上放置一个标题。 页眉的文本部分已完成,但我找不到放置图像的方法。
public static class Header extends PdfPageEventHelper {
public void onEndPage(PdfWriter writer, Document document) {
try{
PdfContentByte cb = writer.getDirectContent();
/*
Some code to place my text in the header
*/
Image imgSoc = Image.getInstance("C:\\...\\Logo.jpg");
imgSoc.scaleToFit(110,110);
imgSoc.setAbsolutePosition(390, 720);
ColumnText ct = new ColumnText(cb);
ct.addText(new Chunk(imgSoc,0,0));
ct.go();
}catch(Exception e){
e.printStackTrace();
}
}
}
我不太确定我这样做的方式是否正确。
最佳答案
已经有两个使用表格的答案。
表格对于创建不同页眉部分(文档标题、文档版本、页码、 Logo ...)的动态布局非常有帮助。
但是如果你不需要它,已经像 OP 那样准备好了一切,你可以简单地将图像添加到固定位置和固定大小:
public static class Header extends PdfPageEventHelper {
public void onEndPage(PdfWriter writer, Document document) {
try
{
PdfContentByte cb = writer.getDirectContent();
/*
Some code to place some text in the header
*/
Image imgSoc = Image.getInstance("C:\\...\\Logo.jpg");
imgSoc.scaleToFit(110,110);
imgSoc.setAbsolutePosition(390, 720);
cb.addImage(imgSoc);
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
PS:如果你真的在所有页面上使用相同的标志,你最好只将图像文件读入Image
实例一次(例如在构造函数或onOpenDocument
), 将该实例保存在一个变量中并一次又一次地重复使用它。这样您就可以在 PDF 中仅包含一次图像数据。
关于java - 文本 : Add an image on a header with an absolute position,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35035356/