如何使用iText和flying saucer在Java中将HTML页面的URL转换为PDF?

5
我刚刚下载了xhtmlrenderer和iText jar文件。使用这些jar文件,我可以制作pdf文件。
我的确需要的是: 如果我在"inputFile"处提供一个有效的URL(比如 "https://xhtmlrenderer.dev.java.net/news.html"),我需要创建pdf文件。这是否可能使用飞行器和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 inputFile = "samples/sql.html";
        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();
    }
}

1
你的代码包含了 com.lowagie,那是 iText 的一个古老版本。请使用 com.itextpdf 的 iText。 - Amedee Van Gasse
1个回答

2

是的...这可能行不通,因为请求的页面不是xhtml,但这应该有用:

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://xhtmlrenderer.java.net/news.html";

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

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

    os.close();
}
}

流关闭错误是指请求的文件未找到。在您的工作区或应用程序运行的位置中,必须存在“samples”文件夹。

我的HTML文本中包含'&'符号。如何处理? - Harshavardhan Konakanchi
我建议你创建一个新问题。 - Edd

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接