建立條碼簽章 Java – 更新 PDF 條碼

是否曾經在包裝重新設計後,需要重新定位成千上萬張運送標籤上的條碼?或在法律團隊更改文件版面時,需要更新合約範本中的條碼位置?您並不孤單——這些情況在文件自動化工作流程中經常出現。

在本指南中,您將學習 how to create barcode signature java 並以程式方式修改其位置、大小及其他屬性。手動更新條碼簽章既繁瑣又容易出錯。使用 GroupDocs.Signature for Java,您可以建立條碼簽章物件,然後僅用幾行程式碼即可更新它們。無論是構建庫存系統、自動化物流文件,或是管理法律合約,程式化更新條碼簽章都能節省大量手動工作時間。

快速解答

  • 什麼是 “create barcode signature”? 它表示產生一個條碼物件,可透過 API 在文件內放置、移動或編輯。
  • 建立後我可以變更條碼大小嗎? 是的 – 使用 setWidthsetHeight 方法,或調整其 Left/Top 座標。
  • 更新條碼需要授權嗎? 開發階段可使用試用版;正式環境則需完整授權。
  • 這只能用於 PDF 嗎? 不是 – 相同程式碼可用於 Word、Excel、PowerPoint 以及影像檔案。
  • 一次可以處理多少文件? 支援批次處理;只需使用 try‑with‑resources 來管理記憶體。

什麼是 create barcode signature java?

Create barcode signature java 是實例化一個 BarcodeSignature 物件的過程,該物件代表嵌入文件內作為數位簽章的條碼。此 API 呼叫允許您在不開啟視覺編輯器的情況下新增、定位或修改條碼。

為什麼要使用 GroupDocs.Signature for Java?

GroupDocs.Signature 支援 50+ 種輸入與輸出格式——包括 PDF、DOCX、XLSX、PPTX 以及常見影像類型,且能在記憶體使用量低於 100 MB 的情況下處理數百頁的 PDF。其批次 API 在標準伺服器上每次可處理多達 10,000 份文件,使大規模更新成為可能。

先決條件

在您能於專案中更新 barcode signature Java 程式碼之前,請確保已具備以下必要條件:

必要函式庫

  • GroupDocs.Signature for Java:版本 23.12 或更新(較早的版本可能缺少我們將使用的更新方法)。

環境設定

  • 可正常運作的 Java Development Kit (JDK)(建議使用 JDK 8 或更高版本)
  • 如 IntelliJ IDEA、Eclipse 或 VS Code 等 IDE

知識先備

  • 基本的 Java(類別、物件、例外處理)
  • Java 中的檔案處理(路徑、目錄)
  • 可選:了解 PDF 結構與條碼概念

全部準備好了嗎?太好了!讓我們安裝函式庫。

設定 GroupDocs.Signature for Java

將 GroupDocs.Signature 加入您的 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 for Java releases 下載最新的 JAR 檔,並手動將其加入專案的 classpath。

授權取得

GroupDocs.Signature 同時支援試用版與正式授權:

  • 免費試用 – 適合測試與概念驗證工作
  • 臨時授權 – 用於特定專案的延長評估
  • 正式授權 – 移除水印與使用限制,適用於正式環境

專業提示:先使用免費試用版驗證 API 是否符合需求,然後在準備上線時升級。

如何建立 create barcode signature java

步驟 1:初始化 Signature 實例

直接回答

透過傳入欲編輯文件的路徑來建立 Signature 物件;此操作會將檔案載入記憶體,並為條碼操作做好準備。

Signature 類別是所有簽章相關操作的入口。它會讀取檔案,並提供搜尋、添加或更新簽章的方法。

import com.groupdocs.signature.Signature;
import java.nio.file.Paths;
String filePath = "YOUR_DOCUMENT_DIRECTORY/your_document.pdf";
Signature signature = new Signature(filePath);

專業提示:在建立 Signature 實例前驗證路徑,以避免 FileNotFoundException

步驟 2:搜尋條碼簽章

直接回答

使用 BarcodeSearchOptions 搭配 search 方法,可取得文件中所有條碼簽章的清單。

找不到就無法更新。GroupDocs.Signature 提供強大的搜尋 API,可依類型篩選簽章。

import com.groupdocs.signature.options.search.BarcodeSearchOptions;
import com.groupdocs.signature.domain.signatures.BarcodeSignature;
import java.util.List;
BarcodeSearchOptions options = new BarcodeSearchOptions();
List<BarcodeSignature> signatures = signature.search(BarcodeSignature.class, options);

