[{"data":1,"prerenderedAt":1407},["ShallowReactive",2],{"docs-navigation:en":3,"content-page:docs:qowfOEoJ4EbR1Dg0wstWd7rgHPBWmwDNDd6GxR1ImRU":133,"content-page-surround:docs:qowfOEoJ4EbR1Dg0wstWd7rgHPBWmwDNDd6GxR1ImRU":1395,"i-lucide:terminal":1398,"i-logos:typescript-icon":1402,"i-lucide:clipboard":1405},[4,25,73,121,127],{"title":5,"id":6,"canonicalKey":7,"locale":8,"draft":9,"icon":10,"sidebar":11,"path":12,"children":13},"Getting Started","content:docs:1.getting-started:.navigation.yml","1","en",false,"lucide:rocket","group","\u002Fdocs\u002Fgetting-started",[14,20],{"title":15,"id":16,"canonicalKey":17,"locale":8,"draft":9,"icon":18,"path":19},"Installation","content:docs:1.getting-started:2.installation.md","1\u002F2","lucide:download","\u002Fdocs\u002Fgetting-started\u002Finstallation",{"title":21,"id":22,"canonicalKey":23,"locale":8,"draft":9,"icon":10,"path":24},"Quickstart","content:docs:1.getting-started:3.quickstart.md","1\u002F3","\u002Fdocs\u002Fgetting-started\u002Fquickstart",{"title":26,"page":9,"canonicalKey":27,"locale":8,"id":28,"draft":9,"icon":29,"sidebar":11,"children":30},"Guides","2","content:docs:2.guides:.navigation.yml","lucide:compass",[31,37,43,49,55,61,67],{"title":32,"id":33,"canonicalKey":34,"locale":8,"draft":9,"icon":35,"path":36},"Authoring","content:docs:2.guides:1.authoring.md","2\u002F1","lucide:component","\u002Fdocs\u002Fguides\u002Fauthoring",{"title":38,"id":39,"canonicalKey":40,"locale":8,"draft":9,"icon":41,"path":42},"Contents, links & bookmarks","content:docs:2.guides:2.contents-links-bookmarks.md","2\u002F2","lucide:list-tree","\u002Fdocs\u002Fguides\u002Fcontents-links-bookmarks",{"title":44,"id":45,"canonicalKey":46,"locale":8,"draft":9,"icon":47,"path":48},"Images & fonts","content:docs:2.guides:3.images-and-fonts.md","2\u002F3","lucide:image","\u002Fdocs\u002Fguides\u002Fimages-and-fonts",{"title":50,"id":51,"canonicalKey":52,"locale":8,"draft":9,"icon":53,"path":54},"SVG graphics","content:docs:2.guides:4.svg-graphics.md","2\u002F4","lucide:shapes","\u002Fdocs\u002Fguides\u002Fsvg-graphics",{"title":56,"id":57,"canonicalKey":58,"locale":8,"draft":9,"icon":59,"path":60},"Errors & debugging","content:docs:2.guides:5.errors-and-debugging.md","2\u002F5","lucide:bug","\u002Fdocs\u002Fguides\u002Ferrors-and-debugging",{"title":62,"id":63,"canonicalKey":64,"locale":8,"draft":9,"icon":65,"path":66},"Testing your PDFs","content:docs:2.guides:6.testing.md","2\u002F6","lucide:flask-conical","\u002Fdocs\u002Fguides\u002Ftesting",{"title":68,"id":69,"canonicalKey":70,"locale":8,"draft":9,"icon":71,"path":72},"Production recipes","content:docs:2.guides:7.recipes.md","2\u002F7","lucide:notebook-tabs","\u002Fdocs\u002Fguides\u002Frecipes",{"title":74,"page":9,"canonicalKey":75,"locale":8,"id":76,"draft":9,"icon":77,"sidebar":11,"children":78},"Reference","3","content:docs:3.reference:.navigation.yml","lucide:book-marked",[79,85,91,97,103,109,115],{"title":80,"id":81,"canonicalKey":82,"locale":8,"draft":9,"icon":83,"path":84},"definePdf","content:docs:3.reference:1.define-pdf.md","3\u002F1","lucide:settings-2","\u002Fdocs\u002Freference\u002Fdefine-pdf",{"title":86,"id":87,"canonicalKey":88,"locale":8,"draft":9,"icon":89,"path":90},"The #pdf registry","content:docs:3.reference:2.registry.md","3\u002F2","lucide:braces","\u002Fdocs\u002Freference\u002Fregistry",{"title":92,"id":93,"canonicalKey":94,"locale":8,"draft":9,"icon":95,"path":96},"Module options","content:docs:3.reference:3.module-options.md","3\u002F3","lucide:sliders","\u002Fdocs\u002Freference\u002Fmodule-options",{"title":98,"id":99,"canonicalKey":100,"locale":8,"draft":9,"icon":101,"path":102},"Primitives","content:docs:3.reference:4.primitives.md","3\u002F4","lucide:box","\u002Fdocs\u002Freference\u002Fprimitives",{"title":104,"id":105,"canonicalKey":106,"locale":8,"draft":9,"icon":107,"path":108},"Composables","content:docs:3.reference:5.composables.md","3\u002F5","lucide:function-square","\u002Fdocs\u002Freference\u002Fcomposables",{"title":110,"id":111,"canonicalKey":112,"locale":8,"draft":9,"icon":113,"path":114},"Test utilities","content:docs:3.reference:6.test-utilities.md","3\u002F6","lucide:test-tube","\u002Fdocs\u002Freference\u002Ftest-utilities",{"title":116,"id":117,"canonicalKey":118,"locale":8,"draft":9,"icon":119,"path":120},"Styles","content:docs:3.reference:7.styles.md","3\u002F7","lucide:palette","\u002Fdocs\u002Freference\u002Fstyles",{"title":122,"id":123,"canonicalKey":124,"locale":8,"draft":9,"icon":125,"sidebar":11,"path":126},"Conformance & Philosophy","content:docs:4.conformance:.navigation.yml","4","lucide:scale","\u002Fdocs\u002Fconformance",{"title":128,"id":129,"canonicalKey":130,"locale":8,"draft":9,"icon":131,"sidebar":11,"path":132},"Examples","content:docs:5.examples:.navigation.yml","5","lucide:layout-grid","\u002Fdocs\u002Fexamples",{"title":62,"description":134,"icon":65,"body":135,"type":1381,"id":63,"canonicalKey":64,"draft":9,"partial":9,"locale":8,"collection":1382,"navigationFile":9,"file":1383,"resolvedRefs":1389,"route":1390,"resolution":1392},"Assert against your own templates with a real render using @lupinum\u002Fnuxt-pdf\u002Ftest, plus a realistic Vitest example.",{"type":136,"children":137,"toc":1371},"root",[138,162,169,188,233,245,251,812,863,869,879,984,994,1000,1016,1157,1163,1196,1325,1351,1358],{"type":139,"tag":140,"props":141,"children":142},"element","p",{},[143,146,152,154,160],{"type":144,"value":145},"text","The utilities Nuxt PDF is tested with ship as ",{"type":139,"tag":147,"props":148,"children":149},"code",{},[150],{"type":144,"value":151},"@lupinum\u002Fnuxt-pdf\u002Ftest",{"type":144,"value":153},". They run\na ",{"type":139,"tag":155,"props":156,"children":157},"strong",{},[158],{"type":144,"value":159},"real render",{"type":144,"value":161}," through the same pipeline that your server uses. This pipeline includes asset\nresolution, font registration, and single-pass or multi-pass layout. You assert against actual\noutput, not a mocked tree. There is one parser, and it is the one the package's\nown suite runs on.",{"type":139,"tag":163,"props":164,"children":166},"h2",{"id":165},"setup",[167],{"type":144,"value":168},"Setup",{"type":139,"tag":140,"props":170,"children":171},{},[172,174,179,181,186],{"type":144,"value":173},"The parser and rasterizer load ",{"type":139,"tag":147,"props":175,"children":176},{},[177],{"type":144,"value":178},"pdfjs-dist",{"type":144,"value":180}," and ",{"type":139,"tag":147,"props":182,"children":183},{},[184],{"type":144,"value":185},"@napi-rs\u002Fcanvas",{"type":144,"value":187}," lazily. Install\nthem as dev dependencies of the project under test:",{"type":139,"tag":189,"props":190,"children":195},"pre",{"language":191,"filename":192,"class":193,"tabindex":194},"bash","pnpm","shiki shiki-themes light-plus dark-plus dark:dark-plus","0",[196],{"type":139,"tag":147,"props":197,"children":199},{"class":198},"language-bash",[200],{"type":139,"tag":201,"props":202,"children":205},"span",{"class":203,"style":204},"line","display: inline",[206,211,217,223,228],{"type":139,"tag":201,"props":207,"children":209},{"style":208},"color:#795E26;--shiki-dark:#DCDCAA",[210],{"type":144,"value":192},{"type":139,"tag":201,"props":212,"children":214},{"style":213},"color:#A31515;--shiki-dark:#CE9178",[215],{"type":144,"value":216}," add",{"type":139,"tag":201,"props":218,"children":220},{"style":219},"color:#0000FF;--shiki-dark:#569CD6",[221],{"type":144,"value":222}," -D",{"type":139,"tag":201,"props":224,"children":225},{"style":213},[226],{"type":144,"value":227}," pdfjs-dist",{"type":139,"tag":201,"props":229,"children":230},{"style":213},[231],{"type":144,"value":232}," @napi-rs\u002Fcanvas",{"type":139,"tag":140,"props":234,"children":235},{},[236,238,243],{"type":144,"value":237},"The helpers are runner-agnostic: they throw a ",{"type":139,"tag":147,"props":239,"children":240},{},[241],{"type":144,"value":242},"PdfAssertionError",{"type":144,"value":244}," with an\nactionable message rather than depending on Vitest or Jest.",{"type":139,"tag":163,"props":246,"children":248},{"id":247},"a-realistic-example",[249],{"type":144,"value":250},"A realistic example",{"type":139,"tag":189,"props":252,"children":255},{"language":253,"filename":254,"class":193,"tabindex":194},"ts","test\u002Finvoice.test.ts",[256],{"type":139,"tag":147,"props":257,"children":259},{"class":258},"language-ts",[260,306,308,346,347,350,351,383,384,423,424,461,462,475,476,536,537,583,584,592,593,596,597,618,619,645,646,687,688,731,732,761,762,794,795,803,804],{"type":139,"tag":201,"props":261,"children":262},{"class":203,"style":204},[263,269,275,281,286,291,296,301],{"type":139,"tag":201,"props":264,"children":266},{"style":265},"color:#AF00DB;--shiki-dark:#C586C0",[267],{"type":144,"value":268},"import",{"type":139,"tag":201,"props":270,"children":272},{"style":271},"color:#000000;--shiki-dark:#D4D4D4",[273],{"type":144,"value":274}," { ",{"type":139,"tag":201,"props":276,"children":278},{"style":277},"color:#001080;--shiki-dark:#9CDCFE",[279],{"type":144,"value":280},"describe",{"type":139,"tag":201,"props":282,"children":283},{"style":271},[284],{"type":144,"value":285},", ",{"type":139,"tag":201,"props":287,"children":288},{"style":277},[289],{"type":144,"value":290},"it",{"type":139,"tag":201,"props":292,"children":293},{"style":271},[294],{"type":144,"value":295}," } ",{"type":139,"tag":201,"props":297,"children":298},{"style":265},[299],{"type":144,"value":300},"from",{"type":139,"tag":201,"props":302,"children":303},{"style":213},[304],{"type":144,"value":305}," 'vitest'",{"type":144,"value":307},"\n",{"type":139,"tag":201,"props":309,"children":310},{"class":203,"style":204},[311,315,319,324,328,333,337,341],{"type":139,"tag":201,"props":312,"children":313},{"style":265},[314],{"type":144,"value":268},{"type":139,"tag":201,"props":316,"children":317},{"style":271},[318],{"type":144,"value":274},{"type":139,"tag":201,"props":320,"children":321},{"style":277},[322],{"type":144,"value":323},"expectPdf",{"type":139,"tag":201,"props":325,"children":326},{"style":271},[327],{"type":144,"value":285},{"type":139,"tag":201,"props":329,"children":330},{"style":277},[331],{"type":144,"value":332},"renderPdfSfc",{"type":139,"tag":201,"props":334,"children":335},{"style":271},[336],{"type":144,"value":295},{"type":139,"tag":201,"props":338,"children":339},{"style":265},[340],{"type":144,"value":300},{"type":139,"tag":201,"props":342,"children":343},{"style":213},[344],{"type":144,"value":345}," '@lupinum\u002Fnuxt-pdf\u002Ftest'",{"type":144,"value":307},{"type":139,"tag":201,"props":348,"children":349},{"class":203,"style":204},[],{"type":144,"value":307},{"type":139,"tag":201,"props":352,"children":353},{"class":203,"style":204},[354,358,363,368,373,378],{"type":139,"tag":201,"props":355,"children":356},{"style":208},[357],{"type":144,"value":280},{"type":139,"tag":201,"props":359,"children":360},{"style":271},[361],{"type":144,"value":362},"(",{"type":139,"tag":201,"props":364,"children":365},{"style":213},[366],{"type":144,"value":367},"'invoice.vue'",{"type":139,"tag":201,"props":369,"children":370},{"style":271},[371],{"type":144,"value":372},", () ",{"type":139,"tag":201,"props":374,"children":375},{"style":219},[376],{"type":144,"value":377},"=>",{"type":139,"tag":201,"props":379,"children":380},{"style":271},[381],{"type":144,"value":382}," {",{"type":144,"value":307},{"type":139,"tag":201,"props":385,"children":386},{"class":203,"style":204},[387,392,396,401,405,410,415,419],{"type":139,"tag":201,"props":388,"children":389},{"style":208},[390],{"type":144,"value":391},"  it",{"type":139,"tag":201,"props":393,"children":394},{"style":271},[395],{"type":144,"value":362},{"type":139,"tag":201,"props":397,"children":398},{"style":213},[399],{"type":144,"value":400},"'renders the customer, a terms link, and an outline'",{"type":139,"tag":201,"props":402,"children":403},{"style":271},[404],{"type":144,"value":285},{"type":139,"tag":201,"props":406,"children":407},{"style":219},[408],{"type":144,"value":409},"async",{"type":139,"tag":201,"props":411,"children":412},{"style":271},[413],{"type":144,"value":414}," () ",{"type":139,"tag":201,"props":416,"children":417},{"style":219},[418],{"type":144,"value":377},{"type":139,"tag":201,"props":420,"children":421},{"style":271},[422],{"type":144,"value":382},{"type":144,"value":307},{"type":139,"tag":201,"props":425,"children":426},{"class":203,"style":204},[427,432,436,442,447,452,457],{"type":139,"tag":201,"props":428,"children":429},{"style":219},[430],{"type":144,"value":431},"    const",{"type":139,"tag":201,"props":433,"children":434},{"style":271},[435],{"type":144,"value":274},{"type":139,"tag":201,"props":437,"children":439},{"style":438},"color:#0070C1;--shiki-dark:#4FC1FF",[440],{"type":144,"value":441},"parsed",{"type":139,"tag":201,"props":443,"children":444},{"style":271},[445],{"type":144,"value":446}," } = ",{"type":139,"tag":201,"props":448,"children":449},{"style":265},[450],{"type":144,"value":451},"await",{"type":139,"tag":201,"props":453,"children":454},{"style":208},[455],{"type":144,"value":456}," renderPdfSfc",{"type":139,"tag":201,"props":458,"children":459},{"style":271},[460],{"type":144,"value":362},{"type":144,"value":307},{"type":139,"tag":201,"props":463,"children":464},{"class":203,"style":204},[465,470],{"type":139,"tag":201,"props":466,"children":467},{"style":213},[468],{"type":144,"value":469},"      '.\u002Fpdfs\u002Finvoice.vue'",{"type":139,"tag":201,"props":471,"children":472},{"style":271},[473],{"type":144,"value":474},",",{"type":144,"value":307},{"type":139,"tag":201,"props":477,"children":478},{"class":203,"style":204},[479,484,489,493,498,503,507,512,517,521,526,531],{"type":139,"tag":201,"props":480,"children":481},{"style":271},[482],{"type":144,"value":483},"      { ",{"type":139,"tag":201,"props":485,"children":486},{"style":277},[487],{"type":144,"value":488},"invoice:",{"type":139,"tag":201,"props":490,"children":491},{"style":271},[492],{"type":144,"value":274},{"type":139,"tag":201,"props":494,"children":495},{"style":277},[496],{"type":144,"value":497},"customer:",{"type":139,"tag":201,"props":499,"children":500},{"style":213},[501],{"type":144,"value":502}," 'Acme Corp'",{"type":139,"tag":201,"props":504,"children":505},{"style":271},[506],{"type":144,"value":285},{"type":139,"tag":201,"props":508,"children":509},{"style":277},[510],{"type":144,"value":511},"number:",{"type":139,"tag":201,"props":513,"children":514},{"style":213},[515],{"type":144,"value":516}," 'INV-001'",{"type":139,"tag":201,"props":518,"children":519},{"style":271},[520],{"type":144,"value":285},{"type":139,"tag":201,"props":522,"children":523},{"style":277},[524],{"type":144,"value":525},"total:",{"type":139,"tag":201,"props":527,"children":528},{"style":213},[529],{"type":144,"value":530}," 'EUR 1,250.00'",{"type":139,"tag":201,"props":532,"children":533},{"style":271},[534],{"type":144,"value":535}," } },",{"type":144,"value":307},{"type":139,"tag":201,"props":538,"children":539},{"class":203,"style":204},[540,544,549,554,559,564,568,573,578],{"type":139,"tag":201,"props":541,"children":542},{"style":271},[543],{"type":144,"value":483},{"type":139,"tag":201,"props":545,"children":546},{"style":277},[547],{"type":144,"value":548},"fonts:",{"type":139,"tag":201,"props":550,"children":551},{"style":271},[552],{"type":144,"value":553}," [{ ",{"type":139,"tag":201,"props":555,"children":556},{"style":277},[557],{"type":144,"value":558},"family:",{"type":139,"tag":201,"props":560,"children":561},{"style":213},[562],{"type":144,"value":563}," 'Invoice Sans'",{"type":139,"tag":201,"props":565,"children":566},{"style":271},[567],{"type":144,"value":285},{"type":139,"tag":201,"props":569,"children":570},{"style":277},[571],{"type":144,"value":572},"src:",{"type":139,"tag":201,"props":574,"children":575},{"style":213},[576],{"type":144,"value":577}," 'InvoiceSans-Regular.ttf'",{"type":139,"tag":201,"props":579,"children":580},{"style":271},[581],{"type":144,"value":582}," }] },",{"type":144,"value":307},{"type":139,"tag":201,"props":585,"children":586},{"class":203,"style":204},[587],{"type":139,"tag":201,"props":588,"children":589},{"style":271},[590],{"type":144,"value":591},"    )",{"type":144,"value":307},{"type":139,"tag":201,"props":594,"children":595},{"class":203,"style":204},[],{"type":144,"value":307},{"type":139,"tag":201,"props":598,"children":599},{"class":203,"style":204},[600,605,609,613],{"type":139,"tag":201,"props":601,"children":602},{"style":208},[603],{"type":144,"value":604},"    expectPdf",{"type":139,"tag":201,"props":606,"children":607},{"style":271},[608],{"type":144,"value":362},{"type":139,"tag":201,"props":610,"children":611},{"style":277},[612],{"type":144,"value":441},{"type":139,"tag":201,"props":614,"children":615},{"style":271},[616],{"type":144,"value":617},")",{"type":144,"value":307},{"type":139,"tag":201,"props":620,"children":621},{"class":203,"style":204},[622,627,632,636,641],{"type":139,"tag":201,"props":623,"children":624},{"style":271},[625],{"type":144,"value":626},"      .",{"type":139,"tag":201,"props":628,"children":629},{"style":208},[630],{"type":144,"value":631},"toHavePageCount",{"type":139,"tag":201,"props":633,"children":634},{"style":271},[635],{"type":144,"value":362},{"type":139,"tag":201,"props":637,"children":639},{"style":638},"color:#098658;--shiki-dark:#B5CEA8",[640],{"type":144,"value":27},{"type":139,"tag":201,"props":642,"children":643},{"style":271},[644],{"type":144,"value":617},{"type":144,"value":307},{"type":139,"tag":201,"props":647,"children":648},{"class":203,"style":204},[649,653,658,662,667,672,677,682],{"type":139,"tag":201,"props":650,"children":651},{"style":271},[652],{"type":144,"value":626},{"type":139,"tag":201,"props":654,"children":655},{"style":208},[656],{"type":144,"value":657},"toContainText",{"type":139,"tag":201,"props":659,"children":660},{"style":271},[661],{"type":144,"value":362},{"type":139,"tag":201,"props":663,"children":664},{"style":213},[665],{"type":144,"value":666},"'Invoice for Acme Corp'",{"type":139,"tag":201,"props":668,"children":669},{"style":271},[670],{"type":144,"value":671},", { ",{"type":139,"tag":201,"props":673,"children":674},{"style":277},[675],{"type":144,"value":676},"page:",{"type":139,"tag":201,"props":678,"children":679},{"style":638},[680],{"type":144,"value":681}," 1",{"type":139,"tag":201,"props":683,"children":684},{"style":271},[685],{"type":144,"value":686}," })",{"type":144,"value":307},{"type":139,"tag":201,"props":689,"children":690},{"class":203,"style":204},[691,695,700,705,710,715,719,723,727],{"type":139,"tag":201,"props":692,"children":693},{"style":271},[694],{"type":144,"value":626},{"type":139,"tag":201,"props":696,"children":697},{"style":208},[698],{"type":144,"value":699},"toHaveLink",{"type":139,"tag":201,"props":701,"children":702},{"style":271},[703],{"type":144,"value":704},"({ ",{"type":139,"tag":201,"props":706,"children":707},{"style":277},[708],{"type":144,"value":709},"destination:",{"type":139,"tag":201,"props":711,"children":712},{"style":213},[713],{"type":144,"value":714}," 'terms'",{"type":139,"tag":201,"props":716,"children":717},{"style":271},[718],{"type":144,"value":285},{"type":139,"tag":201,"props":720,"children":721},{"style":277},[722],{"type":144,"value":676},{"type":139,"tag":201,"props":724,"children":725},{"style":638},[726],{"type":144,"value":681},{"type":139,"tag":201,"props":728,"children":729},{"style":271},[730],{"type":144,"value":686},{"type":144,"value":307},{"type":139,"tag":201,"props":733,"children":734},{"class":203,"style":204},[735,739,743,747,752,757],{"type":139,"tag":201,"props":736,"children":737},{"style":271},[738],{"type":144,"value":626},{"type":139,"tag":201,"props":740,"children":741},{"style":208},[742],{"type":144,"value":699},{"type":139,"tag":201,"props":744,"children":745},{"style":271},[746],{"type":144,"value":704},{"type":139,"tag":201,"props":748,"children":749},{"style":277},[750],{"type":144,"value":751},"url:",{"type":139,"tag":201,"props":753,"children":754},{"style":213},[755],{"type":144,"value":756}," 'https:\u002F\u002Fexample.com\u002F'",{"type":139,"tag":201,"props":758,"children":759},{"style":271},[760],{"type":144,"value":686},{"type":144,"value":307},{"type":139,"tag":201,"props":763,"children":764},{"class":203,"style":204},[765,769,774,779,784,789],{"type":139,"tag":201,"props":766,"children":767},{"style":271},[768],{"type":144,"value":626},{"type":139,"tag":201,"props":770,"children":771},{"style":208},[772],{"type":144,"value":773},"toHaveOutline",{"type":139,"tag":201,"props":775,"children":776},{"style":271},[777],{"type":144,"value":778},"([{ ",{"type":139,"tag":201,"props":780,"children":781},{"style":277},[782],{"type":144,"value":783},"title:",{"type":139,"tag":201,"props":785,"children":786},{"style":213},[787],{"type":144,"value":788}," 'Terms'",{"type":139,"tag":201,"props":790,"children":791},{"style":271},[792],{"type":144,"value":793}," }])",{"type":144,"value":307},{"type":139,"tag":201,"props":796,"children":797},{"class":203,"style":204},[798],{"type":139,"tag":201,"props":799,"children":800},{"style":271},[801],{"type":144,"value":802},"  })",{"type":144,"value":307},{"type":139,"tag":201,"props":805,"children":806},{"class":203,"style":204},[807],{"type":139,"tag":201,"props":808,"children":809},{"style":271},[810],{"type":144,"value":811},"})",{"type":139,"tag":140,"props":813,"children":814},{},[815,820,822,827,829,834,836,841,842,847,849,854,856,861],{"type":139,"tag":147,"props":816,"children":817},{},[818],{"type":144,"value":819},"renderPdfSfc(file, props, options)",{"type":144,"value":821}," compiles nested SFC imports, discovers local\nimages, bundles declared fonts, mounts through the real registry pipeline, and\nreturns ",{"type":139,"tag":147,"props":823,"children":824},{},[825],{"type":144,"value":826},"{ bytes, parsed, result }",{"type":144,"value":828},". Use ",{"type":139,"tag":147,"props":830,"children":831},{},[832],{"type":144,"value":833},"renderPdfTemplate(Component, props)",{"type":144,"value":835},"\nwhen the test already has an ordinary Vue component. Both helpers accept the\nsame partial ",{"type":139,"tag":147,"props":837,"children":838},{},[839],{"type":144,"value":840},"remote",{"type":144,"value":180},{"type":139,"tag":147,"props":843,"children":844},{},[845],{"type":144,"value":846},"limits",{"type":144,"value":848}," options as ",{"type":139,"tag":147,"props":850,"children":851},{},[852],{"type":144,"value":853},"nuxt.config",{"type":144,"value":855},"; the SFC helper also\naccepts the same local ",{"type":139,"tag":147,"props":857,"children":858},{},[859],{"type":144,"value":860},"fonts",{"type":144,"value":862}," declarations.",{"type":139,"tag":163,"props":864,"children":866},{"id":865},"assertions",[867],{"type":144,"value":868},"Assertions",{"type":139,"tag":140,"props":870,"children":871},{},[872,877],{"type":139,"tag":147,"props":873,"children":874},{},[875],{"type":144,"value":876},"expectPdf(parsed)",{"type":144,"value":878}," returns a chainable expectation:",{"type":139,"tag":880,"props":881,"children":882},"table",{},[883,902],{"type":139,"tag":884,"props":885,"children":886},"thead",{},[887],{"type":139,"tag":888,"props":889,"children":890},"tr",{},[891,897],{"type":139,"tag":892,"props":893,"children":894},"th",{},[895],{"type":144,"value":896},"Assertion",{"type":139,"tag":892,"props":898,"children":899},{},[900],{"type":144,"value":901},"Checks",{"type":139,"tag":903,"props":904,"children":905},"tbody",{},[906,930,952,968],{"type":139,"tag":888,"props":907,"children":908},{},[909,918],{"type":139,"tag":910,"props":911,"children":912},"td",{},[913],{"type":139,"tag":147,"props":914,"children":915},{},[916],{"type":144,"value":917},"toHavePageCount(n)",{"type":139,"tag":910,"props":919,"children":920},{},[921,923,928],{"type":144,"value":922},"The document has ",{"type":139,"tag":147,"props":924,"children":925},{},[926],{"type":144,"value":927},"n",{"type":144,"value":929}," pages",{"type":139,"tag":888,"props":931,"children":932},{},[933,941],{"type":139,"tag":910,"props":934,"children":935},{},[936],{"type":139,"tag":147,"props":937,"children":938},{},[939],{"type":144,"value":940},"toContainText(text, { page? })",{"type":139,"tag":910,"props":942,"children":943},{},[944,946,950],{"type":144,"value":945},"The extracted text contains ",{"type":139,"tag":147,"props":947,"children":948},{},[949],{"type":144,"value":144},{"type":144,"value":951}," (optionally on a page)",{"type":139,"tag":888,"props":953,"children":954},{},[955,963],{"type":139,"tag":910,"props":956,"children":957},{},[958],{"type":139,"tag":147,"props":959,"children":960},{},[961],{"type":144,"value":962},"toHaveLink({ destination? , url? , page? })",{"type":139,"tag":910,"props":964,"children":965},{},[966],{"type":144,"value":967},"A named-destination or external-URL link annotation exists",{"type":139,"tag":888,"props":969,"children":970},{},[971,979],{"type":139,"tag":910,"props":972,"children":973},{},[974],{"type":139,"tag":147,"props":975,"children":976},{},[977],{"type":144,"value":978},"toHaveOutline(shape)",{"type":139,"tag":910,"props":980,"children":981},{},[982],{"type":144,"value":983},"The bookmark outline matches the given title hierarchy",{"type":139,"tag":140,"props":985,"children":986},{},[987,992],{"type":139,"tag":147,"props":988,"children":989},{},[990],{"type":144,"value":991},"parsePdf",{"type":144,"value":993}," exposes the same data directly. The data includes page text, page count, flattened\nlink annotations, and the outline. Use it when you want to assert without the fluent\nAPI.",{"type":139,"tag":163,"props":995,"children":997},{"id":996},"testing-a-server-route",[998],{"type":144,"value":999},"Testing a server route",{"type":139,"tag":140,"props":1001,"children":1002},{},[1003,1007,1009,1014],{"type":139,"tag":147,"props":1004,"children":1005},{},[1006],{"type":144,"value":991},{"type":144,"value":1008}," also accepts a ",{"type":139,"tag":147,"props":1010,"children":1011},{},[1012],{"type":144,"value":1013},"PdfRenderResult",{"type":144,"value":1015}," straight from the registry, so route\ntests read naturally:",{"type":139,"tag":189,"props":1017,"children":1018},{"language":253,"class":193,"tabindex":194},[1019],{"type":139,"tag":147,"props":1020,"children":1021},{"class":258},[1022,1049,1050,1079,1080,1083,1084],{"type":139,"tag":201,"props":1023,"children":1024},{"class":203,"style":204},[1025,1029,1033,1037,1041,1045],{"type":139,"tag":201,"props":1026,"children":1027},{"style":265},[1028],{"type":144,"value":268},{"type":139,"tag":201,"props":1030,"children":1031},{"style":271},[1032],{"type":144,"value":274},{"type":139,"tag":201,"props":1034,"children":1035},{"style":277},[1036],{"type":144,"value":991},{"type":139,"tag":201,"props":1038,"children":1039},{"style":271},[1040],{"type":144,"value":295},{"type":139,"tag":201,"props":1042,"children":1043},{"style":265},[1044],{"type":144,"value":300},{"type":139,"tag":201,"props":1046,"children":1047},{"style":213},[1048],{"type":144,"value":345},{"type":144,"value":307},{"type":139,"tag":201,"props":1051,"children":1052},{"class":203,"style":204},[1053,1057,1061,1066,1070,1074],{"type":139,"tag":201,"props":1054,"children":1055},{"style":265},[1056],{"type":144,"value":268},{"type":139,"tag":201,"props":1058,"children":1059},{"style":271},[1060],{"type":144,"value":274},{"type":139,"tag":201,"props":1062,"children":1063},{"style":277},[1064],{"type":144,"value":1065},"pdf",{"type":139,"tag":201,"props":1067,"children":1068},{"style":271},[1069],{"type":144,"value":295},{"type":139,"tag":201,"props":1071,"children":1072},{"style":265},[1073],{"type":144,"value":300},{"type":139,"tag":201,"props":1075,"children":1076},{"style":213},[1077],{"type":144,"value":1078}," '#pdf'",{"type":144,"value":307},{"type":139,"tag":201,"props":1081,"children":1082},{"class":203,"style":204},[],{"type":144,"value":307},{"type":139,"tag":201,"props":1085,"children":1086},{"class":203,"style":204},[1087,1092,1097,1102,1106,1111,1115,1119,1124,1129,1134,1138,1143,1147,1152],{"type":139,"tag":201,"props":1088,"children":1089},{"style":219},[1090],{"type":144,"value":1091},"const",{"type":139,"tag":201,"props":1093,"children":1094},{"style":438},[1095],{"type":144,"value":1096}," parsed",{"type":139,"tag":201,"props":1098,"children":1099},{"style":271},[1100],{"type":144,"value":1101}," = ",{"type":139,"tag":201,"props":1103,"children":1104},{"style":265},[1105],{"type":144,"value":451},{"type":139,"tag":201,"props":1107,"children":1108},{"style":208},[1109],{"type":144,"value":1110}," parsePdf",{"type":139,"tag":201,"props":1112,"children":1113},{"style":271},[1114],{"type":144,"value":362},{"type":139,"tag":201,"props":1116,"children":1117},{"style":265},[1118],{"type":144,"value":451},{"type":139,"tag":201,"props":1120,"children":1121},{"style":277},[1122],{"type":144,"value":1123}," pdf",{"type":139,"tag":201,"props":1125,"children":1126},{"style":271},[1127],{"type":144,"value":1128},".",{"type":139,"tag":201,"props":1130,"children":1131},{"style":277},[1132],{"type":144,"value":1133},"invoice",{"type":139,"tag":201,"props":1135,"children":1136},{"style":271},[1137],{"type":144,"value":1128},{"type":139,"tag":201,"props":1139,"children":1140},{"style":208},[1141],{"type":144,"value":1142},"render",{"type":139,"tag":201,"props":1144,"children":1145},{"style":271},[1146],{"type":144,"value":362},{"type":139,"tag":201,"props":1148,"children":1149},{"style":277},[1150],{"type":144,"value":1151},"props",{"type":139,"tag":201,"props":1153,"children":1154},{"style":271},[1155],{"type":144,"value":1156},"))",{"type":139,"tag":163,"props":1158,"children":1160},{"id":1159},"pixel-level-regressions",[1161],{"type":144,"value":1162},"Pixel-level regressions",{"type":139,"tag":140,"props":1164,"children":1165},{},[1166,1168,1173,1175,1180,1182,1187,1189,1194],{"type":144,"value":1167},"For visual regressions, ",{"type":139,"tag":147,"props":1169,"children":1170},{},[1171],{"type":144,"value":1172},"comparePdfSnapshot",{"type":144,"value":1174}," follows a ",{"type":139,"tag":155,"props":1176,"children":1177},{},[1178],{"type":144,"value":1179},"reviewed-baseline",{"type":144,"value":1181},"\npolicy: it writes per-page PNG baselines into a directory when\n",{"type":139,"tag":147,"props":1183,"children":1184},{},[1185],{"type":144,"value":1186},"UPDATE_PDF_BASELINES=1",{"type":144,"value":1188}," (or ",{"type":139,"tag":147,"props":1190,"children":1191},{},[1192],{"type":144,"value":1193},"{ update: true }",{"type":144,"value":1195},") is set, and otherwise compares\neach page against them within a pixel threshold:",{"type":139,"tag":189,"props":1197,"children":1198},{"language":253,"class":193,"tabindex":194},[1199],{"type":139,"tag":147,"props":1200,"children":1201},{"class":258},[1202,1237,1238,1241,1242,1291,1292],{"type":139,"tag":201,"props":1203,"children":1204},{"class":203,"style":204},[1205,1209,1213,1217,1221,1225,1229,1233],{"type":139,"tag":201,"props":1206,"children":1207},{"style":265},[1208],{"type":144,"value":268},{"type":139,"tag":201,"props":1210,"children":1211},{"style":271},[1212],{"type":144,"value":274},{"type":139,"tag":201,"props":1214,"children":1215},{"style":277},[1216],{"type":144,"value":1172},{"type":139,"tag":201,"props":1218,"children":1219},{"style":271},[1220],{"type":144,"value":285},{"type":139,"tag":201,"props":1222,"children":1223},{"style":277},[1224],{"type":144,"value":332},{"type":139,"tag":201,"props":1226,"children":1227},{"style":271},[1228],{"type":144,"value":295},{"type":139,"tag":201,"props":1230,"children":1231},{"style":265},[1232],{"type":144,"value":300},{"type":139,"tag":201,"props":1234,"children":1235},{"style":213},[1236],{"type":144,"value":345},{"type":144,"value":307},{"type":139,"tag":201,"props":1239,"children":1240},{"class":203,"style":204},[],{"type":144,"value":307},{"type":139,"tag":201,"props":1243,"children":1244},{"class":203,"style":204},[1245,1249,1253,1258,1262,1266,1270,1274,1279,1283,1287],{"type":139,"tag":201,"props":1246,"children":1247},{"style":219},[1248],{"type":144,"value":1091},{"type":139,"tag":201,"props":1250,"children":1251},{"style":271},[1252],{"type":144,"value":274},{"type":139,"tag":201,"props":1254,"children":1255},{"style":438},[1256],{"type":144,"value":1257},"bytes",{"type":139,"tag":201,"props":1259,"children":1260},{"style":271},[1261],{"type":144,"value":446},{"type":139,"tag":201,"props":1263,"children":1264},{"style":265},[1265],{"type":144,"value":451},{"type":139,"tag":201,"props":1267,"children":1268},{"style":208},[1269],{"type":144,"value":456},{"type":139,"tag":201,"props":1271,"children":1272},{"style":271},[1273],{"type":144,"value":362},{"type":139,"tag":201,"props":1275,"children":1276},{"style":213},[1277],{"type":144,"value":1278},"'.\u002Fpdfs\u002Finvoice.vue'",{"type":139,"tag":201,"props":1280,"children":1281},{"style":271},[1282],{"type":144,"value":285},{"type":139,"tag":201,"props":1284,"children":1285},{"style":277},[1286],{"type":144,"value":1151},{"type":139,"tag":201,"props":1288,"children":1289},{"style":271},[1290],{"type":144,"value":617},{"type":144,"value":307},{"type":139,"tag":201,"props":1293,"children":1294},{"class":203,"style":204},[1295,1299,1304,1308,1312,1316,1321],{"type":139,"tag":201,"props":1296,"children":1297},{"style":265},[1298],{"type":144,"value":451},{"type":139,"tag":201,"props":1300,"children":1301},{"style":208},[1302],{"type":144,"value":1303}," comparePdfSnapshot",{"type":139,"tag":201,"props":1305,"children":1306},{"style":271},[1307],{"type":144,"value":362},{"type":139,"tag":201,"props":1309,"children":1310},{"style":277},[1311],{"type":144,"value":1257},{"type":139,"tag":201,"props":1313,"children":1314},{"style":271},[1315],{"type":144,"value":285},{"type":139,"tag":201,"props":1317,"children":1318},{"style":213},[1319],{"type":144,"value":1320},"'.\u002Ftest\u002Fbaselines\u002Finvoice'",{"type":139,"tag":201,"props":1322,"children":1323},{"style":271},[1324],{"type":144,"value":617},{"type":139,"tag":140,"props":1326,"children":1327},{},[1328,1330,1335,1337,1342,1344,1349],{"type":144,"value":1329},"A failed comparison writes expected, actual, and diff PNGs for every changed\npage plus ",{"type":139,"tag":147,"props":1331,"children":1332},{},[1333],{"type":144,"value":1334},"metrics.json",{"type":144,"value":1336}," under ",{"type":139,"tag":147,"props":1338,"children":1339},{},[1340],{"type":144,"value":1341},"reports\u002Fpdf-snapshots",{"type":144,"value":1343},". Upload that directory in\nCI so the failure can be inspected without reproducing it locally. Semantic\ngeometry checks are available through ",{"type":139,"tag":147,"props":1345,"children":1346},{},[1347],{"type":144,"value":1348},"parsePdf(...).pages[n].textRuns",{"type":144,"value":1350},"; compare\ncoordinates with a tolerance instead of exact equality.",{"type":139,"tag":1352,"props":1353,"children":1355},"info",{"icon":1354},"lucide:info",[1356],{"type":144,"value":1357},"Raster baselines are environment-sensitive. Review them when they change and\ncommit them deliberately, exactly as you would a visual snapshot. Nuxt PDF does\nnot claim byte-identical output across machines.",{"type":139,"tag":140,"props":1359,"children":1360},{},[1361,1363,1370],{"type":144,"value":1362},"The full set of exports and options is in the\n",{"type":139,"tag":1364,"props":1365,"children":1367},"a",{"href":1366},"$docs\u002Freference\u002Ftest-utilities",[1368],{"type":144,"value":1369},"test utilities reference",{"type":144,"value":1128},{"title":1372,"searchDepth":1373,"depth":1373,"links":1374},"",4,[1375,1377,1378,1379,1380],{"id":165,"depth":1376,"text":168},2,{"id":247,"depth":1376,"text":250},{"id":865,"depth":1376,"text":868},{"id":996,"depth":1376,"text":999},{"id":1159,"depth":1376,"text":1162},"markdown","docs",{"source":1384,"path":1385,"stem":1386,"dir":1387,"extension":1388},"content","docs\u002F2.guides\u002F6.testing.md","docs\u002F2.guides\u002F6.testing","guides","md",{"$docs\u002Freference\u002Ftest-utilities":114},{"requestedPath":66,"resolvedPath":66,"alternates":1391},[],{"requested":1393,"resolved":1394,"usedFallback":9},{},{"locale":8},{"previous":1396,"next":1397},{"title":56,"id":57,"canonicalKey":58,"locale":8,"draft":9,"path":60},{"title":68,"id":69,"canonicalKey":70,"locale":8,"draft":9,"path":72},{"left":1399,"top":1399,"width":1400,"height":1400,"rotate":1399,"vFlip":9,"hFlip":9,"body":1401},0,24,"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M12 19h8M4 17l6-6l-6-6\"\u002F>",{"left":1399,"top":1399,"width":1403,"height":1403,"rotate":1399,"vFlip":9,"hFlip":9,"body":1404},256,"\u003Cpath fill=\"#3178c6\" d=\"M20 0h216c11.046 0 20 8.954 20 20v216c0 11.046-8.954 20-20 20H20c-11.046 0-20-8.954-20-20V20C0 8.954 8.954 0 20 0\"\u002F>\u003Cpath fill=\"#fff\" d=\"M150.518 200.475v27.62q6.738 3.453 15.938 5.179T185.849 235q9.934 0 18.874-1.899t15.678-6.257q6.738-4.359 10.669-11.394q3.93-7.033 3.93-17.391q0-7.51-2.246-13.163a30.8 30.8 0 0 0-6.479-10.055q-4.232-4.402-10.149-7.898t-13.347-6.602q-5.442-2.245-9.761-4.359t-7.342-4.316q-3.024-2.2-4.665-4.661t-1.641-5.567q0-2.848 1.468-5.135q1.469-2.288 4.147-3.927t6.565-2.547q3.887-.906 8.638-.906q3.456 0 7.299.518q3.844.517 7.732 1.597a54 54 0 0 1 7.558 2.719a41.7 41.7 0 0 1 6.781 3.797v-25.807q-6.306-2.417-13.778-3.582T198.633 107q-9.847 0-18.658 2.115q-8.811 2.114-15.506 6.602q-6.694 4.49-10.582 11.437Q150 134.102 150 143.769q0 12.342 7.127 21.06t21.638 14.759a292 292 0 0 1 10.625 4.575q4.924 2.244 8.509 4.66t5.658 5.265t2.073 6.474a9.9 9.9 0 0 1-1.296 4.963q-1.295 2.287-3.93 3.97t-6.565 2.632t-9.2.95q-8.983 0-17.794-3.151t-16.327-9.451m-46.036-68.733H140V109H41v22.742h35.345V233h28.137z\"\u002F>",{"left":1399,"top":1399,"width":1400,"height":1400,"rotate":1399,"vFlip":9,"hFlip":9,"body":1406},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"8\" height=\"4\" x=\"8\" y=\"2\" rx=\"1\" ry=\"1\"\u002F>\u003Cpath d=\"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2\"\u002F>\u003C\u002Fg>",1786511354258]