Dokumentacja API pakietu Artisan
W skrócie
Dział zatytułowany „W skrócie”Pakiet Artisan (nextpdf/artisan) udostępnia dwie powiązane grupy API. Warstwa renderowania w przeglądarce Chrome — ChromeRendererConfig, ChromeHtmlRenderer, ChromeSecurityPolicy, ChromeRenderResult, ViewportCalculator oraz BrowserPool — przekształca fragment w języku Hypertext Markup Language (HTML) w plik Portable Document Format (PDF) wygenerowany przez przeglądarkę Chrome. Warstwa parsera i importera — PdfReader, PageImporter, ImportedFormXObject oraz pomocnicze klasy tokenizera i tablicy odsyłaczy — ponownie osadza wyrenderowany wynik w dokumencie NextPDF jako Form XObject z zaznaczalnym tekstem.
Zacznij od tego: jeśli potrzebny jest wyłącznie plik PDF z kodu HTML, zwykle nie trzeba korzystać z tego pakietu bezpośrednio. Dołącz obiekt ChromeRendererConfig do dokumentu NextPDF Document i wywołaj metodę writeHtmlChrome(); zobacz szybki start. Po klasy opisane poniżej sięgaj wtedy, gdy osadzasz mechanizm renderujący w procesie roboczym lub uruchamiasz diagnostykę parsera. Pierwszy przykład w sekcji Typowe zadania pokazuje ścieżkę z jednym wywołaniem.
Typowe zadania
Dział zatytułowany „Typowe zadania”Poniższe trzy przepływy obejmują niemal wszystkie zastosowania produkcyjne: od wywołania na najwyższym poziomie po jawny potok renderowania i importu. Każdy przykład został zweryfikowany względem katalogu nextpdf-Artisan/src (oraz pliku README.md pakietu / ci/tests/).
Wyrenderuj fragment HTML do pliku PDF z zaznaczalnym tekstem za pomocą kanonicznego wywołania.
<?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');Co robi: przeglądarka Chrome układa fragment. Warstwa pomostowa osadza stronę 0 jako Form XObject, dzięki czemu tekst pozostaje zaznaczalny. writeHtmlChrome(string $html, ?float $width = null, ?float $height = null): static automatycznie dopasowuje wysokość, gdy $height ma wartość null.
Uruchom mechanizm renderujący i samodzielnie zaimportuj stronę, gdy potrzebny jest jawny potok stojący za writeHtmlChrome(), na przykład w procesach roboczych lub niestandardowych przepływach rozmieszczania.
<?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();}Co robi: renderuje bajty PDF z przeglądarki Chrome, parsuje je i importuje stronę 0 do obiektu ImportedFormXObject, który można następnie rozmieścić. Zawsze wywołuj metodę close() dla mechanizmu renderującego, aby zwolnić proces przeglądarki Chrome.
Zbuduj konfigurację z tablicy w stylu frameworka na potrzeby plików config/*.php lub z parametrów pakietu, zamiast ze sztywno zakodowanych argumentów konstruktora.
<?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,]);Co robi: mapuje tablicę konfiguracji w notacji snake-case na konstruktor. Pominięte klucze przyjmują wartości domyślne, a chrome_binary jest stosowany tylko wtedy, gdy jest niepustym łańcuchem znaków.
Mechanizm renderujący Chrome
Dział zatytułowany „Mechanizm renderujący Chrome”Te typy obsługują ścieżkę renderowania. Utwórz obiekt ChromeRendererConfig, przekaż go do obiektu ChromeHtmlRenderer, a następnie wywołaj metodę render(), aby uzyskać obiekt ChromeRenderResult.
| Symbol | Parametry | Zachowanie domyślne | Zwraca | Zgłasza lub kończy się niepowodzeniem | Uwagi |
|---|---|---|---|---|---|
new ChromeRendererConfig(?string $chromeBinaryPath = null, int $renderTimeout = 30, string $defaultCss = '', int $maxHtmlSize = 5000000, bool $noSandbox = false) | Ścieżka pliku binarnego, limit czasu, kaskadowe arkusze stylów (CSS), limit rozmiaru kodu HTML, flaga piaskownicy. | Automatyczne wykrywanie przeglądarki Chrome, gdy ścieżka pliku binarnego ma wartość null; piaskownica pozostaje włączona, dopóki nie zostanie wyłączona. | ChromeRendererConfig | brak. | Ustawiaj noSandbox tylko wtedy, gdy wymaga tego środowisko uruchomieniowe. |
ChromeRendererConfig::fromArray(array $config) | chrome_binary, render_timeout, default_css, max_html_size, no_sandbox. | Brakujące wartości przyjmują wartości domyślne konstruktora. | ChromeRendererConfig | Niezgodności typów powodują powrót do wartości domyślnych dla kluczy opcjonalnych. | Odpowiada tablicom konfiguracyjnym w stylu frameworka. |
new ChromeHtmlRenderer(ChromeRendererConfig $config, ?LoggerInterface $logger = null, ?HtmlSecurityPolicyInterface $htmlSecurityPolicy = null) | Konfiguracja, opcjonalny rejestrator, opcjonalna polityka HTML dla warstwy parsowania. | Używa DefaultHtmlSecurityPolicy, gdy nie podano żadnej polityki. | ChromeHtmlRenderer | Błędy konfiguracji przeglądarki Chrome ujawniają się przy pierwszym renderowaniu. | Mechanizm renderujący zarządza pulą przeglądarek do momentu wywołania close(). |
ChromeHtmlRenderer::render(string $html, float $widthPt, float $heightPt = 0) | html: fragment wejściowy; widthPt: szerokość papieru; heightPt: docelowa wysokość albo automatyczna. | Automatycznie oblicza wysokość treści, gdy heightPt <= 0. | ChromeRenderResult | ChromeRenderException; niepowodzenie walidacji rozmiaru kodu HTML. | Blokuje sieciowe żądania podzasobów za pośrednictwem protokołu Chrome DevTools Protocol (CDP). |
ChromeHtmlRenderer::getHtmlSecurityPolicy() | brak. | Zwraca skonfigurowaną politykę warstwy parsowania. | HtmlSecurityPolicyInterface | brak. | Uzupełnia mechanizmy kontroli przeglądarki Chrome na poziomie transportu. |
ChromeHtmlRenderer::close() | brak. | Zamyka i czyści pulę przeglądarek. | void | Błędy zamykania przeglądarki mogą ujawnić się w bibliotece bazowej. | Wywołuj podczas zamykania procesu roboczego. |
Polityka bezpieczeństwa HTML
Dział zatytułowany „Polityka bezpieczeństwa HTML”Korzystaj z tych interfejsów API, gdy walidujesz i opakowujesz zewnętrzny kod HTML przed renderowaniem zamiast wywoływać bezpośrednio ChromeHtmlRenderer::render(), który już uruchamia te kroki.
| Symbol | Parametry | Zachowanie domyślne | Zwraca | Zgłasza lub kończy się niepowodzeniem | Uwagi |
|---|---|---|---|---|---|
ChromeSecurityPolicy::validate(string $html, int $maxSize) | Dane wejściowe HTML i maksymalny rozmiar w bajtach. | Akceptuje dane wejściowe tylko wtedy, gdy rozmiar mieści się w limicie i nie wykryto niedozwolonych konstrukcji. | void | ChromeRenderException lub wyjątek walidacji. | Uruchamiaj przed renderowaniem w przeglądarce, gdy akceptujesz zewnętrzny kod HTML. |
ChromeSecurityPolicy::wrapHtml(string $html, int $viewportWidth, string $defaultCss = '') | Fragment HTML, szerokość rzutni, opcjonalny domyślny arkusz CSS. | Tworzy pełny dokument do renderowania wokół fragmentu. | string | Błędy walidacji lub budowania łańcucha znaków. | Oddziela arkusz CSS specyficzny dla mechanizmu renderującego od kodu HTML aplikacji. |
Pomocnicy wyników i konwersji
Dział zatytułowany „Pomocnicy wyników i konwersji”Korzystaj z tych pomocników do odczytywania wyniku renderowania (ChromeRenderResult) oraz przeliczania między punktami PDF a pikselami CSS przeglądarki Chrome podczas wymiarowania rzutni lub obliczania wysokości.
| Symbol | Parametry | Zachowanie domyślne | Zwraca | Zgłasza lub kończy się niepowodzeniem | Uwagi |
|---|---|---|---|---|---|
new ChromeRenderResult(string $pdfData, float $widthPt, float $heightPt, float $contentHeightCssPx) | Surowe bajty PDF, szerokość, wysokość, zmierzona wysokość treści. | Brak walidacji poza typowanymi właściwościami konstruktora. | ChromeRenderResult | brak. | Zwykle zwracany przez ChromeHtmlRenderer::render(). |
ChromeRenderResult::getPdfData() | brak. | Zwraca surowe bajty PDF wygenerowane przez przeglądarkę Chrome. | string | brak. | Używaj z PdfReader i PageImporter podczas osadzania. |
ChromeRenderResult::getWidthPt() | brak. | Zwraca żądaną szerokość w punktach. | float | brak. | Używana do określania rozmiaru importowanego obiektu formularza. |
ChromeRenderResult::getHeightPt() | brak. | Zwraca obliczoną lub żądaną wysokość w punktach. | float | brak. | Wysokość automatyczna obejmuje bufor układu wydruku. |
ViewportCalculator::pointsToCssPx(float $pt) | pt: punkty PDF. | Przelicza, przyjmując 96 pikseli CSS na 72 punkty PDF. | int | brak. | Zaokrągla wynik dla szerokości rzutni przeglądarki Chrome. |
ViewportCalculator::cssPxToPoints(float $px) | px: piksele CSS. | Przelicza, przyjmując 72 punkty PDF na 96 pikseli CSS. | float | brak. | Używana do obliczania wysokości automatycznej. |
API importu i parsera
Dział zatytułowany „API importu i parsera”To ścieżka importu. Sparsuj bajty PDF z przeglądarki Chrome za pomocą PdfReader, a następnie przekaż czytnik do PageImporter::import(), aby uzyskać stronę gotową do osadzenia; pozostałe metody PdfReader pomagają w diagnostyce.
| Symbol | Parametry | Zachowanie domyślne | Zwraca | Zgłasza lub kończy się niepowodzeniem | Uwagi |
|---|---|---|---|---|---|
new PdfReader(string $data) | data: kompletne bajty PDF. | Parser nie jest uruchamiany aż do wywołania parse(). | PdfReader | brak. | Zaprojektowany dla plików PDF generowanych przez przeglądarkę Chrome. |
PdfReader::parse() | brak. | Parsuje łańcuch tablicy odsyłaczy (xref) oraz zwiastun. | void | PdfParseException dla nieprawidłowej struktury PDF. | Musi zostać wywołana przed dostępem do object/page. |
PdfReader::getObject(int $objNum) | Numer obiektu. | Rozwiązuje sparsowany obiekt według numeru. | PdfObject | PdfParseException, gdy brakuje obiektu albo jest uszkodzony. | Używaj po parse(). |
PdfReader::getTrailer() | brak. | Zwraca sparsowany słownik zwiastuna. | array | PdfParseException, gdy dane zwiastuna są niedostępne. | Używany przez diagnostykę i analizę wersji. |
PdfReader::getObjectNumbers() | brak. | Zwraca sparsowane numery obiektów. | array | brak po sparsowaniu. | Przydatny w diagnostyce importera. |
PdfReader::getPage(int $pageIndex) | pageIndex: indeks strony liczony od zera. | Brak niejawnego parsowania. | PdfObject | PdfParseException, gdy brakuje strony albo indeks jest poza zakresem. | Importer domyślnie używa strony 0. |
PdfReader::getPageContentStream(PdfObject $page) | page: sparsowany obiekt strony. | Rozwiązuje strumień treści. | string | PdfParseException dla nieprawidłowych strumieni. | Pusty strumień powoduje niepowodzenie importera. |
PdfReader::getPageResources(PdfObject $page) | page: sparsowany obiekt strony. | Rozwiązuje zasoby strony. | array | PdfParseException dla nieprawidłowych zasobów. | Słownik zasobów jest osadzany wraz z obiektem formularza. |
PdfReader::getPageMediaBox(PdfObject $page) | page: sparsowany obiekt strony. | W przypadku braku przyjmuje wymiary zbliżone do A4. | array | Błędy parsera. | Zwraca współrzędne w przestrzeni PDF. |
PdfReader::resolveRef(mixed $value) | Sparsowana wartość. | Rekurencyjnie rozwiązuje odwołania do obiektów tam, gdzie ma to zastosowanie. | mixed | PdfParseException dla nieprawidłowych odwołań. | Pomocnik o charakterze wewnętrznym udostępniony przepływom importera. |
PdfReader::collectPageResources(PdfObject $page) | page: sparsowany obiekt strony. | Przechodzi przez odwołania do zasobów strony. | array | Błędy parsera. | Używana do osadzania obiektów zależnych wraz z importowanymi stronami. |
PdfReader::getRevisionCount() | brak. | Zlicza sparsowane wersje przyrostowe. | int | brak po sparsowaniu. | Przydatne w przypadku podpisanych lub przyrostowo aktualizowanych plików PDF. |
PdfReader::getRevisionXRef(int $index) | Indeks wersji liczony od zera. | Zwraca tablicę xref jednej wersji. | RevisionXRefTable | PdfParseException dla nieprawidłowego indeksu. | Używaj do niskopoziomowej diagnostyki wersji. |
PdfReader::getRevisions() | brak. | Zwraca wszystkie sparsowane tablice xref wersji. | array | brak po sparsowaniu. | Widok stanu parsera tylko do odczytu. |
PageImporter::import(PdfReader $reader, int $pageIndex = 0) | Sparsowany czytnik i indeks strony liczony od zera. | Importuje pierwszą stronę, gdy pominięto indeks. | ImportedFormXObject | PdfParseException, gdy strony nie można wyodrębnić. | Zbiera strumień treści, ramkę nośnika, zasoby oraz obiekty, do których istnieją odwołania. |
Obiekty pomocnicze parsera
Dział zatytułowany „Obiekty pomocnicze parsera”Te obiekty wartości oraz pomocnicy są zwracane przez parser lub używane wewnętrznie. Korzystaj z nich, gdy sprawdzasz importowane obiekty, zasoby, strumienie lub tablice wersji.
| Symbol | Parametry | Zachowanie domyślne | Zwraca | Zgłasza lub kończy się niepowodzeniem | Uwagi |
|---|---|---|---|---|---|
new ImportedFormXObject(string $contentStream, array $mediaBox, array $embeddedObjects, array $resourcesDict) | Zdekodowany strumień treści, ramka nośnika, osadzone obiekty, słownik zasobów. | Przechowuje samodzielną zawartość importowanego formularza. | ImportedFormXObject | brak. | Zwykle zwracany przez PageImporter::import(). |
ImportedFormXObject::getWidth() | brak. | Zwraca szerokość importowanego formularza w punktach. | float | brak. | Używaj podczas umieszczania wyniku z przeglądarki Chrome na stronie. |
ImportedFormXObject::getHeight() | brak. | Zwraca wysokość importowanego formularza w punktach. | float | brak. | Wyniki renderowania z wysokością automatyczną są propagowane przez tę wartość. |
ImportedFormXObject::getEmbeddedObjects() | brak. | Zwraca obiekty wymagane przez importowany formularz. | array | brak. | Kod zapisujący używa tych obiektów do zachowania zasobów. |
ImportedFormXObject::getResourcesDict() | brak. | Zwraca importowany słownik zasobów. | array | brak. | Używany podczas budowania obiektu Form XObject. |
ImportedFormXObject::getMediaBox() | brak. | Zwraca importowaną ramkę nośnika. | array | brak. | Używaj do diagnostyki rozmieszczania. |
ImportedFormXObject::getContentStream() | brak. | Zwraca strumień treści importowanej strony. | string | brak. | Przeznaczony do integracji writer/import. |
new PdfObject(int $objectNumber, int $generation, array $dictionary, ?string $rawStreamData = null, ?string $decodedStreamData = null, ?string $rawDictionaryBytes = null) | Numer obiektu, generacja, sparsowany słownik, opcjonalne bajty strumienia, opcjonalny zdekodowany strumień, opcjonalne surowe bajty słownika. | Przechowuje stan sparsowanego obiektu. | PdfObject | brak. | Tworzony przez wewnętrzne mechanizmy parsera. |
PdfObject::getRawDictionaryBytes() | brak. | Zwraca oryginalne bajty słownika, gdy są dostępne. | `string | null` | brak. |
PdfObject::getRawStreamData() | brak. | Zwraca niezdekodowane bajty strumienia, gdy są dostępne. | `string | null` | brak. |
PdfObject::getDictionary() | brak. | Zwraca sparsowane wpisy słownika. | array | brak. | Widok parsera tylko do odczytu. |
PdfObject::get(string $key) | Klucz słownika. | Zwraca null, gdy klucz jest nieobecny. | mixed | brak. | Zwalnia wywołujących z parsowania surowych słowników. |
PdfObject::getRef(string $key) | Klucz słownika. | Zwraca krotkę odwołania do obiektu, gdy wartość jest odwołaniem. | `array | null` | brak. |
PdfObject::getArray(string $key) | Klucz słownika. | Zwraca wartość tablicową lub pustą tablicę, gdy jest niedostępna. | array | brak. | Wygodne opakowanie dla wpisów słownika o wartościach będących tablicami. |
PdfObject::hasStream() | brak. | Sprawdza, czy bajty strumienia są obecne. | bool | brak. | Odróżnia obiekty zawierające wyłącznie słownik. |
PdfObject::getType() | brak. | Odczytuje /Type. | `string | null` | brak. |
PdfObject::getSubtype() | brak. | Odczytuje /Subtype. | `string | null` | brak. |
RevisionExtractor::extractRevision(string $pdfData, PdfReader $reader, int $revision) | Bajty PDF, sparsowany czytnik oraz indeks wersji liczony od zera. | Wyodrębnia jedną wersję przyrostową. | string | PdfParseException dla nieprawidłowych granic. | Używany przez testy parsera i diagnostykę. |
RevisionExtractor::getRevisionBoundaries(string $pdfData, PdfReader $reader) | Bajty PDF i sparsowany czytnik. | Wykrywa zakresy bajtów dla wersji przyrostowych. | array | PdfParseException dla zniekształconej struktury xref. | Pomaga analizować podpisane lub przyrostowo aktualizowane pliki PDF. |
| `StreamDecoder::decode(string $data, string | array $filter)` | Bajty strumienia oraz jeden lub więcej filtrów PDF. | Stosuje filtry w kolejności. | string | PdfParseException dla nieobsługiwanych lub nieprawidłowych filtrów. |
new ResourceCollector(PdfReader $reader) | Sparsowany czytnik. | Zaczyna od pustego zbioru zebranych obiektów. | ResourceCollector | brak. | Używany przez PdfReader::collectPageResources(). |
ResourceCollector::traverse(mixed $value, int $depth = 0) | Sparsowana wartość i głębokość rekursji. | Przechodzi przez odwołania do zasobów aż do wewnętrznych limitów głębokości. | void | Błędy parsera dla nieprawidłowych odwołań. | Wewnętrzny pomocnik domykający zasoby importowanej strony. |
ResourceCollector::getCollected() | brak. | Zwraca zebrane obiekty zasobów. | array | brak. | Wywołuj po traverse(). |
new RevisionXRefTable(int $index, int $xrefOffset, array $xrefEntries, array $trailer, ?int $prevOffset) | Indeks wersji, przesunięcie xref, wpisy xref, zwiastun, opcjonalne poprzednie przesunięcie. | Niezmienna migawka jednej wersji przyrostowej. | RevisionXRefTable | brak. | Tworzony przez wewnętrzne mechanizmy parsera. |
RevisionXRefTable::getObjectNumbers() | brak. | Zwraca numery obiektów aktywnych w tablicy wersji. | array | brak. | Niskopoziomowe API diagnostyki wersji. |
RevisionXRefTable::getActiveObjectCount() | brak. | Zlicza aktywne obiekty. | int | brak. | Przydatne w asercjach parsera. |
RevisionXRefTable::hasRootUpdate() | brak. | Informuje, czy wersja aktualizuje korzeń dokumentu. | bool | brak. | Przydatne w analizie aktualizacji przyrostowych. |
RevisionXRefTable::getSize() | brak. | Zwraca wartość rozmiaru tablicy xref. | int | brak. | Odzwierciedla sparsowane metadane xref pliku PDF. |
Niskopoziomowe API tokenizera i xref
Dział zatytułowany „Niskopoziomowe API tokenizera i xref”Korzystaj z tych interfejsów API wyłącznie do głębokiej diagnostyki parsera lub redukcji danych testowych. Udostępniają one lekser i mechanizmy tablicy odsyłaczy używane przez PdfReader i nie są potrzebne przy zwykłym imporcie.
| Symbol | Parametry | Zachowanie domyślne | Zwraca | Zgłasza lub kończy się niepowodzeniem | Uwagi |
|---|---|---|---|---|---|
new PdfTokenizer(string $data, int $offset = 0) | Bajty PDF i opcjonalne przesunięcie początkowe. | Zaczyna od przesunięcia zerowego. | PdfTokenizer | brak. | Niskopoziomowy parser leksykalny. |
PdfTokenizer::getOffset() | brak. | Zwraca bieżące przesunięcie w bajtach. | int | brak. | Pomocnik diagnostyczny dla błędów parsera. |
PdfTokenizer::setOffset(int $offset) | Przesunięcie w bajtach. | Przesuwa kursor tokenizera. | void | PdfParseException dla nieprawidłowego przesunięcia. | Używaj ostrożnie; za stan parsera odpowiada wywołujący. |
PdfTokenizer::isEof() | brak. | Sprawdza, czy kursor dotarł do końca. | bool | brak. | Niskopoziomowy pomocnik pętli parsera. |
PdfTokenizer::skipWhitespace() | brak. | Pomija białe znaki i komentarze PDF. | void | brak. | Używany przed odczytem tokenów. |
PdfTokenizer::readToken() | brak. | Odczytuje następny token skalarny. | `string | int | float |
PdfTokenizer::readName() | brak. | Odczytuje obiekt nazwy PDF. | string | PdfParseException dla zniekształconej nazwy. | Dekoduje sekwencje ucieczki w nazwie. |
PdfTokenizer::readLiteralString() | brak. | Odczytuje łańcuch literałowy. | string | PdfParseException dla zniekształconego łańcucha. | Obsługuje zagnieżdżone nawiasy i sekwencje ucieczki. |
PdfTokenizer::readHexString() | brak. | Odczytuje łańcuch szesnastkowy. | string | PdfParseException dla zniekształconego kodu szesnastkowego. | Uzupełnia kod szesnastkowy o nieparzystej długości zgodnie z regułami parsera. |
PdfTokenizer::readNumber() | brak. | Odczytuje liczbę całkowitą lub zmiennoprzecinkową. | `int | float` | PdfParseException dla nieprawidłowej liczby. |
PdfTokenizer::readKeyword() | brak. | Odczytuje słowo kluczowe PDF. | string | PdfParseException dla nieprawidłowego słowa kluczowego. | Utrzymuje parsowanie słów kluczowych w jednym miejscu. |
PdfTokenizer::readDictionary() | brak. | Odczytuje słownik PDF. | array | PdfParseException dla zniekształconych słowników. | Używany dla obiektów, strumieni i zwiastunów. |
PdfTokenizer::readArray() | brak. | Odczytuje tablicę PDF. | array | PdfParseException dla zniekształconych tablic. | Rekurencyjny pomocnik parsera. |
PdfTokenizer::readValue() | brak. | Odczytuje dowolną obsługiwaną wartość PDF. | mixed | PdfParseException dla zniekształconych wartości. | Powszechny prymityw parsera. |
PdfTokenizer::readStreamData(int $length) | Długość strumienia. | Odczytuje dokładnie żądaną liczbę bajtów strumienia. | string | PdfParseException dla nieprawidłowych granic strumienia. | Używany po rozwiązaniu długości strumienia ze słownika. |
PdfTokenizer::peek(int $length = 1) | Liczba bajtów. | Odczytuje z wyprzedzeniem bez przesuwania kursora. | string | brak. | Przydatny przy rozgałęzieniach parsera. |
PdfTokenizer::searchBackward(string $pattern, int $startFrom = 0) | Wzorzec i opcjonalne przesunięcie początkowe. | Wyszukuje wstecz od końca lub od podanego przesunięcia. | `int | false` | brak. |
PdfTokenizer::readLine() | brak. | Odczytuje wiersz od bieżącego przesunięcia. | string | brak. | Niskopoziomowy pomocnik skanera. |
CrossRefParser::parseXRefTable(string $data, int $offset) | Bajty PDF i przesunięcie tablicy xref. | Parsuje wpisy klasycznej tablicy odsyłaczy. | array | PdfParseException dla zniekształconych danych xref. | Niskopoziomowe API parsera. |
CrossRefParser::parseXRefStream(string $data, int $offset) | Bajty PDF i przesunięcie strumienia xref. | Parsuje wpisy strumienia tablicy odsyłaczy. | array | PdfParseException dla zniekształconych danych strumienia. | Obsługuje nowoczesne strumienie xref formatu PDF. |
Opcjonalne fabryki i pula przeglądarek
Dział zatytułowany „Opcjonalne fabryki i pula przeglądarek”EInvoiceServiceFactory leniwie rozwiązuje opcjonalne kontrakty faktur elektronicznych Premium i zwraca null, gdy są one nieobecne. BrowserPool zarządza cyklem życia przeglądarki Chrome należącej do mechanizmu renderującego; zarządzaj pulą bezpośrednio tylko w długo działających procesach roboczych.
| Symbol | Parametry | Zachowanie domyślne | Zwraca | Zgłasza lub kończy się niepowodzeniem | Uwagi |
|---|---|---|---|---|---|
EInvoiceServiceFactory::makeEmbedder() | brak. | Zwraca null, chyba że zainstalowano obsługę faktur elektronicznych Premium Pro. | `EmbedderInterface | null` | Błędy konstrukcji opcjonalnego pakietu. |
EInvoiceServiceFactory::makeValidator() | brak. | Zwraca null, chyba że zainstalowano obsługę walidacji Premium Enterprise. | `ValidatorInterface | null` | Błędy konstrukcji opcjonalnego pakietu. |
EInvoiceServiceFactory::makeDefaultProfile() | brak. | Zwraca domyślny profil faktury elektronicznej, gdy jest dostępny. | `ProfileInterface | null` | Błędy opcjonalnego pakietu. |
EInvoiceServiceFactory::makeSchematronRunner() | brak. | Zwraca null, chyba że zainstalowano obsługę Schematron Premium Enterprise. | `SchematronRunnerInterface | null` | Błędy konstrukcji opcjonalnego pakietu. |
new BrowserPool(ChromeRendererConfig $config, ?LoggerInterface $logger = null) | Konfiguracja mechanizmu renderującego i opcjonalny rejestrator. | Przeglądarka uruchamia się leniwie przy pierwszym getBrowser(). | BrowserPool | brak do momentu uruchomienia przeglądarki. | Pomocnik cyklu życia należący do mechanizmu renderującego. |
BrowserPool::getBrowser() | brak. | Uruchamia lub zwraca bieżącą instancję przeglądarki Chrome. | Browser | Błędy uruchamiania przeglądarki. | Pomocnik cyklu życia należący do mechanizmu renderującego. |
BrowserPool::incrementRenderCount() | brak. | Zwiększa licznik renderowania i przeprowadza rotację, gdy wymaga tego polityka puli. | void | Błędy cyklu życia przeglądarki. | Używany przez długo działające procesy robocze. |
BrowserPool::close() | brak. | Zamyka zarządzaną instancję przeglądarki. | void | Błędy zamykania przeglądarki. | Wywołuj podczas zamykania procesu roboczego. |
Uwagi dla programistów
Dział zatytułowany „Uwagi dla programistów”- Mechanizm renderujący nie zapewnia piaskownicy przeglądarki dla niezaufanego kodu HTML. Przed renderowaniem zweryfikuj rozmiar, politykę zasobów oraz uprawnienia wywołującego.
- Interfejsy API parsera są celowo wąskie. Używaj ich do importu wyniku z przeglądarki Chrome, a nie do ogólnej naprawy plików PDF.
- Jawnie zamykaj mechanizmy renderujące w długo działających procesach roboczych.