GroupDocs.Signature for Python 26.1 の新機能 (2026年1月)
| ID | カテゴリ | 概要 |
|---|---|---|
| SIGNATURENET‑5528 | ✨ 機能 | 画像デジタル署名のサポートと検証(PNG と JPG のステガノグラフィ的 LSB 埋め込み)。 |
| SIGNATURENET‑5445 | ✨ 機能 | バーコードおよび QR コード署名プレビューの適応レンダリング - 幅・高さを明示的に指定可能。 |
| SIGNATURENET‑5479 | ✨ 機能 | バーコードおよび QR コードプレビュー画像の回転サポート。 |
| SIGNATURENET‑5478 | ✨ 機能 | 画像ベースの署名で使用できる APNG と TGA 画像形式の対応を追加。 |
| SIGNATURENET‑5500 | ⚡ 強化 | 署名検索と検証のための LINQ スタイルクエリ最適化(述語フィルタリング)。 |
| SIGNATURENET‑5480 | ⚡ 強化 | バーコード/QR プレビューの背景透過サポート。 |
| SIGNATURENET‑5477 | ⚡ 強化 | 背景色付きデジタル署名のオーバーレイ画像サポート(前景画像フラグ)。 |
| SIGNATURENET‑5422 | ⚡ 強化 | 安全でない暗号アルゴリズム(RC2、DES、TripleDES、弱い AES モード)を除去。 |
| SIGNATURENET‑5555 | 🐞 バグ修正 | GeneratePreview() が Linux 上の DOC ファイルで発生していた型初期化子例外を修正。 |
以下に、最も影響の大きい変更点の短い技術的ウォークスルーを示します。
1. 画像デジタル署名(ステガノグラフィ)
- 署名は PNG/JPG のピクセルの最下位ビットに埋め込まれます。
- パスワード保護され、ストリーム互換で、サイズが 8 × 8 px 以上の任意の画像で動作します。
画像への署名
import groupdocs.signature as gs
import groupdocs.signature.options as gso
input_file = "image.png"
output_file = "signed_image.png"
password = "MySecurePassword123"
# Sign the image
with gs.Signature(input_file) as signature:
sign_options = gso.ImageDigitalSignOptions()
sign_options.password = password
sign_result = signature.sign(output_file, sign_options)
if sign_result.succeeded and len(sign_result.succeeded) > 0:
print("Image signed successfully!")
print(f"Signatures added: {len(sign_result.succeeded)}")
署名済み画像の検証
import groupdocs.signature as gs
import groupdocs.signature.options as gso
signed_file = "signed_image.png"
password = "MySecurePassword123"
with gs.Signature(signed_file) as signature:
verify_options = gso.ImageDigitalVerifyOptions()
verify_options.password = password
verify_options.detection_threshold_percent = 75 # optional 0‑100%
verify_result = signature.verify(verify_options)
if verify_result.is_valid:
print("Digital signature is valid!")
print(f"Verified signatures: {len(verify_result.succeeded)}")
else:
print("Digital signature is invalid or not found.")
高度な検証(完全データ抽出)
with gs.Signature("signed_image.png") as signature:
verify_options = gso.ImageDigitalVerifyOptions()
verify_options.password = "MySecurePassword123"
verify_options.use_full_data_extraction = True
verify_options.detection_threshold_percent = 85
verify_result = signature.verify(verify_options)
if verify_result.is_valid and verify_options.detected_probability is not None:
print(f"Signature detected with {verify_options.detected_probability}% probability")
2. バーコードおよび QR コードプレビューの適応レンダリング
開発者はプレビュー生成時に正確な width と height を指定できるようになり、従来の「自動サイズ」不整合が解消されます。
import groupdocs.signature as gs
import groupdocs.signature.options as gso
import uuid
# QR code options
qr_sign_options = gso.QrCodeSignOptions("GROUP DOCS", gs.QrCodeTypes.QR)
qr_sign_options.width = 250
qr_sign_options.height = 270
qr_sign_options.fore_color = gs.Color.red
qr_sign_options.code_text_alignment = gs.CodeTextAlignment.BELOW
qr_sign_options.text = "GROUP DOCS"
# Preview generation
preview_options = gso.PreviewSignatureOptions(
qr_sign_options,
create_signature_stream, # user‑provided delegate
release_signature_stream # user‑provided delegate
)
preview_options.signature_id = str(uuid.uuid4())
preview_options.preview_format = gso.PreviewSignatureOptions.PreviewFormats.PNG
gs.Signature.generate_signature_preview(preview_options)
3. バーコード・QR プレビューの回転サポート
rotation_angle(度)をバーコード/QR オプションに設定して、回転したプレビューを描画します。
import groupdocs.signature as gs
import groupdocs.signature.options as gso
import uuid
barcode_sign_options = gso.BarcodeSignOptions("GROUP DOCS", gs.BarcodeTypes.MaxiCode)
barcode_sign_options.width = 400
barcode_sign_options.height = 400
barcode_sign_options.fore_color = gs.Color.red
barcode_sign_options.code_text_alignment = gs.CodeTextAlignment.BELOW
barcode_sign_options.text = "GROUP DOCS"
barcode_sign_options.rotation_angle = 45 # rotate 45°
preview_options = gso.PreviewSignatureOptions(
barcode_sign_options,
create_signature_stream,
release_signature_stream
)
preview_options.signature_id = str(uuid.uuid4())
preview_options.preview_format = gso.PreviewSignatureOptions.PreviewFormats.PNG
gs.Signature.generate_signature_preview(preview_options)
4. 新しい画像形式のサポート – APNG と TGA
APNG(アニメーション PNG)および TGA(Targa)ファイルを、PNG/JPG と同様に画像署名として使用、挿入、プレビュー、検証できるようになりました。
5. バーコード/QR プレビューの背景透過
バーコード/QR オプションの transparency プロパティ(0 〜 1)を設定すると、透明なキャンバスを持つプレビューを生成できます。
barcode_sign_options = gso.BarcodeSignOptions("GROUP DOCS", gs.BarcodeTypes.Codabar)
barcode_sign_options.width = 400
barcode_sign_options.height = 400
barcode_sign_options.fore_color = gs.Color.red
barcode_sign_options.code_text_alignment = gs.CodeTextAlignment.BELOW
barcode_sign_options.text = "GROUP DOCS"
barcode_sign_options.transparency = 0.5 # 50 % transparent background
preview_options = gso.PreviewSignatureOptions(
barcode_sign_options,
create_signature_stream,
release_signature_stream
)
preview_options.signature_id = str(uuid.uuid4())
preview_options.preview_format = gso.PreviewSignatureOptions.PreviewFormats.PNG
gs.Signature.generate_signature_preview(preview_options)
6. デジタル署名のオーバーレイ画像サポート
PdfDigitalSignatureAppearance が、画像を隠すことなくオーバーレイ画像 と 背景色の両方を尊重するようになりました。レイヤーは SignatureCustomAppearance.IsForegroundImage で制御します。
import groupdocs.signature as gs
import groupdocs.signature.options as gso
signature_image_path = "signature.png"
certificate_path = "JohnSmithCertificate.pfx"
input_pdf = "SampleDocument.pdf"
output_pdf = "SignedDocument.pdf"
with gs.Signature(input_pdf) as signature:
sign_options = gso.DigitalSignOptions(certificate_path)
sign_options.password = "1234567890"
sign_options.reason = "Document approval"
sign_options.contact = "John Smith"
sign_options.location = "Head Office"
# Visible signature placement
sign_options.visible = True
sign_options.left = 350
sign_options.top = 100
sign_options.width = 200
sign_options.height = 70
sign_options.image_file_path = signature_image_path
appearance = gso.PdfDigitalSignatureAppearance()
appearance.foreground = gs.Color.from_argb(50, gs.Color.brown)
appearance.font_family_name = "Times New Roman"
appearance.font_size = 12
appearance.background = gs.Color.from_argb(50, gs.Color.light_gray)
appearance.is_foreground_image = True # image on top of text
sign_options.appearance = appearance
sign_result = signature.sign(output_pdf, sign_options)
print(f"\nDocument signed successfully with {len(sign_result.succeeded)} signature(s).")
print(f"Signed file saved at: {output_pdf}")
7. セキュリティ強化 – 安全でないアルゴリズムの除去
RC2、DES、TripleDES、弱い AES モードは暗号スタックから 除去 されました。最新の NIST 承認アルゴリズムのみが利用可能となり、署名済み文書のデフォルトセキュリティ姿勢が向上します。
8. LINQ スタイルのクエリ最適化
署名の search と verify は、重い処理ステップの 前 に署名をフィルタリングする 述語関数 を受け取れるようになりました。これによりメモリ使用量が削減され、バッチ処理が高速化します。
述語付き検索
import groupdocs.signature as gs
import groupdocs.signature.options as gso
import groupdocs.signature.domain as gsd
with gs.Signature("document.pdf") as signature:
search_options = [gso.TextSearchOptions()]
# Keep only text signatures that contain the word "Approved"
result = signature.search(search_options,
lambda sig: isinstance(sig, gsd.TextSignature) and "Approved" in sig.text)
for sig in result.signatures:
print(f"Found: {sig.text}")
述語付き検証
with gs.Signature("signed_document.pdf") as signature:
verify_options = gso.TextVerifyOptions("John Smith")
# Verify only signatures on page 1
result = signature.verify(verify_options,
lambda sig: sig.page_number == 1)
print(f"Found {len(result)} verified signatures on page 1")
9. Linux の DOC プレビュークラッシュ修正
GeneratePreview() は、Linux 上で Microsoft Word(.doc)ファイルを処理する際に TypeInitializerException を投げなくなり、クロスプラットフォームのプレビュー機能が復元されました。
アップグレード手順
pip install --upgrade groupdocs-signature-net
注意: パッケージ名
groupdocs-signature-netは Python から .NET ラッパーを介して使用する際の名前です。
リソース
- Full release notes: (利用可能な場合は公式リリースノートページへのリンク)
- Documentation: https://docs.groupdocs.com/signature/python/
- Community & Support: https://forum.groupdocs.com/c/signature/10
今後のリリースをお楽しみに。また、パフォーマンスのヒントやベストプラクティスガイドについては公式ブログをご覧ください。