푸터 콘텐츠로 바로가기
JAVA용 IRONPDF 사용

Java를 사용하여 PDF에 디지털 서명을 추가하는 방법

이 글에서는 Java 프로그램에서 IronPDF를 사용하여 PDF에 디지털 서명을 추가하는 방법을 알아봅니다.

IronPDF - Java 기반 PDF 라이브러리

IronPDF Java PDF 라이브러리 개요 는 개발자가 HTML 문자열을 PDF로 변환 , HTML 파일을 PDF로 변환 , Word를 PDF로 변환 또는 URL을 통해 처음부터 새 PDF 문서를 생성할 수 있도록 하는 Java 라이브러리입니다. 이 기능을 사용하면 PDF 파일에서 콘텐츠를 추가하거나 삭제하여 쉽게 편집할 수 있습니다. 이 프로그램은 PDF 문서에 대한 보안 및 디지털 서명 옵션을 제공하며, 디지털 서명 기능도 지원합니다.

IronPDF PDF 관련 작업을 수행하는 데 있어 다른 타사 라이브러리를 필요로 하지 않습니다. 또한 서로 다른 파일 형식 간 변환 기능도 제공합니다. 이 프레임워크는 크로스 플랫폼을 지원하며 특히 Java, Scala 및 Kotlin에 최적화되어 있습니다.

Java를 사용하여 PDF 문서에 디지털 서명을 추가하는 단계

필수 조건

PDF 문서에 디지털 서명을 하려면 다음과 같은 전제 조건이 필요합니다.

  • Java IDE(NetBeans, Eclipse, IntelliJ 등)가 설치되어 있어야 합니다 . - 이 문서에서는 IntelliJ를 사용합니다. Oracle Java SE 다운로드 페이지 에서 Java 개발 키트를 별도로 다운로드할 수 있습니다.
  • 자동화를 위한 Maven Java 프로젝트 - 이 프로젝트는 Java 프로그램의 종속성을 다운로드하고 관리하는 데 도움이 됩니다. Apache Maven 다운로드 페이지 에서 Maven을 다운로드할 수 있습니다.
  • IronPDF 라이브러리 다운로드 및 설치 - IronPDF 다운로드하고 설치하려면 Maven 종속성 아티팩트를 포함하십시오. 다음 코드 스니펫을 pom.xml 파일의 종속성 태그에 추가할 수 있습니다:
<dependency>
    <groupId>com.ironsoftware</groupId>
    <artifactId>ironpdf</artifactId>
    <version>2023.2.0</version>
</dependency>
<dependency>
    <groupId>com.ironsoftware</groupId>
    <artifactId>ironpdf</artifactId>
    <version>2023.2.0</version>
</dependency>
XML
  • 필요한 또 다른 종속성은 Slf4j-simple입니다. 선택사항이며 아래의 종속성을 pom.xml 파일에 추가하여 사용할 수 있습니다:

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
        <version>2.0.5</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
        <version>2.0.5</version>
    </dependency>
    XML

Java에서 PDF에 디지털 서명 추가하기, 그림 1: pom.xml 파일 pom.xml 파일

IronPDF Java 패키지 가져오기

메인 파일에는 다음 항목들을 가져와야 합니다. 이를 통해 IronPDF 의 기능을 사용하여 PDF 문서에 디지털 서명을 추가할 수 있습니다.

import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.signature.Signature;
import com.ironsoftware.ironpdf.signature.SignatureManager;
import java.io.IOException;
import java.nio.file.Paths;
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.signature.Signature;
import com.ironsoftware.ironpdf.signature.SignatureManager;
import java.io.IOException;
import java.nio.file.Paths;
JAVA

이제 필요한 모든 작업이 완료되었으므로 IronPDF 사용하여 Java로 PDF 문서에 디지털 서명을 추가할 준비가 되었습니다.

PDF 파일 생성 또는 기존 PDF 파일 열기

PDF 문서에 디지털 서명을 하는 방법을 배우 려면 PDF 문서를 처음부터 만들거나 기존 PDF 문서를 열어야 합니다. 이 문서는 renderHtmlAsPdf Method를 사용하여 PDF 서명을 위한 새로운 PDF 문서를 PdfDocument Class로 생성할 것입니다. 코드는 다음과 같습니다.

PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Testing 2048 bit digital security</h1>");
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Testing 2048 bit digital security</h1>");
JAVA

