Как конвертировать URL страницы HTML в PDF в Java с помощью iText и летающей тарелки?

Я только что скачал xhtmlrenderer и jar-файлы iText. Я могу сделать PDF-файлы, используя эти банки.

Что я точно хочу: мне нужно создать PDF, если я дам один действительный URL (скажем, "https://xhtmlrenderer.dev.java.net/news.html") вместо" inputFile ". Возможно ли это с помощью летающей тарелки и 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 ответ

Да... это, вероятно, не будет работать, так как запрашиваемая страница не является 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" должна существовать в проекте в вашей рабочей области или там, где вы запускаете приложение

Другие вопросы по тегам