İçeriğe geç
getnextpdf.com

NextPDF SSS

Bu sayfa, NextPDF’i değerlendirirken veya yeni bir proje başlatırken ilk akla gelen soruları yanıtlar. Her yanıt kısadır ve onu tam olarak ele alan sayfaya bağlanır. NextPDF, ISO 32000-2 tarafından tanımlanan dosya biçimi olan Taşınabilir Belge Biçimi (PDF) 2.0 belgelerini üreten ve inceleyen bir PHP 8.4 motorudur.

Yepyeniyseniz, önce Başlangıç sayfasını okuyun, ardından ayrıntılar için buraya geri dönün.

Hangi sürüme ihtiyacım var: Core, Pro mu yoksa Enterprise mi?

“Hangi sürüme ihtiyacım var: Core, Pro mu yoksa Enterprise mi?” başlıklı bölüm

Core ile başlayın. Açık kaynaklı çekirdek (nextpdf/core), Apache-2.0 lisansı altında ve ücretsiz olarak PDF çıktısı üretir, desteklenen HTML’i PDF’lere işler ve PDF’leri inceler. Core, PDF Gelişmiş Elektronik İmzaları (PAdES) B-B ve B-T temel düzeyleri için zaten CMS SignedData imzaları üretir. Gelişmiş üretim ve belge işlemleri, elektronik fatura çıktısı (Factur-X / ZUGFeRD) veya uzak, bulut-KMS ve sıralı imzalama gibi gelişmiş imzalama iş akışları gerektiğinde Pro’yu seçin. PDF/A arşivleme yazma iş akışları, bir belge güvenlik deposu ve belge zaman damgalarıyla PAdES uzun vadeli düzeyleri (B-LT / B-LTA), bir donanım güvenlik modülü (HSM) aracılığıyla donanım destekli imzalama veya nitelikli elektronik imzalar gerektiğinde Enterprise’ı seçin. Pro ve Enterprise, ücretli ürün hattı olan NextPDF Premium’un iki lisanslı sürümüdür; bkz. Yolunuzu seçin.

Evet, çekirdek için. nextpdf/core, "license": "Apache-2.0" bildirir ve tam Apache License 2.0 metnini LICENSE dosyasında gönderir. Atıf ve NOTICE gereksinimlerine (Apache-2.0 §4) tabi olarak çekirdeği kullanabilir, değiştirebilir, yeniden dağıtabilir ve ticarileştirebilirsiniz. NextPDF Pro ve NextPDF Enterprise, sahipli ticari sürümlerdir ve o lisans tarafından kapsanmaz. NextPDF adı ve logosu, kod lisansından ayrı olarak ticari markalardır. Bkz. Ürün lisanslama.

PHP 8.4. Paket kısıtlaması >=8.4 <9.0’dır, dolayısıyla Composer PHP 8.3 ve altında ya da PHP 9’da kurmayı reddeder. NextPDF tek bir modern çalışma zamanını hedefler ve onun dil özelliklerini doğrudan kullanır. Bkz. NextPDF’i kurun.

Harici bir ikiliye veya başsız bir tarayıcıya ihtiyacı var mı?

“Harici bir ikiliye veya başsız bir tarayıcıya ihtiyacı var mı?” başlıklı bölüm

Hayır, çekirdek motor için değil. Yerel motor, harici bir PDF ikilisi ve zorunlu bir başsız tarayıcı olmadan PHP ve standart PHP uzantılarında uygulanmıştır: akıcı API ve yerleşik writeHtml() HTML işlem hattı, tarayıcı olmadan ve ağ çağrısı olmadan süreç içinde çalışır. Bir Chrome veya Chromium ikilisi isteğe bağlıdır ve yalnızca, ayrı olarak nextpdf/artisan olarak kurduğunuz Artisan işleyicisi (writeHtmlChrome()) için gereklidir. Cloudflare ve Gotenberg köprüleri de isteğe bağlıdır ve bir hizmete dışarı çağrı yapar. Bkz. Yolunuzu seçin.

Çekirdeğin composer.json dosyası, yaygın olarak bulunan PHP uzantıları olan ext-mbstring, ext-zlib, ext-intl, ext-gd, ext-curl ve ext-openssl standart uzantılarını gerektirir; bunların çalışma zamanınızda kurulu ve etkin olduğundan emin olun. ext-curl, isteğe bağlı ağ gidiş-dönüşlerini — RFC 3161 zaman damgalama ve uzak varlık getirmeleri — destekler, dolayısıyla çevrimdışı yerel üretim onu kullanmaz, ancak Composer onu yine de sert bir gereksinim olarak listeler. Tümleştirmeler, başlatma sırasında ihtiyaç duydukları uzantıları denetler ve eksik olan varsa açık bir mesajla durur. Tam liste paket composer.json dosyasında bulunur; bkz. NextPDF’i kurun.

