지식 베이스

Java를 사용하여 HTML에서 PDF 생성 [단계별]

이 문서에서는 Java를 사용하여 HTML에서 PDF를 생성하는 방법을 보여줍니다. CSS 스타일을 포함한 HTML 문서를 쉽게 조작하고 렌더링할 수 있습니다.

Aspose.HTML for Java 은 애플리케이션이 다양한 HTML 조작 작업을 수행하도록 지원하며 HTML5, CSS3, SVG 및 HTML Canvas 기능을 지원합니다. API를 사용하면 웹 페이지를 로드하고, 내용을 분석·편집하며, 페이지를 저장·변환할 수 있습니다.
조작할 수 있는 인기 형식: XHTML, MHTML, SVG, MD, PDF, XPS, EPUB, PNG, TIFF, JPEG, BMP 등.

PDF from HTML in Java

풍부한 기능 세트

Aspose.HTML for Java는 다양한 영역에서 많은 기능을 제공합니다:

  • Document object model – 노드를 편집·생성·제거할 수 있으며 공식 HTML 문서를 기반으로 구축되었습니다.
  • 고성능 변환기. 지원되는 파일 형식에 대한 자세한 내용은 Features List 또는 Converting 문서를 참조하세요.
  • CSS, JavaScript 및 기타 내장 형식 처리.

Java 코드 한 줄로 HTML에서 PDF 생성

정적 메서드인 Converter 클래스를 사용하면 실제로 한 줄의 코드만으로 Java 애플리케이션에서 HTML을 PDF로 쉽게 변환할 수 있습니다.

// Invoke the ConvertHTML method to convert the HTML to PDF.
com.aspose.html.converters.Converter.convertHTML(
        "<span>Hello World!!</span>",
        ".",
        new com.aspose.html.saving.PdfSaveOptions(),
        "output.pdf"
);

Java로 한 줄씩 HTML에서 PDF 생성

HTML을 한 줄씩 PDF로 변환하는 단계는 다음과 같습니다:

  1. HtmlDocument 클래스를 사용해 먼저 HTML 파일을 로드합니다.
  2. 그런 다음 PdfSaveOptions 인스턴스를 생성합니다.
  3. Converter 클래스의 ConvertHTML() 메서드를 사용해 HTML을 PDF 파일로 저장합니다. 이때 HTMLDocument , PdfSaveOptions 및 출력 파일 경로를 ConvertHTML() 메서드에 전달해야 합니다.
// Prepare an HTML code and save it to the file.
String code = "<span>Hello World!!</span>";
try (java.io.FileWriter fileWriter = new java.io.FileWriter("document.html")) {
    fileWriter.write(code);
}

// Initialize an HTML document from the file
com.aspose.html.HTMLDocument document = new com.aspose.html.HTMLDocument("document.html");
try {
    // Initialize PdfSaveOptions
    com.aspose.html.saving.PdfSaveOptions options = new com.aspose.html.saving.PdfSaveOptions();

    // Convert HTML to PDF
    com.aspose.html.converters.Converter.convertHTML(
            document,
            options,
            "output.pdf"
    );
} finally {
    if (document != null) {
        document.dispose();
    }
}

Save 옵션으로 렌더링 프로세스 맞춤 설정

PdfSaveOptions 를 사용해 렌더링 프로세스를 맞춤 설정하고, page size , file permissions , margins , CSS media type 등 다양한 옵션을 지정할 수 있습니다. 아래 예제에서는 PdfSaveOptions를 사용해 사용자 정의 페이지 크기와 배경 색상이 적용된 PDF 파일을 만드는 방법을 보여줍니다.

// Prepare an HTML code and save it to the file
String code = "<span>Hello</span> <span>World!!</span>";
try (java.io.FileWriter fileWriter = new java.io.FileWriter("document.html")) {
    fileWriter.write(code);
}

// Set A5 as a page-size and change the background color to green
com.aspose.html.saving.PdfSaveOptions options = new com.aspose.html.saving.PdfSaveOptions();
com.aspose.html.rendering.PageSetup pageSetup = new com.aspose.html.rendering.PageSetup();
com.aspose.html.drawing.Page anyPage = new com.aspose.html.drawing.Page();
anyPage.setSize(
        new com.aspose.html.drawing.Size(
                com.aspose.html.drawing.Length.fromInches(8.3f),
                com.aspose.html.drawing.Length.fromInches(5.8f)
        )
);
pageSetup.setAnyPage(anyPage);
options.setPageSetup(pageSetup);

options.setBackgroundColor(com.aspose.html.drawing.Color.getGreen());

// Convert HTML document to PDF
com.aspose.html.converters.Converter.convertHTML(
        "document.html",
        options,
        "output.pdf"
);

Fine-Tuning Converters 문서에서 PdfSaveOptions 에 대한 자세한 정보를 확인할 수 있습니다.

Output stream provider

원격 저장소(클라우드 또는 데이터베이스) 등에 파일을 저장하려면 MemoryStreamProvider 인터페이스를 구현하면 됩니다.
MemoryStreamProvider 인터페이스는 페이지 또는 문서를 렌더링한 후 스트림을 생성하고 해제하는 콜백 객체로 설계되었습니다.

아래 예제에서는 MemoryStreamProvider를 사용하는 방법을 보여줍니다.

package com.aspose.html.examples.java;

// For complete examples and data files, please go to https://github.com/aspose-html/Aspose.HTML-for-Java
public class MemoryStreamProvider implements java.io.Closeable {
    // List of InputStream objects created during the document rendering
    public java.util.List<java.io.InputStream> lStream = new java.util.ArrayList<>();

    @Override
    public void close() throws java.io.IOException {
        for (java.io.InputStream stream : lStream) {
            stream.close();
        }
    }
}
// Create an instance of MemoryStreamProvider
try (MemoryStreamProvider streamProvider = new MemoryStreamProvider()) {
    // Initialize an HTML document
    com.aspose.html.HTMLDocument document = new com.aspose.html.HTMLDocument("<span>Hello World!!</span>", ".");
    try {
        // Convert HTML to PDF by using the MemoryStreamProvider
        com.aspose.html.converters.Converter.convertHTML(
                document,
                new com.aspose.html.saving.PdfSaveOptions(),
                streamProvider.lStream
        );

        // Get access to the memory stream that contains the result data
        java.io.InputStream inputStream = streamProvider.lStream.stream().findFirst().get();

        // Flush the result data to the output file
        try (java.io.FileOutputStream fileOutputStream = new java.io.FileOutputStream("output.pdf")) {
            byte[] buffer = new byte[inputStream.available()];
            inputStream.read(buffer);
            fileOutputStream.write(buffer);
        }
    } finally {
        if (document != null) {
            document.dispose();
        }
    }
}

Aspose는 knowledge base articles , documentation , blog , code samples , demosFree Support 과 같은 다양한 채널을 통해 모든 제품에 대한 기술 지원을 제공합니다.
귀하의 요구에 맞게 Aspose.HTML for Java을 구현하려면 전문가와 함께 작업하는 것이 최선의 해결책이며, 이를 위해 Paid Consulting 을 이용할 수 있습니다.