Sabit liste referansı
Bir bakışta
“Bir bakışta” başlıklı bölümBirçok NextPDF yazım yöntemi, yalın bir dize ya da tamsayı yerine türlenmiş bir
enum alır. Sabit liste, sözleşmedir: bağımsız değişkeni sabit, geçerli bir
kümeyle sınırlar ve IDE ile PHPStan, bunun dışındaki her değeri reddeder. Bu
sayfa, genel Document ve Config API’si aracılığıyla ayarladığınız (veya aldığınız)
sabit listeler — artı bir motor düzeyi renk sabit listesi (RenderingIntent) —
için izin verilen değer aramasıdır; bu sonuncusu, durumları genel renk
sözleşmesinin parçası olduğu için dahil edilmiştir ve göründüğü yerde motor
düzeyi olarak işaretlenmiştir.
Bu, yapılandırma referansının tamamlayıcısıdır. Config nesnesi
size hangi düğmeyi çevireceğinizi söylerken, bu sayfa o düğmenin hangi
değerleri kabul ettiğini söyler. Her giriş; sabit listenin tam nitelikli sınıf
adını (FQCN), destek türünü, kaynaktan kopyalanan tam durum listesini ve onu
alan genel yöntemi listeler.
Derin motor içi sabit listeler (HTML/CSS yerleşimi, soyut sözdizimi ağacı, CLI,
şekillendirici iç bileşenleri) kasıtlı olarak hariç tutulmuştur — bunları asla
ayarlamazsınız. Aşağıdakilerin neredeyse tamamı, genel API aracılığıyla
ilettiğiniz bir değerdir; tek istisna olan RenderingIntent, genel ayarlayıcısı
olmayan bir motor düzeyi renk sabit listesidir ve eksiksizlik için listelenip
göründüğü yerde böyle etiketlenmiştir.
Destek türleri
“Destek türleri” başlıklı bölümPHP sabit listeleri iki biçimde gelir ve biçim, değeri nasıl yazdığınızı değiştirir:
- Bir destekli sabit liste (
enum X: stringveyaenum X: int), her durum için skaler birvaluetaşır; böyleceX::from('...')/$case->valueüzerinden gidip gelir. Buradaki sabit listelerin çoğu desteklidir. - Bir saf sabit listenin (destek türü olmayan
enum X) durumları vardır ama skaler değeri yoktur; ona her zaman durum üzerinden başvurursunuz (X::SomeCase). YalnızcaUnderlineStylesaftır.
Her iki biçimde de durumun kendisini geçirirsiniz — örneğin
$pdf->addPage(orientation: Orientation::Landscape). Destek türü yalnızca seçimi
serileştirmeniz veya yapılandırmadan geri okumanız gerektiğinde önem taşır.
Sayfa kurulumu
“Sayfa kurulumu” başlıklı bölümOrientation
“Orientation” başlıklı bölümDikey veya yatay sayfa geometrisi. Bir sayfa eklerken geçirilir; motor, eşleştirmek için genişlik ile yüksekliği takas eder.
| Özellik | Değer |
|---|---|
| FQCN | NextPDF\Contracts\Orientation |
| Destek | string |
| Şu yolla ayarlanır | Document::addPage(?PageSize $size = null, Orientation $orientation = Orientation::Portrait) |
| Durum | Destek değeri |
|---|---|
Portrait | 'P' |
Landscape | 'L' |
use NextPDF\Contracts\Orientation;use NextPDF\ValueObjects\PageSize;
$pdf->addPage(PageSize::a4(), Orientation::Landscape);Çizim ve grafikler
“Çizim ve grafikler” başlıklı bölümLineCap
“LineCap” başlıklı bölümÇizilmiş bir açık yolun nasıl sonlandığı. ISO 32000-2:2020 §8.4.3.3.
| Özellik | Değer |
|---|---|
| FQCN | NextPDF\Graphics\LineCap |
| Destek | int |
| Şu yolla ayarlanır | LineStyle yapılandırma nesnesi (new LineStyle(cap: ...)), Document::setLineStyle(LineStyle $style) ile uygulanır |
| Durum | Destek değeri | Anlam |
|---|---|---|
Butt | 0 | Uç noktada kare biten, çıkıntısız. |
Round | 1 | Uç noktada yarım daire yay. |
Square | 2 | Uç noktanın ötesine çizgi genişliğinin yarısı kadar uzanan kare çıkıntı. |
LineJoin
“LineJoin” başlıklı bölümİki çizilmiş parçanın bir köşede nasıl birleştiği. ISO 32000-2:2020 §8.4.3.4.
| Özellik | Değer |
|---|---|
| FQCN | NextPDF\Graphics\LineJoin |
| Destek | int |
| Şu yolla ayarlanır | LineStyle yapılandırma nesnesi (new LineStyle(join: ...)), Document::setLineStyle(LineStyle $style) ile uygulanır |
| Durum | Destek değeri | Anlam |
|---|---|---|
Miter | 0 | Köşe çıtası sınırına kadar uzatılmış keskin köşe. |
Round | 1 | Dış kenarları birleştiren dairesel yay. |
Bevel | 2 | Dış kenarları birleştiren çapraz. |
LineCap ve LineJoin doğrudan bir Document yöntemine geçirilmez — bunlar,
değişmez NextPDF\Graphics\LineStyle değer nesnesinin alanlarıdır; siz de bu
nesneyi setLineStyle()’a verirsiniz:
use NextPDF\Graphics\{LineStyle, LineCap, LineJoin};
$style = new LineStyle(width: 1.5, cap: LineCap::Round, join: LineJoin::Bevel);$pdf->setLineStyle($style);$pdf->line(20, 20, 120, 20);BlendMode
“BlendMode” başlıklı bölümSonraki çizime uygulanan saydamlık karıştırma işlevi. İlk on iki durum ayrılabilir; son dördü ayrılamaz HSL kipleridir. ISO 32000-2:2020 §11.3.5.
| Özellik | Değer |
|---|---|
| FQCN | NextPDF\Graphics\BlendMode |
| Destek | string |
| Şu yolla ayarlanır | Document::setAlpha(float $alpha, BlendMode $mode = BlendMode::Normal) |
| Durum | Destek değeri | Durum | Destek değeri |
|---|---|---|---|
Normal | 'Normal' | HardLight | 'HardLight' |
Multiply | 'Multiply' | SoftLight | 'SoftLight' |
Screen | 'Screen' | Difference | 'Difference' |
Overlay | 'Overlay' | Exclusion | 'Exclusion' |
Darken | 'Darken' | Hue | 'Hue' |
Lighten | 'Lighten' | Saturation | 'Saturation' |
ColorDodge | 'ColorDodge' | Color | 'Color' |
ColorBurn | 'ColorBurn' | Luminosity | 'Luminosity' |
use NextPDF\Graphics\BlendMode;
$pdf->setAlpha(0.6, BlendMode::Multiply);$pdf->rect(20, 20, 80, 40, 'F');RenderingIntent
“RenderingIntent” başlıklı bölümRenk dönüşümü sırasında gamut dışı renklerin nasıl yeniden eşlendiği. ri
işleci olarak yayılır. ISO 32000-2:2020 §8.6.5.8 (Tablo 71).
Bu sayfadaki diğer sabit listelerin aksine, RenderingIntent’in genel bir
Document veya Config ayarlayıcısı yoktur — bu, bir motor düzeyi sabit
listedir. Doğrudan iç çizim motorunda (DrawingEngine::setRenderingIntent())
uygulanır; bu da ri işlecini geçerli içerik akışına yayar. Durumları genel
renk sözleşmesinin parçası olduğu için onu eksiksizlik adına burada listeleriz;
ancak bu sayfanın geri kalanının belgelediği geliştiriciye dönük yazım API’sinin
parçası değildir; çizim motorunu, ona karşı program yazdığınız giriş noktası
değil, bir iç sınıf olarak görün.
| Özellik | Değer |
|---|---|
| FQCN | NextPDF\Graphics\RenderingIntent |
| Destek | string |
| Şu yolla ayarlanır | Yalnızca motor düzeyi — iç çizim motorunda uygulanır; genel Document/Config ayarlayıcısı yoktur. |
| Durum | Destek değeri | Anlam |
|---|---|---|
RelativeColorimetric | 'RelativeColorimetric' | Gamut içi renkleri korur; gamut dışını kırpar. |
AbsoluteColorimetric | 'AbsoluteColorimetric' | Kâğıt beyazı dahil, kolorimetrik değerleri tam olarak korur. |
Saturation | 'Saturation' | Ton/parlaklık pahasına canlı doygunluğu korur. |
Perceptual | 'Perceptual' | Görsel ilişkileri korur; gamut sıkıştırmasını yumuşatır. |
OutputColorProfile
“OutputColorProfile” başlıklı bölümBelgenin /OutputIntent değerinde bildirilen çalışma alanı renk profili.
Varsayılan DeviceRGB, eski “ek OutputIntent yok” davranışını korur; başka
herhangi bir durum seçmek, yazıcının paketlenmiş ICC profiliyle bir /GTS_PDFX
OutputIntent yaymasını sağlar (ISO 32000-2:2020 §14.11.5). Bu, çağrı başına bir
yöntem değil, bir Config değeridir — Document’a geçirdiğiniz yapılandırma
nesnesinde ayarlayın.
| Özellik | Değer |
|---|---|
| FQCN | NextPDF\Core\OutputColorProfile |
| Destek | string |
| Şu yolla ayarlanır | Config::withOutputColorProfile(OutputColorProfile $profile) (Config kurucusunun $outputColorProfile parametresi) |
| Durum | Destek değeri | Notlar |
|---|---|---|
DeviceRGB | 'device-rgb' | Varsayılan. Ek bir OutputIntent yayılmaz. |
Srgb | 'srgb' | Açık sRGB OutputIntent (IEC 61966-2-1). Geniş gamut değil. |
DisplayP3 | 'display-p3' | Display-P3 geniş gamut (D65). |
Rec2020 | 'rec2020' | ITU-R BT.2020 / Rec.2020 geniş gamut. |
A98RGB | 'a98-rgb' | Adobe RGB 1998. |
ProphotoRGB | 'prophoto-rgb' | ProPhoto RGB / ROMM RGB (D50). |
use NextPDF\Core\{Config, OutputColorProfile};
$config = (new Config())->withOutputColorProfile(OutputColorProfile::DisplayP3);TextRenderingMode
“TextRenderingMode” başlıklı bölümGliflerin doldurulup doldurulmadığı, çizilip çizilmediği, kırpılıp kırpılmadığı ya da görünmez olarak işlenip işlenmediği (görünmez kip, aranabilir OCR katmanlarının temelidir). ISO 32000-2:2020 §9.3.6, Tablo 104.
| Özellik | Değer |
|---|---|
| FQCN | NextPDF\Content\TextRenderingMode |
| Destek | int |
| Şu yolla ayarlanır | Document::setTextRenderingMode(TextRenderingMode $mode) |
| Durum | Destek değeri | Anlam |
|---|---|---|
Fill | 0 | Glifleri doldur. |
Stroke | 1 | Glif anahatlarını çiz. |
FillStroke | 2 | Önce doldur, sonra çiz. |
Invisible | 3 | Görünmez işle (aranabilir OCR katmanları). |
FillClip | 4 | Doldur ve kırpma yoluna ekle. |
StrokeClip | 5 | Çiz ve kırpma yoluna ekle. |
FillStrokeClip | 6 | Doldur, çiz ve kırp. |
Clip | 7 | Yalnızca kırpma yoluna ekle (görünür işleme yok). |
UnderlineStyle
“UnderlineStyle” başlıklı bölümBir altı çizili süslemesinin nasıl çizildiği. Buradaki tek saf sabit liste budur; bu nedenle ona her zaman durum üzerinden başvurursunuz.
| Özellik | Değer |
|---|---|
| FQCN | NextPDF\Contracts\UnderlineStyle |
| Destek | saf (destek değeri yok) |
| Şu yolla ayarlanır | Document::setUnderlineStyle(UnderlineStyle $style) |
| Durum | Anlam |
|---|---|
RectFill | Taban çizgisinin altında doldurulmuş dikdörtgen (TCPDF uyumlu varsayılan). |
StrokeLine | Taban çizgisinin altında çizilmiş çizgi (anlamsal çizgi çizimi). |
use NextPDF\Content\TextRenderingMode;use NextPDF\Contracts\UnderlineStyle;
$pdf->setTextRenderingMode(TextRenderingMode::Invisible); // OCR text layer$pdf->setUnderlineStyle(UnderlineStyle::StrokeLine);Uygunluk
“Uygunluk” başlıklı bölümConformanceMode
“ConformanceMode” başlıklı bölümBelge düzeyi uygunluk sözleşmesi: yazıcının hangi ISO bölümüne uyması gerektiği
ve yapısal etiketlemenin gerekli olup olmadığı. Varsayılan Plain, kısıtlamasız
PDF 2.0 çıktısıdır. ISO 14289-2:2024 (PDF/UA-2) ve ISO 19005 PDF/A bölümleri.
| Özellik | Değer |
|---|---|
| FQCN | NextPDF\Conformance\ConformanceMode |
| Destek | string |
| Şu yolla ayarlanır | Document::setConformanceMode(ConformanceMode $mode) (düşük düzeyli kaçış kapısı; Core’da PDF/UA-2 için enableTaggedPdf()’i, PDF/A için enablePdfA()’yı — yalnızca Premium — tercih edin) |
| Durum | Destek değeri | Sözleşme |
|---|---|---|
Plain | 'plain' | PDF 2.0, kısıtlamasız (varsayılan). |
PdfUa1 | 'pdfua1' | ISO 14289-1 (Etiketli PDF/UA-1). |
PdfUa2 | 'pdfua2' | ISO 14289-2:2024 (Etiketli PDF/UA-2). |
PdfA2 | 'pdfa2' | ISO 19005-2 (PDF/A-2). |
PdfA3 | 'pdfa3' | ISO 19005-3 (PDF/A-3 profil ayırıcısı). |
PdfA3b | 'pdfa3b' | ISO 19005-3 PDF/A-3b (Basic). |
PdfA3u | 'pdfa3u' | ISO 19005-3 PDF/A-3u (Unicode olarak çıkarılabilir). |
PdfA4 | 'pdfa4' | ISO 19005-4:2020 (PDF/A-4 profil ayırıcısı). |
PdfA4e | 'pdfa4e' | ISO 19005-4:2020 PDF/A-4e (Engineering). |
PdfA4f | 'pdfa4f' | ISO 19005-4:2020 PDF/A-4f (Dosya ekleri). |
Sabit liste, yüklem yardımcıları taşır — isTagged(), isAccessibility(),
isArchival() ve pdfaPart() — böylece yazıcı tarafı kapıları, kipi yeniden
türetmek yerine ona göre dallanır.
Yalnızca-Core bir yapının gerçekte hangi durumları kullanabileceği. enum
türü her durumu listeler, ama bir durumu listelemek, o uygunluğu Core’dan
üretebilmekle aynı şey değildir:
- Core (ek paket yok):
Plain,PdfUa1vePdfUa2. Etiketli PDF / PDF/UA yolu Core’a yerleşiktir —enableTaggedPdf(), PDF/UA yazım yolunu seçer (varsayılan olarakPdfUa2) ve hiçbir lisans denetimi olmadan yapı ağacını bağlar. - Yalnızca-Premium: her PDF/A durumu (
PdfA2,PdfA3,PdfA3b,PdfA3u,PdfA4,PdfA4e,PdfA4f). Gerçek PDF/A çıktısı, bir Premium katmanı özelliği olanenablePdfA()tarafından üretilir (ADR-011):nextpdf/propaketini gerektirir ve o paket yokken birInvalidConfigExceptionile kapalı biçimde başarısız olur (“install the nextpdf/pro package”).
setConformanceMode(), yalnızca ayırıcı alanını yazan düşük düzeyli bir kaçış
kapısıdır — PDF/A makinesini kurmaz. Bu nedenle yalnızca-Core bir yapıda
onun aracılığıyla bir PdfA* durumu ayarlamak, belgeye enablePdfA()’nın
sağladığı arşivsel garantileri vermeden onu etiketler; bu yüzden yalnızca-Premium
kiplere yalnızca-Core bir yapıda güvenilmemelidir. Gerçek uygunluk yolları
için enableTaggedPdf() / enablePdfA() kullanın ve bir PDF/A teslimi
gerektiğinde Premium pakete uzanın.
use NextPDF\Conformance\ConformanceMode;
$pdf->setConformanceMode(ConformanceMode::PdfUa2);AFRelationship
“AFRelationship” başlıklı bölümGömülü, ilişkili bir dosya için /AFRelationship değeri. Uygun olmayan bir
değer, PDF/A-3 ve PDF/A-4 doğrulamasında başarısız olur; bu nedenle sabit liste,
onu ayarlamanın güvenli yoludur. ISO 32000-2:2020 §14.13.5 (Tablo 401).
| Özellik | Değer |
|---|---|
| FQCN | NextPDF\Navigation\AFRelationship |
| Destek | string |
| Şu yolla ayarlanır | Document::embedFile(string $path, string $description = '', AFRelationship|string $afRelationship = AFRelationship::Unspecified) |
| Durum | Destek değeri | Kullanım |
|---|---|---|
Source | 'Source' | PDF’in üretildiği kaynak belge. |
Data | 'Data' | PDF’in türetildiği ham veri (ör. Factur-X / ZUGFeRD XML). |
Alternative | 'Alternative' | Alternatif sunum (braille, altyazılar, SVG). |
Supplement | 'Supplement' | Tamamlayıcı malzeme. |
EncryptedPayload | 'EncryptedPayload' | PDF’in sardığı opak, şifreli bir blob. |
FormData | 'FormData' | Form verisi (XFDF, FDF, XML). |
Schema | 'Schema' | Bir Data dosyasını tanımlayan şema (XSD, JSON Schema). PDF 2.0. |
Unspecified | 'Unspecified' | İlişki belirtilmemiş (varsayılan). |
embedFile(), ister sabit liste durumunu ister onun dize değişmezini (başında
eğik çizgi olsun ya da olmasın) kabul eder; bu nedenle AFRelationship::Data ve
'/Data' eşdeğerdir. Durumu geçirmek, tür güvenli seçimdir.
use NextPDF\Navigation\AFRelationship;
// e-invoice payload: declare the XML as the source data$pdf->embedFile('invoice.xml', 'Factur-X invoice data', AFRelationship::Data);Ayrıca bkz.
“Ayrıca bkz.” başlıklı bölüm- Yapılandırma referansı — değerlerini bu sabit
listelerin sınırladığı
Confignesnesi,withOutputColorProfile()dahil. - Graphics modülü —
LineStyle,BlendMode,RenderingIntentve çizim motoru. - Typography modülü — metin işleme ve altı çizili süslemesi.
- Conformance modülü —
ConformanceModeayırıcısı ve PDF/UA / PDF/A etkinleştirme yolları. - Navigation modülü — ilişkili dosyalar ve
/AFmekanizması. - Referans dizini — API, yapılandırma ve uyumluluk referans malzemesinin giriş noktası.