[{"data":1,"prerenderedAt":343},["ShallowReactive",2],{"content-page:docs:7wqbwP1Vv1XdWTIavw2uKckaAsuK1g6-7oG2cf2RS0g":3,"docs-navigation:en":220,"content-page-surround:docs:7wqbwP1Vv1XdWTIavw2uKckaAsuK1g6-7oG2cf2RS0g":340},{"title":4,"description":5,"icon":6,"body":7,"type":199,"id":200,"canonicalKey":201,"draft":202,"partial":202,"locale":203,"collection":204,"navigationFile":202,"file":205,"resolvedRefs":210,"route":214,"resolution":217},"Introduction","What Nuxt PDF is, when to reach for it, and when a different tool fits better.","lucide:book-open",{"type":8,"children":9,"toc":190},"root",[10,26,31,38,43,49,62,82,88,93,143,149,170],{"type":11,"tag":12,"props":13,"children":14},"element","p",{},[15,18,24],{"type":16,"value":17},"text","Nuxt PDF authors server-rendered PDFs as ordinary Vue components. You write a\nSingle File Component in ",{"type":11,"tag":19,"props":20,"children":21},"code",{},[22],{"type":16,"value":23},"pdfs\u002F",{"type":16,"value":25},", and a Nuxt module renders it to a PDF on the\nserver. Vue does the authoring; React PDF's framework-neutral layout, font, and\nserialization packages do the rendering. React itself is never a production\ndependency.",{"type":11,"tag":12,"props":27,"children":28},{},[29],{"type":16,"value":30},"This is an external alpha. It has one Nuxt module, one document tree, and one\nNode server renderer. The tested contract includes SVG drawing, a table of\ncontents, internal links, bookmarks, opt-in remote resources, test utilities,\nand render limits.",{"type":11,"tag":32,"props":33,"children":35},"h2",{"id":34},"why-it-exists",[36],{"type":16,"value":37},"Why it exists",{"type":11,"tag":12,"props":39,"children":40},{},[41],{"type":16,"value":42},"A data-driven document can require a low-level PDF library or a headless\nbrowser. Nuxt PDF provides another option. Use the Vue component model with\ntyped props. A PDF layout engine renders the document on the server.",{"type":11,"tag":32,"props":44,"children":46},{"id":45},"when-to-use-it",[47],{"type":16,"value":48},"When to use it",{"type":11,"tag":12,"props":50,"children":51},{},[52,54,60],{"type":16,"value":53},"Reach for Nuxt PDF when the document is ",{"type":11,"tag":55,"props":56,"children":57},"strong",{},[58],{"type":16,"value":59},"structured and data-driven",{"type":16,"value":61}," and you\ncontrol the layout:",{"type":11,"tag":63,"props":64,"children":65},"ul",{},[66,72,77],{"type":11,"tag":67,"props":68,"children":69},"li",{},[70],{"type":16,"value":71},"invoices, quotes, and receipts,",{"type":11,"tag":67,"props":73,"children":74},{},[75],{"type":16,"value":76},"reports and statements with a table of contents,",{"type":11,"tag":67,"props":78,"children":79},{},[80],{"type":16,"value":81},"certificates, tickets, and labels.",{"type":11,"tag":32,"props":83,"children":85},{"id":84},"when-not-to-use-it",[86],{"type":16,"value":87},"When not to use it",{"type":11,"tag":12,"props":89,"children":90},{},[91],{"type":16,"value":92},"Nuxt PDF is honest about its boundaries. Pick a different tool when:",{"type":11,"tag":63,"props":94,"children":95},{},[96,106,125],{"type":11,"tag":67,"props":97,"children":98},{},[99,104],{"type":11,"tag":55,"props":100,"children":101},{},[102],{"type":16,"value":103},"You want to print an existing web page.",{"type":16,"value":105}," Use headless Chromium (Playwright\nor Puppeteer). Nuxt PDF does not compile browser CSS or print HTML.",{"type":11,"tag":67,"props":107,"children":108},{},[109,114,116,123],{"type":11,"tag":55,"props":110,"children":111},{},[112],{"type":16,"value":113},"You want to display a PDF in the browser.",{"type":16,"value":115}," Use ",{"type":11,"tag":117,"props":118,"children":120},"a",{"href":119},"https:\u002F\u002Fmozilla.github.io\u002Fpdf.js\u002F",[121],{"type":16,"value":122},"PDF.js",{"type":16,"value":124},".\nNuxt PDF renders on the server; it is not a viewer.",{"type":11,"tag":67,"props":126,"children":127},{},[128,133,135,141],{"type":11,"tag":55,"props":129,"children":130},{},[131],{"type":16,"value":132},"You want to edit, merge, fill, or sign an existing PDF.",{"type":16,"value":134}," Use\n",{"type":11,"tag":117,"props":136,"children":138},{"href":137},"https:\u002F\u002Fpdf-lib.js.org\u002F",[139],{"type":16,"value":140},"pdf-lib",{"type":16,"value":142}," or a signing service. Nuxt PDF produces new\ndocuments; it does not manipulate existing ones.",{"type":11,"tag":32,"props":144,"children":146},{"id":145},"what-is-deliberately-not-included",[147],{"type":16,"value":148},"What is deliberately not included",{"type":11,"tag":12,"props":150,"children":151},{},[152,154,160,162,168],{"type":16,"value":153},"The current alpha has no CSS compiler, HTML printing, table engine, chart\nengine, form support, signing support, tagged PDF output, browser renderer, or\nedge renderer. It does not guarantee byte-identical output across machines.\nThese limits define the current scope. The\n",{"type":11,"tag":117,"props":155,"children":157},{"href":156},"$docs\u002Fconformance",[158],{"type":16,"value":159},"Conformance and philosophy",{"type":16,"value":161}," section explains the design.\n",{"type":11,"tag":117,"props":163,"children":165},{"href":164},"https:\u002F\u002Fgithub.com\u002Flupinum-dev\u002Fnuxt-pdf\u002Fblob\u002Fmain\u002FCONFORMANCE.md",[166],{"type":16,"value":167},"CONFORMANCE.md",{"type":16,"value":169},"\nrecords the exact tested boundary.",{"type":11,"tag":171,"props":172,"children":174},"cards",{"cols":173},"2",[175,183],{"type":11,"tag":176,"props":177,"children":182},"card",{"title":178,"description":179,"icon":180,"to":181},"Install & quickstart","Get a document rendering in ten minutes.","lucide:rocket","$docs\u002Fgetting-started\u002Fquickstart",[],{"type":11,"tag":176,"props":184,"children":189},{"title":185,"description":186,"icon":187,"to":188},"Authoring model","Primitives, styles, and composition.","lucide:component","$docs\u002Fguides\u002Fauthoring",[],{"title":191,"searchDepth":192,"depth":192,"links":193},"",4,[194,196,197,198],{"id":34,"depth":195,"text":37},2,{"id":45,"depth":195,"text":48},{"id":84,"depth":195,"text":87},{"id":145,"depth":195,"text":148},"markdown","content:docs:1.getting-started:1.index.md","1",false,"en","docs",{"source":206,"path":207,"stem":208,"dir":204,"extension":209},"content","docs\u002F1.getting-started\u002F1.index.md","docs\u002F1.getting-started\u002F1.index","md",{"$docs\u002Fconformance":211,"$docs\u002Fgetting-started\u002Fquickstart":212,"$docs\u002Fguides\u002Fauthoring":213},"\u002Fdocs\u002Fconformance","\u002Fdocs\u002Fgetting-started\u002Fquickstart","\u002Fdocs\u002Fguides\u002Fauthoring",{"requestedPath":215,"resolvedPath":215,"alternates":216},"\u002Fdocs\u002Fgetting-started",[],{"requested":218,"resolved":219,"usedFallback":202},{},{"locale":203},[221,236,281,329,334],{"title":222,"id":223,"canonicalKey":201,"locale":203,"draft":202,"icon":180,"sidebar":224,"path":215,"children":225},"Getting Started","content:docs:1.getting-started:.navigation.yml","group",[226,232],{"title":227,"id":228,"canonicalKey":229,"locale":203,"draft":202,"icon":230,"path":231},"Installation","content:docs:1.getting-started:2.installation.md","1\u002F2","lucide:download","\u002Fdocs\u002Fgetting-started\u002Finstallation",{"title":233,"id":234,"canonicalKey":235,"locale":203,"draft":202,"icon":180,"path":212},"Quickstart","content:docs:1.getting-started:3.quickstart.md","1\u002F3",{"title":237,"page":202,"canonicalKey":173,"locale":203,"id":238,"draft":202,"icon":239,"sidebar":224,"children":240},"Guides","content:docs:2.guides:.navigation.yml","lucide:compass",[241,245,251,257,263,269,275],{"title":242,"id":243,"canonicalKey":244,"locale":203,"draft":202,"icon":187,"path":213},"Authoring","content:docs:2.guides:1.authoring.md","2\u002F1",{"title":246,"id":247,"canonicalKey":248,"locale":203,"draft":202,"icon":249,"path":250},"Contents, links & bookmarks","content:docs:2.guides:2.contents-links-bookmarks.md","2\u002F2","lucide:list-tree","\u002Fdocs\u002Fguides\u002Fcontents-links-bookmarks",{"title":252,"id":253,"canonicalKey":254,"locale":203,"draft":202,"icon":255,"path":256},"Images & fonts","content:docs:2.guides:3.images-and-fonts.md","2\u002F3","lucide:image","\u002Fdocs\u002Fguides\u002Fimages-and-fonts",{"title":258,"id":259,"canonicalKey":260,"locale":203,"draft":202,"icon":261,"path":262},"SVG graphics","content:docs:2.guides:4.svg-graphics.md","2\u002F4","lucide:shapes","\u002Fdocs\u002Fguides\u002Fsvg-graphics",{"title":264,"id":265,"canonicalKey":266,"locale":203,"draft":202,"icon":267,"path":268},"Errors & debugging","content:docs:2.guides:5.errors-and-debugging.md","2\u002F5","lucide:bug","\u002Fdocs\u002Fguides\u002Ferrors-and-debugging",{"title":270,"id":271,"canonicalKey":272,"locale":203,"draft":202,"icon":273,"path":274},"Testing your PDFs","content:docs:2.guides:6.testing.md","2\u002F6","lucide:flask-conical","\u002Fdocs\u002Fguides\u002Ftesting",{"title":276,"id":277,"canonicalKey":278,"locale":203,"draft":202,"icon":279,"path":280},"Production recipes","content:docs:2.guides:7.recipes.md","2\u002F7","lucide:notebook-tabs","\u002Fdocs\u002Fguides\u002Frecipes",{"title":282,"page":202,"canonicalKey":283,"locale":203,"id":284,"draft":202,"icon":285,"sidebar":224,"children":286},"Reference","3","content:docs:3.reference:.navigation.yml","lucide:book-marked",[287,293,299,305,311,317,323],{"title":288,"id":289,"canonicalKey":290,"locale":203,"draft":202,"icon":291,"path":292},"definePdf","content:docs:3.reference:1.define-pdf.md","3\u002F1","lucide:settings-2","\u002Fdocs\u002Freference\u002Fdefine-pdf",{"title":294,"id":295,"canonicalKey":296,"locale":203,"draft":202,"icon":297,"path":298},"The #pdf registry","content:docs:3.reference:2.registry.md","3\u002F2","lucide:braces","\u002Fdocs\u002Freference\u002Fregistry",{"title":300,"id":301,"canonicalKey":302,"locale":203,"draft":202,"icon":303,"path":304},"Module options","content:docs:3.reference:3.module-options.md","3\u002F3","lucide:sliders","\u002Fdocs\u002Freference\u002Fmodule-options",{"title":306,"id":307,"canonicalKey":308,"locale":203,"draft":202,"icon":309,"path":310},"Primitives","content:docs:3.reference:4.primitives.md","3\u002F4","lucide:box","\u002Fdocs\u002Freference\u002Fprimitives",{"title":312,"id":313,"canonicalKey":314,"locale":203,"draft":202,"icon":315,"path":316},"Composables","content:docs:3.reference:5.composables.md","3\u002F5","lucide:function-square","\u002Fdocs\u002Freference\u002Fcomposables",{"title":318,"id":319,"canonicalKey":320,"locale":203,"draft":202,"icon":321,"path":322},"Test utilities","content:docs:3.reference:6.test-utilities.md","3\u002F6","lucide:test-tube","\u002Fdocs\u002Freference\u002Ftest-utilities",{"title":324,"id":325,"canonicalKey":326,"locale":203,"draft":202,"icon":327,"path":328},"Styles","content:docs:3.reference:7.styles.md","3\u002F7","lucide:palette","\u002Fdocs\u002Freference\u002Fstyles",{"title":330,"id":331,"canonicalKey":332,"locale":203,"draft":202,"icon":333,"sidebar":224,"path":211},"Conformance & Philosophy","content:docs:4.conformance:.navigation.yml","4","lucide:scale",{"title":335,"id":336,"canonicalKey":337,"locale":203,"draft":202,"icon":338,"sidebar":224,"path":339},"Examples","content:docs:5.examples:.navigation.yml","5","lucide:layout-grid","\u002Fdocs\u002Fexamples",{"previous":341,"next":342},null,{"title":227,"id":228,"canonicalKey":229,"locale":203,"draft":202,"path":231},1786511352145]