掌握 Java 中的數位簽章:GroupDocs.Signature 綜合指南
介紹
在當今快節奏的數位世界中,確保文件的真實性和完整性至關重要。本教學將指導您使用 GroupDocs.Signature for Java 在 PDF 中實現高級數位簽章。無論您是開發人員還是 IT 專業人士,這份全面的指南都能幫助您簡化文件簽署流程。
您將學到什麼:
- 為 Java 設定 GroupDocs.Signature
- 使用憑證和自訂外觀配置數位簽章選項
- 在 PDF 中預覽和產生數位簽名
- 管理簽名影像的輸出流
在深入實施之前,讓我們先介紹一些先決條件,以確保流暢的體驗。
先決條件
要學習本教程,您需要:
- Java 開發工具包 (JDK):確保您已安裝 JDK 8 或更高版本。
- Maven 或 Gradle:熟悉這些建置工具有利於管理依賴關係。
- GroupDocs.Signature 庫:本指南使用該程式庫的 23.12 版本。
為 Java 設定 GroupDocs.Signature
首先,您需要將 GroupDocs.Signature 整合到您的專案中。具體操作如下:
Maven:
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-signature</artifactId>
<version>23.12</version>
</dependency>
Gradle:
implementation 'com.groupdocs:groupdocs-signature:23.12'
或者,您可以直接從 GroupDocs.Signature Java 版本.
授權
- 免費試用:從免費試用開始測試 GroupDocs.Signature 的功能。
- 臨時執照:如果需要延長測試時間,請取得臨時許可證。
- 購買:為了長期使用,請考慮購買完整許可證。
一旦程式庫設定好,您就可以開始在 Java 應用程式中初始化和配置它。
實施指南
功能:數位簽章選項
此功能可讓您配置包含憑證詳細資訊和自訂外觀的數位簽章。讓我們分解實現步驟:
概述
設定數位簽章選項包括指定憑證路徑、文件類型和外觀設置,以實現個人化。
步驟 1:初始化 DigitalSignOptions
首先導入必要的類別並初始化 DigitalSignOptions
使用您的證書路徑。
import com.groupdocs.signature.Signature;
import com.groupdocs.signature.domain.enums.DocumentType;
import com.groupdocs.signature.options.sign.DigitalSignOptions;
String certificatePath = "YOUR_DOCUMENT_DIRECTORY/certificate.pfx";
DigitalSignOptions signOptions = new DigitalSignOptions(certificatePath);
步驟2:設定證書詳細信息
配置數位證書的基本詳細信息,例如密碼、簽名原因、聯絡資訊和位置。
signOptions.setDocumentType(DocumentType.Pdf);
signOptions.setPassword("1234567890");
signOptions.setReason("Approved");
signOptions.setContact("John Smith");
signOptions.setLocation("New York");
步驟3:自訂PDF簽名外觀
使用以下方式調整數位簽章的外觀 PdfDigitalSignatureAppearance
。
import com.groupdocs.signature.options.appearances.PdfDigitalSignatureAppearance;
import java.awt.*;
PdfDigitalSignatureAppearance pdfDigSignAppearance = new PdfDigitalSignatureAppearance();
pdfDigSignAppearance.setContactInfoLabel("Contact");
pdfDigSignAppearance.setReasonLabel("R:");
pdfDigSignAppearance.setLocationLabel("@=>");
pdfDigSignAppearance.setDigitalSignedLabel("By:");
pdfDigSignAppearance.setDateSignedAtLabel("On:");
pdfDigSignAppearance.setBackground(Color.GRAY);
pdfDigSignAppearance.setFontFamilyName("Courier");
pdfDigSignAppearance.setFontSize(8);
signOptions.setAppearance(pdfDigSignAppearance);
步驟 4:設定簽名設定
定義其他設置,如尺寸、對齊、填充和邊框屬性。
import com.groupdocs.signature.domain.Padding;
import com.groupdocs.signature.domain.enums.HorizontalAlignment;
import com.groupdocs.signature.domain.enums.VerticalAlignment;
signOptions.setAllPages(false);
signOptions.setWidth(200);
signOptions.setHeight(130);
signOptions.setVerticalAlignment(VerticalAlignment.Center);
signOptions.setHorizontalAlignment(HorizontalAlignment.Left);
Padding padding = new Padding();
padding.setBottom(10);
padding.setRight(10);
signOptions.setMargin(padding);
import com.groupdocs.signature.domain.Border;
import com.groupdocs.signature.domain.enums.DashStyle;
Border border = new Border();
border.setVisible(true);
border.setColor(Color.DARK_GRAY);
border.setDashStyle(DashStyle.DashDot);
border.setWeight(2);
signOptions.setBorder(border);
功能:預覽簽名選項
產生並預覽數位簽名以確保它們滿足您的要求。
概述
預覽簽名可讓您直觀地看到它在最終文件中的顯示效果,並根據需要進行調整。
步驟 1:設定預覽簽名選項
創造 PreviewSignatureOptions
管理預覽過程。
import com.groupdocs.signature.options.PreviewSignatureOptions;
import com.groupdocs.signature.options.preview.PreviewFormats;
PreviewSignatureOptions previewOption = new PreviewSignatureOptions(signOptions, () -> generateSignatureStream(previewOption));
previewOption.setSignatureId(UUID.randomUUID().toString());
previewOption.setPreviewFormat(PreviewFormats.JPEG);
步驟 2:產生簽名預覽
利用 GroupDocs.Signature API 建立簽章預覽。
import com.groupdocs.signature.Signature;
Signature.generateSignaturePreview(previewOption);
功能:簽名流工廠方法
管理輸出流以有效處理產生的簽名影像。
概述
這些方法有助於建立和發布流,確保正確的資源管理。
步驟 1:產生簽名流
定義方法來創建 OutputStream
用於保存簽名影像。
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
private static OutputStream generateSignatureStream(PreviewSignatureOptions previewOptions) {
try {
Path path = Paths.get("YOUR_OUTPUT_DIRECTORY/GenerateSignaturePreviewAdvanced/");
if (!Files.exists(path)) {
Files.createDirectory(path);
}
File imageFilePath = new File(path + "/signature" + previewOptions.getSignatureId() + "-" + previewOptions.getSignOptions().getSignatureType() + ".jpg");
return new FileOutputStream(imageFilePath);
} catch (Exception e) {
throw new RuntimeException(e.getMessage());
}
}
步驟2:發布簽名流
確保正確關閉流以釋放資源。
private static void releaseSignatureStream(PreviewSignatureOptions previewOptions, OutputStream signatureStream) {
try {
signatureStream.close();
} catch (Exception e) {
throw new RuntimeException(e.getMessage());
}
}
實際應用
以下是數位簽名可以發揮作用的一些實際場景:
- 合約簽訂:自動化合約和協議的簽署流程。
- 發票審核:使用數位簽章簡化發票審批工作流程。
- 文件驗證:確保敏感交易中的文件真實性。
- 協作工具:與 Google Workspace 或 Microsoft 365 等工具集成,實現無縫協作。
- 法律文件:安全地管理需要經過驗證的簽署的法律文件。
性能考慮
為了優化使用 GroupDocs.Signature 時的效能:
- 透過及時釋放流來有效地管理記憶體使用情況。
- 透過適當配置簽名設定來最佳化文件處理時間。
- 盡可能使用快取機制來提高重複操作的回應時間。
結論
本指南全面概述如何使用 GroupDocs.Signature 在 Java 中實作數位簽章。按照概述的步驟操作,您可以增強應用程式在處理文件真實性方面的安全性和效率。更多詳情,請參閱 GroupDocs.Signature 文檔.