PDF 문서가 생성되었지만 아직 저장되지 않았습니다. 다음 단계는 디지털 서명을 생성한 다음 이 PDF 문서에 추가하고 마지막으로 저장하는 것입니다.

디지털 서명 생성

Adobe Reader를 사용하여 디지털 서명 인증서를 생성해야 합니다. 이 인증서는 Java 코드에서 해당 정보를 사용하여 PDF 문서에 디지털 서명을 하는 데 사용됩니다. Adobe Reader에서 디지털 서명을 만드는 방법을 살펴보세요.

Adobe Reader를 열고 편집 > 환경설정을 클릭하세요. 그다음 '서명'을 클릭하고 '신원 및 신뢰할 수 있는 인증서'에 대해 자세히 알아보세요.

Java에서 PDF에 디지털 서명 추가하기, 그림 2: 프로젝트 환경설정 프로젝트 선호 사항

.pfx 또는 .p12 파일 문서를 만들려면 다음 서명 필드를 추가하십시오.

Java에서 PDF에 디지털 서명 추가하기, 그림 3: 디지털 ID 추가 대화상자 디지털 ID 추가 대화 상자

다음 코드 예제는 Windows용 .pfx 인증서 파일과 Mac용 .p12 파일 및 해당 개인 키(암호)를 사용하여 Java 코드로 새 서명을 생성합니다.

Signature signature = new Signature("Iron.pfx", "123456");
Signature signature = new Signature("Iron.pfx", "123456");
JAVA

디지털 서명으로 PDF 파일에 서명하세요