Çekirdeği kurun, ardından akıcı API ile bir belge oluşturun:

<?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');

Adım adım inceleyin: İlk PDF’iniz.

Core’un herhangi bir özellik sınırı veya filigranı var mı?

“Core’un herhangi bir özellik sınırı veya filigranı var mı?” başlıklı bölüm

Hayır. Core, Core özellik kümesi için filigransız ve dürtme ekranı olmayan açık kaynaklı motordur. Core özellik kümesi için — üretim, inceleme, şifreleme, PDF/A ve PDF/UA çıktı temelleri ve yazılım anahtarlı B-B/B-T imzalama (Premium uzun vadeli doğrulama ve anahtar saklama iş akışları olmadan) — Core eksiksizdir. Değerlendirme filigranı yalnızca, tam Pro ve Enterprise özellik kümesini kaldırılabilir bir işaret ardında test ettiğiniz bir Premium değerlendirme yetkisinde geçerlidir; ücretli bir lisans, hiçbir uygulama kodu değişikliği olmadan onu kaldırır. Bkz. Lisanslama ve etkinleştirme.

Pro veya Enterprise’a yükseltmek için kod değişikliklerine ihtiyacım var mı?

“Pro veya Enterprise’a yükseltmek için kod değişikliklerine ihtiyacım var mı?” başlıklı bölüm

Çoğunlukla hayır. nextpdf/premium kurduğunuzda, çerçeve tümleştirmeleri ve sunucu onu otomatik olarak algılar ve ek yetenekleri açığa çıkarır. Çoğu uygulama aynı üst düzey tümleştirme noktalarını korur; bazı Premium iş akışları yapılandırma veya özelliğe özgü çağrılar gerektirebilir. İmzalı bir lisans zarfını dağıtım başına bir kez etkinleştirirsiniz. Bkz. Lisanslama ve etkinleştirme.

Çekirdeği kapalı kaynaklı bir ticari üründe kullanabilir miyim?

“Çekirdeği kapalı kaynaklı bir ticari üründe kullanabilir miyim?” başlıklı bölüm

Evet. Apache License 2.0’ın ticari olmayan bir kısıtlaması yoktur. Atıf ve NOTICE yükümlülüklerini yerine getirmeniz ve kod lisansını NextPDF markasını kullanma izni olarak görmemeniz koşuluyla çekirdeği kapalı kaynaklı, ücretli ya da dahili ticari ürünlerde kullanabilirsiniz. Bkz. Ürün lisanslama ve Ticari marka ve marka kullanımı.

PDF’leri okuyup ayrıştırabilir mi, yoksa yalnızca yazabilir mi?

“PDF’leri okuyup ayrıştırabilir mi, yoksa yalnızca yazabilir mi?” başlıklı bölüm

İkisi de, bir uyarı ile. NextPDF, PDF’leri yazar ve aynı zamanda okur: Inspect modülü, mevcut bir dosyayı karmaşıklık, yazı tipi, görüntü ve risk verisiyle yapılandırılmış bir InspectResult’a okur ve mevcut belgeleri birleştirip bölebilirsiniz. Inspect, deneysel olarak işaretlidir, dolayısıyla sonuç şekli minör sürümler arasında değişebilir — onu uzun ömürlü bir sözleşme olarak değil, tanılama ve geçit kontrolü için kullanın. Bkz. Inspect modülü.

Evet. Hem akıcı API hem de yerleşik writeHtml() işlem hattı, rasterleştirilmiş görüntüler değil, gerçek metin içeriği yayar, dolayısıyla çıktı seçilebilir ve aranabilirdir. Artisan işleyicisinin writeHtmlChrome()’u da metni seçilebilir tutar. Bkz. İlk PDF’iniz.

Çekirdek motor, saf PHP’den bir HTML işlem hattı içerir. writeHtml(), desteklenen bir CSS alt kümesiyle bir HTML parçasını doğrudan sayfaya, tarayıcı olmadan ve ağ çağrısı olmadan işler. Bir düzen tam tarayıcı sadakati gerektirdiğinde — örneğin flexbox, grid veya web yazı tipleri — Artisan işleyicisini kurun ve writeHtmlChrome() çağırın. Bir özelliğe güvenmeden önce CSS destek matrisi sayfasını denetleyin.

Helvetica gibi yerleşik standart yazı tipi takma adları, basit WinAnsi metni için kurulum olmadan çalışır, dolayısıyla ilk belgenizin yazı tipi dosyasına ihtiyacı yoktur. Yerleşik Latin standart yazı tipleri temel WinAnsi metnine uygundur; Symbol ve ZapfDingbats kendi kodlamalarını kullanır; başka betikleri işlemek için, karakter haritası ve şekillendirme yolu o betiği destekleyen bir yazı tipini kaydeder ve gömersiniz. Bkz. yazı tipi destek matrisi ve Font modülü.

PDF/A ve erişilebilirliği (PDF/UA) destekliyor mu?

