İçeriğe geç

Artisan API başvurusu

Artisan paketi (nextpdf/artisan) birbiriyle ilişkili iki API kümesi sunar. Chrome işleme yüzeyi — ChromeRendererConfig, ChromeHtmlRenderer, ChromeSecurityPolicy, ChromeRenderResult, ViewportCalculator ve BrowserPool — bir Hypertext Markup Language (HTML) parçasını Chrome tarafından üretilen bir Portable Document Format (PDF) dosyasına dönüştürür. Çözümleyici ve içe aktarıcı yüzeyi — PdfReader, PageImporter, ImportedFormXObject ve bunları destekleyen belirteçleyici ile çapraz başvuru sınıfları — bu işlenmiş çıktıyı, metni seçilebilir kalacak şekilde bir Form XObject olarak bir NextPDF belgesine geri gömer.

Buradan başlayın: yalnızca HTML’den bir PDF’ye ihtiyacınız varsa bu paketi nadiren doğrudan kullanırsınız. Bir ChromeRendererConfig öğesini bir NextPDF Document nesnesine ekleyin ve writeHtmlChrome() çağrısını yapın; hızlı başlangıç bölümüne bakın. Bir işçi (worker) içine bir işleyici gömdüğünüzde veya çözümleyici tanılaması çalıştırdığınızda aşağıdaki sınıfları kullanın. Yaygın görevler bölümündeki ilk örnek, tek çağrılı akışı gösterir.

Aşağıdaki üç akış, üst düzey çağrıdan açık işleme ve içe aktarma işlem hattına kadar üretim kullanımının neredeyse tamamını kapsar. Her örnek nextpdf-Artisan/src kaynağına (ve paketin README.md / ci/tests/ dosyalarına) göre doğrulanmıştır.

Standart çağrıyla bir HTML parçasını metni seçilebilir bir PDF’ye dönüştürün.

<?php
declare(strict_types=1);
use NextPDF\Core\Document;
use NextPDF\Artisan\ChromeRendererConfig;
require __DIR__ . '/vendor/autoload.php';
$config = new ChromeRendererConfig(chromeBinaryPath: '/usr/bin/chromium');
$doc = Document::createStandalone();
$doc->setChromeRendererConfig($config);
$doc->addPage();
$doc->writeHtmlChrome('<div style="display:flex;gap:20px"><h2>Revenue</h2><p>$124,500</p></div>');
$doc->save('/tmp/report.pdf');

Ne yapar: Chrome parçayı düzenler. Köprü, 0. sayfayı bir Form XObject olarak gömer; böylece metin seçilebilir kalır. writeHtmlChrome(string $html, ?float $width = null, ?float $height = null): static, $height değeri null olduğunda yüksekliği otomatik olarak ayarlar.

İşçilerde veya özel yerleştirme akışlarında olduğu gibi writeHtmlChrome() çağrısının arkasındaki açık işlem hattına ihtiyaç duyduğunuzda, işleyiciyi kendiniz çalıştırın ve sayfayı kendiniz içe aktarın.

<?php
declare(strict_types=1);
use NextPDF\Artisan\ChromeHtmlRenderer;
use NextPDF\Artisan\ChromeRendererConfig;
use NextPDF\Artisan\ImportedFormXObject;
use NextPDF\Artisan\PageImporter;
use NextPDF\Parser\PdfReader;
$renderer = new ChromeHtmlRenderer(new ChromeRendererConfig(renderTimeout: 30));
try {
$result = $renderer->render($html, widthPt: 595.28);
$reader = new PdfReader($result->getPdfData());
$reader->parse();
$form = (new PageImporter())->import($reader);
} finally {
$renderer->close();
}

Ne yapar: Chrome PDF baytlarını oluşturur, bunları çözümler ve 0. sayfayı yerleştirebileceğiniz bir ImportedFormXObject nesnesine içe aktarır. Chrome işlemini serbest bırakmak için işleyicide her zaman close() çağrısını yapın.

