Skip to main content

AxPdfSigner

Professional PDF Digital Signature SDK for Python

License Python Platform

Product by Axonate Tech


Overview

AxPdfSigner is an enterprise-grade Python SDK for digitally signing PDF documents with X.509 certificates. Built with pure Python implementation, it provides a clean, intuitive interface for advanced PDF signing operations.

Features

✅ Digital Signatures - Sign PDFs with X.509 certificates (PFX/P12)
✅ Long-Term Validation (LTV) - Embed validation information for long-term verification
✅ RFC 3161 Timestamping - Add trusted timestamps to signatures
✅ Custom Appearance - Fully customizable signature appearance
✅ Multi-Page Signing - Sign single or multiple pages
✅ Invisible Signatures - Support for invisible digital signatures
✅ PDF Metadata - Control document title, author, subject, keywords
✅ Certificate Locking - Lock PDF after signing to prevent modifications
✅ Batch Processing - Sign multiple documents efficiently
✅ Pure Python - No external dependencies except pythonnet

Installation

pip install AxPdfSigner-1.0.0-py3-none-any.whl

Requirements

  • Python 3.7 or higher
  • Windows operating system
  • pythonnet package (installed automatically)

Quick Start

Basic Usage

from AxPdfSigner import PdfSigner, SignatureConfig

# Create signer instance
signer = PdfSigner()

# Configure signature
config = SignatureConfig(
    input_pdf="document.pdf",
    output_pdf="signed_document.pdf",
    pfx_path="certificate.pfx",
    pfx_password="your_password"
)

# Sign the document
signer.sign(config)

Advanced Usage

from AxPdfSigner import PdfSigner, SignatureConfig

# Advanced configuration
config = SignatureConfig(
    input_pdf="contract.pdf",
    output_pdf="signed_contract.pdf",
    pfx_path="company_cert.pfx",
    pfx_password="secure_password",
    
    # Signature details
    reason="Contract Approval",
    location="New York, USA",
    custom_text="Approved by Legal Department",
    signer_name="John Doe",
    
    # Position and appearance
    coordinates="100,100,300,150",  # x1,y1,x2,y2
    pages="1,3,5",  # Sign specific pages
    
    # Security features
    enable_ltv=True,
    enable_timestamp=True,
    lock_pdf=True,
    
    # PDF metadata
    title="Employment Contract",
    author="HR Department",
    subject="Contract Signing",
    keywords="contract,employment,legal"
)

signer = PdfSigner()
signer.sign(config)

Batch Signing

from AxPdfSigner import PdfSigner, SignatureConfig

configs = []
for i in range(1, 11):
    config = SignatureConfig(
        input_pdf=f"document_{i}.pdf",
        output_pdf=f"signed_{i}.pdf",
        pfx_path="certificate.pfx",
        pfx_password="password"
    )
    configs.append(config)

signer = PdfSigner()
results = signer.sign_batch(configs)

print(f"Success: {len(results['success'])}")
print(f"Failed: {len(results['failed'])}")

Configuration Parameters

Required Parameters

Parameter Type Description
input_pdf str Path to input PDF file
output_pdf str Path to output signed PDF
pfx_path str Path to PFX/P12 certificate
pfx_password str Certificate password

Optional Parameters

Parameter Type Default Description
pages str "1" Pages to sign: "1", "1,3,5", "1-5", "all"
field_name str "Signature1" Signature field name
reason str "Document Signing" Reason for signing
location str "" Location of signing
custom_text str "" Custom text in signature
signer_name str "" Override signer name (from cert CN)
coordinates str "100,100,300,150" Position: "x1,y1,x2,y2"
enable_ltv bool True Enable Long-Term Validation
enable_timestamp bool True Enable RFC 3161 timestamp
disable_green_tick bool False Disable green tick in Adobe
lock_pdf bool True Lock PDF after signing
include_subject bool False Include certificate subject DN
invisible_signature bool False Make signature invisible
fast_method bool True Use fast signing method
title str "" PDF document title
author str "" PDF document author
subject str "" PDF document subject
keywords str "" PDF document keywords

Error Handling

from AxPdfSigner import PdfSigner, SignatureConfig, SignatureException

try:
    signer = PdfSigner()
    config = SignatureConfig(...)
    signer.sign(config)
    print("✓ Document signed successfully")
    
except SignatureException as e:
    print(f"✗ Signature error: {e}")
    
except Exception as e:
    print(f"✗ Unexpected error: {e}")

API Reference

PdfSigner Class

Methods

  • sign(config: SignatureConfig) -> bool
    Sign a single PDF document

  • sign_batch(configs: List[SignatureConfig]) -> dict
    Sign multiple PDF documents in batch

  • get_version() -> str (static)
    Get SDK version

  • validate_certificate(pfx_path: str, pfx_password: str) -> dict (static)
    Validate a PFX certificate

SignatureConfig Class

Dataclass containing all signature configuration parameters.

SignatureException Class

Exception raised for signature-related errors.

System Requirements

  • OS: Windows 7/8/10/11, Windows Server 2012+
  • Python: 3.7, 3.8, 3.9, 3.10, 3.11, 3.12
  • RAM: 512 MB minimum
  • Disk: 50 MB for installation

License

This is commercial software. See LICENSE file for details.

Support

For technical support, bug reports, or feature requests:

About

Product by Axonate Tech
Website: https://axonatetech.com/

AxPdfSigner is a professional PDF digital signature solution designed for enterprise applications. Built with pure Python implementation, it provides reliable and secure PDF signing capabilities.


© 2025 Axonate Tech. All rights reserved.

Metadata

Release files for AxPdfSigner 1.0.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for AxPdfSigner 1.0.4
File Size Uploaded
axpdfsigner-1.0.4.tar.gz 1.5 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for AxPdfSigner 1.0.4
File Interpreter ABI Platform
axpdfsigner-1.0.4-py3-none-any.whl Python 3 none any Details

Total release size: 3.0 MB

Release files / axpdfsigner-1.0.4.tar.gz

Download URL axpdfsigner-1.0.4.tar.gz
Size 1.5 MB
Tags Source
SHA-256 checksum
How to use checksums
df71a70044f981deebbc5f79eacae52ec90f7c46963c7bd9402f18857fba96b8
BLAKE2b-256 checksum
How to use checksums
a65efff6ded07dce349b3bd2286e3c47500a8488020a9e21aa1f184722ebe40d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.5

Release files / axpdfsigner-1.0.4-py3-none-any.whl

Download URL axpdfsigner-1.0.4-py3-none-any.whl
Size 1.5 MB
Tags Python 3
SHA-256 checksum
How to use checksums
d9998eba4e9d72e3bf5ceaa2ce2da377c4651e82435837c50a7e17b8c002a0fc
BLAKE2b-256 checksum
How to use checksums
4f975a406f998febcd2a7831491972b6f220401b7c75a00864113e1f01668b03
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.5

Release history Release notifications | RSS feed

This release

1.0.4 This release

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page