FAQ NextPDF
Sekilas pandang
Bagian berjudul “Sekilas pandang”Halaman ini menjawab pertanyaan yang muncul pertama kali ketika Anda mengevaluasi NextPDF atau memulai proyek baru. Setiap jawaban singkat dan menautkan ke halaman yang membahasnya selengkapnya. NextPDF adalah engine PHP 8.4 yang menghasilkan dan memeriksa dokumen Portable Document Format (PDF) 2.0, format berkas yang didefinisikan oleh ISO 32000-2.
Jika Anda benar-benar baru, baca Mulai terlebih dahulu, lalu kembali ke sini untuk hal-hal yang spesifik.
Memulai
Bagian berjudul “Memulai”Edisi mana yang saya butuhkan: Core, Pro, atau Enterprise?
Bagian berjudul “Edisi mana yang saya butuhkan: Core, Pro, atau Enterprise?”Mulai dengan Core. Core open-source (nextpdf/core) menghasilkan keluaran
PDF, merender HTML yang didukung menjadi PDF, dan memeriksa PDF di bawah lisensi
Apache-2.0 dan tanpa biaya. Core sudah menghasilkan tanda tangan CMS SignedData
untuk level baseline PDF Advanced Electronic Signatures (PAdES) B-B dan B-T.
Pilih Pro ketika Anda membutuhkan pembuatan lanjutan dan operasi dokumen,
keluaran faktur elektronik (Factur-X / ZUGFeRD), atau alur penandatanganan
lanjutan seperti remote, cloud-KMS, dan sekuensial.
Pilih Enterprise ketika Anda membutuhkan alur pengarsipan PDF/A, level
long-term PAdES (B-LT / B-LTA) dengan Document Security Store dan timestamp
dokumen, penandatanganan berbasis perangkat keras melalui hardware security
module (HSM), atau tanda tangan elektronik yang berkualifikasi. Pro dan
Enterprise adalah dua edisi berlisensi dari NextPDF Premium, lini berbayar;
lihat Pilih jalur Anda.
Apakah benar-benar Apache-2.0?
Bagian berjudul “Apakah benar-benar Apache-2.0?”Ya, untuk core-nya. nextpdf/core mendeklarasikan "license": "Apache-2.0" dan
mengirim teks lengkap Apache License 2.0 dalam berkas LICENSE-nya. Anda boleh
menggunakan, memodifikasi, mendistribusikan ulang, dan mengomersialkan core,
tunduk pada persyaratan atribusi dan NOTICE (Apache-2.0 §4). NextPDF Pro dan
NextPDF Enterprise adalah edisi komersial proprietary dan tidak dicakup oleh
lisensi tersebut. Nama dan logo NextPDF adalah merek dagang, terpisah dari
lisensi kode. Lihat Pelisensian.
Berapa versi PHP minimum?
Bagian berjudul “Berapa versi PHP minimum?”PHP 8.4. Constraint paketnya adalah >=8.4 <9.0, sehingga Composer menolak
memasang pada PHP 8.3 ke bawah, atau pada PHP 9. NextPDF menargetkan satu runtime
modern dan menggunakan fitur bahasanya secara langsung. Lihat
Memasang NextPDF.
Apakah ia membutuhkan biner eksternal atau headless browser?
Bagian berjudul “Apakah ia membutuhkan biner eksternal atau headless browser?”Tidak, tidak untuk engine core-nya. Engine native diimplementasikan dalam PHP dan
ekstensi PHP standar, tanpa biner PDF eksternal dan tanpa headless browser yang
wajib: fluent API dan pipeline HTML writeHtml() bawaan berjalan in-process tanpa
browser dan tanpa panggilan jaringan. Biner Chrome atau Chromium bersifat
opsional dan hanya diperlukan untuk perender Artisan (writeHtmlChrome()),
yang Anda pasang secara terpisah sebagai nextpdf/artisan. Bridge Cloudflare dan
Gotenberg juga opsional dan memanggil ke sebuah layanan. Lihat
Pilih jalur Anda.
Ekstensi PHP apa yang diperlukannya?
Bagian berjudul “Ekstensi PHP apa yang diperlukannya?”composer.json core memerlukan ekstensi standar ext-mbstring, ext-zlib,
ext-intl, ext-gd, ext-curl, dan ext-openssl, yang merupakan ekstensi PHP
yang umum tersedia; pastikan keenamnya terpasang dan diaktifkan di runtime Anda.
ext-curl mendukung round-trip jaringan opsional — timestamping RFC 3161 dan
pengambilan aset jarak jauh — sehingga pembuatan native offline tidak
menggunakannya, tetapi Composer tetap mencantumkannya sebagai persyaratan keras.
Integrasi memeriksa yang dibutuhkannya saat boot dan berhenti dengan pesan yang
jelas jika ada yang hilang. List lengkapnya berada di composer.json paket;
lihat Memasang NextPDF.
Bagaimana cara membuat PDF pertama saya?
Bagian berjudul “Bagaimana cara membuat PDF pertama saya?”Pasang core, lalu bangun sebuah dokumen dengan fluent API:
<?php
declare(strict_types=1);
require_once __DIR__ . '/vendor/autoload.php';
use NextPDF\Core\Document;
$document = Document::createStandalone();$document->addPage();$document->setFont('helvetica', 'B', 24);$document->cell(0, 15, 'Hello, NextPDF!', newLine: true);$document->save(__DIR__ . '/first.pdf');Telusuri langkah demi langkah dalam PDF pertama Anda.
Edisi dan pelisensian
Bagian berjudul “Edisi dan pelisensian”Apakah Core memiliki batasan fitur atau watermark?
Bagian berjudul “Apakah Core memiliki batasan fitur atau watermark?”Tidak. Core adalah engine open-source untuk feature set Core tanpa watermark dan tanpa nag screen. Untuk feature set Core — pembuatan, inspeksi, enkripsi, primitif keluaran PDF/A dan PDF/UA, dan penandatanganan B-B/B-T berbasis kunci software (tanpa alur long-term-validation dan key-custody Premium) — Core sudah lengkap. Watermark evaluasi hanya berlaku pada hibah evaluasi Premium, di mana Anda menguji feature set Pro dan Enterprise lengkap di balik tanda yang dapat dihapus; lisensi berbayar menghapusnya tanpa perubahan kode aplikasi. Lihat Pelisensian dan aktivasi.
Apakah saya perlu mengubah kode untuk meningkatkan ke Pro atau Enterprise?
Bagian berjudul “Apakah saya perlu mengubah kode untuk meningkatkan ke Pro atau Enterprise?”Sebagian besar tidak. Ketika Anda memasang nextpdf/premium, integrasi framework
dan server mendeteksinya secara otomatis dan mengekspos kapabilitas ekstra.
Sebagian besar aplikasi mempertahankan titik integrasi tingkat-tinggi yang sama;
beberapa alur Premium mungkin memerlukan konfigurasi atau pemanggilan khusus
fitur. Anda mengaktifkan sebuah amplop lisensi yang ditandatangani sekali per
deployment. Lihat
Pelisensian dan aktivasi.
Bisakah saya menggunakan core dalam produk komersial sumber-tertutup?
Bagian berjudul “Bisakah saya menggunakan core dalam produk komersial sumber-tertutup?”Ya. Apache License 2.0 tidak memiliki batasan non-komersial. Anda boleh
menggunakan core dalam produk komersial sumber-tertutup, berbayar, atau internal,
asalkan Anda menghormati kewajiban atribusi dan NOTICE serta tidak
memperlakukan lisensi kode sebagai izin untuk menggunakan merek NextPDF. Lihat
Pelisensian dan
Merek dagang dan penggunaan brand.
Kapabilitas
Bagian berjudul “Kapabilitas”Bisakah ia membaca dan mengurai PDF, atau hanya menulisnya?
Bagian berjudul “Bisakah ia membaca dan mengurai PDF, atau hanya menulisnya?”Keduanya, dengan satu catatan. NextPDF menulis PDF dan juga membacanya: modul
Inspect membaca berkas yang sudah ada menjadi InspectResult terstruktur dengan
data kompleksitas, font, gambar, dan risiko, dan Anda dapat menggabungkan serta
memecah dokumen yang sudah ada. Inspect ditandai experimental, sehingga
bentuk hasilnya mungkin berubah antar versi minor — gunakan untuk diagnostik dan
gating, bukan sebagai kontrak jangka panjang. Lihat
Modul Inspect.
Apakah ia menghasilkan teks yang dapat dipilih dan dicari?
Bagian berjudul “Apakah ia menghasilkan teks yang dapat dipilih dan dicari?”Ya. Baik fluent API maupun pipeline writeHtml() bawaan memancarkan konten teks
nyata, bukan gambar yang dirasterisasi, sehingga keluarannya dapat dipilih dan
dicari. writeHtmlChrome() milik perender Artisan juga menjaga teks tetap dapat
dipilih. Lihat PDF pertama Anda.
Bagaimana rendering HTML dan CSS bekerja?
Bagian berjudul “Bagaimana rendering HTML dan CSS bekerja?”Engine core menyertakan pipeline HTML pure-PHP. writeHtml() merender sebuah
fragmen HTML dengan subset CSS yang didukung langsung ke halaman, tanpa browser
dan tanpa panggilan jaringan. Ketika sebuah tata letak membutuhkan fidelitas
browser penuh — seperti flexbox, grid, atau web font — pasang perender Artisan
dan panggil writeHtmlChrome(). Sebelum Anda mengandalkan sebuah properti,
periksa Matriks dukungan CSS.
Bagaimana cara kerja font?
Bagian berjudul “Bagaimana cara kerja font?”Alias font standar bawaan seperti Helvetica berfungsi tanpa setup untuk teks WinAnsi sederhana, sehingga dokumen pertama Anda tidak membutuhkan berkas font. Font standar Latin bawaan cocok untuk teks WinAnsi dasar; Symbol dan ZapfDingbats menggunakan pengkodeannya sendiri; untuk merender skrip lain, Anda mendaftarkan dan menyematkan sebuah font yang character map dan jalur shaping-nya mendukung skrip tersebut. Lihat Matriks dukungan font dan Modul Font.
Apakah ia mendukung PDF/A dan aksesibilitas (PDF/UA)?
Bagian berjudul “Apakah ia mendukung PDF/A dan aksesibilitas (PDF/UA)?”Ya, dengan batas yang jelas: dukungan untuk sebuah profil bukanlah
konformitas. Core mengirim diskriminator konformitas dan primitif tagging —
enableTaggedPdf() mengaktifkan keluaran struktur tagged-PDF yang dipakai untuk
alur PDF/UA, dan enablePdfA() memilih sebuah profil keluaran PDF/A di Core;
edisi Premium menambahkan alur pengarsipan dan perkakas tingkat-tinggi (validasi,
kebijakan, dan operasi produksi) di atasnya. NextPDF memancarkan artefak
struktural yang dibutuhkan sebuah profil; sebuah validator independen seperti
veraPDF yang memutuskan apakah berkas tertentu benar-benar sesuai. Lihat
Konformitas dan
Modul Accessibility.
Bagaimana cara menandatangani PDF?
Bagian berjudul “Bagaimana cara menandatangani PDF?”Core dapat menghasilkan tanda tangan Cryptographic Message Syntax (CMS) SignedData
dan dapat menerapkan timestamp RFC 3161 (level B-T), menggunakan algoritma
kunci-software yang didukung melalui signing provider yang dikonfigurasi. Kode
Anda bergantung pada kontrak SignerInterface, sehingga pemanggilan yang sama
bekerja lintas edisi. Level long-term PAdES B-LT dan B-LTA, key custody HSM dan
PKCS#11, serta tanda tangan berkualifikasi adalah kapabilitas Enterprise; alur
penandatanganan berbasis cloud dan KMS tersedia di Pro. Core menghasilkan
struktur baseline B-B dan B-T. Lihat
Modul Signing.
Produksi
Bagian berjudul “Produksi”Apakah ia worker-safe dan thread-safe?
Bagian berjudul “Apakah ia worker-safe dan thread-safe?”Sebuah Document bersifat sekali-pakai: setelah Anda menulis satu, buat instance
baru untuk dokumen berikutnya alih-alih menggunakannya kembali. Ini menjadikannya
cocok secara alami untuk model per-permintaan, per-job yang dipakai oleh PHP-FPM,
queue worker, dan framework — setiap unit pekerjaan membangun dokumennya sendiri.
Ketika Anda mengurai atau menyusun input yang tidak tepercaya, jalankan pekerjaan
itu di worker yang terbatasi dan jaga resource guard (maxFiles,
maxTotalBytes, maxBytes) tetap ketat. Lihat
Modul Document dan
model ancaman engine.
Apakah keluarannya deterministik?
Bagian berjudul “Apakah keluarannya deterministik?”Ia deterministik secara struktural, tetapi tidak identik byte-demi-byte secara
default. Dua proses atas input yang sama menghasilkan PDF yang setara secara
struktural, tetapi masing-masing membawa trailer dan /ID dokumen yang baru,
sehingga byte-nya berbeda. Penandatanganan dan timestamp menambah variasi
per-proses lebih lanjut secara desain. Rencanakan perbandingan di sekitar
kesetaraan struktural, atau normalkan field yang volatil, alih-alih mengharapkan
byte yang identik antar proses.
Bagaimana cara men-deploy-nya?
Bagian berjudul “Bagaimana cara men-deploy-nya?”Commit composer.lock sehingga setiap worker yang ter-deploy me-resolve versi
engine yang sama, lalu deploy seperti library PHP mana pun — pembuatan native
tidak membutuhkan daemon, browser, atau jaringan; timestamping (B-T), aset jarak
jauh, atau bridge browser opsional membutuhkan akses jaringan yang dikonfigurasi.
Jika layanan non-PHP membutuhkan engine, jalankan
NextPDF Server, yang mengeksposnya melalui Model Context
Protocol (MCP), REST, dan gRPC. Untuk Premium, tempatkan amplop lisensi yang
ditandatangani di tempat yang dimuat deployment dan jalankan langkah aktivasi
sekali-jalan; state lisensi yang ter-cache berarti pemrosesan normal tidak
membutuhkan layanan lisensi, sehingga deployment air-gapped didukung. Lihat
Memasang NextPDF dan
Pelisensian dan aktivasi.
Ke mana saya membawa kegagalan saat ada yang salah?
Bagian berjudul “Ke mana saya membawa kegagalan saat ada yang salah?”NextPDF melaporkan galat berdasarkan kelas exception PHP, bukan berdasarkan kode galat string, dan exception yang sadar-konteks membawa field diagnostik terstruktur. Basis pengetahuan Penanganan masalah memetakan kegagalan tanda tangan, PDF/A, PDF/UA, font, tagging, dan enkripsi yang umum ke penyebab dan resolusinya.