如何使用iText和飞碟将html页面的网址转换为PDF格式的pdf?

问题描述 投票:5回答:1

我刚刚下载了xhtmlrenderer和iText 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();
    }
}
java flying-saucer html-to-pdf xhtmlrenderer
1个回答
1
投票

是的......这可能不会起作用,因为被请求的页面不是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'文件夹必须存在于工作区中的项目中,或者您正在运行应用程序的任何位置

© www.soinside.com 2019 - 2024. All rights reserved.