İçeriğe geç

CodeIgniter 4 için NextPDF'i yapılandırma

NextPDF yapılandırması NextPDF\CodeIgniter\Config\NextPdf sınıfında yer alır; bu sınıf, CodeIgniter BaseConfig alt sınıfıdır. Değerleri app/Config/ içinde sınıfı genişleterek ya da .env anahtarlarını nextpdf. önekiyle ayarlayarak geçersiz kılabilirsiniz. Varsayılanlar ek yapılandırma olmadan çalışır.

NextPdf, türlenmiş bir BaseConfig sınıfıdır. Bu sınıf, kasıtlı olarak final değildir. CodeIgniter’da uygulama yapılandırması paket sınıfını genişletir; böylece uygulamanız varsayılanları geçersiz kılabilir. CodeIgniter yapılandırmayı oluştururken BaseConfig, iç içe geçmiş dizi anahtarları dâhil her genel özellik için ortam geçersiz kılmalarını çözümler.

Varsayılan yazı tipi ve önbellek yolları CodeIgniter’in WRITEPATH sabitini kullanır: WRITEPATH . 'fonts' ve WRITEPATH . 'cache/nextpdf'.

Aşağıdaki her anahtar, NextPdf sınıfının bir genel özelliğidir. Varsayılanlar paket kaynağına göre doğrulanmıştır.

AnahtarTürVarsayılanAçıklama
pageFormatstringA4Sayfa biçimi.
orientationstringPP dikey, L yatay anlamına gelir.
unitstringmmÖlçü birimi.
defaults.creatorstringNextPDFTaşınabilir Belge Biçimi (PDF) oluşturucusu üst verisi.
defaults.authorstring''Yazar üst verisi; boş olduğunda atlanır.
defaults.languagestringenBelgenin dil etiketi.
defaults.margin_topfloat10.0Üst kenar boşluğu.
defaults.margin_rightfloat10.0Sağ kenar boşluğu.
defaults.margin_bottomfloat10.0Alt kenar boşluğu.
defaults.margin_leftfloat10.0Sol kenar boşluğu.
defaults.font_familystringdejavusansVarsayılan yazı tipi ailesi.
defaults.font_sizefloat12.0Varsayılan yazı tipi boyutu.
defaults.trim_boxlist<float>|nullnullAyarlanırsa kırpma kutusu.
defaults.bleed_boxlist<float>|nullnullAyarlanırsa taşma kutusu.

Paket, defaults.creator ve defaults.language anahtarlarını her belgeye uygular. defaults.author anahtarını yalnızca değer boş olmadığında uygular.

AnahtarTürVarsayılanAçıklama
fontsPathstringWRITEPATH/fontsYazı tipi dosyası dizini.
cachePathstringWRITEPATH/cache/nextpdfÖnbellek dizini.
preloadFontslist<string>[]Önyükleme sırasında hazırlanan mutlak yazı tipi yolları.
imageCacheMbint50En son kullanılan (LRU) görüntü önbelleği bütçesi, megabayt (MB) cinsinden.
fontCacheLockingbooltrueÖn ısıtmadan sonra yazı tipi önbelleğini kilitler.