IronPDF는 SignatureManager 클래스를 사용하여 서명 인증서를 추가하는 데 도움을 줍니다. [getSignature Method](/java/object-reference/api/com/ironsoftware/ironpdf/PdfDocument.html#getSignature())는 PDF 문서의 이전 서명을 가져오는 데 도움을 주며, SignPdfWithSignature Method와 서명 파일을 인수로 사용하여 새로운 서명을 추가할 수 있습니다. 코드는 다음과 같습니다.

SignatureManager signatureManager = pdf.getSignature();
signatureManager.SignPdfWithSignature(signature);
SignatureManager signatureManager = pdf.getSignature();
signatureManager.SignPdfWithSignature(signature);
JAVA

PDF 서명 파일 저장

마지막으로 PDF 파일을 저장합시다. 그렇지 않으면 saveAs Method를 통해 서명되지 않은 PDF로 남습니다. 코드는 간단하며 다음과 같습니다.

pdf.saveAs("signed.pdf");
pdf.saveAs("signed.pdf");
JAVA

코드 컴파일 및 실행이 성공적으로 완료되면 디지털 서명이 포함된 PDF 파일이 생성됩니다.

Java에서 PDF에 디지털 서명 추가하기, 그림 4: 출력 PDF 파일 출력 PDF 파일

IronPDF 선택 사항이며 디지털 서명에 사용할 수 있는 다른 서명 옵션도 제공합니다. 여기에는 손글씨 서명 이미지, 컴퓨터로 생성된 텍스트 이미지 또는 디지털화된 이미지가 포함됩니다. 다음 코드 예제는 디지털 서명에 몇 가지 추가 보안 옵션을 추가하는 데 도움이 됩니다.

signature.setSigningContact("support@ironsoftware.com");
signature.setSigningLocation("Chicago, USA");
signature.setSigningReason("To show how to sign a PDF");
BufferedImage signatureImage = ImageIO.read(new File("handwriting.png"));
WritableRaster raster = signatureImage.getRaster();
DataBufferByte data = (DataBufferByte) raster.getDataBuffer();
signature.setSignatureImage(data.getData());
signature.setSigningContact("support@ironsoftware.com");
signature.setSigningLocation("Chicago, USA");
signature.setSigningReason("To show how to sign a PDF");
BufferedImage signatureImage = ImageIO.read(new File("handwriting.png"));
WritableRaster raster = signatureImage.getRaster();
DataBufferByte data = (DataBufferByte) raster.getDataBuffer();
signature.setSignatureImage(data.getData());
JAVA

전체 코드는 다음과 같습니다.

import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.signature.Signature;
import com.ironsoftware.ironpdf.signature.SignatureManager;

import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.awt.image.DataBufferByte;
import java.awt.image.WritableRaster;
import java.io.File;
import java.io.IOException;

public class DigitalSignatureExample {
    public static void main(String[] args) throws IOException {

        // Step 1. Create a PDF File Doc
        PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Testing 2048 bit digital security</h1>");

        // Step 2. Create a Signature.
        Signature signature = new Signature("Iron.pfx", "123456");

        // Step 3. Sign the PDF with the PdfSignature.
        SignatureManager signatureManager = pdf.getSignature();
        signatureManager.SignPdfWithSignature(signature);

        // Step 4. The PDF is not signed until saved to file, stream, or byte array.
        pdf.saveAs("signed.pdf");
    }
}
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.signature.Signature;
import com.ironsoftware.ironpdf.signature.SignatureManager;

import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.awt.image.DataBufferByte;
import java.awt.image.WritableRaster;
import java.io.File;
import java.io.IOException;

public class DigitalSignatureExample {
    public static void main(String[] args) throws IOException {

        // Step 1. Create a PDF File Doc
        PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Testing 2048 bit digital security</h1>");

        // Step 2. Create a Signature.
        Signature signature = new Signature("Iron.pfx", "123456");

        // Step 3. Sign the PDF with the PdfSignature.
        SignatureManager signatureManager = pdf.getSignature();
        signatureManager.SignPdfWithSignature(signature);

        // Step 4. The PDF is not signed until saved to file, stream, or byte array.
        pdf.saveAs("signed.pdf");
    }
}
JAVA

PDF 서명 코드 예제 에서 디지털 서명에 대한 자세한 정보를 확인할 수 있습니다. 보안을 강화하고 메타데이터를 편집하려면 보안 및 메타데이터 코드 예제를 참조하세요.

결론

이 글에서는 IronPDF for Java를 사용하여 PDF 문서에 디지털 서명을 추가하는 방법을 단계별로 설명했습니다.

먼저, 이 글에서는 IronPDF 사용하여 Java에서 PDF 작업을 수행하는 데 필요한 구성 요소에 대해 다루었습니다. 그다음 HTML 문자열을 사용하여 간단한 PDF 문서를 만들었습니다. 원본 PDF 문서에 서명하는 데 사용된 Adobe Reader에서 인증서 파일이 생성되었습니다. IronPDF는 인증서 추가 및 서명 필드가 있는 PDF 서명에 도움을 주는 SignatureSignatureManager 클래스를 제공합니다.

IronPDF 개발자가 PDF 관련 작업을 쉽고 빠르게 수행할 수 있도록 지원합니다. 이 프로그램은 픽셀 단위까지 완벽한 PDF 파일을 생성하여 정확한 결과를 제공합니다. Java처럼 다재다능하고 널리 사용되는 프로그래밍 언어의 경우, IronPDF PDF 문서 작업에 매우 적합합니다. IronPDF 역시 다재다능하며 거의 모든 PDF 작업을 지원하기 때문입니다. 게다가, 이 제품은 이미 성공을 거둔 .NET 기능을 기반으로 구축되었습니다.

IronPDF는 또한 다양한 파일 형식을 Java에 특화된 빠른 IronPDFEngine를 사용하여 쉽게 변환할 수 있습니다. IronPDF 라이브러리를 사용하면 텍스트 추출 또는 추가 , 이미지 불러오기 및 추출 , PDF에 머리글 및 바닥글 추가 , 주석 추가, 차트 및 그래프 렌더링 , PDF 양식 작업 등 다양한 작업을 수행할 수 있습니다.

IronPDF 사용 방법에 대한 자세한 정보는 Java PDF 코드 예제 페이지에서 확인할 수 있습니다.

IronPDF 개인 개발에 무료로 사용할 수 있으며, 워터마크 없이 PDF 문서를 생성할 수 있는 무료 체험판을 제공합니다. 이 소프트웨어는 상업적 용도로 라이선스를 취득할 수 있으며, 사용자는 이 상세 라이선스 정보 페이지 에서 라이선스에 대한 자세한 정보를 얻을 수 있습니다.

자주 묻는 질문

Java를 사용하여 PDF에 디지털 서명을 추가하는 방법은 무엇인가요?

IronPDF를 사용하여 Java에서 PDF에 디지털 서명을 추가하려면 PDF 문서를 생성하거나 열고, 인증서 파일로 디지털 서명을 생성한 다음, IronPDF의 `SignatureManager` 클래스를 사용하여 서명을 적용하면 됩니다. 마지막으로 서명된 PDF 문서를 저장하면 됩니다.

Java 라이브러리를 사용하여 HTML을 PDF로 변환하는 단계는 무엇입니까?

Java에서 IronPDF를 사용하여 HTML을 PDF로 변환하려면 PdfDocument.renderHtmlAsPdf 메서드를 활용하십시오. 이 메서드를 사용하면 HTML 문자열을 PDF 문서로 직접 변환할 수 있으며, 변환된 문서는 PdfDocument.saveAs 메서드를 사용하여 저장할 수 있습니다.

Java 프로젝트에서 IronPDF를 사용하기 위해 필요한 전제 조건은 무엇입니까?

Java 프로젝트에서 IronPDF를 사용하려면 IntelliJ와 같은 Java IDE, 종속성 관리를 위한 Maven 프로젝트, 그리고 IronPDF 라이브러리가 필요합니다. 또한 디지털 서명을 추가하려면 디지털 서명 인증서가 필요합니다.

Java 기반 IronPDF는 다른 파일 형식을 PDF로 변환할 수 있습니까?

네, IronPDF는 HTML 외에도 워드 문서나 URL과 같은 다양한 파일 형식을 Java 애플리케이션에서 PDF로 변환할 수 있습니다.

IronPDF는 PDF 기능을 사용하기 위해 타사 라이브러리가 필요합니까?

아니요, IronPDF는 핵심 PDF 기능을 위해 타사 라이브러리가 필요하지 않으므로 Java에서 PDF를 생성하고 조작하는 데 사용할 수 있는 독립형 솔루션입니다.

PDF 문서 서명을 위한 디지털 서명 인증서는 어떻게 생성하나요?

Adobe Reader에서 [편집] > [환경 설정] > [서명]으로 이동하여 [ID 및 신뢰할 수 있는 인증서 관리]를 선택하면 디지털 서명 인증서를 만들 수 있습니다.

IronPDF에서 Java로 디지털 서명을 관리하는 데 사용되는 클래스는 무엇입니까?

IronPDF의 SignatureManager 클래스는 Java에서 디지털 서명을 관리하는 데 사용됩니다. 이 클래스를 사용하면 PDF 문서에 새 서명을 추가하고 기존 서명을 검색할 수 있습니다.

Java 기반 IronPDF에서 디지털 서명을 위한 추가 옵션은 무엇이 있습니까?

Java 기반 IronPDF는 서명 이미지 추가, 서명 담당자, 위치 및 사유 지정은 물론 필기 및 디지털화된 이미지를 디지털 서명에 추가하는 옵션을 제공합니다.

Java용 IronPDF 무료 버전이 있나요?

IronPDF는 개인 개발을 위한 무료 평가판을 제공하며 워터마크 없이 사용할 수 있습니다. 상업적 사용을 위한 라이선스 옵션도 제공됩니다.

Java용 IronPDF의 고급 기능에는 어떤 것들이 있나요?

IronPDF for Java에는 텍스트 및 이미지 추출, 머리글 및 바닥글 추가, 차트 및 그래프 렌더링, PDF 양식 작업과 같은 기능이 포함되어 있습니다.

다리우스 세란트
풀스택 소프트웨어 엔지니어 (웹 운영)

다리우스 세런트는 마이애미 대학교에서 컴퓨터 과학 학사 학위를 받았으며, Iron Software에서 풀 스택 웹 운영 마케팅 엔지니어로 근무하고 있습니다. 어린 시절부터 코딩에 매료되었던 그는 컴퓨팅이 신비로우면서도 접근하기 쉬운 분야라고 생각했고, 창의력과 문제 해결 능력을 발휘하기에 완벽한 매체라고 여겼습니다.

Iron Software에서 다리우스는 새로운 것을 만들고 복잡한 개념을 단순화하여 더 쉽게 이해할 수 있도록 하는 것을 즐깁니다. 그는 사내 개발자로서 학생들을 가르치는 데에도 자원하여 차세대 인재들과 전문 지식을 공유하고 있습니다.

다리우스에게 있어 그의 일은 가치 있고 실질적인 영향을 미치기 때문에 보람 있는 일입니다.

아이언 서포트 팀

저희는 주 5일, 24시간 온라인으로 운영합니다.
채팅
이메일
전화해