因此,我不仅要在创建文本时将文本添加到PDF文件中,还要同时添加背景图像。我想知道这是否可能,因为我还没有找到任何例子,唯一与此类似的问题(This one)没有给出提出问题的人的任何反馈,而且它不是&# 39; t标记为已解决。
我现在正在使用这个非常简单的例子:
PDDocument doc = null;
PDPage page = null;
try{
doc = new PDDocument();
page = new PDPage();
doc.addPage(page);
PDFont font = PDType1Font.HELVETICA_BOLD;
PDPageContentStream content = new PDPageContentStream(doc, page);
content.beginText();
content.setFont( font, 12 );
content.moveTextPositionByAmount( 100, 700 );
content.drawString("Hello World");
content.endText();
content.close();
doc.save("printme.pdf");
doc.close();
} catch (Exception e){
System.out.println(e);
}
感谢您的时间。
答案 0 :(得分:1)
try {
PDDocument document = new PDDocument();
PDPage page = new PDPage(PDPage.PAGE_SIZE_A4);
document.addPage(page);
PDFont font = PDType1Font.HELVETICA_BOLD;
PDPageContentStream contentStream = new PDPageContentStream(document, page, true, true);
addImageToPage(document, 0, 0, 4f, "D:/test.jpg", contentStream);
contentStream.beginText();
contentStream.setFont(font, 12);
contentStream.moveTextPositionByAmount(100, 700);
contentStream.drawString("Hello World");
contentStream.endText();
contentStream.close();
document.save("D:/mydoc.pdf");
} catch (Exception e) {
System.out.println(e);
}
添加图片的方法:
public static void addImageToPage(PDDocument document, int x, int y, float scale, String imageFilePath, PDPageContentStream contentStream)
throws IOException {
BufferedImage tmp_image = ImageIO.read(new File(imageFilePath));
BufferedImage image = new BufferedImage(tmp_image.getWidth(), tmp_image.getHeight(),
BufferedImage.TYPE_4BYTE_ABGR);
image.createGraphics().drawRenderedImage(tmp_image, null);
PDXObjectImage ximage = new PDPixelMap(document, image);
contentStream.drawXObject(ximage, x, y, ximage.getWidth() * scale, ximage.getHeight() * scale);
}
答案 1 :(得分:1)