在 Maven 项目中使用 Flying Saucer API 没有显示图像
no image displayed using Flying Saucer API in maven project
我正在使用 Flying Saucer API
with iText PDF
将 HTML 内容转换为 PDF。
这需要以下库:
- 核心-renderer.jar
- iText-2.0.8.jar
由于库不支持 input type checkbox
,所以我使用 checkbox image
以 PDF 格式呈现。
但是,图像没有出现。它什么也没显示。
flyingsaucer-R8.zip
中的资源。
示例:
StringBuilder myHtml = new StringBuilder();
myHtml.append("<html><img src=\"images/invoice-bg.jpg\"></img></html>");
// if you have html source in hand, use it to generate document object
Document document = XMLResource.load( new ByteArrayInputStream(
myHtml.toString().getBytes() ) ).getDocument();
ITextRenderer renderer = new ITextRenderer();
renderer.setDocument( document, null );
renderer.layout();
String fileNameWithPath = "D:/Temp/PDF-XhtmlRendered.pdf";
FileOutputStream fos = new FileOutputStream( fileNameWithPath );
renderer.createPDF( fos );
fos.close();
System.out.println( "File 1: '" + fileNameWithPath + "' created." );
您应该使用最新版本的Flying-Saucer(目前为9.1.9)。您可以在 mvnrepository.
上找到
您还应该检查文件 images/invoice-bg.jpg
是否存在并且可以从项目的根目录访问。
如果您的路径正确,生成的 PDF 将包含您的图像。
如果您使用具有相对文件路径的资源,则需要在 setDocument
调用中指定基数 URL。
给出图片的完整路径,然后成功了。
我通过直接点击以下 URL:
来检查这个
http://localhost:8001/userApi/resources/images/invoice-bg.jpg
如果遇到类似问题,这可能会对某人有所帮助-
StringBuilder myHtml = new StringBuilder();
myHtml.append("<html><img
src=\""+serverName+"/userApi/resources/images/invoice-bg.jpg\"
style=\"margin-top:-4px;\" ></img></html>");
// if you have html source in hand, use it to generate document object
Document document = XMLResource.load( new ByteArrayInputStream(
myHtml.toString().getBytes() ) ).getDocument();
ITextRenderer renderer = new ITextRenderer();
renderer.setDocument( document, null );
renderer.layout();
String fileNameWithPath = "D:/Temp/PDF-XhtmlRendered.pdf";
FileOutputStream fos = new FileOutputStream( fileNameWithPath );
renderer.createPDF( fos );
fos.close();
System.out.println( "File 1: '" + fileNameWithPath + "' created." );
我正在使用 Flying Saucer API
with iText PDF
将 HTML 内容转换为 PDF。
这需要以下库:
- 核心-renderer.jar
- iText-2.0.8.jar
由于库不支持 input type checkbox
,所以我使用 checkbox image
以 PDF 格式呈现。
但是,图像没有出现。它什么也没显示。
flyingsaucer-R8.zip
中的资源。
示例:
StringBuilder myHtml = new StringBuilder();
myHtml.append("<html><img src=\"images/invoice-bg.jpg\"></img></html>");
// if you have html source in hand, use it to generate document object
Document document = XMLResource.load( new ByteArrayInputStream(
myHtml.toString().getBytes() ) ).getDocument();
ITextRenderer renderer = new ITextRenderer();
renderer.setDocument( document, null );
renderer.layout();
String fileNameWithPath = "D:/Temp/PDF-XhtmlRendered.pdf";
FileOutputStream fos = new FileOutputStream( fileNameWithPath );
renderer.createPDF( fos );
fos.close();
System.out.println( "File 1: '" + fileNameWithPath + "' created." );
您应该使用最新版本的Flying-Saucer(目前为9.1.9)。您可以在 mvnrepository.
上找到您还应该检查文件 images/invoice-bg.jpg
是否存在并且可以从项目的根目录访问。
如果您的路径正确,生成的 PDF 将包含您的图像。
如果您使用具有相对文件路径的资源,则需要在 setDocument
调用中指定基数 URL。
给出图片的完整路径,然后成功了。
我通过直接点击以下 URL:
来检查这个http://localhost:8001/userApi/resources/images/invoice-bg.jpg
如果遇到类似问题,这可能会对某人有所帮助-
StringBuilder myHtml = new StringBuilder();
myHtml.append("<html><img
src=\""+serverName+"/userApi/resources/images/invoice-bg.jpg\"
style=\"margin-top:-4px;\" ></img></html>");
// if you have html source in hand, use it to generate document object
Document document = XMLResource.load( new ByteArrayInputStream(
myHtml.toString().getBytes() ) ).getDocument();
ITextRenderer renderer = new ITextRenderer();
renderer.setDocument( document, null );
renderer.layout();
String fileNameWithPath = "D:/Temp/PDF-XhtmlRendered.pdf";
FileOutputStream fos = new FileOutputStream( fileNameWithPath );
renderer.createPDF( fos );
fos.close();
System.out.println( "File 1: '" + fileNameWithPath + "' created." );