“PDF/A ve erişilebilirliği (PDF/UA) destekliyor mu?” başlıklı bölüm

Evet, açık bir sınırla: bir profil için destek, uyumluluk değildir. Çekirdek, uyumluluk ayırıcısını ve etiketleme temellerini gönderir — enableTaggedPdf(), PDF/UA iş akışlarında kullanılan etiketli-PDF yapısı çıktısını etkinleştirir ve enablePdfA(), Core’da bir PDF/A çıktı profili seçer; Premium sürümler bunların üzerine daha üst düzey arşivleme yazma iş akışları ve araçlar (doğrulama, ilke ve üretim işlemleri) ekler. NextPDF, bir profilin gerektirdiği yapısal yapıtları yayar; veraPDF gibi bağımsız bir doğrulayıcı, belirli bir dosyanın gerçekten uyumlu olup olmadığına karar verir. Bkz. Uyumluluk ve Erişilebilirlik modülü.

Çekirdek, yapılandırılmış imzalama sağlayıcısı aracılığıyla desteklenen yazılım anahtarlı algoritmaları kullanarak Şifreleme Mesajı Söz Dizimi (CMS) SignedData imzaları üretebilir ve RFC 3161 zaman damgaları (B-T düzeyi) uygulayabilir. Kodunuz SignerInterface sözleşmesine bağlıdır, dolayısıyla aynı çağrı sürümler arasında çalışır. PAdES B-LT ve B-LTA uzun vadeli düzeyleri, HSM ve PKCS#11 anahtar saklama ile nitelikli imzalar Enterprise yetenekleridir; bulut ve KMS destekli imzalama iş akışları Pro’da bulunur. Core, B-B ve B-T temel yapılarını üretir. Bkz. İmzalama modülü.

Çalışan-güvenli ve iş parçacığı-güvenli mi?

“Çalışan-güvenli ve iş parçacığı-güvenli mi?” başlıklı bölüm

Bir Document tek kullanımlıktır: birini yazdıktan sonra, onu yeniden kullanmak yerine bir sonraki belge için taze bir örnek oluşturun. Bu, onu PHP-FPM, kuyruk çalışanları ve çerçevelerin kullandığı istek başına, iş başına modele doğal bir uyum hâline getirir — her iş birimi kendi belgesini oluşturur. Güvenilmeyen girdiyi ayrıştırdığınızda veya oluşturduğunuzda, o işi kısıtlı bir çalışanda çalıştırın ve kaynak korumalarını (maxFiles, maxTotalBytes, maxBytes) sıkı tutun. Bkz. Document modülü ve motor tehdit modeli.

Yapısal olarak belirlenimcidir, ancak varsayılan olarak baytça aynı değildir. Aynı girdinin iki çalıştırması yapısal olarak eşit PDF’ler üretir, ancak her biri taze bir fragman ve belge /ID’si taşır, dolayısıyla baytlar farklı olur. İmzalama ve zaman damgaları, tasarım gereği çalıştırma başına daha fazla değişiklik ekler. Karşılaştırmalarınızı, baytların çalıştırmalar arasında aynı olmasını beklemek yerine, yapısal eşitlik etrafında planlayın ya da değişken alanları normalleştirin.

Dağıtılan her çalışanın aynı motor sürümünü çözümlemesi için composer.lock dosyasını işleyin, ardından onu herhangi bir PHP kitaplığı gibi dağıtın — yerel üretimin bir arka plan programına, tarayıcıya ya da ağa ihtiyacı yoktur; zaman damgalama (B-T), uzak varlıklar veya isteğe bağlı tarayıcı köprüsü yapılandırılmış ağ erişimi gerektirir. PHP olmayan hizmetlerin motora ihtiyacı varsa, onu Model Context Protocol (MCP), REST ve gRPC üzerinden açığa çıkaran NextPDF Server’ı çalıştırın. Premium için, imzalı lisans zarfını dağıtımın yüklediği yere yerleştirin ve bir kerelik etkinleştirme adımını çalıştırın; önbelleğe alınmış lisans durumu, normal işlemenin bir lisans hizmetine ihtiyaç duymaması anlamına gelir, dolayısıyla hava boşluklu dağıtımlar desteklenir. Bkz. NextPDF’i kurun ve Lisanslama ve etkinleştirme.

Bir şey ters gittiğinde bir başarısızlığı nereye götürürüm?

“Bir şey ters gittiğinde bir başarısızlığı nereye götürürüm?” başlıklı bölüm

NextPDF, hataları bir dize hata koduyla değil, PHP istisna sınıfıyla bildirir ve bağlam farkındalıklı istisnalar yapılandırılmış tanılama alanları taşır. Sorun giderme, yaygın imza, PDF/A, PDF/UA, yazı tipi, etiketleme ve şifreleme başarısızlıklarını nedenlerine ve çözümlerine eşler.