Java용 GroupDocs.Signature를 사용하여 PDF에서 사용자 지정 QR 코드 직렬화 및 암호화를 구현하는 방법
소개
디지털 시대에 안전한 문서 서명은 데이터 무결성과 신뢰성을 유지하는 데 필수적입니다. 문서에 서명을 추가하는 작업을 간소화하도록 설계된 강력한 라이브러리인 GroupDocs.Signature for Java를 소개합니다. 이 튜토리얼에서는 GroupDocs.Signature for Java를 사용하여 PDF에서 암호화를 포함한 사용자 지정 QR 코드 직렬화를 구현하는 방법을 안내합니다.
배울 내용:
- Java용 GroupDocs.Signature를 설정하고 구성하는 방법
- QR 코드 서명에 대한 사용자 정의 직렬화 구현
- QR 코드 내의 직렬화된 데이터 암호화
- 이러한 기능을 적용하여 문서를 보호합니다.
구현에 들어가기 전에 따라가기 위해 필요한 모든 것이 있는지 확인해 보겠습니다.
필수 조건
이 튜토리얼을 효과적으로 사용하려면 다음 전제 조건을 충족해야 합니다.
필수 라이브러리 및 종속성:
- Java 버전 23.12 이상용 GroupDocs.Signature
- 종속성 관리를 위한 Maven 또는 Gradle(선택 사항)
환경 설정 요구 사항:
- 컴퓨터에 Java Development Kit(JDK)가 설치되어 있습니다.
- Java 프로그래밍에 대한 기본적인 이해
지식 전제 조건:
- Java 및 객체 지향 프로그래밍 개념에 대한 지식
- Java에서 PDF 작업에 대한 기본 지식
Java용 GroupDocs.Signature 설정
시작하려면 프로젝트 환경에서 GroupDocs.Signature 라이브러리를 설정해야 합니다.
Maven 설치
Maven을 사용하는 경우 다음 종속성을 추가하세요. pom.xml
파일:
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-signature</artifactId>
<version>23.12</version>
</dependency>
Gradle 설치
Gradle 사용자의 경우 다음 줄을 포함하세요. build.gradle
파일:
implementation 'com.groupdocs:groupdocs-signature:23.12'
직접 다운로드
또는 최신 버전을 다음에서 직접 다운로드할 수 있습니다. Java 릴리스용 GroupDocs.Signature.
라이센스 취득 단계
- 무료 체험: 먼저 평가판을 다운로드하여 기능을 테스트해 보세요.
- 임시 면허: 필요한 경우 임시 라이선스를 요청할 수 있으며, 이를 통해 아무런 제한 없이 제품을 평가할 수 있습니다.
- 구입: 장기적으로 사용하려면 정식 라이선스를 구매하는 것을 고려하세요.
설치가 완료되면 프로젝트에서 GroupDocs.Signature를 초기화합니다.
import com.groupdocs.signature.Signature;
public class SetupGroupDocs {
public static void main(String[] args) {
Signature signature = new Signature("YOUR_DOCUMENT_DIRECTORY/sample.pdf");
// 여기에 코드를 입력하세요...
}
}
구현 가이드
이제 Java용 GroupDocs.Signature를 사용하여 사용자 정의 QR 코드 직렬화 및 암호화를 구현하는 방법을 살펴보겠습니다.
QR 코드 서명을 위한 사용자 정의 직렬화 클래스
개요
이 기능은 QR 코드 서명으로 메타데이터 직렬화를 처리하는 클래스를 만드는 것과 관련이 있습니다. DocumentSignatureData
클래스는 ID, 작성자, 서명 날짜, 데이터 요소와 같은 속성을 저장합니다.
import com.groupdocs.signature.domain.extensions.serialization.FormatAttribute;
import java.math.BigDecimal;
import java.util.Date;
class DocumentSignatureData {
@FormatAttribute(propertyName = "SignID")
public String ID;
public void setID(String value) {
this.ID = value;
}
@FormatAttribute(propertyName = "SAuth")
public String author;
public void setAuthor(String value) {
this.author = value;
}
@FormatAttribute(propertyName = "SDate", propertyFormat = "yyyy-MM-dd")
public Date signed = new Date();
public void setSigned(Date value) {
this.signed = value;
}
@FormatAttribute(propertyName = "SDFact", propertyFormat = "N2")
public BigDecimal dataFactor = new BigDecimal(0.01);
public void setDataFactor(BigDecimal value) {
this.dataFactor = value;
}
}
설명
- 속성: 그만큼
@FormatAttribute
주석은 각 속성이 QR 코드에 어떻게 직렬화되는지 지정합니다.- ID서명에 대한 고유 식별자입니다.
- 작가: 문서에 서명한 사람.
- 서명 날짜: 문서에 서명한 타임스탬프입니다.
- 데이터 요소: 서명과 관련된 추가 숫자 데이터입니다.
사용자 정의 데이터 직렬화 및 암호화를 갖춘 QR 코드 서명
개요
이 섹션에서는 사용자 정의 직렬화 데이터와 암호화가 포함된 QR 코드를 사용하여 문서에 서명하는 방법을 보여줍니다.
import com.groupdocs.signature.Signature;
import com.groupdocs.signature.domain.Padding;
import com.groupdocs.signature.domain.enums.HorizontalAlignment;
import com.groupdocs.signature.domain.enums.VerticalAlignment;
import com.groupdocs.signature.domain.extensions.encryption.IDataEncryption;
import com.groupdocs.signature.domain.qrcodes.QrCodeTypes;
import com.groupdocs.signature.exception.GroupDocsSignatureException;
import com.groupdocs.signature.options.sign.QrCodeSignOptions;
import java.io.File;
import java.math.BigDecimal;
import java.util.Date;
import java.util.UUID;
class SignWithQRCodeCustomSerialization {
String filePath = "YOUR_DOCUMENT_DIRECTORY/sample.pdf";
String outputFilePath = new File("YOUR_OUTPUT_DIRECTORY", "SignedQRCodeCustomSerialization.pdf").getPath();
public void signDocument() throws Exception {
Signature signature = new Signature(filePath);
// 여기에 사용자 정의 암호화 논리를 구현하세요
IDataEncryption encryption = new CustomXOREncryption();
DocumentSignatureData documentSignature = new DocumentSignatureData();
documentSignature.setID(UUID.randomUUID().toString());
documentSignature.setAuthor(System.getenv("USERNAME"));
documentSignature.setSigned(new Date());
documentSignature.setDataFactor(new BigDecimal("11.22"));
QrCodeSignOptions options = new QrCodeSignOptions();
options.setData(documentSignature);
options.setEncodeType(QrCodeTypes.QR);
options.setDataEncryption(encryption);
// 정렬 및 모양 구성
options.setHeight(100);
options.setWidth(100);
options.setVerticalAlignment(VerticalAlignment.Bottom);
options.setHorizontalAlignment(HorizontalAlignment.Right);
Padding padding = new Padding();
padding.setRight(10);
padding.setBottom(10);
options.setMargin(padding);
signature.sign(outputFilePath, options);
}
}
설명
- 사용자 정의 암호화: 자체 암호화 논리를 구현하세요
CustomXOREncryption
또는 다른 방법을 사용하여 구현IDataEncryption
. - 서명 옵션: 높이, 너비, 패딩 등의 옵션을 사용하여 QR 코드의 모양과 정렬을 구성합니다.
- 서명 과정: 그만큼
signature.sign()
이 방법은 QR 코드 서명을 문서에 적용합니다.
문제 해결 팁
- 빌드 도구(Maven/Gradle)에서 모든 종속성이 올바르게 구성되었는지 확인하세요.
- 입력 및 출력 문서의 파일 경로가 정확한지 확인하세요.
- 사용자 정의 암호화 논리가 올바르게 구현되고 통합되었는지 확인하세요.
실제 응용 프로그램
이 기능을 실제로 적용한 사례는 다음과 같습니다.
- 법적 문서 서명: QR 코드에 메타데이터를 내장하여 계약서에 안전하게 서명하고 진위성을 보장하세요.
- 송장 처리: 보안과 추적성을 강화하기 위해 송장에 암호화된 서명을 자동으로 추가합니다.
- 물류 추적: QR 코드에 고유 식별자와 타임스탬프를 삽입하여 서명된 문서를 사용해 배송 추적을 수행합니다.
- 학업 자격증: QR 코드 서명을 사용하여 학생 정보를 디지털 인증서에 안전하게 삽입