我正在使用PDFBox在Java中生成報告。我的要求之一是創建一個PDF文檔,其中包含公司徽標在頁面的頂部。我無法找到實現這一目標的方法。我在Java類中有以下方法:如何使用Apache PDFBox將圖像移動到PDF頁面的頂部
public void createPdf() {
PDDocument document = null;
PDPage page = null;
ServletContext servletContext = (ServletContext) FacesContext
.getCurrentInstance().getExternalContext().getContext();
try {
File f = new File("Afiliado_2.pdf");
if (f.exists() && !f.isDirectory()) {
document = PDDocument.load(new File("Afiliado_2.pdf"));
page = document.getPage(0);
} else {
document = new PDDocument();
page = new PDPage();
document.addPage(page);
}
PDImageXObject pdImage = PDImageXObject.createFromFile(
servletContext.getRealPath("/resources/images/logo.jpg"),
document);
PDPageContentStream contentStream = new PDPageContentStream(
document, page, AppendMode.APPEND, true);
contentStream.drawImage(pdImage, 0, 0);
// Make sure that the content stream is closed:
contentStream.close();
// Save the results and ensure that the document is properly closed:
document.save("Afiliado_2.pdf");
document.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
該圖像當前出現在PDF的底部。我知道我需要修改的行是contentStream.drawImage(pdImage, 0, 0);
,但是我需要指定哪些座標以便出現在頁面的頂部?
也許'AppendMode.APPEND'與此有關? – UDKOX
Maruans附加答案 - 對於現有文件,使用帶有第5個參數(resetContext)的PDPageContentStream構造函數可能會更安全。 –