Java 错误:';过早结束文件;

Java 错误:';过早结束文件;,java,grails,pdf-generation,itext,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 u

但我得到了这个错误

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();
    }
}

最有可能
http://www.facebook.com
不返回HTML文档,但返回HTTP重定向或其他内容,
ITextRenderer
可能不支持此功能


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

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


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

如果在使用IText向pdf文件添加第二个签名时出现过早的文件结束错误,请确保您正确执行了以下操作

  • 第二个签名的名称应与第一个签名的名称不同
  • 签名应以附加模式添加。例如:(PdfStamper.createSignature(reader,os,'\0',null,append)
  • 确保pdf认证级别应支持添加第二个签名字段。例如:(外观.setCertificationLevel(PdfSignatureAppearance.NOT_CERTIFIED);)
  • 如果是可见的签名,请确保第二个签名在视觉上位于不同的位置

如果您在使用IText向pdf文件添加第二个签名时遇到过早的文件结束错误,请确保您正确执行了以下操作

  • 第二个签名的名称应与第一个签名的名称不同
  • 签名应以追加模式添加。例如:(PdfStamper.createSignature(读卡器,操作系统,'\0',null,追加)
  • 确保pdf认证级别应支持添加第二个签名字段。例如:(外观.setCertificationLevel(PdfSignatureAppearance.NOT_CERTIFIED);)
  • 如果是可见的签名,请确保第二个签名在视觉上位于不同的位置
> 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