Конвертация HTML в PDF используя Java

Вы наверняка знаете, что такое 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>http://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 файл:

Урок создан: 13 августа 2013 | Просмотров: 6068 | Автор: Александр Барчук | Правила перепечатки


Добавить комментарий

Добавить комментарий

Ваш e-mail не будет опубликован.

Комментарии: