Lewati ke konten

Referensi API Artisan

Paket Artisan (nextpdf/artisan) memaparkan dua grup API yang saling terkait. Permukaan renderer Chrome — ChromeRendererConfig, ChromeHtmlRenderer, ChromeSecurityPolicy, ChromeRenderResult, ViewportCalculator, dan BrowserPool — mengubah fragmen Hypertext Markup Language (HTML) menjadi berkas Portable Document Format (PDF) yang dihasilkan Chrome. Permukaan parser dan importer — PdfReader, PageImporter, ImportedFormXObject, serta kelas tokenizer dan referensi silang pendukung — menanamkan kembali hasil render tersebut ke dalam dokumen NextPDF sebagai Form XObject yang teksnya dapat dipilih.

Mulai di sini: jika Anda hanya perlu PDF dari HTML, Anda jarang perlu menggunakan paket ini secara langsung. Pasang ChromeRendererConfig ke NextPDF Document, lalu panggil writeHtmlChrome(); lihat panduan ringkas. Gunakan kelas-kelas di bawah ini saat Anda menanamkan renderer di dalam worker atau menjalankan diagnostik parser. Contoh pertama pada bagian Tugas umum menunjukkan jalur satu panggilan.

Tiga alur di bawah ini mencakup hampir semua penggunaan produksi, mulai dari panggilan tingkat tertinggi hingga pipeline render-dan-impor yang eksplisit. Setiap contoh diverifikasi terhadap nextpdf-Artisan/src (serta README.md / ci/tests/ paket).

Render fragmen HTML menjadi PDF yang teksnya dapat dipilih dengan panggilan kanonis.

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

Apa yang dilakukannya: Chrome menata fragmen tersebut. Jembatan ini menanamkan halaman 0 sebagai Form XObject, sehingga teksnya tetap dapat dipilih. writeHtmlChrome(string $html, ?float $width = null, ?float $height = null): static menyesuaikan tinggi secara otomatis saat $height bernilai null.

Jalankan renderer dan impor halaman secara manual saat Anda memerlukan pipeline eksplisit di balik writeHtmlChrome(), misalnya di dalam worker atau alur penempatan khusus.

<?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();
}

Apa yang dilakukannya: merender byte PDF Chrome, mengurainya, dan mengimpor halaman 0 ke dalam ImportedFormXObject yang dapat Anda tempatkan. Selalu panggil close() pada renderer untuk melepas proses Chrome.

