이 문서에서는 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로 변환하는 단계는 다음과 같습니다:
- HtmlDocument
클래스를 사용해 먼저 HTML 파일을 로드합니다.
- 그런 다음 PdfSaveOptions
인스턴스를 생성합니다.
- 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
, demos
및 Free Support
과 같은 다양한 채널을 통해 모든 제품에 대한 기술 지원을 제공합니다.
귀하의 요구에 맞게 Aspose.HTML for Java을 구현하려면 전문가와 함께 작업하는 것이 최선의 해결책이며, 이를 위해 Paid Consulting
을 이용할 수 있습니다.