PDF4me Python SDK Memulai
Yang pdf4me paket pada PyPI adalah async resmi Python SDK untuk PDF4me REST API. Paket ini berisi 106 fungsi asinkron bertipe yang tersebar di 18 modul yang mencakup konversi, optimasi, penggabungan, pemisahan, pemberian stempel, dan tanda tangan elektronik, OCR, pengisian formulir, ekstraksi, kode batang, ZUGFeRD faktur elektronik, dan AIEkstraksi dokumen berbasis data dari faktur, kwitansi, kontrak, laporan bank, dokumen pajak, dan slip gaji.
Fakta kemasan
| Bidang | Nilai |
|---|---|
| Nama paket | pdf4me |
| Versi saat ini | 1.0.2 (diterbitkan 14 September 2026) |
| Lisensi | MIT |
| Python mendukung | >=3.11 (diuji pada versi 3.11, 3.12, 3.13, 3.14) |
| Status pengembangan | Produksi/Stabil |
| Kerangka | AsyncIO |
| Sumber | github.com/pdf4me/pdf4me-clientapi-python |
| PyPI | pypi.org/project/pdf4me |
Secara internal, klien tersebut dibuat dengan Microsoft. Kiota di atas httpx[http2], sehingga setiap aksi sepenuhnya bertipe, mengembalikan hasil bertipe, dan menggunakan kembali satu kumpulan koneksi per klien.
Prasyarat
- Python 3.11 atau yang lebih baru.
- A PDF4me akun dan API kunci.
pip(atauuv,poetry, atau apa pun PyPI-installer yang kompatibel).
Memasang
- pip
- uv
- Poetry
python -m pip install pdf4me
uv add pdf4me
poetry add pdf4me
Memasang pdf4me menarik masuk httpx[http2] dan Microsoft Kiota paket runtime (microsoft-kiota-abstractions, microsoft-kiota-http, dan backend serialisasi JSON, formulir, teks, dan multipart).
Otentikasi
Atur milik Anda API kunci dalam lingkungan:
- Bash / Zsh
- PowerShell
- Windows CMD
export PDF4ME_API_KEY="your-api-key"
$env:PDF4ME_API_KEY = "your-api-key"
set PDF4ME_API_KEY=your-api-key
Contoh-contoh di bawah ini membaca kunci dari variabel tersebut saat runtime. Anda juga dapat meneruskannya secara langsung ke Pdf4meClient(api_key) jika Anda lebih suka memuatnya dari pengelola rahasia, .env berkas, atau sumber lain.
Mulai cepat
Program terkecil yang bermanfaat: buka aplikasi klien, jalankan satu tindakan, tulis hasilnya ke disk.
import asyncio
import os
from pathlib import Path
from pdf4me import Pdf4meClient
from pdf4me.optimize import optimize
async def main() -> None:
api_key = os.environ.get("PDF4ME_API_KEY")
if not api_key:
raise SystemExit("Set PDF4ME_API_KEY before running this example.")
source = Path("input.pdf")
async with Pdf4meClient(api_key) as client:
result = await optimize(
client, source.read_bytes(), doc_name=source.name
)
Path("optimized.pdf").write_bytes(result)
print("Saved optimized.pdf")
if __name__ == "__main__":
asyncio.run(main())
Tiga hal yang perlu diperhatikan:
- Satu klien, banyak panggilan. Yang
async with Pdf4meClient(...)konteks mengelola hal-hal yang mendasarinyahttpxkumpulan koneksi. Gunakan kembali klien yang sama untuk setiap panggilan di dalammainalih-alih membuka satu per tindakan. - Aksi adalah fungsi bebas, bukan metode klien. Impor setiap aksi dari modulnya (
from pdf4me.optimize import optimize,from pdf4me.pdf import get_pdf_metadata) dan berikan klien sebagai argumen pertama. Ini menjaga permukaan tetap rata dan memungkinkan Anda untuk menghapus modul yang tidak terpakai di editor Anda. - Byte masuk, byte keluar. Tindakan yang menghasilkan pengembalian file
bytesAksi yang menghasilkan metadata mengembalikan kelas data bertipe. Tidak ada penyimpanan sementara di disk, sehingga Anda dapat mengalirkan hasil antar aksi tanpa menyentuh sistem file.
Dua panggilan umum lainnya
Cap sebuah PDF:
from pdf4me.edit import StampAlignX, stamp
stamped = await stamp(client, data, text="DRAFT", align_x=StampAlignX.Center)
Path("stamped.pdf").write_bytes(stamped)
Membaca PDF metadata:
from pdf4me.pdf import get_pdf_metadata
metadata = await get_pdf_metadata(client, data, doc_name="input.pdf")
print(metadata.page_count)
Setiap nilai yang diteruskan sebagai enum (seperti StampAlignX.Center) adalah konstanta bertipe, jadi milik Anda IDE Fitur pelengkapan otomatis nilai-nilai legal dan mypy atau pyright mendeteksi kesalahan ketik saat pengeditan.
Apa yang tersedia di dalam kotak (106 aksi di 18 modul)
| Modul | Tindakan | Contoh impor |
|---|---|---|
pdf4me.ai_document_extraction | 14 | from pdf4me.ai_document_extraction import extract_invoice_data |
pdf4me.barcode | 7 | from pdf4me.barcode import create_barcode, read_barcodes |
pdf4me.convert | 13 | from pdf4me.convert import html_to_pdf, url_to_pdf, word_to_pdf |
pdf4me.edit | 7 | from pdf4me.edit import stamp, add_page_number, add_html_header_footer |
pdf4me.excel | 1 | from pdf4me.excel import excel_to_pdf |
pdf4me.extract | 8 | from pdf4me.extract import extract_text, extract_attachments |
pdf4me.find_search | 2 | from pdf4me.find_search import find_and_replace_text |
pdf4me.forms | 2 | from pdf4me.forms import fill_pdf_form, get_form_fields |
pdf4me.generate | 6 | from pdf4me.generate import generate_document_single |
pdf4me.image | 13 | from pdf4me.image import resize_image, add_watermark_to_image |
pdf4me.merge_split | 5 | from pdf4me.merge_split import merge_pdfs, split_pdf_by_barcode |
pdf4me.optimize | 1 | from pdf4me.optimize import optimize |
pdf4me.organize | 5 | from pdf4me.organize import rotate_pdf, extract_pages |
pdf4me.pdf | 16 | from pdf4me.pdf import get_pdf_metadata, sign_pdf |
pdf4me.pdf4me | 1 | from pdf4me.pdf4me import ping |
pdf4me.security | 2 | from pdf4me.security import protect_document, unlock_pdf |
pdf4me.word | 2 | from pdf4me.word import add_tracked_changes |
pdf4me.zugferd | 1 | from pdf4me.zugferd import create_zugferd_invoice |
Jalur impor di atas merupakan ilustrasi dari antarmuka modul. Lihat PDF4me REST API referensi untuk daftar parameter lengkap untuk setiap tindakan, dan repositori sumbernya pdf4me/ Lihat pohon paket untuk nama simbol pasti yang diekspor oleh versi Anda.
Ke mana harus pergi selanjutnya?
Penyelesaian Masalah
ModuleNotFoundError: No module named 'pdf4me'. Paket tersebut diinstal di interpreter yang berbeda dari interpreter yang menjalankan skrip Anda. Konfirmasikan dengan python -m pip show pdf4me di dalam lingkungan virtual yang sama. Jika Anda menggunakan pyenv atau condaAktifkan lingkungan terlebih dahulu.
SystemExit: Set PDF4ME_API_KEY before running this example. Variabel lingkungan tidak terlihat oleh proses Anda. Mulai ulang shell Anda setelah ini. export, atau berikan kuncinya secara langsung dengan Pdf4meClient("your-api-key")Di Windows, ingatlah bahwa set Pengaturan di dalam CMD tidak akan tersimpan antar sesi; gunakan setx untuk nilai permanen.
httpx.HTTPStatusError: 401 Unauthorized. Yang API Kunci ada tetapi ditolak. Buat ulang di PDF4me dasbor dan coba lagi.
Panggilan pertama yang lambat setelah periode tidak aktif. HTTP/2 keep-alive direset saat idle. Pertahankan Pdf4meClient Tetap terbuka selama masa berjalannya pekerjaan batch, bukan membuka yang baru untuk setiap file.
asyncio.run() cannot be called from a running event loop. Anda berada di dalam Jupyter atau kerangka kerja yang sudah menjalankan event loop. Gunakan await main() di tingkat teratas sel notebook, atau bungkus kode Anda di titik masuk asinkron milik kerangka kerja itu sendiri.