バーコード署名 Java の作成 – PDF バーコードの更新
数千枚の出荷ラベルでバーコードの位置を再配置したり、テンプレートの再設計後にバーコードの位置を調整したりする必要がある場合、手作業はミスが起きやすく時間がかかります。このガイドでは バーコード署名 Java の作成方法 を学び、GroupDocs.Signature for Java を使用してプログラムで位置、サイズ、その他のプロパティを変更する方法を紹介します。このアプローチは PDF、Word、Excel、PowerPoint、画像ファイルすべてで動作し、ドキュメント自動化シナリオ全体で単一の一貫した API を提供します。
クイック回答
- 「バーコード署名の作成」とは何ですか?
BarcodeSignatureオブジェクトを生成し、API を通じてドキュメント内に配置、移動、編集できるようにすることを指します。 - 作成後にバーコードのサイズを変更できますか? はい –
setWidth/setHeightまたはLeft/Top座標を調整します。 - バーコードを更新するためにライセンスが必要ですか? 開発にはトライアルで動作しますが、本番環境ではフルライセンスが必要です。
- これは PDF のみで動作しますか? いいえ – 同じコードは Word、Excel、PowerPoint、一般的な画像形式でも動作します。
- 一度に処理できるドキュメント数は? バッチ処理がサポートされており、
try‑with‑resourcesでメモリ管理すれば問題ありません。
create barcode signature java とは?
create barcode signature java は、ドキュメント内にデジタル署名として埋め込まれたバーコードを表す BarcodeSignature オブジェクトをインスタンス化するプロセスです。GroupDocs.Signature API を使用すると、プログラムで新しいバーコードを追加したり、既存のバーコードを検索したり、位置・サイズ・エンコードされたテキストなどのプロパティを変更したりでき、ビジュアルエディタでファイルを開く必要がありません。
Java 用 GroupDocs.Signature を使用する理由
GroupDocs.Signature は 50 以上の入力・出力形式(PDF、DOCX、XLSX、PPTX、一般的な画像形式など)をサポートし、メモリ使用量を 100 MB 未満に抑えながら数百ページの PDF を処理できます。バッチ API は標準サーバー上で 10,000 ドキュメント までの処理を可能にし、大規模な更新を実現します。
前提条件
- GroupDocs.Signature for Java ≥ 23.12(以前のリリースにはここで使用する更新メソッドがありません)。
- Java Development Kit 8 以上。
- IntelliJ IDEA、Eclipse、VS Code などの IDE。
- 基本的な Java の知識(クラス、オブジェクト、例外処理)。
必要なライブラリ
好みのビルドツールでプロジェクトに 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'
Direct download – 最新の JAR を GroupDocs.Signature for Java releases から取得し、クラスパスに追加してください。
ライセンス取得
GroupDocs.Signature はトライアルとフルライセンスの両方に対応しています:
- 無料トライアル – 概念実証に最適。
- 一時ライセンス – 特定プロジェクトでの拡張評価用。
- フルライセンス – 本番環境での透かしと使用制限を除去。
Pro tip: 無料トライアルで始め、ワークフローを検証したらアップグレードしてください。
バーコード署名 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);
Pro tip:
Signatureインスタンスを構築する前にファイルパスを検証し、FileNotFoundExceptionを回避してください。
手順 2: バーコード署名を検索
BarcodeSearchOptions はドキュメント内のバーコード署名をスキャンする際の基準を定義します。
直接の回答
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 オブジェクトのリストが得られ、各オブジェクトは Left、Top、Width、Height、Text、EncodeType などのプロパティを公開します。
Performance note: 非常に大きな PDF の場合は、特定のページやバーコードタイプに検索範囲を絞って実行速度を向上させてください。
手順 3: バーコードのプロパティを更新
BarcodeSignature はドキュメントに埋め込まれた個々のバーコードを表し、視覚属性のセッターを提供します。
直接の回答
取得した BarcodeSignature の Left、Top、Width、Height を変更し、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を適切に処理してください。
バーコード署名を更新すべきタイミングは?
ドキュメントのレイアウトが変更されたとき、規制要件が変わったとき、またはデータ移行後に既存ファイルを一括処理する必要があるときに更新すべきです。プログラムで更新すれば手動編集を回避でき、エラー率が低減し、何千ものファイルで一貫した配置が保証されます。
よくある問題と解決策
問題 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);
パフォーマンス最適化のヒント
バッチ処理のメモリ管理
1 つのドキュメントずつ処理し、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 ストリームを活用して数千のドキュメントを高速化します:
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: 1 つのドキュメント内で複数のバーコードを同時に更新できますか?
A: もちろんです。search で取得した 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: 並列ストリームと try‑with‑resources を組み合わせ(上記の並列処理例参照)て実装し、メモリ使用量を監視してください。
Q: PDF 以外の形式でも動作しますか?
A: はい。同じ API が Word、Excel、PowerPoint、画像など、GroupDocs.Signature がサポートする多数の形式で利用可能です。
結論
これで バーコード署名 Java の作成 とその位置・サイズ・その他プロパティの更新方法に関する、実運用レベルの完全ガイドが完成しました。初期化、検索、変更、トラブルシューティング、パフォーマンスチューニングをシングルドキュメントから大規模バッチまで網羅しています。
次のステップ
- 回転や不透明度などの追加プロパティも同時に更新してみましょう。
- ロジックを REST サービスでラップし、バーコード更新を API エンドポイントとして公開します。
- 同様のパターンでテキスト、画像、デジタル署名など他の署名タイプも自動化し、ドキュメントワークフローを完全に統合します。
リソース
Last Updated: 2026-08-19
Tested With: GroupDocs.Signature 23.12
Author: GroupDocs