Java용 IronPDF와 Apache PDFBox 비교
이 글에서는 Java에서 PDF 파일을 다루는 데 사용되는 가장 인기 있는 라이브러리 두 가지를 다룹니다.
- IronPDF
- 아파치 PDFBox
자, 이제 어떤 라이브러리를 사용해야 할까요? 이 글에서는 두 라이브러리의 핵심 기능을 비교하여 프로덕션 환경에 어떤 라이브러리가 가장 적합한지 결정하는 데 도움을 드리겠습니다.
Apache PDFBOX를 사용하여 HTML을 PDF로 변환하는 방법
- HTML을 PDF로 변환하는 Java 라이브러리를 설치하세요.
- Apache PDFBox를 사용하여 새 문서 및 페이지 인스턴스를 생성합니다.
- 문서와 페이지를 입력으로 사용하여 새 `PDPageContentStream` 생성합니다.
- `PDPageContentStream` 인스턴스를 사용하여 콘텐츠를 구성하고 추가하세요.
- `save` 메서드를 사용하여 PDF 문서를 내보냅니다.
IronPDF
IronPDF 라이브러리는 Java 8 이상, Kotlin 및 Scala 환경에서 HTML을 PDF로 변환하는 기능을 지원합니다. 이 제작 도구는 윈도우, 리눅스, 클라우드 플랫폼 등 다양한 플랫폼을 지원합니다. 이 프로그램은 특히 Java에 최적화되어 있으며 정확성, 사용 편의성 및 속도를 최우선으로 고려하여 설계되었습니다.
IronPDF 는 소프트웨어 개발자가 PDF 문서를 생성, 편집 및 콘텐츠를 추출하는 데 도움을 주기 위해 개발되었습니다. 이는 .NET 용 IronPDF 의 성공과 인기를 기반으로 합니다.
IronPDF 의 주요 특징은 다음과 같습니다.
HTML 자산을 사용하세요
- HTML(5 이하), CSS(화면 및 인쇄용), 이미지(JPG, PNG, GIF, TIFF, SVG, BMP), JavaScript (렌더링 지연 포함)
- 글꼴(웹 및 아이콘)
HTML을 PDF로 변환
- HTML 파일/문자열을 PDF 문서로 생성 및 조작
- PDF URL
이미지 변환
- 이미지를 새 PDF 문서에 삽입
- PDF를 이미지로 변환
사용자 지정 용지 설정
- 사용자 지정 용지 크기, 방향 및 회전
- 여백 (mm, 인치 및 0)
- 색상 및 회색조, 해상도 및 JPEG 품질
추가 기능
- 웹사이트 및 시스템 로그인
- 사용자 지정 사용자 에이전트 및 프록시
- HTTP 헤더
Apache PDFBox 라이브러리
Apache PDFBox는 PDF 파일 작업을 위한 오픈 소스 Java 라이브러리입니다. 이 프로그램을 사용하면 문서를 생성, 편집 및 기존 문서를 조작할 수 있습니다. 파일에서 콘텐츠를 추출할 수도 있습니다. 이 라이브러리는 문서에 대한 다양한 작업을 수행하는 데 사용되는 여러 유틸리티를 제공합니다.
다음은 Apache PDFBox의 주요 기능입니다.
텍스트 추출
- 파일에서 유니코드 텍스트를 추출합니다.
분할 및 병합
- 하나의 PDF 파일을 여러 개로 분할
- 여러 문서를 병합합니다.
양식을 작성하세요
- 양식에서 데이터 추출
- PDF 양식을 작성하세요.
비행 전
- PDF/A-1b 표준에 따라 파일의 유효성을 검사합니다.
인쇄
- 표준 인쇄 API를 사용하여 PDF를 인쇄합니다.
이미지로 저장
- PDF 파일을 PNG, JPEG 또는 기타 이미지 형식으로 저장하세요.
PDF 생성
- 글꼴과 이미지가 포함된 PDF 파일을 처음부터 새로 작성합니다.
서명
- 파일을 디지털 방식으로 서명합니다.
개요
기사의 나머지 부분은 다음과 같습니다.
- IronPDF 설치
- 아파치 PDFBox 설치
- PDF 문서 생성
- 문서화할 이미지
- 문서 암호화
- 라이선스
- 결론
이제 라이브러리를 다운로드하고 설치하여 각각의 라이브러리와 강력한 기능들을 비교해 보겠습니다.
1. IronPDF 설치
Java용 IronPDF 설치는 간단합니다. 그 일을 하는 데에는 여러 가지 방법이 있습니다. 이 섹션에서는 가장 인기 있는 두 가지 방법을 보여드리겠습니다.
1.1. JAR 파일을 다운로드하고 라이브러리를 추가하세요.
IronPDF JAR 파일을 다운로드하려면 IronPDF 의 Maven 웹사이트를 방문하여 IronPDF 의 최신 버전을 다운로드하십시오.
- 다운로드 옵션을 클릭하고 JAR 파일을 다운로드하세요.
JAR 파일 다운로드가 완료되면 이제 해당 라이브러리를 Maven 프로젝트에 설치할 차례입니다. 어떤 IDE든 사용 가능하지만, 저희는 NetBeans를 사용하겠습니다. 프로젝트 섹션에서:
- 라이브러리 폴더를 마우스 오른쪽 버튼으로 클릭하고 "JAR/폴더 추가" 옵션을 선택합니다.
- JAR 파일을 다운로드한 폴더로 이동하세요.
- IronPDF JAR 파일을 선택하고 열기 버튼을 클릭하세요.
1.2. Maven을 사용하여 종속성으로 설치
IronPDF 다운로드하고 설치하는 또 다른 방법은 Maven을 사용하는 것입니다. pom.xml 파일에 종속성을 추가하거나 NetBeans의 종속성 도구를 사용하여 프로젝트에 포함시키면 됩니다.
pom.xml 파일에 라이브러리 종속성을 추가하세요.
다음 종속성을 pom.xml에 추가하십시오:
<dependencies>
<dependency>
<groupId>com.ironsoftware</groupId>
<artifactId>ironpdf</artifactId>
<version>YOUR_VERSION_HERE</version>
</dependency>
</dependencies>
<dependencies>
<dependency>
<groupId>com.ironsoftware</groupId>
<artifactId>ironpdf</artifactId>
<version>YOUR_VERSION_HERE</version>
</dependency>
</dependencies>
종속성 기능을 사용하여 라이브러리를 추가합니다.
- 종속성을 마우스 오른쪽 버튼으로 클릭합니다.
- '종속성 추가'를 선택하고 업데이트된 버전으로 다음 세부 정보를 입력하세요.
이제 Apache PDFBox를 설치해 보겠습니다.
2. 아파치 PDFBox 설치
PDFBox는 IronPDF 와 동일한 방법으로 다운로드 및 설치할 수 있습니다.
2.1. JAR 파일을 다운로드하고 라이브러리를 수동으로 추가하세요
PDFBox JAR 파일을 설치하려면 공식 웹사이트를 방문하여 PDFBox 라이브러리의 최신 버전을 다운로드하십시오 .
프로젝트를 생성한 후, 프로젝트 섹션에서 다음 단계를 따르세요.
- 라이브러리 폴더를 마우스 오른쪽 버튼으로 클릭하고 "JAR/폴더 추가" 옵션을 선택합니다.
- JAR 파일을 다운로드한 폴더로 이동하세요.
- PDFBox JAR 파일을 선택하고 열기 버튼을 클릭하세요.
2.2. Maven을 사용하여 종속성으로 설치
pom.xml 파일에 종속성을 추가하세요.
다음 코드를 복사하여 pom.xml 파일에 붙여넣으세요.
<dependencies>
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox-app</artifactId>
<version>3.0.0-alpha3</version>
</dependency>
</dependencies>
<dependencies>
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox-app</artifactId>
<version>3.0.0-alpha3</version>
</dependency>
</dependencies>
이렇게 하면 PDFBox 종속성이 자동으로 다운로드되어 저장소 폴더에 설치됩니다. 이제 사용 준비가 완료되었습니다.
종속성 기능을 사용하여 종속성을 추가합니다.
- 프로젝트 섹션에서 종속성을 마우스 오른쪽 버튼으로 클릭합니다.
- '종속성 추가'를 선택하고 업데이트된 버전으로 다음 세부 정보를 입력하세요.
3. PDF 문서 생성
3.1. IronPDF 사용
IronPDF 파일을 생성하는 다양한 방법을 제공합니다. 가장 중요한 두 가지 방법을 살펴보겠습니다.
기존 PDF URL
IronPDF 사용하면 HTML에서 문서를 매우 간단하게 생성 할 수 있습니다. 다음 코드 예제는 웹 페이지의 URL을 PDF로 변환합니다.
import com.ironsoftware.ironpdf.*;
import java.nio.file.Paths;
// Set the license key and log path
License.setLicenseKey("YOUR-LICENSE-KEY");
Settings.setLogPath(Paths.get("C:/tmp/IronPdfEngine.log"));
// Convert a URL to a PDF
PdfDocument myPdf = PdfDocument.renderUrlAsPdf("https://ironpdf.com");
// Save the PDF document to a file
myPdf.saveAs(Paths.get("url.pdf"));
import com.ironsoftware.ironpdf.*;
import java.nio.file.Paths;
// Set the license key and log path
License.setLicenseKey("YOUR-LICENSE-KEY");
Settings.setLogPath(Paths.get("C:/tmp/IronPdfEngine.log"));
// Convert a URL to a PDF
PdfDocument myPdf = PdfDocument.renderUrlAsPdf("https://ironpdf.com");
// Save the PDF document to a file
myPdf.saveAs(Paths.get("url.pdf"));
출력 결과는 아래와 같이 형식이 잘 갖춰진 URL입니다.
HTML 입력 문자열을 PDF로 변환
다음 예제 코드는 HTML 문자열을 사용하여 Java에서 PDF를 렌더링하는 방법을 보여줍니다. HTML 문자열이나 문서를 사용하여 새 문서로 변환하기만 하면 됩니다.
import com.ironsoftware.ironpdf.*;
import java.nio.file.Paths;
// Set the license key and log path
License.setLicenseKey("YOUR-LICENSE-KEY");
Settings.setLogPath(Paths.get("C:/tmp/IronPdfEngine.log"));
// Convert an HTML string to a PDF
PdfDocument myPdf = PdfDocument.renderHtmlAsPdf("<h1> ~Hello World~ </h1> Made with IronPDF!");
// Save the PDF document to a file
myPdf.saveAs(Paths.get("html_saved.pdf"));
import com.ironsoftware.ironpdf.*;
import java.nio.file.Paths;
// Set the license key and log path
License.setLicenseKey("YOUR-LICENSE-KEY");
Settings.setLogPath(Paths.get("C:/tmp/IronPdfEngine.log"));
// Convert an HTML string to a PDF
PdfDocument myPdf = PdfDocument.renderHtmlAsPdf("<h1> ~Hello World~ </h1> Made with IronPDF!");
// Save the PDF document to a file
myPdf.saveAs(Paths.get("html_saved.pdf"));
출력 결과는 다음과 같습니다.
3.2. 아파치 PDFBox 사용하기
PDFBox는 다양한 형식의 파일에서 새로운 PDF 문서를 생성할 수 있지만, URL이나 HTML 문자열에서 직접 변환하는 기능은 지원하지 않습니다.
다음 코드 예제는 텍스트가 포함된 문서를 생성합니다.
import org.apache.pdfbox.pdmodel.*;
import org.apache.pdfbox.pdmodel.common.*;
import org.apache.pdfbox.pdmodel.font.*;
import org.apache.pdfbox.pdmodel.graphics.image.*;
import org.apache.pdfbox.pdmodel.interactive.annotation.*;
import org.apache.pdfbox.pdmodel.interactive.form.*;
import java.io.IOException;
public class PDFBoxExample {
public static void main(String[] args) throws IOException {
// Create a document object
PDDocument document = new PDDocument();
// Add a blank page to the document
PDPage blankPage = new PDPage();
document.addPage(blankPage);
// Retrieve the page of the document
PDPage paper = document.getPage(0);
try (PDPageContentStream contentStream = new PDPageContentStream(document, paper)) {
// Begin the content stream
contentStream.beginText();
// Set the font to the content stream
contentStream.setFont(PDType1Font.TIMES_ROMAN, 12);
// Set the position for the line
contentStream.newLineAtOffset(25, 700);
String text = "This is the sample document and we are adding content to it.";
// Add text in the form of a string
contentStream.showText(text);
// End the content stream
contentStream.endText();
System.out.println("Content added");
// Save the document
document.save("C:/PdfBox_Examples/my_doc.pdf");
System.out.println("PDF created");
}
// Closing the document
document.close();
}
}
import org.apache.pdfbox.pdmodel.*;
import org.apache.pdfbox.pdmodel.common.*;
import org.apache.pdfbox.pdmodel.font.*;
import org.apache.pdfbox.pdmodel.graphics.image.*;
import org.apache.pdfbox.pdmodel.interactive.annotation.*;
import org.apache.pdfbox.pdmodel.interactive.form.*;
import java.io.IOException;
public class PDFBoxExample {
public static void main(String[] args) throws IOException {
// Create a document object
PDDocument document = new PDDocument();
// Add a blank page to the document
PDPage blankPage = new PDPage();
document.addPage(blankPage);
// Retrieve the page of the document
PDPage paper = document.getPage(0);
try (PDPageContentStream contentStream = new PDPageContentStream(document, paper)) {
// Begin the content stream
contentStream.beginText();
// Set the font to the content stream
contentStream.setFont(PDType1Font.TIMES_ROMAN, 12);
// Set the position for the line
contentStream.newLineAtOffset(25, 700);
String text = "This is the sample document and we are adding content to it.";
// Add text in the form of a string
contentStream.showText(text);
// End the content stream
contentStream.endText();
System.out.println("Content added");
// Save the document
document.save("C:/PdfBox_Examples/my_doc.pdf");
System.out.println("PDF created");
}
// Closing the document
document.close();
}
}
그러나 위의 코드 예제에서 contentStream.newLineAtOffset(25, 700);를 제거한 후 프로젝트를 실행하면 페이지 하단에 출력이 있는 PDF가 생성됩니다. 이는 일부 개발자에게 상당히 번거로울 수 있는데, (x,y) 좌표를 사용하여 텍스트를 조정해야 하기 때문입니다. y = 0은(는) 텍스트가 하단에 표시됨을 의미합니다.
4. 문서화할 이미지
4.1. IronPDF 사용
IronPDF 여러 이미지를 하나의 PDF 파일로 간편하게 변환할 수 있습니다. 하나의 문서에 여러 이미지를 추가하는 코드는 다음과 같습니다.
import com.ironsoftware.ironpdf.*;
import java.nio.file.*;
import java.util.ArrayList;
import java.util.List;
// Reference to the directory containing the images that we desire to convert
List<Path> images = new ArrayList<>();
images.add(Paths.get("imageA.png"));
images.add(Paths.get("imageB.png"));
images.add(Paths.get("imageC.png"));
images.add(Paths.get("imageD.png"));
images.add(Paths.get("imageE.png"));
// Render all targeted images as PDF content and save them together in one document.
PdfDocument merged = PdfDocument.fromImage(images);
merged.saveAs(Paths.get("output.pdf"));
import com.ironsoftware.ironpdf.*;
import java.nio.file.*;
import java.util.ArrayList;
import java.util.List;
// Reference to the directory containing the images that we desire to convert
List<Path> images = new ArrayList<>();
images.add(Paths.get("imageA.png"));
images.add(Paths.get("imageB.png"));
images.add(Paths.get("imageC.png"));
images.add(Paths.get("imageD.png"));
images.add(Paths.get("imageE.png"));
// Render all targeted images as PDF content and save them together in one document.
PdfDocument merged = PdfDocument.fromImage(images);
merged.saveAs(Paths.get("output.pdf"));
4.2. 아파치 PDFBox 사용하기
import org.apache.pdfbox.pdmodel.*;
import org.apache.pdfbox.pdmodel.graphics.image.*;
import java.io.IOException;
import java.nio.file.*;
import java.util.ArrayList;
import java.util.List;
public class ImageToPdf {
public static void main(String[] args) {
// Reference to the directory containing the images that we desire to convert
Path imageDirectory = Paths.get("assets/images");
// Create an empty list to contain Paths to images from the directory.
List<Path> imageFiles = new ArrayList<>();
PDDocument doc = new PDDocument();
// Use a DirectoryStream to populate the list with paths for each image in the directory that we want to convert
try (DirectoryStream<Path> stream = Files.newDirectoryStream(imageDirectory, "*.{png,jpg}")) {
for (Path entry : stream) {
imageFiles.add(entry);
}
for (int i = 0; i < imageFiles.size(); i++) {
// Add a Page
PDPage blankPage = new PDPage();
doc.addPage(blankPage);
PDPage page = doc.getPage(i);
// Create PDImageXObject object
PDImageXObject pdImage = PDImageXObject.createFromFile(imageFiles.get(i).toString(), doc);
// Create the PDPageContentStream object
PDPageContentStream contents = new PDPageContentStream(doc, page);
// Drawing the image in the document
contents.drawImage(pdImage, 0, 0);
System.out.println("Image inserted");
// Closing the PDPageContentStream object
contents.close();
}
// Saving the document
doc.save("C:/PdfBox_Examples/sample.pdf");
// Closing the document
doc.close();
} catch (IOException exception) {
throw new RuntimeException(String.format("Error converting images to PDF from directory: %s: %s",
imageDirectory, exception.getMessage()), exception);
}
}
}
import org.apache.pdfbox.pdmodel.*;
import org.apache.pdfbox.pdmodel.graphics.image.*;
import java.io.IOException;
import java.nio.file.*;
import java.util.ArrayList;
import java.util.List;
public class ImageToPdf {
public static void main(String[] args) {
// Reference to the directory containing the images that we desire to convert
Path imageDirectory = Paths.get("assets/images");
// Create an empty list to contain Paths to images from the directory.
List<Path> imageFiles = new ArrayList<>();
PDDocument doc = new PDDocument();
// Use a DirectoryStream to populate the list with paths for each image in the directory that we want to convert
try (DirectoryStream<Path> stream = Files.newDirectoryStream(imageDirectory, "*.{png,jpg}")) {
for (Path entry : stream) {
imageFiles.add(entry);
}
for (int i = 0; i < imageFiles.size(); i++) {
// Add a Page
PDPage blankPage = new PDPage();
doc.addPage(blankPage);
PDPage page = doc.getPage(i);
// Create PDImageXObject object
PDImageXObject pdImage = PDImageXObject.createFromFile(imageFiles.get(i).toString(), doc);
// Create the PDPageContentStream object
PDPageContentStream contents = new PDPageContentStream(doc, page);
// Drawing the image in the document
contents.drawImage(pdImage, 0, 0);
System.out.println("Image inserted");
// Closing the PDPageContentStream object
contents.close();
}
// Saving the document
doc.save("C:/PdfBox_Examples/sample.pdf");
// Closing the document
doc.close();
} catch (IOException exception) {
throw new RuntimeException(String.format("Error converting images to PDF from directory: %s: %s",
imageDirectory, exception.getMessage()), exception);
}
}
}
5. 문서 암호화
5.1. IronPDF 사용
IronPDF 에서 PDF 파일을 비밀번호로 암호화하는 코드는 다음과 같습니다.
import com.ironsoftware.ironpdf.*;
import java.nio.file.Paths;
// Open a document (or create a new one from HTML)
PdfDocument pdf = PdfDocument.fromFile(Paths.get("assets/composite.pdf"));
// Edit security settings
SecurityOptions securityOptions = new SecurityOptions();
securityOptions.setOwnerPassword("top-secret");
securityOptions.setUserPassword("sharable");
// Change or set the document encryption password
SecurityManager securityManager = pdf.getSecurity();
securityManager.setSecurityOptions(securityOptions);
pdf.saveAs(Paths.get("assets/secured.pdf"));
import com.ironsoftware.ironpdf.*;
import java.nio.file.Paths;
// Open a document (or create a new one from HTML)
PdfDocument pdf = PdfDocument.fromFile(Paths.get("assets/composite.pdf"));
// Edit security settings
SecurityOptions securityOptions = new SecurityOptions();
securityOptions.setOwnerPassword("top-secret");
securityOptions.setUserPassword("sharable");
// Change or set the document encryption password
SecurityManager securityManager = pdf.getSecurity();
securityManager.setSecurityOptions(securityOptions);
pdf.saveAs(Paths.get("assets/secured.pdf"));
5.2. 아파치 PDFBox 사용하기
Apache PDFBox는 파일 보안을 강화하기 위해 문서 암호화 기능도 제공합니다. 메타데이터와 같은 추가 정보도 추가할 수 있습니다. 코드는 다음과 같습니다.
import org.apache.pdfbox.pdmodel.*;
import org.apache.pdfbox.pdmodel.encryption.*;
import java.io.File;
import java.io.IOException;
public class PDFEncryption {
public static void main(String[] args) throws IOException {
// Load an existing document
File file = new File("C:/PdfBox_Examples/sample.pdf");
PDDocument document = PDDocument.load(file);
// Create access permission object
AccessPermission ap = new AccessPermission();
// Create StandardProtectionPolicy object
StandardProtectionPolicy spp = new StandardProtectionPolicy("1234", "1234", ap);
// Setting the length of the encryption key
spp.setEncryptionKeyLength(128);
// Set the access permissions
spp.setPermissions(ap);
// Protect the document
document.protect(spp);
System.out.println("Document encrypted");
// Save the document
document.save("C:/PdfBox_Examples/encrypted.pdf");
// Close the document
document.close();
}
}
import org.apache.pdfbox.pdmodel.*;
import org.apache.pdfbox.pdmodel.encryption.*;
import java.io.File;
import java.io.IOException;
public class PDFEncryption {
public static void main(String[] args) throws IOException {
// Load an existing document
File file = new File("C:/PdfBox_Examples/sample.pdf");
PDDocument document = PDDocument.load(file);
// Create access permission object
AccessPermission ap = new AccessPermission();
// Create StandardProtectionPolicy object
StandardProtectionPolicy spp = new StandardProtectionPolicy("1234", "1234", ap);
// Setting the length of the encryption key
spp.setEncryptionKeyLength(128);
// Set the access permissions
spp.setPermissions(ap);
// Protect the document
document.protect(spp);
System.out.println("Document encrypted");
// Save the document
document.save("C:/PdfBox_Examples/encrypted.pdf");
// Close the document
document.close();
}
}
6. 가격 및 라이선스
IronPDF 가격 및 라이선스
IronPDF 간단한 PDF 애플리케이션 개발에 무료로 사용할 수 있으며, 언제든지 상업적 용도로 라이선스를 취득할 수 있습니다. IronPDF 단일 프로젝트 라이선스, 단일 개발자 라이선스, 에이전시 및 다국적 기업용 라이선스, SaaS 및 OEM 재배포 라이선스와 지원을 제공합니다. All licenses are available with a free trial, a 30-day money-back guarantee, and one year of software support and upgrades.
Lite 패키지는 $799에서 사용할 수 있습니다. IronPDF 제품에는 반복적인 비용이 전혀 없습니다. 소프트웨어 라이선스에 대한 자세한 정보는 IronPDF 제품 라이선스 페이지 에서 확인할 수 있습니다.
Apache PDFBox 가격 및 라이선스
Apache PDFBox는 아무런 비용 없이 무료로 이용할 수 있습니다. 개인적 용도, 내부 용도, 상업적 용도 등 사용 목적과 관계없이 무료입니다.
Apache License 2.0 Text에서 Apache License 2.0(현재 버전)을 포함할 수 있습니다. 라이선스 사본을 포함시키려면 작업물에 라이선스 사본을 함께 넣기만 하면 됩니다. 소스 코드 맨 위에 다음 공지 사항을 주석으로 추가할 수도 있습니다.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
결론
이에 비해 IronPDF 기능과 제품 지원 측면에서 Apache PDFBox보다 우위에 있습니다. 또한 현대 소프트웨어 개발에 필수적인 SaaS 및 OEM 지원도 제공합니다. 하지만 이 라이브러리는 Apache PDFBox처럼 상업적 용도로 무료로 사용할 수 없습니다.
대규모 소프트웨어 애플리케이션을 보유한 기업은 소프트웨어 개발 과정에서 발생하는 문제를 해결하기 위해 지속적인 버그 수정 및 타사 공급업체의 지원이 필요할 수 있습니다. 이는 Apache PDFBox와 같은 많은 오픈 소스 솔루션에서 부족한 부분인데, Apache PDFBox는 유지 관리를 위해 개발자 커뮤니티의 자발적인 지원에 의존하고 있습니다. 요약하자면, IronPDF 는 기업 및 시장 용도에 가장 적합하고, Apache PDFBox는 개인 및 비상업적 용도에 더 적합합니다.
IronPDF 의 기능을 테스트해 볼 수 있는 무료 체험판도 제공됩니다. IronPDF 사용해 보시 거나 구매해 보세요.
이제 Iron Software 모든 제품인 Iron Suite 를 대폭 할인된 가격으로 만나보실 수 있습니다. 이 놀라운 혜택에 대한 자세한 내용은 Iron Suite 웹페이지를 방문해 주세요.
자주 묻는 질문
Java를 사용하여 HTML을 PDF로 변환하는 방법은 무엇인가요?
IronPDF의 Java 라이브러리를 사용하여 HTML을 PDF로 변환할 수 있습니다. 이 라이브러리는 HTML 문자열, 파일 또는 URL을 PDF로 쉽게 변환하는 메서드를 제공합니다.
Java용 IronPDF를 사용하면 어떤 장점이 있나요?
IronPDF for Java는 HTML을 PDF로 변환, 이미지 변환, 사용자 지정 용지 설정, 웹사이트 로그인 및 사용자 지정 HTTP 헤더 지원과 같은 기능을 제공합니다. 사용 편의성을 고려하여 설계되었으며 상업적 지원도 제공합니다.
IronPDF는 이미지를 PDF로 변환할 수 있나요?
네, IronPDF는 이미지를 PDF로 변환할 수 있습니다. 이 기능을 사용하면 다양한 이미지 형식을 최소한의 노력으로 PDF 문서로 생성할 수 있습니다.
Apache PDFBox는 기능적인 면에서 IronPDF와 어떻게 다른가요?
Apache PDFBox는 텍스트 추출, 양식 처리 및 디지털 서명에 유용하지만 HTML을 PDF로 직접 변환하는 기능은 없습니다. 반면 IronPDF는 고급 PDF 처리 기능 외에도 HTML 및 URL을 PDF로 직접 변환하는 기능을 제공합니다.
IronPDF는 기업용으로 적합한가요?
네, IronPDF는 상업적 지원, 강력한 기능 및 라이선스 옵션 덕분에 기업용으로 매우 적합하며 비즈니스 애플리케이션에 이상적입니다.
HTML을 PDF로 변환할 때 흔히 발생하는 문제점은 무엇인가요?
일반적인 문제로는 복잡한 HTML/CSS의 잘못된 렌더링, 이미지 누락, 잘못된 페이지 레이아웃 등이 있습니다. IronPDF는 사용자 지정 용지 설정 및 이미지 지원과 같은 기능을 통해 이러한 문제를 해결합니다.
IronPDF를 Java 프로젝트에 통합하려면 어떻게 해야 하나요?
IronPDF를 Java 프로젝트에 통합하려면 Maven에서 JAR 파일을 다운로드하거나 프로젝트의 pom.xml 파일에 종속성으로 추가하면 됩니다.
Apache PDFBox는 무엇에 사용되나요?
Apache PDFBox는 PDF 문서를 생성, 편집 및 조작하는 데 사용됩니다. 텍스트 추출, 문서 분할 및 병합, 양식 작성 및 디지털 서명 기능을 지원합니다.
IronPDF 사용에 라이선스 비용이 발생하나요?
IronPDF는 무료 평가판을 제공하며 기본적인 개발에는 무료로 사용할 수 있지만, 상업적 용도로 사용하려면 라이선스가 필요합니다. 다양한 요구 사항에 맞는 여러 가지 라이선스 옵션을 이용할 수 있습니다.
누군가 IronPDF 대신 Apache PDFBox를 선택하는 이유는 무엇일까요?
개인적 또는 비상업적 용도로 무료 오픈 소스 솔루션이 필요하고 HTML을 PDF로 변환할 필요가 없는 경우, 누군가는 IronPDF 대신 Apache PDFBox를 선택할 수도 있습니다.


