現在您擁有一個 BarcodeSignature 物件的清單,每個物件皆公開屬性,如 LeftTopWidthHeightTextEncodeType

效能說明:對於非常大的 PDF,請考慮將搜尋範圍縮小至特定頁面或條碼類型,以提升速度。

步驟 3:更新條碼屬性

直接回答

修改取得的 BarcodeSignatureLeftTopWidthHeight,然後呼叫 signature.update 將變更寫入新檔案。

現在您可以 變更條碼大小 或在任何需要的位置重新定位。

import java.io.File;
import com.groupdocs.signature.exception.GroupDocsSignatureException;
String fileName = Paths.get(filePath).getFileName().toString();
String outputFilePath = new File("YOUR_OUTPUT_DIRECTORY/UpdateBarcode/" + fileName).getPath();
checkDir(outputFilePath);
if (signatures.size() > 0) {
    BarcodeSignature barcodeSignature = signatures.get(0);
    
    // Update the barcode's position and size
    barcodeSignature.setLeft(100);
    barcodeSignature.setTop(100);
    
    // Apply the changes to the document
    boolean result = signature.update(outputFilePath, barcodeSignature);
    
    if (result) {
        System.out.println("Signature with Barcode '" +
            barcodeSignature.getText() + "' and encode type '"+
            barcodeSignature.getEncodeType().getTypeName() + "' was updated in the document ['" +
            fileName + "'].");
    }
} catch (GroupDocsSignatureException e) {
    System.err.println("Error updating signature: " + e.getMessage());
}

要點:

  • setLeft / setTop 會移動條碼(座標以左上角為基準)。
  • update 方法會寫入新檔案;原始檔案保持不變。
  • 將呼叫包在 try‑catch 區塊中,以處理可能的 GroupDocsSignatureException

何時應該更新條碼簽章?

了解正確的情境有助於設計高效的工作流程。

文件重新品牌化與範本更新

新的信頭或標籤版面通常意味著需要重新定位條碼。使用 Java 自動化此流程遠勝於手動編輯數百個檔案。

資料遷移後的批次處理

遷移後的 PDF 可能未遵循目前的條碼放置標準。批次更新可在不重新建立每份文件的情況下恢復一致性。

法規合規調整

物流或醫療等產業可能會變更條碼放置規範。快速腳本可協助您保持合規。

動態文件產生

若文件內容長度變化,您可能需要即時調整條碼座標。

何時不使用更新:若您正在建立全新文件,請從一開始就正確放置條碼,而非先添加後再更新。

常見問題與解決方案

問題 1:「未找到條碼簽章」

症狀:搜尋返回空清單,即使您在 PDF 中看到條碼。

可能原因

  • 條碼以影像或表單欄位形式嵌入,並非簽章物件。
  • 文件受密碼保護。
  • 您篩選的條碼類型與實際不符。

解決方案

BarcodeSearchOptions options = new BarcodeSearchOptions();
options.setAllPages(true); // Search all pages, not just the first
List<BarcodeSignature> signatures = signature.search(BarcodeSignature.class, options);

if (signatures.isEmpty()) {
    System.out.println("No barcode signatures found. The barcodes might be images, not signature objects.");
}

問題 2:更新後的文件看起來損壞

症狀:更新後 PDF 無法開啟。

可能原因

  • 磁碟空間不足。
  • 輸出目錄不存在。
  • 檔案系統權限阻止寫入。

解決方案

File outputDir = new File("YOUR_OUTPUT_DIRECTORY/UpdateBarcode/");
if (!outputDir.exists()) {
    outputDir.mkdirs(); // Create directories if they don't exist
}

// Check write permissions
if (!outputDir.canWrite()) {
    throw new IOException("Cannot write to output directory: " + outputDir.getAbsolutePath());
}

問題 3:大型文件的效能下降

症狀:處理超過約 50 頁的 PDF 時速度顯著下降。

解決方案

BarcodeSearchOptions options = new BarcodeSearchOptions();
options.setPageNumber(1); // Start with page 1
options.setPagesSetup(new PagesSetup());
options.getPagesSetup().setFirstPage(true);
options.getPagesSetup().setLastPage(false);

效能優化技巧

批次作業的記憶體管理

一次處理一份文件,並讓 Java 自動釋放資源:

List<String> documentPaths = getDocumentList();
for (String path : documentPaths) {
    try (Signature sig = new Signature(path)) {
        // Process one document at a time
        // Signature instance is auto‑closed after each iteration
    }
}

快取搜尋結果

