Java를 이용한 HTML을 PDF로 변환

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPDF for Java는 개발자에게 HTML 콘텐츠에서 PDF 출력으로 가는 직접적인 경로를 제공하여 별도의 레이아웃 API를 배울 필요가 없습니다. 라이브러리는 현대적인 브라우저가 하는 것과 같은 방식으로 HTML, CSS, JavaScript를 렌더링하므로 PDF 출력은 화면에 보이는 것과 일치합니다. 이 튜토리얼은 설치, 기본 HTML-to-PDF 변환 메소드 세 가지, 그리고 머리글, 바닥글, 페이지 크기 조정, 사용자 정의 여백 등 형식 옵션을 다룹니다.

튜토리얼은 IronPDF for Java를 사용합니다. .NET 버전을 다루는 병렬 가이드는 HTML에서 PDF로 변환 튜토리얼 for .NET에서 사용할 수 있습니다. IronPDF는 또한 PythonNode.js에서도 사용할 수 있습니다.

빠른 시작: HTML을 PDF 파일로 변환

HTML 문자열에서 PDF로의 가장 짧은 경로는 세 줄의 Java 코드입니다:

//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/quickstart.java
import com.ironsoftware.ironpdf.*;
// Convert an HTML string directly to a PDF document
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Hello from IronPDF!</h1>");
// Save to disk
pdf.saveAs("output.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/quickstart.java
import com.ironsoftware.ironpdf.*;
// Convert an HTML string directly to a PDF document
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Hello from IronPDF!</h1>");
// Save to disk
pdf.saveAs("output.pdf");
JAVA

지금 바로 무료 체험판을 통해 IronPDF을 프로젝트에서 사용해 보세요.

첫 번째 단계:
green arrow pointer

목차

Java에서 Maven 프로젝트에 IronPDF를 추가하는 방법

Maven 프로젝트에 IronPDF를 추가하려면 프로젝트의 pom.xml 종속성 블록에 두 개의 항목을 추가해야 합니다. 첫 번째는 IronPDF 라이브러리를 가져오고; 두 번째는 SLF4J 로깅 공급자를 추가하여 IronPDF가 실행 중에 엔진 메시지를 기록할 수 있습니다.

//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/maven-dependency.xml
<dependency>
  <groupId>com.ironsoftware</groupId>
  <artifactId>ironpdf</artifactId>
  <version>2024.9.1</version>
</dependency>
<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-simple</artifactId>
  <version>2.0.5</version>
</dependency>
//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/maven-dependency.xml
<dependency>
  <groupId>com.ironsoftware</groupId>
  <artifactId>ironpdf</artifactId>
  <version>2024.9.1</version>
</dependency>
<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-simple</artifactId>
  <version>2.0.5</version>
</dependency>
XML

ironpdf 아티팩트는 최신 IronPDF for Java 릴리스 및 변경 내역을 참조합니다. slf4j-simple 종속성은 기본적인 로깅 백엔드를 제공합니다. You can substitute it with Logback or Log4J as needed, or omit it entirely to suppress log output.

두 항목을 모두 추가한 후, 프로젝트 루트에서 mvn install를 실행하여 아티팩트를 다운로드하십시오. Maven resolves the dependency against Maven Central.

pom.xml에 추가하기 전에 Maven Central 페이지에서 com.ironsoftware:ironpdf의 최신 버전 번호를 확인하십시오.

IronPDF JAR을 Java에 수동으로 설치하는 방법은 무엇입니까?

Maven이나 다른 의존성 관리자를 사용하지 않는 프로젝트에서는 JAR을 직접 다운로드하여 클래스 경로에 포함시켜 IronPDF를 추가할 수 있습니다. IronPDF for Java 다운로드 페이지로 이동하여 펫-JAR 파일을 다운로드하세요.

펫-JAR은 모든 의존성을 묶기 때문에 주요 아티팩트 외에 추가 클래스 경로 항목이 필요하지 않습니다. Optionally download an SLF4J implementation JAR to enable logging.

IDE의 라이브러리 관리 패널을 사용하여 두 JAR 파일을 프로젝트의 클래스패스에 추가하거나, 터미널에서 컴파일 및 실행 시 -classpath 항목을 지정하십시오.

Java 소스 파일에 IronPDF를 가져오는 방법은 무엇입니까?

com.ironsoftware.ironpdf 패키지에는 모든 변환 및 처리 구성 요소가 포함되어 있습니다. IronPDF 메서드를 호출하는 모든 Java 파일 상단에 다음 가져오기 문을 배치하세요.

//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/import-statement.java
// Import all IronPDF components
import com.ironsoftware.ironpdf.*;
//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/import-statement.java
// Import all IronPDF components
import com.ironsoftware.ironpdf.*;
JAVA

특정 클래스 이름을 명시하는 대상 임포트도 유효합니다: import com.ironsoftware.ironpdf.PdfDocument;. 와일드카드 import는 탐색 시 편리합니다.

Java에서 IronPDF의 라이선스 키를 설정하는 방법은 무엇입니까?

IronPDF for Java는 라이선스 키 없이 무료로 사용할 수 있지만, 생성되거나 수정된 모든 PDF 문서에 타일형 워터마크를 적용합니다. 워터마크를 제거하려면 변환 또는 조작 메서드를 호출하기 전에 유효한 라이선스 키를 제공하세요.

//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/set-license-key.java
// Set the license key before any PDF operations
License.setLicenseKey("YOUR-LICENSE-KEY");
//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/set-license-key.java
// Set the license key before any PDF operations
License.setLicenseKey("YOUR-LICENSE-KEY");
JAVA

setLicenseKey 호출은 애플리케이션 시작 시, 어떤 PdfDocument 메서드도 호출되기 전에 배치하십시오. 라이선스 키 구매 또는 무료 체험 시작을 통해 워터마크 없는 PDF를 생성하세요.

IronPDF licensing page showing how to obtain a license key to remove watermarks from generated PDFs

유효한 라이선스 키는 생성된 PDF의 타일형 워터마크를 제거합니다. IronPDF 라이선싱 페이지에서 하나를 얻거나 무료 평가판을 요청하세요.

로그 파일 위치 설정 (선택 사항)

기본적으로 IronPDF는 엔진 메시지를 애플리케이션의 루트 디렉터리에 있는 IronPdfEngine.log라는 이름의 파일에 기록합니다. 로그 파일 경로를 변경하려면 PDF 작업을 수행하기 전에 Settings.setLogPath을 호출하십시오.

//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/set-log-path.java
import java.nio.file.Paths;
// Redirect log output before using IronPDF
Settings.setLogPath(Paths.get("logs/ironpdf-engine.log"));
//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/set-log-path.java
import java.nio.file.Paths;
// Redirect log output before using IronPDF
Settings.setLogPath(Paths.get("logs/ironpdf-engine.log"));
JAVA

참고해 주세요setLogPath 호출은 모든 PdfDocument 호출보다 먼저 와야 합니다. 변환이 시작된 후에 호출하면 해당 세션에 대한 효과는 없습니다.

Java에서 HTML 문자열을 PDF로 변환하는 방법은 무엇입니까?

PdfDocument.renderHtmlAsPdf(String html)는 유효한 HTML 마크업을 PDF 문서로 변환합니다. 이 메서드는 원시 HTML 문자열을 받아 저장, 병합 또는 추가 수정이 가능한 PdfDocument 객체를 반환합니다.

//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/html-string-to-pdf.java
// Convert a minimal HTML string to a PDF document
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Hello from IronPDF!</h1>");
// Save the resulting document to disk
pdf.saveAs("html-string-output.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/html-string-to-pdf.java
// Convert a minimal HTML string to a PDF document
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Hello from IronPDF!</h1>");
// Save the resulting document to disk
pdf.saveAs("html-string-output.pdf");
JAVA
PDF output from IronPDF renderHtmlAsPdf showing an H1 heading rendered faithfully from an HTML string

IronPDF는 HTML 마크업을 픽셀 정확도로 직접 PDF로 렌더링합니다. 여기 표시된 출력은 위의 코드 예시에서 생성되었습니다.

렌더링 엔진은 Chromium 기반이며, Chrome에서 작동하는 모든 HTML, CSS, JavaScript는 PDF에서도 올바르게 렌더링됩니다. 여기에는 Flexbox 레이아웃, CSS Grid, 웹 글꼴, SVG, JavaScript 구동 차트가 포함됩니다.

이 메서드의 오버로드된 버전은 기본 경로를 지정하는 두 번째 인수를 받습니다: renderHtmlAsPdf(String html, String basePath). 이 기본 경로는 로컬 스타일시트, 이미지 및 스크립트에 대한 상대 참조를 해결하는 데 사용됩니다.

//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/html-string-with-assets.java
// HTML referencing local stylesheet and image
String html = "<html><head><link rel='stylesheet' href='style.css'></head>"
    + "<body><img src='logo.png'/><h1>Invoice</h1></body></html>";
// Provide the folder containing style.css and logo.png as the base path
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(html, "C:/invoices/");
pdf.saveAs("invoice-output.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/html-string-with-assets.java
// HTML referencing local stylesheet and image
String html = "<html><head><link rel='stylesheet' href='style.css'></head>"
    + "<body><img src='logo.png'/><h1>Invoice</h1></body></html>";
// Provide the folder containing style.css and logo.png as the base path
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(html, "C:/invoices/");
pdf.saveAs("invoice-output.pdf");
JAVA

기본 경로는 로컬 파일 시스템의 디렉터리나 원격 URL을 가리킬 수 있습니다. IronPDF는 렌더링 중에 해당 위치에서 참조된 자산을 가져옵니다.

IronPDF renderHtmlAsPdf output showing a full-page document with stylesheet applied, CSS styles preserved from the HTML source

기본 경로가 제공되면 IronPDF는 로컬 CSS 및 이미지 참조를 해결하여 스타일이 완전히 적용된 PDF를 생성합니다.

로컬 자산 해상이 작동하려면 모든 참조된 파일이 기본 경로에서 접근 가능해야 합니다. 슬래시를 사용한 경로는 Windows와 Linux 모두에서 작동합니다.

이 메서드를 집중적으로 살펴보려면 HTML 문자열을 사용하여 PDF 생성 코드 예제를 참조하세요.

Java에서 URL을 PDF로 변환하는 방법은 무엇입니까?

PdfDocument.renderUrlAsPdf(String url)는 지정된 URL의 페이지를 가져와 전체 DOM(JavaScript 실행 포함)을 렌더링한 후, 그 결과를 PDF로 저장합니다.

//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/url-to-pdf.java
// Render a live web page to PDF by URL
PdfDocument pdf = PdfDocument.renderUrlAsPdf("https://en.wikipedia.org/wiki/PDF");
// Save the rendered document
pdf.saveAs("wikipedia-pdf-article.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/url-to-pdf.java
// Render a live web page to PDF by URL
PdfDocument pdf = PdfDocument.renderUrlAsPdf("https://en.wikipedia.org/wiki/PDF");
// Save the rendered document
pdf.saveAs("wikipedia-pdf-article.pdf");
JAVA
PDF generated by IronPDF from the Wikipedia PDF article page, showing multi-column layout and navigation elements preserved

IronPDF는 JavaScript에 의해 생성된 동적인 콘텐츠를 포함하여 웹 페이지의 전체 렌더링 상태를 캡처합니다.

Chromium 렌더링 엔진은 외부 스타일시트, 글꼴, JavaScript 파일을 가져오기 때문에, 결과 PDF는 페이지의 시각적 상태를 정확히 반영합니다. 이 메서드는 웹 대시보드에서 보고서 생성, 공용 웹 콘텐츠 보관, 클라이언트 측 렌더링에 의존하는 데이터 시각화를 변환하는 데 적합합니다.

중요한 URL에서 PDF로의 변환은 IronPDF를 실행하는 서버에서 보안 HTTP/HTTPS 접근이 필요합니다. 배포하기 전에 네트워크 정책이 이를 허용하는지 확인하세요.

추가 옵션(예: 사용자 정의 요청 헤더 및 인증)은 URL에서 PDF로의 변환 예제를 참조하세요.

Java에서 HTML 파일을 PDF로 변환하는 방법은 무엇입니까?

PdfDocument.renderHtmlFileAsPdf(String filePath)는 로컬 파일 시스템에서 HTML 파일을 읽어와 PDF로 변환합니다. 이 메서드는 HTML 파일의 디렉터리에 대해 모든 상대 자산 참조를 자동으로 해결합니다.

//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/html-file-to-pdf.java
// Convert a local HTML file (with a linked CSS file) to PDF
PdfDocument pdf = PdfDocument.renderHtmlFileAsPdf("C:/invoices/TestInvoice1.html");
// Save the resulting document
pdf.saveAs("invoice-from-file.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/html-file-to-pdf.java
// Convert a local HTML file (with a linked CSS file) to PDF
PdfDocument pdf = PdfDocument.renderHtmlFileAsPdf("C:/invoices/TestInvoice1.html");
// Save the resulting document
pdf.saveAs("invoice-from-file.pdf");
JAVA

이 메서드는 다수의 파일로 구성된 HTML 프로젝트를 올바르게 처리합니다. 위의 예시에서, TestInvoice1.html가 동일한 디렉터리에 있는 스타일시트를 참조하는 경우, IronPDF는 렌더링 과정에서 해당 스타일시트를 적용합니다. 결과는 소스 파일의 브라우저 렌더링 외관을 일치시키는 PDF입니다.

서버 애플리케이션에서 renderHtmlFileAsPdf를 호출할 때는 절대 파일 경로를 사용하십시오. 상대 경로는 JVM의 작업 디렉터리에 따라 해결되며, 이는 HTML 파일의 위치와 다를 수 있습니다.

이 메서드는 디스크에 HTML 템플릿을 유지하는 PDF 생성 작업흐름(송장 생성기, 보고서 템플릿, 양식 출력 시스템의 일반적인 사용 사례)에서 특히 유용합니다.

Java에서 PDF 페이지 크기와 방향을 설정하는 방법은 무엇입니까?

페이지 크기와 방향은 ChromePdfRenderOptions 클래스를 통해 제어됩니다. ChromePdfRenderOptions 인스턴스를 생성하고 속성을 설정한 후, 이를 renderHtmlAsPdf 호출의 두 번째 인수로 전달합니다.

//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/page-size-orientation.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.render.*;
// Create rendering options for the PDF
ChromePdfRenderOptions options = new ChromePdfRenderOptions();
// Set paper size to A4
options.setPaperSize(PaperSize.A4);
// Set to landscape orientation
options.setPaperOrientation(PaperOrientation.Landscape);
// Apply options to the conversion
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Landscape Report</h1>", options);
pdf.saveAs("landscape-a4-report.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/page-size-orientation.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.render.*;
// Create rendering options for the PDF
ChromePdfRenderOptions options = new ChromePdfRenderOptions();
// Set paper size to A4
options.setPaperSize(PaperSize.A4);
// Set to landscape orientation
options.setPaperOrientation(PaperOrientation.Landscape);
// Apply options to the conversion
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Landscape Report</h1>", options);
pdf.saveAs("landscape-a4-report.pdf");
JAVA

PaperSize에는 A4, Letter, Legal, A3, A5과 같은 표준 옵션을 포함합니다. PaperOrientationPortrait(기본값) 또는 Landscape를 허용합니다.

표준이 아닌 치수의 경우 setCustomPaperSizeInMillimeters(double width, double height) 또는 setCustomPaperSizeInInches(double width, double height)를 사용하십시오:

//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/custom-paper-size.java
ChromePdfRenderOptions options = new ChromePdfRenderOptions();
// Set a custom 100mm x 150mm page size
options.setCustomPaperSizeInMillimeters(100, 150);
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<p>Custom size card</p>", options);
pdf.saveAs("custom-size-card.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/custom-paper-size.java
ChromePdfRenderOptions options = new ChromePdfRenderOptions();
// Set a custom 100mm x 150mm page size
options.setCustomPaperSizeInMillimeters(100, 150);
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<p>Custom size card</p>", options);
pdf.saveAs("custom-size-card.pdf");
JAVA

PaperSize 상수 및 크기 옵션의 전체 목록은 사용자 지정 PDF 용지 크기 예제를 참조하십시오.

Java에서 PDF에 사용자 정의 여백을 설정하는 방법은 무엇입니까?

여백 크기도 ChromePdfRenderOptions을 통해 설정됩니다. 라이브러리는 상, 하, 좌, 우 여백에 대해 별도의 설정자를 제공하며, 모두 밀리미터 값을 수용합니다.

//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/custom-margins.java
ChromePdfRenderOptions options = new ChromePdfRenderOptions();
// Set all four margins in millimeters
options.setMarginTop(20);
options.setMarginBottom(20);
options.setMarginLeft(15);
options.setMarginRight(15);
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(
    "<p>Document with custom margins</p>", options);
pdf.saveAs("custom-margins.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/custom-margins.java
ChromePdfRenderOptions options = new ChromePdfRenderOptions();
// Set all four margins in millimeters
options.setMarginTop(20);
options.setMarginBottom(20);
options.setMarginLeft(15);
options.setMarginRight(15);
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(
    "<p>Document with custom margins</p>", options);
pdf.saveAs("custom-margins.pdf");
JAVA

모든 여백을 0으로 설정하면 여백이 완전히 제거되며, 이는 라벨, 인증서 또는 그래픽 레이아웃과 같은 완전한 디자인에 유용합니다.

참고해 주세요 IronPDF 여백 값은 밀리미터로 지정됩니다. 0 값은 해당 가장자리의 여백을 비활성화합니다. 프린터 드라이버 여백은 IronPDF 여백과 별개이므로 페이지 전체에 걸쳐 내용을 채운 경우 인쇄시 잘릴 수 있습니다.

작업 코드 샘플은 사용자 정의 여백 예제를 방문하십시오.

Java에서 PDF에 헤더와 푸터를 추가하는 방법은 무엇입니까?

IronPDF는 텍스트 기반(TextHeaderFooter)과 HTML 기반(HtmlHeaderFooter)의 두 가지 유형의 머리글 및 바닥글을 지원합니다. 텍스트 헤더는 설정이 빠릅니다; HTML 헤더는 전체 스타일링 및 이미지를 지원합니다.

텍스트 헤더 및 푸터 추가

//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/text-header-footer.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.headerfooter.*;
import com.ironsoftware.ironpdf.render.*;
ChromePdfRenderOptions options = new ChromePdfRenderOptions();
// Configure a text-based header
TextHeaderFooter header = new TextHeaderFooter();
// Use merge fields: {page}, {total-pages}, {date}, {time}, {url}, {html-title}
header.setCenterText("Report Title");
header.setRightText("Page {page} of {total-pages}");
options.setTextHeader(header);
// Configure a text-based footer
TextHeaderFooter footer = new TextHeaderFooter();
footer.setLeftText("Confidential");
footer.setCenterText("{date}");
options.setTextFooter(footer);
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(
    "<h1>Annual Report</h1><p>Content here.</p>", options);
pdf.saveAs("report-with-headers.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/text-header-footer.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.headerfooter.*;
import com.ironsoftware.ironpdf.render.*;
ChromePdfRenderOptions options = new ChromePdfRenderOptions();
// Configure a text-based header
TextHeaderFooter header = new TextHeaderFooter();
// Use merge fields: {page}, {total-pages}, {date}, {time}, {url}, {html-title}
header.setCenterText("Report Title");
header.setRightText("Page {page} of {total-pages}");
options.setTextHeader(header);
// Configure a text-based footer
TextHeaderFooter footer = new TextHeaderFooter();
footer.setLeftText("Confidential");
footer.setCenterText("{date}");
options.setTextFooter(footer);
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(
    "<h1>Annual Report</h1><p>Content here.</p>", options);
pdf.saveAs("report-with-headers.pdf");
JAVA

{page}, {total-pages}, {date}, {time}, {url}{html-title} 병합 필드는 렌더링 시점에 문서별 값으로 대체됩니다.

HTML 헤더 추가

로고, 브랜드 색상 또는 복잡한 레이아웃이 필요한 헤더의 경우 HtmlHeaderFooter를 사용하십시오:

//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/html-header.java
import com.ironsoftware.ironpdf.headerfooter.*;
HtmlHeaderFooter header = new HtmlHeaderFooter();
header.setHtmlFragment(
    "<div style='background:#003366;color:white;padding:8px;font-family:Arial;'>"
    + "<img src='/images/logo.png' style='height:30px;float:left;'/>"
    + "<span style='line-height:30px;margin-left:10px;'>Company Report</span>"
    + "</div>"
);
ChromePdfRenderOptions options = new ChromePdfRenderOptions();
options.setHtmlHeader(header);
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(
    "<h1>Q3 Results</h1>", options);
pdf.saveAs("report-with-html-header.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/html-header.java
import com.ironsoftware.ironpdf.headerfooter.*;
HtmlHeaderFooter header = new HtmlHeaderFooter();
header.setHtmlFragment(
    "<div style='background:#003366;color:white;padding:8px;font-family:Arial;'>"
    + "<img src='/images/logo.png' style='height:30px;float:left;'/>"
    + "<span style='line-height:30px;margin-left:10px;'>Company Report</span>"
    + "</div>"
);
ChromePdfRenderOptions options = new ChromePdfRenderOptions();
options.setHtmlHeader(header);
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(
    "<h1>Q3 Results</h1>", options);
pdf.saveAs("report-with-html-header.pdf");
JAVA

HTML 헤더 조각은 자체 페이지 컨텍스트에서 렌더링됩니다. 외부 이미지 경로는 절대 URL이거나 IronPDF를 실행하는 서버에서 접근 가능한 경로여야 합니다.

추가 병합 필드 옵션과 다중 페이지 동작은 헤더 및 푸터 코드 예제를 참조하세요.

Java에서 PDF에 워터마크를 적용하는 방법은 무엇입니까?

IronPDF는 HTML 콘텐츠를 기존 PDF 페이지에 스탬핑하여 워터마크를 적용합니다. 이 접근 방식은 위치, 투명도 및 스타일링에 대한 완전한 제어를 제공합니다.

//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/watermark.java
import com.ironsoftware.ironpdf.*;
// Create the base PDF
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Confidential Report</h1>");
// Apply a diagonal text watermark using HTML stamping
String watermarkHtml =
    "<div style='position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(-45deg);"
    + "font-size:80px;color:rgba(200,0,0,0.15);font-family:Arial;font-weight:bold;"
    + "white-space:nowrap;pointer-events:none;'>CONFIDENTIAL</div>";
pdf.applyStamp(watermarkHtml);
pdf.saveAs("watermarked-report.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/watermark.java
import com.ironsoftware.ironpdf.*;
// Create the base PDF
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Confidential Report</h1>");
// Apply a diagonal text watermark using HTML stamping
String watermarkHtml =
    "<div style='position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(-45deg);"
    + "font-size:80px;color:rgba(200,0,0,0.15);font-family:Arial;font-weight:bold;"
    + "white-space:nowrap;pointer-events:none;'>CONFIDENTIAL</div>";
pdf.applyStamp(watermarkHtml);
pdf.saveAs("watermarked-report.pdf");
JAVA

applyStamp 메서드는 표준 HTML/CSS를 지원합니다. 텍스트에 반투명한 rgba 색상을 사용하면 워터마크가 잘 보이면서도 그 아래의 문서 내용을 가리지 않게 됩니다.

이미지 기반 워터마크 또는 특정 페이지 범위에 적용된 워터마크의 경우 Java를 위한 사용자 정의 워터마크 가이드를 참조하세요.

Java에서 PDF 파일을 압축하는 방법은?

이미지가 포함된 PDF 파일의 경우 IronPDF는 낮은 해상도로 재샘플링하여 파일 크기를 줄일 수 있습니다. 기존 PdfDocumentcompressImages을 사용하십시오.

//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/compress-pdf.java
// Load an existing PDF or use one created by IronPDF
PdfDocument pdf = PdfDocument.fromFile(Paths.get("large-report.pdf"));
// Reduce image quality to 60% (value range: 1–100)
pdf.compressImages(60);
// Save the compressed document
pdf.saveAs("compressed-report.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/compress-pdf.java
// Load an existing PDF or use one created by IronPDF
PdfDocument pdf = PdfDocument.fromFile(Paths.get("large-report.pdf"));
// Reduce image quality to 60% (value range: 1–100)
pdf.compressImages(60);
// Save the compressed document
pdf.saveAs("compressed-report.pdf");
JAVA

품질 매개변수는 1에서 100까지의 정수로, 100은 전체 이미지 품질을 유지하며 낮은 값은 이미지 충실성을 희생하여 파일 크기를 줄입니다. 60에서 80의 값은 대부분 비즈니스 문서의 크기와 시각적 품질 사이에 실용적인 균형을 제공합니다.

경고 이미지 압축은 파괴적입니다. 압축된 PDF에서 원본 이미지 데이터를 복구할 수 없습니다. 원본 품질이 나중에 필요할 수 있는 경우 소스 파일을 항상 보관하십시오.

이미지 품질 임계값에 대한 자세한 내용은 PDF 압축 예제를 참조하세요.

다음 단계

이 튜토리얼에서는 세 가지 HTML에서 PDF로의 변환 방법(문자열, URL, 파일)과 페이지 크기, 여백, 헤더, 푸터, 워터마크 및 압축을 다루었습니다. 이는 Java 서버 응용 프로그램에서 가장 일반적인 PDF 형식 작업입니다.

Java용 IronPDF로 더 나아가려면:

무료 체험 시작하여 워터마크 없이 PDF를 생성하거나, IronPDF를 프로덕션 프로젝트에 추가하기 위한 라이선싱 옵션을 확인하세요.


튜토리얼 바로가기

IronPDF for Java IntelliJ 프로젝트 다운로드

이 튜토리얼을 자바 소스 코드로 다운로드하세요.

이 튜토리얼의 전체 HTML에서 PDF로의 Java 소스 코드는 IntelliJ 프로젝트로 압축하여 무료로 다운로드할 수 있습니다.

다운로드

GitHub에서 이 튜토리얼을 살펴보세요.

이 프로젝트의 소스 코드는 IntelliJ IDEA 프로젝트로 GitHub에서 제공되며 Eclipse 또는 다른 Java IDE로 가져올 수도 있습니다.

IronPDF for Java 포맷-PDF 예제
IronPDF Java 튜토리얼 소스 코드에 대한 GitHub 저장소
IronPDF Java API 참조 문서

API 참조를 확인하세요.

com.ironsoftware.ironpdf 패키지의 모든 클래스, 메서드, 필드 및 열거에 대한 세부사항을 다루는 IronPDF for Java API 참조를 탐색하세요.

IronPDF Java API 참조 보기

자주 묻는 질문

Java에서 HTML 문자열을 PDF로 어떻게 변환하나요?

IronPDF for Java 라이브러리의 PdfDocument.renderHtmlAsPdf(String html)을 사용하세요. HTML 마크업을 문자열 인수로 전달한 다음 반환된 PdfDocument 객체에서 saveAs를 호출하여 파일을 디스크에 씁니다.

Maven 프로젝트에 IronPDF를 추가하는 방법은?

pom.xml 파일의 섹션에 com.ironsoftware:ironpdf 아티팩트를 추가하세요. 또한 로깅을 활성화하려면 org.slf4j:slf4j-simple과 같은 SLF4J 구현을 추가합니다. 두 아티팩트를 다운로드하려면 mvn install을 실행합니다.

IronPDF for Java로 생성된 PDF의 페이지 크기는 어떻게 설정하나요?

ChromePdfRenderOptions 객체를 생성하고 setPaperSize(PaperSize.A4)(또는 다른 상수) 메소드를 호출합니다. 옵션 객체를 renderHtmlAsPdf의 두 번째 인수로 전달합니다. 비표준 크기에는 setCustomPaperSizeInMillimeters를 사용합니다.

Java에서 PDF에 헤더와 푸터를 어떻게 추가하나요?

일반 텍스트 헤더 및 푸터에는 TextHeaderFooter를 사용하고, 완전한 스타일의 HTML 콘텐츠에는 HtmlHeaderFooter를 사용하세요. 텍스트 또는 HTML로 객체를 구성하고, ChromePdfRenderOptions 인스턴스에 setTextHeader 또는 setHtmlHeader를 사용하여 설정한 다음 옵션을 렌더 메소드에 전달합니다.

IronPDF for Java를 사용하여 PDF에 워터마크를 어떻게 적용하나요?

기존 PdfDocument에서 applyStamp(String htmlFragment)를 호출합니다. CSS position:absolute, transform:rotate, 반투명 rgba 색상을 사용하여 하부 내용을 가리지 않고 텍스트를 오버레이할 수 있도록 워터마크 모양을 정의하는 HTML 문자열을 전달합니다.

IronPDF for Java는 웹 페이지를 PDF로 변환할 수 있나요?

네. 페이지 URL과 함께 PdfDocument.renderUrlAsPdf(String url)를 호출하세요. IronPDF는 Chrome 렌더링 엔진을 사용하여 페이지를 가져와 실행하고, JavaScript를 포함하여 PDF 출력 이전에 페이지를 완전히 로드합니다.

IronPDF에서 생성된 PDF의 워터마크를 어떻게 제거하나요?

어떤 PDF 작업 전에 License.setLicenseKey("YOUR-LICENSE-KEY")를 호출합니다. 유효한 라이센스 키 없이 생성된 PDF에 워터마크가 적용됩니다. 라이센스 또는 무료 시험판 키는 ironpdf.com/java/licensing/에서 얻을 수 있습니다.

IronPDF for Java로 PDF 파일을 어떻게 압축하나요?

PdfDocument.fromFile을 사용하여 PDF를 로드한 다음 compressImages(int quality)를 1에서 100 사이의 값으로 호출합니다. 낮은 값은 내장된 이미지를 낮은 해상도로 리샘플링하여 파일 크기를 줄입니다. saveAs를 호출하여 압축된 파일을 씁니다.

IronPDF for Java는 사용자 정의 페이지 여백을 지원하나요?

네. ChromePdfRenderOptions를 사용하고 setMarginTop, setMarginBottom, setMarginLeft, setMarginRight를 밀리미터 값으로 호출합니다. 여백을 적용하려면 옵션을 렌더 메소드로 전달합니다.

IronPDF는 어떤 Java 버전을 지원하나요?

IronPDF for Java는 Java 8 이상을 지원합니다. 이 라이브러리는 com.ironsoftware:ironpdf의 Maven 아티팩트로 사용 가능하며 ironpdf.com/java/에서 별도의 fat-JAR로 다운로드할 수 있습니다.

커티스 차우
기술 문서 작성자

커티스 차우는 칼턴 대학교에서 컴퓨터 과학 학사 학위를 취득했으며, Node.js, TypeScript, JavaScript, React를 전문으로 하는 프론트엔드 개발자입니다. 직관적이고 미적으로 뛰어난 사용자 인터페이스를 만드는 데 열정을 가진 그는 최신 프레임워크를 활용하고, 잘 구성되고 시각적으로 매력적인 매뉴얼을 제작하는 것을 즐깁니다.

커티스는 개발 분야 외에도 사물 인터넷(IoT)에 깊은 관심을 가지고 있으며, 하드웨어와 소프트웨어를 통합하는 혁신적인 방법을 연구합니다. 여가 시간에는 게임을 즐기거나 디스코드 봇을 만들면서 기술에 대한 애정과 창의성을 결합합니다.

시작할 준비 되셨나요?
버전: 2026.5 just released
Still Scrolling Icon

아직도 스크롤하고 계신가요?

빠른 증거를 원하시나요?
샘플을 실행하세요 HTML이 PDF로 변환되는 것을 지켜보세요.