使用 GroupDocs.Signature 掌握 Java 中的數位簽章:綜合指南

在現代數位環境中,數位簽章對於確保文件的真實性和完整性至關重要。無論您是致力於實現安全文件簽章解決方案的開發人員,還是尋求優化文件工作流程的組織,掌握如何使用 GroupDocs.Signature for Java 來簽署、搜尋、更新和刪除影像簽章都至關重要。本指南提供了逐步說明和實用技巧,幫助您充分利用數位簽章的強大功能。

您將學到什麼:

  • 如何安裝和設定適用於 Java 的 GroupDocs.Signature。
  • 使用影像簽名簽署文件的技術。
  • 搜尋和管理文件中現有影像簽名的方法。
  • 實際應用和效能優化技巧。
  • 進一步探索和支持的資源。

先決條件

在深入實施之前,請確保已滿足以下先決條件:

所需的庫和依賴項

  • GroupDocs.Signature 庫:本教學建議使用 23.12 或更高版本。
  • Java 開發工具包 (JDK):確保您的系統上安裝了 JDK 8 或更高版本。

環境設定要求

  • 整合開發環境 (IDE),如 IntelliJ IDEA、Eclipse 或 NetBeans。
  • 用於管理相依性的 Maven 或 Gradle 建置工具。

知識前提

  • 對 Java 程式設計和物件導向概念有基本的了解。
  • 熟悉 Java 應用程式中的文件處理。

為 Java 設定 GroupDocs.Signature

要開始使用 GroupDocs.Signature for Java,您需要將該程式庫新增至您的專案。以下是使用不同建置工具的操作方法:

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,請建立一個實例 Signature 類,提供要處理的文件的文件路徑。以下是一個簡單的範例:

import com.groupdocs.signature.Signature;

public class InitializeSignature {
    public static void main(String[] args) {
        String filePath = "path/to/your/document.pdf";
        Signature signature = new Signature(filePath);
        // 可以在這裡進行進一步的處理。
    }
}

實施指南

現在,讓我們深入研究 GroupDocs.Signature for Java 的核心功能。

使用圖像簽名簽署文件

概述: 此功能可讓您使用影像簽名簽署文件。它有助於在任何文件中添加數位簽章的可視化表示。

設定簽名對象

首先創建一個 Signature 物件並指定檔案路徑:

import com.groupdocs.signature.Signature;

String filePath = "YOUR_DOCUMENT_DIRECTORY";
Signature signature = new Signature(filePath);

配置 ImageSignOptions

接下來,配置 ImageSignOptions 定義影像簽名在文件上的顯示方式:

import com.groupdocs.signature.options.sign.ImageSignOptions;
import com.groupdocs.signature.domain.Padding;
import com.groupdocs.signature.domain.enums.HorizontalAlignment;
import com.groupdocs.signature.domain.enums.VerticalAlignment;

ImageSignOptions signOptions = new ImageSignOptions("YOUR_IMAGE_PATH");
signOptions.setVerticalAlignment(VerticalAlignment.Top);
signOptions.setHorizontalAlignment(HorizontalAlignment.Center);
signOptions.setWidth(100);
signOptions.setHeight(40);
signOptions.setMargin(new Padding(20));

簽署文件

最後,使用 sign 應用圖像簽名並保存文件的方法:

String outputFilePath = "YOUR_OUTPUT_DIRECTORY";
signature.sign(outputFilePath, signOptions);

故障排除提示:

  • 確保影像路徑正確且可存取。
  • 如果簽名太大或太小,請調整尺寸。

搜尋文件中的圖片簽名

概述: 此功能可讓您搜尋文件中現有的影像簽名。這對於驗證簽名或審計文件尤其有用。

設定簽名對象

初始化 Signature 目的:

import com.groupdocs.signature.Signature;

String filePath = "YOUR_DOCUMENT_DIRECTORY";
Signature signature = new Signature(filePath);

配置搜尋選項

設定 ImageSearchOptions 搜尋文檔的所有頁面:

import com.groupdocs.signature.options.search.ImageSearchOptions;
import java.util.List;

ImageSearchOptions searchOptions = new ImageSearchOptions();
searchOptions.setAllPages(true);

搜尋簽名

執行搜尋並處理結果:

List<ImageSignature> signatures = signature.search(ImageSignature.class, searchOptions);

for (ImageSignature imageSignature : signatures) {
    if (imageSignature != null) {
        System.out.println(
            "Found Image signature at page " + imageSignature.getPageNumber() +
            " and Image Size '" + imageSignature.getSize() + "'."
        );
        System.out.println(  
            "Location at " + imageSignature.getLeft() + "-" + imageSignature.getTop() +
            ". Size is " + imageSignature.getWidth() + "x" + imageSignature.getHeight() +
            "."
        );
    }
}

故障排除提示:

  • 驗證文件路徑並確保其包含簽名。
  • 如果需要,調整搜尋選項以定位特定頁面。

更新文件影像簽名

概述: 此功能可讓您更新文件中現有的影像簽名,這對於修改簽名屬性或重新定位它們很有用。

設定簽名對象

初始化 Signature 目的:

import com.groupdocs.signature.Signature;

String filePath = "YOUR_DOCUMENT_DIRECTORY";
Signature signature = new Signature(filePath);

檢索和修改簽名

假設您有一系列需要更新的鏡像簽名。請根據需要修改其屬性:

import com.groupdocs.signature.domain.ImageSignature;
import java.util.ArrayList;
import java.util.List;

List<ImageSignature> signaturesToUpdate = new ArrayList<>();
// 假設我們之前檢索過簽名。
for (ImageSignature imageSignature : /* 檢索到的簽名 */) {
    imageSignature.setLeft(imageSignature.getLeft() + 100);
    imageSignature.setTop(imageSignature.getTop() + 100);
    imageSignature.setWidth(200);
    imageSignature.setHeight(50);
    signaturesToUpdate.add(imageSignature);
}

更新文件

應用更新並處理結果:

import com.groupdocs.signature.domain.UpdateResult;
import java.io.ByteArrayOutputStream;

UpdateResult updateResult = signature.update(new ByteArrayOutputStream(), signaturesToUpdate);

if (updateResult.getSucceeded().size() == signaturesToUpdate.size()) {
    System.out.println("All signatures were successfully updated!");
} else {
    System.out.println("Successfully updated signatures : " + updateResult.getSucceeded().size());
    System.out.println("Not updated signatures : " + updateResult.getFailed().size());
}

故障排除提示:

  • 確保正確檢索要更新的簽章清單。
  • 在套用更新之前,請先驗證所有修改是否符合您的要求。