Yazı tipi kayıt defteri, fontsPath yolunda bir akış sarmalayıcı (://) ya da boş bayt bulunursa bunu reddeder ve çalışma zamanı hatası oluşturur. Bkz.: /integrations/codeigniter/security-and-operations/.

AnahtarTürVarsayılanAçıklama
pdfastring|nullnullPDF/A sürümü: 4, 4e, 4f.
iccProfile.rgbstring|nullnullKırmızı, yeşil ve mavi (RGB) Uluslararası Renk Konsorsiyumu (ICC) profili yolu.
iccProfile.cmykstring|nullnullCamgöbeği, macenta, sarı ve anahtar (CMYK) ICC profili yolu.

pdfa yalnızca NextPDF Pro kurulu olduğunda ve arşivleme yeteneği kullanılabilir olduğunda etkili olur. Yalnızca çekirdek sürümde bu anahtar yok sayılır.

AnahtarTürVarsayılanAçıklama
signature.enabledboolfalseİmzalayıcı hizmetini etkinleştirir.
signature.certificatestring|nullnullSertifika dosyası yolu.
signature.private_keystring|nullnullÖzel anahtar dosyası yolu.
signature.passwordstring''Özel anahtar parolası.
signature.extra_certslist<string>[]Ek zincir sertifikası yolları.
signature.levelstringB-Bİmza düzeyi tanımlayıcısı.

Services::pdfSigner() varsayılan olarak null döndürür; bunun tek istisnası signature.enabled değerinin true olması ve signature.certificate değerinin boş olmamasıdır. Varsayılan düzey B-B değeridir. NextPDF Pro, B-B temel imzasını sağlar. Uzun vadeli doğrulama düzeyleri ayrı bir Enterprise yeteneğidir ve burada değil, Premium referansında belgelenmiştir.

PDF Gelişmiş Elektronik İmzaları (PAdES) B-T, Core motoru tarafından üretilir. CodeIgniter tümleştirmesi kendi başına B-T eklemez ve Pro, yalnızca B-B temelini sunar. Bu belge, Pro B-T desteğine ulaşırsa ve ulaştığında güncellenecektir.

AnahtarTürVarsayılanAçıklama
tsa.urlstring|nullnullZaman Damgası Otoritesi (TSA) uç noktası URL’si.
tsa.usernamestring''TSA temel kimlik doğrulama kullanıcı adı.
tsa.passwordstring''TSA temel kimlik doğrulama parolası.
tsa.certstring|nullnullİstemci sertifikası yolu.
tsa.keystring|nullnullİstemci anahtarı yolu.
tsa.timeoutint30Saniye cinsinden istek zaman aşımı.
tsa.pinned_public_keyslist<string>[]Sabitlenmiş TSA açık anahtarları.
tsa.warn_on_key_rotationbooltrueTSA anahtarı döndürüldüğünde uyarır.
tsa.allow_insecure_httpboolfalseTSA için düz metin HTTP’ye izin verir.

Services::tsaClient() çağrısı null döndürür; bunun koşulu, tsa.url değerinin null ya da boş bir dize olmasıdır. Zaman damgası gerektiren bir imza düzeyi seçtiğinizde, imzalayıcı TSA istemcisini otomatik olarak ekler.

AnahtarTürVarsayılanAçıklama
ocspCache.enabledbooltrueÇevrim içi sertifika durumu protokolü (OCSP) yanıt önbelleğini etkinleştirir.
ocspCache.ttlint86400Saniye cinsinden önbellek yaşam süresi (TTL).
ocspCache.directorystring|nullnullÖnbellek dizini; null olduğunda motor varsayılanı kullanılır.
AnahtarTürVarsayılanAçıklama
artisan.chrome_binarystring|nullnullChrome/Chromium ikili dosyasının yolu.
artisan.render_timeoutint30Saniye cinsinden işleme zaman aşımı.
artisan.default_cssstring''Varsayılan stil sayfası.
artisan.no_sandboxboolfalseChrome’a --no-sandbox geçirir.
artisan.max_html_sizeint5000000Bayt cinsinden en büyük girdi HTML boyutu.

Chrome işleyicisi, belge için yalnızca artisan.chrome_binary ayarlandığında ve nextpdf/artisan kurulu olduğunda yapılandırılır.

BaseConfig, ortam geçersiz kılmalarını özellik bazında çözümler. Arama anahtarı, küçük harfli kısa sınıf adıdır (nextpdf); ardından özellik yolu gelir. İç içe geçmiş dizi anahtarlarını adreslemek için noktaları kullanın. Hem noktalı hem de alt çizgili biçimler kabul edilir.

.env
nextpdf.fontsPath = /var/www/writable/fonts
nextpdf.imageCacheMb = 100
nextpdf.signature.enabled = true
nextpdf.signature.certificate = /etc/nextpdf/cert.pem
nextpdf.signature.private_key = /etc/nextpdf/key.pem
nextpdf.tsa.url = https://tsa.example.com/timestamp
nextpdf.artisan.chrome_binary = /usr/bin/chromium
nextpdf.defaults.creator = Acme Billing
nextpdf.defaults.language = zh-TW

Önek, küçük harfli kısa sınıf adıdır. Önek nextpdf olarak kalır — sınıf NextPdf biçiminde yazılmış olsa da. Tam nitelikli biçimi de kullanabilirsiniz (NextPDF\CodeIgniter\Config\NextPdf.fontsPath).

Türlenmiş, sürüm denetimli yapılandırma için paket sınıfını app/Config/ içinde genişletin. CodeIgniter, paket varsayılanı yerine uygulama sınıfını yükler. Bu dosya bir sınıf bildirir ve hiçbir yan etkiye yol açmaz. Böylece dosya, bir dosyanın ya sembolleri bildirmesi ya da yan etkili mantık çalıştırması ama ikisini birden yapmaması yönündeki PSR-1 beklentisiyle uyumlu kalır (PSR-1 §x1.x1.p3).

<?php
declare(strict_types=1);
namespace Config;
use NextPDF\CodeIgniter\Config\NextPdf as BaseNextPdf;
final class NextPdf extends BaseNextPdf
{
public int $imageCacheMb = 100;
public string $fontsPath = WRITEPATH . 'fonts';
/** @var array{creator: string, author: string, language: string, margin_top: float, margin_right: float, margin_bottom: float, margin_left: float, font_family: string, font_size: float, trim_box: list<float>|null, bleed_box: list<float>|null} */
public array $defaults = [
'creator' => 'Acme Billing',
'author' => 'Acme, Inc.',
'language' => 'en',
'margin_top' => 12.0,
'margin_right' => 12.0,
'margin_bottom' => 12.0,
'margin_left' => 12.0,
'font_family' => 'dejavusans',
'font_size' => 11.0,
'trim_box' => null,
'bleed_box' => null,
];
}
  • İç içe geçmiş tek bir anahtarı .env ile geçersiz kılmak yalnızca o anahtarı değiştirir; dizinin geri kalanı varsayılan değerlerini korur.
  • .env değerleri dizedir. CodeIgniter, true/false ile sayısal dizeleri tür dönüşümüne tabi tutar. Birebir dize olarak kalması gereken değerleri tırnak içine alın.
  • Sınıfı kısmi bir defaults dizisiyle genişletmek tüm dizinin yerini alır. Yukarıda gösterildiği gibi her anahtarı dâhil edin.

Sertifika ve anahtar yollarını kaynak denetiminin dışında tutun. Bunları .env ya da bir gizli bilgi yöneticisi aracılığıyla sağlayın. tsa.allow_insecure_http üretimde false olarak kalmalıdır. Bkz.: /integrations/codeigniter/security-and-operations/.

  • Uygulama yapılandırmasını genişleten dosya bir sınıf bildirir ve hiçbir yan etkiye yol açmaz (PSR-1 §x1.x1.p3).

NextPDF çekirdeği Apache-2.0 lisanslıdır. signature.* ve pdfa anahtarları yalnızca NextPDF Pro ya da Enterprise kurulu olduğunda etkili olur. CodeIgniter paketi ilgili hizmet yöntemlerini sunar. Bu yöntemler, eşleşen Premium paketi kurulana kadar null döndürür. Bkz.: </get-license/?intent=codeigniter-signing>.

  • /integrations/codeigniter/install/ — paketi kurun.
  • /integrations/codeigniter/quickstart/ — ilk PDF’iniz.
  • /integrations/codeigniter/production-usage/ — DI ile bağlanan denetleyiciler ve kuyruk işleri.
  • /integrations/codeigniter/security-and-operations/ — imzalama ve yol yapılandırmasını sertleştirme.