java - 错误 : 'Premature end of file.'

标签 java grails pdf-generation itext

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 url= "http://www.facebook.com";

        String outputFile = "firstdoc.pdf";
        OutputStream os = new FileOutputStream(outputFile);

        ITextRenderer renderer = new ITextRenderer();
        renderer.setDocument(url);
        renderer.layout();
        renderer.createPDF(os);

        os.close();
    }
}

但是我收到了这个错误

> ERROR:  'Premature end of file.'
Exception in thread "main" org.xhtmlrenderer.util.XRRuntimeException: Can't load the XML resource (using TRaX transformer). org.xml.sax.SAXParseException: Premature end of file.
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:205)
at org.xhtmlrenderer.pdf.ITextRenderer.loadDocument(ITextRenderer.java:102)
at org.xhtmlrenderer.pdf.ITextRenderer.setDocument(ITextRenderer.java:106)
at com.test.java.FirstDoc.main(FirstDoc.java:17)

Caused by: javax.xml.transform.TransformerException: org.xml.sax.SAXParseException: Premature end of file.
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:720)
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:313)
at org.xhtmlrenderer.resource.XMLResource$XMLResourceBuilder.createXMLResource(XMLResource.java:189)
... 5 more
Caused by: org.xml.sax.SAXParseException: Premature end of file.
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1231)
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transformIdentity(TransformerImpl.java:637)
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:708)
... 7 more

最佳答案

http://www.facebook.com 很可能不返回 HTML 文档,而是返回 HTTP 重定向或其他内容,ITextRenderer 可能不支持。

您应该通过使用一些不执行重定向的 URL 进行测试来验证这一点。

关于java - 错误 : 'Premature end of file.' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15288952/

相关文章:

java - 在 JDO 中迁移字段

pdf-generation - 如何订购 Doxygen 团体

java - 使用 UiBinder 构建的 GWT 应用程序的本地化在托管模式下不起作用

java - 如何在我的程序中显示“以英寸为单位”

java/ eclipse : starting a new JVM in Debug mode

grails - Spring Security UI-无法打开注册/忘记密码页面

grails - 休眠异常 : No Session found for current thread when GORM query moved into another domain class

grails - 为什么在基类中未调用beforeValidate

php - 在 pdf 文档中插入手动分页符 - PHP

pdf-generation - 使用 DinkToPdf 分隔分页符