Sabit kodlanmış kurucu bağımsız değişkenleri yerine, config/*.php veya paket (bundle) parametreleri için yapılandırmayı çerçeve biçimli bir diziden oluşturun.

<?php
declare(strict_types=1);
use NextPDF\Artisan\ChromeRendererConfig;
$config = ChromeRendererConfig::fromArray([
'chrome_binary' => '/usr/bin/chromium',
'render_timeout' => 45,
'max_html_size' => 2_000_000,
'no_sandbox' => false,
]);

Ne yapar: snake-case biçimli bir yapılandırma dizisini kurucuya eşler. Ayarlanmamış anahtarlar varsayılan değerleri kullanır ve chrome_binary yalnızca boş olmayan bir dize olduğunda uygulanır.

Bu türler işleme yolunu çalıştırır. Bir ChromeRendererConfig oluşturun, bunu bir ChromeHtmlRenderer nesnesine geçirin, ardından render() çağrısını yaparak bir ChromeRenderResult alın.

SimgeParametrelerVarsayılan davranışDöndürürŞununla özel durum oluşturur veya başarısız olurNotlar
new ChromeRendererConfig(?string $chromeBinaryPath = null, int $renderTimeout = 30, string $defaultCss = '', int $maxHtmlSize = 5000000, bool $noSandbox = false)İkili dosya yolu, zaman aşımı, Cascading Style Sheets (CSS), HTML boyut sınırı, korumalı alan (sandbox) bayrağı.İkili dosya yolu null olduğunda Chrome otomatik olarak algılanır; korumalı alan devre dışı bırakılmadıkça etkin kalır.ChromeRendererConfigbeklenmez.Yalnızca çalışma zamanı gerektirdiğinde noSandbox değerini ayarlayın.
ChromeRendererConfig::fromArray(array $config)chrome_binary, render_timeout, default_css, max_html_size, no_sandbox.Eksik değerler kurucu varsayılanlarını kullanır.ChromeRendererConfigİsteğe bağlı anahtarlardaki tür uyuşmazlıkları varsayılan değerlere geri döner.Çerçeve biçimli yapılandırma dizileriyle eşleşir.
new ChromeHtmlRenderer(ChromeRendererConfig $config, ?LoggerInterface $logger = null, ?HtmlSecurityPolicyInterface $htmlSecurityPolicy = null)Yapılandırma, isteğe bağlı günlükleyici, isteğe bağlı çözümleme katmanı HTML ilkesi.Hiçbir ilke sağlanmadığında DefaultHtmlSecurityPolicy kullanılır.ChromeHtmlRendererChrome kurulum hataları ilk işlemede ortaya çıkar.İşleyici, close() çağrılana kadar bir tarayıcı havuzuna sahiptir.
ChromeHtmlRenderer::render(string $html, float $widthPt, float $heightPt = 0)html: giriş parçası; widthPt: kağıt genişliği; heightPt: hedef yükseklik veya otomatik.İçerik yüksekliğini heightPt <= 0 olduğunda otomatik olarak hesaplar.ChromeRenderResultChromeRenderException; HTML boyutu doğrulama hatası.Alt kaynak ağ isteklerini Chrome DevTools Protocol (CDP) aracılığıyla engeller.
ChromeHtmlRenderer::getHtmlSecurityPolicy()yok.Yapılandırılmış çözümleme katmanı ilkesini döndürür.HtmlSecurityPolicyInterfacebeklenmez.Chrome aktarım düzeyi denetimlerini tamamlar.
ChromeHtmlRenderer::close()yok.Tarayıcı havuzunu kapatır ve temizler.voidTarayıcı kapatma hataları, temel kitaplıktan ortaya çıkabilir.İşçi kapatılırken çağırın.

İşlemeden önce harici HTML’yi doğrulayıp sardığınız durumlarda, bunları zaten çağıran ChromeHtmlRenderer::render() çağrısını doğrudan yapmak yerine bu API’leri kullanın.

SimgeParametrelerVarsayılan davranışDöndürürŞununla özel durum oluşturur veya başarısız olurNotlar
ChromeSecurityPolicy::validate(string $html, int $maxSize)HTML girişi ve en büyük bayt boyutu.Yalnızca boyut denetimi ve izin verilmeyen yapı kontrolleri geçtiğinde girişi kabul eder.voidChromeRenderException veya doğrulama özel durumu.Harici HTML kabul ederken, tarayıcı işlemesinden önce çalıştırın.
ChromeSecurityPolicy::wrapHtml(string $html, int $viewportWidth, string $defaultCss = '')HTML parçası, görüntü alanı genişliği, isteğe bağlı varsayılan CSS.Parçayı kapsayan eksiksiz bir işleme belgesi oluşturur.stringDoğrulama veya dize oluşturma hataları.İşleyiciye özgü CSS’yi uygulama HTML’sinden ayrı tutar.

Bir işleme sonucunu (ChromeRenderResult) okumak ve görüntü alanı boyutlandırırken veya yükseklik hesaplarken PDF noktaları ile Chrome CSS pikselleri arasında dönüştürme yapmak için bu yardımcıları kullanın.

SimgeParametrelerVarsayılan davranışDöndürürŞununla özel durum oluşturur veya başarısız olurNotlar
new ChromeRenderResult(string $pdfData, float $widthPt, float $heightPt, float $contentHeightCssPx)Ham PDF baytları, genişlik, yükseklik, ölçülen içerik yüksekliği.Türlendirilmiş kurucu özellikleri dışında ek doğrulama yapmaz.ChromeRenderResultbeklenmez.Genellikle ChromeHtmlRenderer::render() tarafından döndürülür.
ChromeRenderResult::getPdfData()yok.Chrome tarafından üretilen ham PDF baytlarını döndürür.stringbeklenmez.Gömme yaparken PdfReader ve PageImporter ile birlikte kullanın.
ChromeRenderResult::getWidthPt()yok.İstenen genişliği nokta cinsinden döndürür.floatbeklenmez.İçe aktarılan form nesnesini boyutlandırmak için kullanılır.
ChromeRenderResult::getHeightPt()yok.Hesaplanan veya istenen yüksekliği nokta cinsinden döndürür.floatbeklenmez.Otomatik yükseklik, bir yazdırma yerleşimi arabelleği içerir.
ViewportCalculator::pointsToCssPx(float $pt)pt: PDF noktaları.72 PDF noktası başına 96 CSS pikseli kullanarak dönüştürür.intbeklenmez.Chrome görüntü alanı genişliği için yuvarlanır.
ViewportCalculator::cssPxToPoints(float $px)px: CSS pikselleri.96 CSS pikseli başına 72 PDF noktası kullanarak dönüştürür.floatbeklenmez.Otomatik yükseklik hesabı için kullanılır.

Bu bölüm içe aktarma yolunu açıklar. Chrome PDF baytlarını PdfReader ile çözümleyin, ardından gömülebilir bir sayfa almak için okuyucuyu PageImporter::import() yöntemine geçirin; kalan PdfReader yöntemleri tanılamayı destekler.

SimgeParametrelerVarsayılan davranışDöndürürŞununla özel durum oluşturur veya başarısız olurNotlar
new PdfReader(string $data)data: eksiksiz PDF baytları.Çözümleyici, parse() çağrılana kadar çalıştırılmaz.PdfReaderbeklenmez.Chrome tarafından üretilen PDF’ler için tasarlanmıştır.
PdfReader::parse()yok.Çapraz başvuru (xref) zincirini ve fragmanı (trailer) çözümler.voidPdfParseException, geçersiz PDF yapısı için.object/page erişiminden önce çağrılmalıdır.
PdfReader::getObject(int $objNum)Nesne numarası.Nesne numarasına göre çözümlenmiş nesneyi döndürür.PdfObjectPdfParseException, nesne eksik veya hatalı biçimlendirilmiş olduğunda.Bunu parse() çağrısından sonra kullanın.
PdfReader::getTrailer()yok.Çözümlenen fragman (trailer) sözlüğünü döndürür.arrayPdfParseException, fragman (trailer) verileri kullanılamadığında.Tanılama ve düzeltme (revision) analizi tarafından kullanılır.
PdfReader::getObjectNumbers()yok.Çözümlenen nesne numaralarını döndürür.arrayçözümlemeden sonra beklenmez.İçe aktarıcı tanılaması için yararlıdır.
PdfReader::getPage(int $pageIndex)pageIndex: sıfır tabanlı sayfa dizini.Örtük çözümleme yapılmaz.PdfObjectPdfParseException, eksik veya aralık dışında olduğunda.İçe aktarıcı varsayılan olarak 0. sayfayı kullanır.
PdfReader::getPageContentStream(PdfObject $page)page: çözümlenmiş sayfa nesnesi.İçerik akışını çözer.stringPdfParseException, geçersiz akışlar için.Boş akış, içe aktarıcı hatasına neden olur.
PdfReader::getPageResources(PdfObject $page)page: çözümlenmiş sayfa nesnesi.Sayfa kaynaklarını çözer.arrayPdfParseException, geçersiz kaynaklar için.Kaynak sözlüğü, form nesnesiyle birlikte gömülür.
PdfReader::getPageMediaBox(PdfObject $page)page: çözümlenmiş sayfa nesnesi.Yoksa A4 benzeri boyutlara geri döner.arrayÇözümleyici hataları.PDF uzayı koordinatlarını döndürür.
PdfReader::resolveRef(mixed $value)Çözümlenecek değer.Uygun olduğunda nesne başvurularını özyinelemeli olarak çözer.mixedPdfParseException, geçersiz başvurular için.İçe aktarıcı iş akışlarına açılmış, iç kullanıma yönelik bir yardımcı.
PdfReader::collectPageResources(PdfObject $page)page: çözümlenmiş sayfa nesnesi.Sayfa kaynağı başvurularını gezer.arrayÇözümleyici hataları.Bağımlı nesneleri içe aktarılan sayfalarla birlikte gömmek için kullanılır.
PdfReader::getRevisionCount()yok.Çözümlenen artımlı düzeltmeleri (revision) sayar.intçözümlemeden sonra beklenmez.İmzalanmış veya artımlı olarak güncellenmiş PDF’ler için yararlıdır.
PdfReader::getRevisionXRef(int $index)Sıfır tabanlı düzeltme (revision) dizini.Bir düzeltme (revision) xref tablosu döndürür.RevisionXRefTablePdfParseException, geçersiz dizin için.Düşük düzeyli düzeltme (revision) tanılaması için kullanın.
PdfReader::getRevisions()yok.Çözümlenen tüm düzeltme (revision) xref tablolarını döndürür.arrayçözümlemeden sonra beklenmez.Çözümleyici durumunun salt okunur görünümü.
PageImporter::import(PdfReader $reader, int $pageIndex = 0)Çözümlenmiş okuyucu ve sıfır tabanlı sayfa dizini.Atlandığında ilk sayfayı içe aktarır.ImportedFormXObjectPdfParseException, sayfa ayıklanamadığında.İçerik akışını, ortam kutusunu (media box), kaynakları ve başvurulan nesneleri toplar.

Bu değer nesneleri ve yardımcılar çözümleyici tarafından döndürülür veya iç kullanım içindir. İçe aktarılan nesneleri, kaynakları, akışları veya düzeltme (revision) tablolarını incelediğinizde bunları kullanın.

SimgeParametrelerVarsayılan davranışDöndürürŞununla özel durum oluşturur veya başarısız olurNotlar
new ImportedFormXObject(string $contentStream, array $mediaBox, array $embeddedObjects, array $resourcesDict)Çözümlenmiş içerik akışı, ortam kutusu (media box), gömülü nesneler, kaynaklar sözlüğü.Kendi başına eksiksiz, içe aktarılmış bir form yükünü depolar.ImportedFormXObjectbeklenmez.Genellikle PageImporter::import() tarafından döndürülür.
ImportedFormXObject::getWidth()yok.İçe aktarılan form genişliğini nokta cinsinden döndürür.floatbeklenmez.Chrome çıktısını bir sayfaya yerleştirirken kullanın.
ImportedFormXObject::getHeight()yok.İçe aktarılan form yüksekliğini nokta cinsinden döndürür.floatbeklenmez.Otomatik yükseklikli işleme sonuçları bu değer aracılığıyla yayılır.
ImportedFormXObject::getEmbeddedObjects()yok.İçe aktarılan formun gerektirdiği nesneleri döndürür.arraybeklenmez.Yazıcı (writer) kodu, kaynakları korumak için bu nesneleri kullanır.
ImportedFormXObject::getResourcesDict()yok.İçe aktarılan kaynak sözlüğünü döndürür.arraybeklenmez.Form XObject oluşturulurken kullanılır.
ImportedFormXObject::getMediaBox()yok.İçe aktarılan ortam kutusunu (media box) döndürür.arraybeklenmez.Yerleştirme tanılaması için kullanın.
ImportedFormXObject::getContentStream()yok.İçe aktarılan sayfa içerik akışını döndürür.stringbeklenmez.writer/import tümleştirmesi için tasarlanmıştır.
new PdfObject(int $objectNumber, int $generation, array $dictionary, ?string $rawStreamData = null, ?string $decodedStreamData = null, ?string $rawDictionaryBytes = null)Nesne numarası, sürüm (generation), çözümlenmiş sözlük, isteğe bağlı akış baytları, isteğe bağlı çözülmüş akış, isteğe bağlı ham sözlük baytları.Çözümlenmiş nesne durumunu depolar.PdfObjectbeklenmez.Çözümleyici iç bileşenleri tarafından oluşturulur.
PdfObject::getRawDictionaryBytes()yok.Varsa özgün sözlük baytlarını döndürür.`stringnull`beklenmez.
PdfObject::getRawStreamData()yok.Varsa çözülmemiş akış baytlarını döndürür.`stringnull`beklenmez.
PdfObject::getDictionary()yok.Çözümlenmiş sözlük girdilerini döndürür.arraybeklenmez.Salt okunur çözümleyici görünümü.
PdfObject::get(string $key)Sözlük anahtarı.Anahtar yoksa null döndürür.mixedbeklenmez.Çağıranların ham sözlükleri çözümlemesini önler.
PdfObject::getRef(string $key)Sözlük anahtarı.Değer bir başvuru olduğunda nesne başvuru demetini döndürür.`arraynull`beklenmez.
PdfObject::getArray(string $key)Sözlük anahtarı.Bir dizi değeri veya kullanılamıyorsa boş bir dizi döndürür.arraybeklenmez.Dizi değerli sözlük girdileri için kolaylık sağlayan bir sarmalayıcı.
PdfObject::hasStream()yok.Akış baytlarının bulunup bulunmadığını denetler.boolbeklenmez.Yalnızca sözlükten oluşan nesneleri ayırt eder.
PdfObject::getType()yok.Şu değeri okur: /Type.`stringnull`beklenmez.
PdfObject::getSubtype()yok.Şu değeri okur: /Subtype.`stringnull`beklenmez.
RevisionExtractor::extractRevision(string $pdfData, PdfReader $reader, int $revision)PDF baytları, çözümlenmiş bir okuyucu ve sıfır tabanlı düzeltme (revision) dizini.Bir artımlı düzeltmeyi (revision) ayıklar.stringPdfParseException, geçersiz sınırlar için.Çözümleyici testleri ve tanılaması tarafından kullanılır.
RevisionExtractor::getRevisionBoundaries(string $pdfData, PdfReader $reader)PDF baytları ve çözümlenmiş bir okuyucu.Artımlı düzeltmeler (revision) için bayt aralıklarını bulur.arrayPdfParseException, hatalı biçimlendirilmiş xref yapısı için.İmzalanmış veya artımlı olarak güncellenmiş PDF’leri çözümlemeye yardımcı olur.
`StreamDecoder::decode(string $data, stringarray $filter)`Akış baytları ve bir veya daha fazla PDF süzgeci.Süzgeçleri sırayla uygular.stringPdfParseException, desteklenmeyen veya geçersiz süzgeçler için.
new ResourceCollector(PdfReader $reader)Çözümlenmiş okuyucu.Boş bir toplanmış nesne kümesiyle başlar.ResourceCollectorbeklenmez.Şunun tarafından kullanılır: PdfReader::collectPageResources().
ResourceCollector::traverse(mixed $value, int $depth = 0)Çözümlenmiş değer ve özyineleme derinliği.Kaynak başvurularını iç derinlik sınırlarına kadar gezer.voidGeçersiz başvurular için çözümleyici hataları.Sayfa içe aktarma kaynak kapanışı için iç yardımcı.
ResourceCollector::getCollected()yok.Toplanan kaynak nesnelerini döndürür.arraybeklenmez.Bunu traverse() çağrısından sonra çağırın.
new RevisionXRefTable(int $index, int $xrefOffset, array $xrefEntries, array $trailer, ?int $prevOffset)Düzeltme (revision) dizini, xref uzaklığı, xref girdileri, fragman (trailer), isteğe bağlı önceki uzaklık.Bir artımlı düzeltmenin (revision) değişmez anlık görüntüsü.RevisionXRefTablebeklenmez.Çözümleyicinin iç bileşenleri tarafından oluşturulur.
RevisionXRefTable::getObjectNumbers()yok.Düzeltme (revision) tablosunda etkin olan nesne numaralarını döndürür.arraybeklenmez.Düşük düzeyli düzeltme (revision) tanılama API’si.
RevisionXRefTable::getActiveObjectCount()yok.Etkin nesneleri sayar.intbeklenmez.Çözümleyici doğrulamaları (assertion) için yararlıdır.
RevisionXRefTable::hasRootUpdate()yok.Düzeltmenin (revision) belge kökünü güncelleyip güncellemediğini bildirir.boolbeklenmez.Artımlı güncelleme analizi için yararlıdır.
RevisionXRefTable::getSize()yok.Xref tablosu boyut değerini döndürür.intbeklenmez.Çözümlenmiş PDF xref meta verilerini yansıtır.

Düşük düzeyli belirteçleyici ve xref API’leri

“Düşük düzeyli belirteçleyici ve xref API’leri” başlıklı bölüm

Bu API’leri yalnızca derin çözümleyici tanılaması veya düzenek (fixture) sadeleştirmesi için kullanın. Bunlar, PdfReader altındaki sözcük çözümleyiciyi (lexer) ve çapraz başvuru mekanizmasını açığa çıkarır; normal içe aktarma için gerekli değildir.

SimgeParametrelerVarsayılan davranışDöndürürŞununla özel durum oluşturur veya başarısız olurNotlar
new PdfTokenizer(string $data, int $offset = 0)PDF baytları ve isteğe bağlı başlangıç uzaklığı.Sıfır uzaklığından başlar.PdfTokenizerbeklenmez.Düşük düzeyli sözcüksel çözümleyici.
PdfTokenizer::getOffset()yok.Geçerli bayt uzaklığını döndürür.intbeklenmez.Çözümleyici hataları için tanılama yardımcısı.
PdfTokenizer::setOffset(int $offset)Bayt uzaklığı.Belirteçleyici imlecini taşır.voidPdfParseException, geçersiz uzaklık için.Dikkatle kullanın; çözümleyici durumuna çağıranlar sahiptir.
PdfTokenizer::isEof()yok.İmlecin sona ulaşıp ulaşmadığını denetler.boolbeklenmez.Düşük düzeyli çözümleyici döngüsü yardımcısı.
PdfTokenizer::skipWhitespace()yok.PDF boşluk karakterlerini ve açıklamalarını atlayarak ilerler.voidbeklenmez.Belirteç okumalarından önce kullanılır.
PdfTokenizer::readToken()yok.Sonraki sayıl (scalar) belirteci okur.`stringintfloat
PdfTokenizer::readName()yok.Bir PDF ad nesnesi okur.stringPdfParseException, hatalı biçimlendirilmiş ad için.Ad kaçış (escape) dizilerini çözer.
PdfTokenizer::readLiteralString()yok.Bir değişmez (literal) dize okur.stringPdfParseException, hatalı biçimlendirilmiş dize için.İç içe parantezleri ve kaçış (escape) dizilerini işler.
PdfTokenizer::readHexString()yok.Bir onaltılık dize okur.stringPdfParseException, hatalı biçimlendirilmiş onaltılık değer için.Tek uzunluktaki onaltılık değerleri çözümleyici kurallarına göre doldurur.
PdfTokenizer::readNumber()yok.Bir tamsayı veya kayan noktalı sayı okur.`intfloat`PdfParseException, geçersiz sayı için.
PdfTokenizer::readKeyword()yok.Bir PDF anahtar sözcüğü okur.stringPdfParseException, geçersiz anahtar sözcük için.Anahtar sözcük çözümlemesini merkezi tutar.
PdfTokenizer::readDictionary()yok.Bir PDF sözlüğü okur.arrayPdfParseException, hatalı biçimlendirilmiş sözlükler için.Nesneler, akışlar ve fragmanlar (trailer) için kullanılır.
PdfTokenizer::readArray()yok.Bir PDF dizisi okur.arrayPdfParseException, hatalı biçimlendirilmiş diziler için.Özyinelemeli çözümleyici yardımcısı.
PdfTokenizer::readValue()yok.Desteklenen herhangi bir PDF değerini okur.mixedPdfParseException, hatalı biçimlendirilmiş değerler için.Yaygın çözümleyici ilkeli (primitive).
PdfTokenizer::readStreamData(int $length)Akış uzunluğu.Tam olarak istenen akış baytlarını okur.stringPdfParseException, geçersiz akış sınırları için.Sözlük akış uzunluğu çözümlemesinden sonra kullanılır.
PdfTokenizer::peek(int $length = 1)Bayt sayısı.İmleci ilerletmeden sonraki baytları okur.stringbeklenmez.Çözümleyici dallanması için yararlıdır.
PdfTokenizer::searchBackward(string $pattern, int $startFrom = 0)Desen ve isteğe bağlı başlangıç uzaklığı.Sondan veya verilen uzaklıktan geriye doğru arar.`intfalse`beklenmez.
PdfTokenizer::readLine()yok.Geçerli uzaklıktan bir satır okur.stringbeklenmez.Düşük düzeyli tarayıcı yardımcısı.
CrossRefParser::parseXRefTable(string $data, int $offset)PDF baytları ve xref tablosu uzaklığı.Klasik çapraz başvuru tablosu girdilerini çözümler.arrayPdfParseException, hatalı biçimlendirilmiş xref verileri için.Düşük düzeyli çözümleyici API’si.
CrossRefParser::parseXRefStream(string $data, int $offset)PDF baytları ve xref akışı uzaklığı.Çapraz başvuru akışı girdilerini çözümler.arrayPdfParseException, hatalı biçimlendirilmiş akış verileri için.Modern PDF xref akışlarını destekler.

EInvoiceServiceFactory isteğe bağlı Premium e-fatura sözleşmelerini geç (lazy) çözer ve bunlar yoksa null döndürür. BrowserPool, işleyiciye ait Chrome yaşam döngüsünü yönetir; bunu yalnızca uzun süre çalışan işçilerde doğrudan kullanın.

SimgeParametrelerVarsayılan davranışDöndürürŞununla özel durum oluşturur veya başarısız olurNotlar
EInvoiceServiceFactory::makeEmbedder()yok.Premium Pro e-fatura desteği yüklü olmadıkça null döndürür.`EmbedderInterfacenull`İsteğe bağlı paket oluşturma hataları.
EInvoiceServiceFactory::makeValidator()yok.Premium Enterprise doğrulama desteği yüklü olmadıkça null döndürür.`ValidatorInterfacenull`İsteğe bağlı paket oluşturma hataları.
EInvoiceServiceFactory::makeDefaultProfile()yok.Varsa varsayılan e-fatura profilini döndürür.`ProfileInterfacenull`İsteğe bağlı paket hataları.
EInvoiceServiceFactory::makeSchematronRunner()yok.Premium Enterprise Schematron desteği yüklü olmadıkça null döndürür.`SchematronRunnerInterfacenull`İsteğe bağlı paket oluşturma hataları.
new BrowserPool(ChromeRendererConfig $config, ?LoggerInterface $logger = null)İşleyici yapılandırması ve isteğe bağlı günlükleyici.Tarayıcı, ilk getBrowser() çağrısında geç (lazy) başlatılır.BrowserPooltarayıcı başlatılana kadar beklenmez.İşleyiciye ait yaşam döngüsü yardımcısı.
BrowserPool::getBrowser()yok.Geçerli Chrome tarayıcısı örneğini başlatır veya döndürür.BrowserTarayıcı başlatma hataları.İşleyiciye ait yaşam döngüsü yardımcısı.
BrowserPool::incrementRenderCount()yok.İşleme sayacını artırır ve havuz ilkesi gerektirdiğinde döndürür.voidTarayıcı yaşam döngüsü hataları.Uzun süre çalışan işçiler tarafından kullanılır.
BrowserPool::close()yok.Yönetilen tarayıcı örneğini kapatır.voidTarayıcı kapatma hataları.İşçi kapatılırken çağırın.
  • İşleyici, güvenilmeyen HTML için bir tarayıcı korumalı alanı (sandbox) değildir. İşlemeden önce boyutu, kaynak ilkesini ve çağıran yetkilendirmesini doğrulayın.
  • Çözümleyici API’leri bilerek dardır. Bunları genel PDF onarımı için değil, Chrome çıktısının içe aktarılması için kullanın.
  • Uzun ömürlü işçilerde işleyicileri açıkça kapatın.