Buat konfigurasi dari larik bergaya framework untuk config/*.php atau parameter bundle, bukan dari argumen konstruktor yang dikodekan keras.

<?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,
]);

Apa yang dilakukannya: memetakan larik konfigurasi snake-case ke konstruktor. Kunci yang tidak disetel memakai nilai standar, dan chrome_binary hanya diterapkan ketika nilainya berupa string yang tidak kosong.

Tipe-tipe ini menjalankan jalur render. Buat ChromeRendererConfig, teruskan ke ChromeHtmlRenderer, lalu panggil render() untuk memperoleh ChromeRenderResult.

SimbolParameterPerilaku standarMengembalikanMelempar atau gagal denganCatatan
new ChromeRendererConfig(?string $chromeBinaryPath = null, int $renderTimeout = 30, string $defaultCss = '', int $maxHtmlSize = 5000000, bool $noSandbox = false)Jalur biner, batas waktu, Cascading Style Sheets (CSS), batas ukuran HTML, flag sandbox.Mendeteksi Chrome secara otomatis ketika jalur biner bernilai null; sandbox tetap aktif kecuali dinonaktifkan.ChromeRendererConfigTidak ada yang diharapkan.Setel noSandbox hanya ketika runtime memerlukannya.
ChromeRendererConfig::fromArray(array $config)chrome_binary, render_timeout, default_css, max_html_size, no_sandbox.Nilai yang hilang memakai nilai standar konstruktor.ChromeRendererConfigKetidakcocokan tipe akan kembali ke nilai standar untuk kunci opsional.Cocok untuk larik konfigurasi bergaya framework.
new ChromeHtmlRenderer(ChromeRendererConfig $config, ?LoggerInterface $logger = null, ?HtmlSecurityPolicyInterface $htmlSecurityPolicy = null)Konfigurasi, logger opsional, kebijakan HTML pada lapisan parse opsional.Memakai DefaultHtmlSecurityPolicy ketika tidak ada kebijakan yang diberikan.ChromeHtmlRendererGalat penyiapan Chrome muncul pada render pertama.Renderer memiliki satu browser pool hingga close().
ChromeHtmlRenderer::render(string $html, float $widthPt, float $heightPt = 0)html: fragmen masukan; widthPt: lebar kertas; heightPt: tinggi target atau otomatis.Menghitung tinggi konten secara otomatis ketika heightPt <= 0.ChromeRenderResultChromeRenderException; kegagalan validasi ukuran HTML.Memblokir permintaan jaringan subresource melalui Chrome DevTools Protocol (CDP).
ChromeHtmlRenderer::getHtmlSecurityPolicy()tidak ada.Mengembalikan kebijakan pada lapisan parse yang dikonfigurasi.HtmlSecurityPolicyInterfaceTidak ada yang diharapkan.Melengkapi kontrol tingkat transport Chrome.
ChromeHtmlRenderer::close()tidak ada.Menutup browser pool dan mengosongkannya.voidGalat penonaktifan browser dapat muncul dari pustaka yang mendasarinya.Panggil saat worker dinonaktifkan.

Gunakan API ini saat Anda memvalidasi dan membungkus HTML eksternal sebelum proses render, alih-alih memanggil ChromeHtmlRenderer::render() secara langsung yang sudah memanggilnya.

SimbolParameterPerilaku standarMengembalikanMelempar atau gagal denganCatatan
ChromeSecurityPolicy::validate(string $html, int $maxSize)Masukan HTML dan ukuran byte maksimum.Hanya menerima masukan jika ukurannya valid dan tidak mengandung konstruksi yang dilarang.voidChromeRenderException atau eksepsi validasi.Jalankan sebelum proses render browser saat menerima HTML eksternal.
ChromeSecurityPolicy::wrapHtml(string $html, int $viewportWidth, string $defaultCss = '')Fragmen HTML, lebar viewport, CSS standar opsional.Menghasilkan dokumen render lengkap yang membungkus fragmen.stringGalat validasi atau konstruksi string.Memisahkan CSS khusus renderer dari HTML aplikasi.

Gunakan pembantu ini untuk membaca hasil render (ChromeRenderResult) dan mengonversi antara poin PDF dan piksel CSS Chrome saat menentukan ukuran viewport atau menghitung tinggi.

SimbolParameterPerilaku standarMengembalikanMelempar atau gagal denganCatatan
new ChromeRenderResult(string $pdfData, float $widthPt, float $heightPt, float $contentHeightCssPx)Byte PDF mentah, lebar, tinggi, tinggi konten terukur.Tidak ada validasi selain properti konstruktor yang bertipe.ChromeRenderResultTidak ada yang diharapkan.Biasanya dikembalikan oleh ChromeHtmlRenderer::render().
ChromeRenderResult::getPdfData()tidak ada.Mengembalikan byte PDF mentah yang dihasilkan Chrome.stringTidak ada yang diharapkan.Gunakan dengan PdfReader dan PageImporter saat menanamkan.
ChromeRenderResult::getWidthPt()tidak ada.Mengembalikan lebar yang diminta dalam poin.floatTidak ada yang diharapkan.Digunakan untuk menentukan ukuran objek form yang diimpor.
ChromeRenderResult::getHeightPt()tidak ada.Mengembalikan tinggi yang dihitung atau diminta dalam poin.floatTidak ada yang diharapkan.Tinggi otomatis menyertakan buffer tata letak cetak.
ViewportCalculator::pointsToCssPx(float $pt)pt: poin PDF.Mengonversi memakai 96 px CSS per 72 poin PDF.intTidak ada yang diharapkan.Dibulatkan untuk lebar viewport Chrome.
ViewportCalculator::cssPxToPoints(float $px)px: piksel CSS.Mengonversi memakai 72 poin PDF per 96 px CSS.floatTidak ada yang diharapkan.Digunakan untuk perhitungan tinggi otomatis.

Ini adalah jalur impor. Urai byte PDF Chrome dengan PdfReader, lalu teruskan reader tersebut ke PageImporter::import() untuk memperoleh halaman yang dapat ditanamkan; metode PdfReader lainnya mendukung diagnostik.

SimbolParameterPerilaku standarMengembalikanMelempar atau gagal denganCatatan
new PdfReader(string $data)data: byte PDF lengkap.Parser tidak dijalankan hingga parse().PdfReaderTidak ada yang diharapkan.Dirancang untuk PDF yang dihasilkan Chrome.
PdfReader::parse()tidak ada.Mengurai rantai referensi-silang (xref) dan trailer.voidPdfParseException untuk struktur PDF yang tidak valid.Harus dipanggil sebelum akses object/page.
PdfReader::getObject(int $objNum)Nomor objek.Menyelesaikan objek terurai berdasarkan nomor.PdfObjectPdfParseException ketika objek hilang atau rusak.Gunakan setelah parse().
PdfReader::getTrailer()tidak ada.Mengembalikan kamus trailer terurai.arrayPdfParseException ketika data trailer tidak tersedia.Digunakan oleh diagnostik dan analisis revisi.
PdfReader::getObjectNumbers()tidak ada.Mengembalikan nomor objek yang telah diurai.arrayTidak ada yang diharapkan setelah parse.Berguna untuk diagnostik importer.
PdfReader::getPage(int $pageIndex)pageIndex: indeks halaman berbasis nol.Tidak ada parse implisit.PdfObjectPdfParseException ketika hilang atau di luar jangkauan.Importer secara standar memakai halaman 0.
PdfReader::getPageContentStream(PdfObject $page)page: objek halaman terurai.Menyelesaikan aliran konten.stringPdfParseException untuk aliran yang tidak valid.Aliran kosong menyebabkan kegagalan importer.
PdfReader::getPageResources(PdfObject $page)page: objek halaman terurai.Menyelesaikan sumber daya halaman.arrayPdfParseException untuk sumber daya yang tidak valid.Kamus sumber daya ditanamkan bersama objek form.
PdfReader::getPageMediaBox(PdfObject $page)page: objek halaman terurai.Kembali ke dimensi seperti A4 ketika tidak ada.arrayKegagalan parser.Mengembalikan koordinat ruang PDF.
PdfReader::resolveRef(mixed $value)Nilai terurai.Menyelesaikan referensi objek secara rekursif jika berlaku.mixedPdfParseException untuk referensi yang tidak valid.Pembantu bergaya internal yang dipaparkan untuk alur kerja importer.
PdfReader::collectPageResources(PdfObject $page)page: objek halaman terurai.Menelusuri referensi sumber daya halaman.arrayKegagalan parser.Digunakan untuk menanamkan objek dependen bersama halaman yang diimpor.
PdfReader::getRevisionCount()tidak ada.Menghitung revisi inkremental yang telah diurai.intTidak ada yang diharapkan setelah parse.Berguna untuk PDF yang ditandatangani atau diperbarui secara inkremental.
PdfReader::getRevisionXRef(int $index)Indeks revisi berbasis nol.Mengembalikan satu tabel xref revisi.RevisionXRefTablePdfParseException untuk indeks yang tidak valid.Gunakan untuk diagnostik revisi tingkat rendah.
PdfReader::getRevisions()tidak ada.Mengembalikan semua tabel xref revisi yang telah diurai.arrayTidak ada yang diharapkan setelah parse.Tampilan status parser hanya baca.
PageImporter::import(PdfReader $reader, int $pageIndex = 0)Reader terurai dan indeks halaman berbasis nol.Mengimpor halaman pertama ketika diabaikan.ImportedFormXObjectPdfParseException ketika halaman tidak dapat diekstraksi.Mengumpulkan aliran konten, media box, sumber daya, dan objek yang direferensikan.

Objek nilai dan pembantu ini dikembalikan oleh parser atau digunakan secara internal. Gunakan saat Anda memeriksa objek, sumber daya, aliran, atau tabel revisi hasil impor.

SimbolParameterPerilaku standarMengembalikanMelempar atau gagal denganCatatan
new ImportedFormXObject(string $contentStream, array $mediaBox, array $embeddedObjects, array $resourcesDict)Aliran konten terdekode, media box, objek tertanam, kamus sumber daya.Menyimpan payload form hasil impor yang mandiri.ImportedFormXObjectTidak ada yang diharapkan.Biasanya dikembalikan oleh PageImporter::import().
ImportedFormXObject::getWidth()tidak ada.Mengembalikan lebar form yang diimpor dalam poin.floatTidak ada yang diharapkan.Gunakan saat menempatkan keluaran Chrome ke dalam halaman.
ImportedFormXObject::getHeight()tidak ada.Mengembalikan tinggi form yang diimpor dalam poin.floatTidak ada yang diharapkan.Hasil render dengan tinggi otomatis disebarkan melalui nilai ini.
ImportedFormXObject::getEmbeddedObjects()tidak ada.Mengembalikan objek yang diperlukan oleh form yang diimpor.arrayTidak ada yang diharapkan.Kode writer memakai objek-objek ini untuk mempertahankan sumber daya.
ImportedFormXObject::getResourcesDict()tidak ada.Mengembalikan kamus sumber daya yang diimpor.arrayTidak ada yang diharapkan.Digunakan saat membangun form XObject.
ImportedFormXObject::getMediaBox()tidak ada.Mengembalikan media box yang diimpor.arrayTidak ada yang diharapkan.Gunakan untuk diagnostik penempatan.
ImportedFormXObject::getContentStream()tidak ada.Mengembalikan aliran konten halaman yang diimpor.stringTidak ada yang diharapkan.Ditujukan untuk integrasi writer/import.
new PdfObject(int $objectNumber, int $generation, array $dictionary, ?string $rawStreamData = null, ?string $decodedStreamData = null, ?string $rawDictionaryBytes = null)Nomor objek, generasi, kamus terurai, byte aliran opsional, aliran terdekode opsional, byte kamus mentah opsional.Menyimpan status objek yang telah diurai.PdfObjectTidak ada yang diharapkan.Dibuat oleh bagian internal parser.
PdfObject::getRawDictionaryBytes()tidak ada.Mengembalikan byte kamus asli ketika tersedia.`stringnull`Tidak ada yang diharapkan.
PdfObject::getRawStreamData()tidak ada.Mengembalikan byte aliran yang belum terdekode ketika tersedia.`stringnull`Tidak ada yang diharapkan.
PdfObject::getDictionary()tidak ada.Mengembalikan entri kamus yang telah diurai.arrayTidak ada yang diharapkan.Tampilan parser hanya baca.
PdfObject::get(string $key)Kunci kamus.Mengembalikan null ketika kunci tidak ada.mixedTidak ada yang diharapkan.Mencegah pemanggil mengurai kamus mentah.
PdfObject::getRef(string $key)Kunci kamus.Mengembalikan tuple referensi objek ketika nilainya berupa referensi.`arraynull`Tidak ada yang diharapkan.
PdfObject::getArray(string $key)Kunci kamus.Mengembalikan nilai larik atau larik kosong ketika tidak tersedia.arrayTidak ada yang diharapkan.Pembungkus praktis untuk entri kamus bernilai larik.
PdfObject::hasStream()tidak ada.Memeriksa apakah byte aliran tersedia.boolTidak ada yang diharapkan.Membedakan objek yang hanya berupa kamus.
PdfObject::getType()tidak ada.Membaca /Type.`stringnull`Tidak ada yang diharapkan.
PdfObject::getSubtype()tidak ada.Membaca /Subtype.`stringnull`Tidak ada yang diharapkan.
RevisionExtractor::extractRevision(string $pdfData, PdfReader $reader, int $revision)Byte PDF, reader terurai, dan indeks revisi berbasis nol.Mengekstraksi satu revisi inkremental.stringPdfParseException untuk batas yang tidak valid.Digunakan oleh pengujian dan diagnostik parser.
RevisionExtractor::getRevisionBoundaries(string $pdfData, PdfReader $reader)Byte PDF dan reader terurai.Menemukan rentang byte untuk revisi inkremental.arrayPdfParseException untuk struktur xref yang rusak.Membantu menganalisis PDF yang ditandatangani atau diperbarui secara inkremental.
`StreamDecoder::decode(string $data, stringarray $filter)`Byte aliran dan satu atau lebih filter PDF.Menerapkan filter secara berurutan.stringPdfParseException untuk filter yang tidak didukung atau tidak valid.
new ResourceCollector(PdfReader $reader)Reader terurai.Dimulai dengan kumpulan objek yang masih kosong.ResourceCollectorTidak ada yang diharapkan.Digunakan oleh PdfReader::collectPageResources().
ResourceCollector::traverse(mixed $value, int $depth = 0)Nilai terurai dan kedalaman rekursi.Menelusuri referensi sumber daya hingga batas kedalaman internal.voidKegagalan parser untuk referensi yang tidak valid.Pembantu internal untuk melengkapi sumber daya impor halaman.
ResourceCollector::getCollected()tidak ada.Mengembalikan objek sumber daya yang terkumpul.arrayTidak ada yang diharapkan.Panggil setelah traverse().
new RevisionXRefTable(int $index, int $xrefOffset, array $xrefEntries, array $trailer, ?int $prevOffset)Indeks revisi, offset xref, entri xref, trailer, offset sebelumnya opsional.Snapshot tetap dari satu revisi inkremental.RevisionXRefTableTidak ada yang diharapkan.Dibuat oleh bagian internal parser.
RevisionXRefTable::getObjectNumbers()tidak ada.Mengembalikan nomor objek yang aktif dalam tabel revisi.arrayTidak ada yang diharapkan.API diagnostik revisi tingkat rendah.
RevisionXRefTable::getActiveObjectCount()tidak ada.Menghitung objek aktif.intTidak ada yang diharapkan.Berguna untuk asersi parser.
RevisionXRefTable::hasRootUpdate()tidak ada.Melaporkan apakah revisi memperbarui akar dokumen.boolTidak ada yang diharapkan.Berguna untuk analisis pembaruan inkremental.
RevisionXRefTable::getSize()tidak ada.Mengembalikan nilai ukuran tabel xref.intTidak ada yang diharapkan.Mencerminkan metadata xref PDF yang telah diurai.

Gunakan API ini hanya untuk diagnostik parser mendalam atau reduksi fixture. API ini memaparkan lexer dan mesin referensi silang di bawah PdfReader dan tidak diperlukan untuk impor normal.

SimbolParameterPerilaku standarMengembalikanMelempar atau gagal denganCatatan
new PdfTokenizer(string $data, int $offset = 0)Byte PDF dan offset awal opsional.Dimulai pada offset nol.PdfTokenizerTidak ada yang diharapkan.Parser leksikal tingkat rendah.
PdfTokenizer::getOffset()tidak ada.Mengembalikan offset byte saat ini.intTidak ada yang diharapkan.Pembantu diagnostik untuk galat parser.
PdfTokenizer::setOffset(int $offset)Offset byte.Memindahkan kursor tokenizer.voidPdfParseException untuk offset yang tidak valid.Gunakan dengan hati-hati; pemanggil memiliki status parser.
PdfTokenizer::isEof()tidak ada.Memeriksa apakah kursor telah mencapai akhir.boolTidak ada yang diharapkan.Pembantu perulangan parser tingkat rendah.
PdfTokenizer::skipWhitespace()tidak ada.Maju melewati spasi kosong dan komentar PDF.voidTidak ada yang diharapkan.Digunakan sebelum pembacaan token.
PdfTokenizer::readToken()tidak ada.Membaca token skalar berikutnya.`stringintfloat
PdfTokenizer::readName()tidak ada.Membaca objek nama PDF.stringPdfParseException untuk nama yang rusak.Mendekode escape nama.
PdfTokenizer::readLiteralString()tidak ada.Membaca string literal.stringPdfParseException untuk string yang rusak.Menangani tanda kurung bersarang dan escape.
PdfTokenizer::readHexString()tidak ada.Membaca string heksadesimal.stringPdfParseException untuk heks yang rusak.Memberi padding pada heks berpanjang ganjil sesuai aturan parser.
PdfTokenizer::readNumber()tidak ada.Membaca integer atau float.`intfloat`PdfParseException untuk angka yang tidak valid.
PdfTokenizer::readKeyword()tidak ada.Membaca kata kunci PDF.stringPdfParseException untuk kata kunci yang tidak valid.Menjaga penguraian kata kunci tetap terpusat.
PdfTokenizer::readDictionary()tidak ada.Membaca kamus PDF.arrayPdfParseException untuk kamus yang rusak.Digunakan untuk objek, aliran, dan trailer.
PdfTokenizer::readArray()tidak ada.Membaca larik PDF.arrayPdfParseException untuk larik yang rusak.Pembantu parser rekursif.
PdfTokenizer::readValue()tidak ada.Membaca nilai PDF apa pun yang didukung.mixedPdfParseException untuk nilai yang rusak.Primitif parser umum.
PdfTokenizer::readStreamData(int $length)Panjang aliran.Membaca byte aliran tepat sebanyak yang diminta.stringPdfParseException untuk batas aliran yang tidak valid.Digunakan setelah resolusi panjang aliran kamus.
PdfTokenizer::peek(int $length = 1)Jumlah byte.Membaca ke depan tanpa memajukan kursor.stringTidak ada yang diharapkan.Berguna untuk percabangan parser.
PdfTokenizer::searchBackward(string $pattern, int $startFrom = 0)Pola dan offset awal opsional.Mencari mundur dari akhir atau dari offset yang diberikan.`intfalse`Tidak ada yang diharapkan.
PdfTokenizer::readLine()tidak ada.Membaca satu baris dari offset saat ini.stringTidak ada yang diharapkan.Pembantu pemindai tingkat rendah.
CrossRefParser::parseXRefTable(string $data, int $offset)Byte PDF dan offset tabel xref.Mengurai entri tabel referensi silang klasik.arrayPdfParseException untuk data xref yang rusak.API parser tingkat rendah.
CrossRefParser::parseXRefStream(string $data, int $offset)Byte PDF dan offset aliran xref.Mengurai entri aliran referensi silang.arrayPdfParseException untuk data aliran yang rusak.Mendukung aliran xref PDF modern.

EInvoiceServiceFactory menyelesaikan kontrak e-invoice Premium opsional secara lazy dan mengembalikan null ketika kontrak tersebut tidak ada. BrowserPool mengelola siklus hidup Chrome milik renderer; kelola langsung hanya di worker yang berjalan lama.

SimbolParameterPerilaku standarMengembalikanMelempar atau gagal denganCatatan
EInvoiceServiceFactory::makeEmbedder()tidak ada.Mengembalikan null kecuali dukungan e-invoice Premium Pro terpasang.`EmbedderInterfacenull`Galat konstruksi paket opsional.
EInvoiceServiceFactory::makeValidator()tidak ada.Mengembalikan null kecuali dukungan validasi Premium Enterprise terpasang.`ValidatorInterfacenull`Galat konstruksi paket opsional.
EInvoiceServiceFactory::makeDefaultProfile()tidak ada.Mengembalikan profil e-invoice standar ketika tersedia.`ProfileInterfacenull`Galat paket opsional.
EInvoiceServiceFactory::makeSchematronRunner()tidak ada.Mengembalikan null kecuali dukungan Schematron Premium Enterprise terpasang.`SchematronRunnerInterfacenull`Galat konstruksi paket opsional.
new BrowserPool(ChromeRendererConfig $config, ?LoggerInterface $logger = null)Konfigurasi renderer dan logger opsional.Browser dimulai secara lazy pada getBrowser() pertama.BrowserPoolTidak ada yang diharapkan hingga browser dimulai.Pembantu siklus hidup milik renderer.
BrowserPool::getBrowser()tidak ada.Memulai atau mengembalikan instance browser Chrome saat ini.BrowserGalat saat memulai browser.Pembantu siklus hidup milik renderer.
BrowserPool::incrementRenderCount()tidak ada.Menambah penghitung render dan merotasi ketika kebijakan pool memerlukannya.voidGalat siklus hidup browser.Digunakan oleh worker yang berjalan lama.
BrowserPool::close()tidak ada.Menutup instance browser yang dikelola.voidGalat penonaktifan browser.Panggil saat worker dinonaktifkan.
  • Renderer ini bukan sandbox browser untuk HTML yang tidak tepercaya. Validasi ukuran, kebijakan sumber daya, dan otorisasi pemanggil sebelum proses render.
  • API parser sengaja dibuat sempit. Gunakan untuk impor keluaran Chrome, bukan perbaikan PDF umum.
  • Tutup renderer secara eksplisit di worker yang berumur panjang.