Вы наверняка знаете, что такое PDF, да это формат электронных книг которые вы скачиваете. И про HTML точно слышали. Так вот я однажды подумал, а что если мне написать свой конвертер с HTML в PDF, так вот в этом уроке я не буду придумывать свой велосипед, а просто заюзаю готовое решение iText.
Шаг 1
Создаем Maven проект File -> New project -> Maven module и сразу же добавим зависимости в pom.xml:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>HTMLToPdf</groupId> <artifactId>HTMLToPdf</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <dependencies> <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.4.3</version> </dependency> <dependency> <groupId>com.itextpdf.tool</groupId> <artifactId>xmlworker</artifactId> <version>5.4.3</version> </dependency> </dependencies> </project>
Теперь мы сможем использовать конвертер в PDF.
Шаг 2
Создаем в корне проекта index.html, которую мы и будем конвертить в PDF:
<!DOCTYPE html> <html> <head> <title>HTML -> PDF</title> <meta charset="utf-8" /> <link href="style.css" rel="stylesheet" type="text/css" /> </head> <body> <h1>HTML -> PDF</h1> <p> <span class="itext">itext</span> <span class="description"> HTML -> PDF</span> </p> <table> <tr> <th class="label">Title</th> <td>iText - Java HTML -> PDF</td> </tr> <tr> <th>URL</th> <td>https://devcolibri.com/</td> </tr> </table> </body> </html>
И стили для этой страницы style.css:
h1 { color:#ccc; } table tr td{ text-align:center; border:1px solid gray; padding:4px; } table tr th{ background-color:#84C7FD; color:#fff; width: 100px; } .itext{ color:#84C7FD; font-weight:bold; } .description{ color:gray; }
Так будет выглядеть ваша страница:
Шаг 3
Теперь делаем конвертацию:
public static void main(String... args) throws IOException, DocumentException { Document document = new Document(); // Создаем writer для записи в pdf PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("pdf.pdf")); // Открываем для чтения html страничку document.open(); // Парсим её и записываем в PDF XMLWorkerHelper.getInstance().parseXHtml(writer, document, new FileInputStream("index.html")); document.close(); System.out.println( "Ваш PDF файл - Создан!" ); }
В результате у нас получится в корне новый pdf файл:
ПОХОЖИЕ ПУБЛИКАЦИИ
- None Found
2 комментариев к статье "Конвертация HTML в PDF используя Java"