若需在同一條碼上修改多個屬性,請一次搜尋後重複使用清單:

List<BarcodeSignature> signatures = signature.search(BarcodeSignature.class, options);

// Update multiple properties
for (BarcodeSignature barcode : signatures) {
    barcode.setLeft(100);
    barcode.setTop(100);
    barcode.setWidth(200);
    barcode.setHeight(50);
}

// Single update call with all changes
signature.update(outputPath, signatures);

大批次的平行處理

利用 Java streams 加速處理數千份文件:

documentPaths.parallelStream().forEach(path -> {
    try (Signature sig = new Signature(path)) {
        List<BarcodeSignature> barcodes = sig.search(BarcodeSignature.class, new BarcodeSearchOptions());
        if (!barcodes.isEmpty()) {
            BarcodeSignature barcode = barcodes.get(0);
            barcode.setLeft(50);  // New position for smaller boxes
            barcode.setTop(10);
            sig.update(generateOutputPath(path), barcode);
        }
    } catch (Exception e) {
        logError(path, e);
    }
});

實務應用

案例 1:自動化物流標籤更新

某運輸公司更改箱子尺寸,需要在 50,000 份現有標籤上重新定位條碼。上述平行處理程式碼將工作時間從數天縮短至數小時。

案例 2:合約範本標準化

法律顧問規定掃描用的條碼位置必須固定。透過一次批次搜尋並更新所有合約 PDF,團隊避免了昂貴的手動重新列印。

案例 3:庫存系統整合

ERP 升級後,產品條碼需與新標籤印表機對齊。以程式方式更新條碼大小與位置,節省了時間與材料成本。

故障排除清單

在尋求支援前,請先檢查以下清單:

  • 檔案路徑正確 且檔案存在
  • 讀寫權限 已授予來源與目的地
  • GroupDocs.Signature 版本 為 23.12 或更新
  • 授權已正確設定(若使用正式授權)
  • 輸出目錄存在,或以程式方式建立
  • 磁碟空間充足 以存放輸出檔案
  • 無其他程序 正在鎖定來源檔案
  • 已具備例外處理 以捕捉錯誤

常見問答

Q: 我可以在同一文件中更新多個條碼簽章 Java 程式碼嗎?
A: 絕對可以。遍歷搜尋返回的 List<BarcodeSignature>,對每個呼叫 signature.update(),或將整個清單傳入一次 update 呼叫。

Q: GroupDocs.Signature 支援哪些條碼類型?
A: 支援數十種,包括 Code 128、QR Code、EAN‑13、UPC‑A、DataMatrix、PDF417 等。使用 barcodeSignature.getEncodeType() 可檢查類型。

Q: 我可以變更條碼的實際內容(編碼資料)嗎?
A: 可以,透過 setText(),但請記得重新產生視覺條碼,以確保掃描器能正確讀取。

Q: 如何處理多頁上有條碼的文件?
A: 每個 BarcodeSignature 都包含 getPageNumber()。可依需求篩選或處理特定頁面的條碼。

Q: 更新後原始文件會怎樣?
A: 來源檔案保持不變。GroupDocs 會將變更寫入您指定的輸出路徑,保留原始檔案以確保安全。

Q: 我可以在受密碼保護的 PDF 中更新條碼嗎?
A: 可以。使用 Signature 建構子中接受 LoadOptions 的重載,提供密碼即可。

Q: 如何有效批次處理數千份文件?
A: 結合平行 streams 與 try‑with‑resources(如平行處理範例所示),並監控記憶體使用情況。

Q: 這是否適用於 PDF 以外的格式?
A: 是的。相同的 API 可用於 Word、Excel、PowerPoint、影像以及 GroupDocs.Signature 支援的其他多種格式。

結論

您現在擁有一份完整、可投入生產的指南,說明如何建立 create barcode signature java 物件並更新其位置、大小及其他屬性。我們涵蓋了初始化、搜尋、修改、故障排除與效能調校,適用於單一文件與大規模批次情境。

後續步驟

  • 在同一次執行中嘗試更新多個屬性(例如旋轉、透明度)。
  • 將此程式碼建構為 REST 服務,將條碼更新以 API 形式提供。
  • 使用相同模式探索其他簽章類型(文字、影像、數位)。

GroupDocs.Signature API 的功能遠不止條碼更新——深入了解驗證、元資料處理與多格式支援,以完整自動化您的文件工作流程。

資源


最後更新: 2026-05-06
測試版本: GroupDocs.Signature 23.12
作者: GroupDocs

相關教學