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