Dengan perkembangan Internet, semakin banyak syarikat dan individu telah mula menyimpan dan berkongsi dokumen dan maklumat mereka dalam bentuk elektronik. Di antara dokumen elektronik ini, format PDF sudah pasti salah satu format yang paling popular dan serba boleh, kerana ia boleh dipaparkan dengan cara yang sama pada platform yang berbeza tanpa mengira sistem pengendalian dan aplikasi, dan ia juga tidak mudah untuk diedit.
Namun, kadangkala kita perlu menukar beberapa halaman HTML atau kandungan keluaran program Java ke dalam format PDF Pada masa ini, kita perlu menggunakan beberapa alatan dan teknologi profesional. Artikel ini memperkenalkan langkah dan idea khusus proses ini dengan menerangkan cara bahasa Java menggunakan beberapa perpustakaan dan rangka kerja untuk melaksanakan fungsi menukar HTML dan Java kepada PDF.
1. Gunakan Flying Saucer untuk menukar HTML kepada PDF
Flying Saucer ialah enjin pemaparan Java CSS yang khusus digunakan untuk menukar helaian gaya XHTML, XML dan CSS ke dalam format PDF atau imej. Ia menyediakan API yang mudah digunakan yang boleh memaparkan halaman lengkap dan berkualiti tinggi dalam PDF dengan ciri seperti fon super dan CSS3.
1. Memperkenalkan perpustakaan kebergantungan Flying Saucer
Tambah kebergantungan dalam fail pom.xml seperti berikut:
<dependency> <groupId>org.xhtmlrenderer</groupId> <artifactId>flying-saucer-pdf</artifactId> <version>9.1.20</version> </dependency>
2. Gunakan objek ITextRenderer untuk menukar HTML kepada PDF
Buat templat dan isikan kandungan HTML melalui kod berikut:
// DOM解析器 DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); // 创建一个Model用于存储转换后的文档 Document document = builder.newDocument(); // 读取html内容并转换为文档树 StringReader reader = new StringReader("要转化为PDF的html格式内容"); InputSource source = new InputSource(reader); // 获取根元素 Element root = document.getDocumentElement(); // 将html输入文档树种 Node node = document.importNode(root, true); // 将html根元素加入文档树中 document.appendChild(node); // 转化为PDF ITextRenderer renderer = new ITextRenderer(); renderer.setDocument(document, null); renderer.layout(); OutputStream out = new FileOutputStream(pdfUrl); renderer.createPDF(out);
2. Gunakan iText untuk menukar objek Java kepada PDF
Selain menukar HTML kepada PDF, kami juga boleh Menukar objek Java kepada fail PDF melalui perpustakaan iText. iText ialah perpustakaan operasi Java PDF yang menyediakan keupayaan untuk menjana fail format PDF dan API operasi.
1 Perkenalkan kebergantungan iText
Tambahkan pustaka kebergantungan iText dalam Maven, seperti yang ditunjukkan di bawah:
<dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.11</version> </dependency>
2 Cipta objek dokumen PDF
rreee3 , tambah kandungan pada dokumen
Kod berikut boleh menambah objek Java ke PDF:
// 创建pdf文件对象 Document document = new Document(PageSize.A4); // 文件输出流 OutputStream outputStream = new FileOutputStream("test.pdf"); // 将文件流作为输出对象 PdfWriter.getInstance(document, outputStream); // 打开文件 document.open(); // 向文件中添加段落,代码省略 // 关闭文件 document.close()
4 Output fail PDF
Akhir sekali, tukar fail PDF melalui aliran output fail. Output:
// 添加文字 Font font = new Font(); font.setStyle(Font.BOLD); font.setSize(18); Paragraph paragraph = new Paragraph("Hello World!", font); document.add(paragraph); // 添加表格 PdfPTable table = new PdfPTable(3); table.addCell("Candidate ID"); table.addCell("Candidate Name"); table.addCell("Status"); for(int i=0;i<10;i++) { table.addCell("00"+i); table.addCell("Candidate "+i); table.addCell("Selected"); } document.add(table);
Dapat dilihat bahawa iText menyediakan API yang kaya yang boleh digunakan untuk mencipta dan memanipulasi objek dokumen PDF, manakala Flying Saucer boleh mengendalikan gaya CSS kompleks dan tag XHTML dengan baik, menukar halaman HTML kepada Convert to fail PDF. Saya percaya bahawa menggunakan kedua-dua alat ini, anda akan lebih mudah menukar kandungan program HTML dan Java ke dalam fail PDF.
Atas ialah kandungan terperinci java html kepada pdf. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!