pab*_*ben 8 java pdf-generation stream flying-saucer
我在使用此处的简单示例创建PDF时遇到问题.这是我第一次尝试使用它,我尝试了一些事情和大量的搜索,但没有找到错误产生的原因.错误源于该renderer.setDocument(url);行.如果有人有任何想法,建议或替代方案,将不胜感激.
package flyingsaucerpdf;
import java.io.*;
import com.lowagie.text.DocumentException;
import org.xhtmlrenderer.pdf.ITextRenderer;
public class FirstDoc {
public static void main(String[] args)
throws IOException, DocumentException {
String inputFile = "samples/firstdoc.xhtml";
String url = new File(inputFile).toURI().toURL().toString();
String outputFile = "firstdoc.pdf";
OutputStream os = new FileOutputStream(outputFile);
ITextRenderer renderer = new ITextRenderer();
renderer.setDocument(url);
renderer.layout();
renderer.createPDF(os);
os.close();
}
}
Run Code Online (Sandbox Code Playgroud)
控制台打印出以下错误.
ERROR: 'Stream closed'
org.xhtmlrenderer.util.XRRuntimeException: Can't load the XML resource (using TRaX transformer). java.io.IOException: Stream closed
at org.xhtmlrenderer.resource.XMLResource$XMLResourceBuilder.createXMLResource(XMLResource.java:191)
at org.xhtmlrenderer.resource.XMLResource.load(XMLResource.java:71)
at org.xhtmlrenderer.swing.NaiveUserAgent.getXMLResource(NaiveUserAgent.java:211)
at org.xhtmlrenderer.pdf.ITextRenderer.loadDocument(ITextRenderer.java:134)
at org.xhtmlrenderer.pdf.ITextRenderer.setDocument(ITextRenderer.java:138)
at com.asiaprice.service.email.template.CompletePdf.createpdf(CompletePdf.java:28)
Run Code Online (Sandbox Code Playgroud)
如果xhtml引用渲染器无法找到的文件(例如css文件),则renderer.setDocument可以抛出"Stream closed"异常.
这个症状与原始海报不完全匹配,因为"无法加载XML资源"没有出现在错误消息中,我包括这个是为了通过谷歌来到这里的人的利益.
| 归档时间: |
|
| 查看次数: |
12963 次 |
| 最近记录: |