PDFBoxバージョン2.0.1を使用してPDFファイルにロゴを追加しようとしています。私は次のコードを持っています:Apache PDFbox Javaエラーが発生する読み込み入力ファイル
public class PDFService {
public void createPdf() {
// Create a document and add a page to it
PDDocument document = new PDDocument();
PDPage page = new PDPage();
document.addPage(page);
// Create a new font object selecting one of the PDF base fonts
PDFont font = PDType1Font.HELVETICA_BOLD;
ServletContext servletContext = (ServletContext) FacesContext
.getCurrentInstance().getExternalContext().getContext();
try {
PDImageXObject pdImage = PDImageXObject.createFromFile(
servletContext.getRealPath("/resources/images/logo.png"),
document);
PDPageContentStream contentStream = new PDPageContentStream(
document, page);
contentStream.drawImage(pdImage, 20, 20);
contentStream.beginText();
contentStream.setFont(font, 12);
contentStream.endText();
// Make sure that the content stream is closed:
contentStream.close();
// Save the results and ensure that the document is properly closed:
document.save("Hello World.pdf");
document.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
エラーが発生しました:入力ファイルを読み込めません!ライン
PDImageXObject pdImage = PDImageXObject.createFromFile(
servletContext.getRealPath("/resources/images/logo.png"),
document);
中にServletContext.getRealPathによって返されるパスは、私がここで間違ってやっている何C:\Users\erickpezoa\Desktop\Multivision\Materials\apps\eclipse Kepler\eclipse\Projects\.metadata\.plugins\org.eclipse.core.resources\Servicios_Exequiales\build\weboutput\resources\images\logo.png
のですか?
そのディレクトリに 'logo.png'がありますか? –
はいロゴがあります – Erick
@Erick ImageIO.read(新しいファイル(servletContext.getRealPath( "/ resources/images/logo.png")))) ' - を挿入するとどうなりますか? ?はいの場合、ファイルが結局そこにないことを意味します。 (別の時にチェックしたことがあるかもしれません)、または必要な権限がありません。 –