Lewati ke konten
getnextpdf.com

FAQ NextPDF

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.