[{"data":1,"prerenderedAt":1042},["ShallowReactive",2],{"navigation_docs":3,"-use-cases-media-typography":274,"-use-cases-media-typography-surround":1037},[4,63,109,167],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":62},"API","i-lucide-braces","\u002Fapi","api",[10,14,18,22,26,30,34,38,42,46,50,54,58],{"title":11,"path":12,"stem":13},"Html2Pdf Component","\u002Fapi\u002Fcomponent","api\u002F01.component",{"title":15,"path":16,"stem":17},"Core Props","\u002Fapi\u002Fprops","api\u002F02.props",{"title":19,"path":20,"stem":21},"PDF Headers in Vue","\u002Fapi\u002Fheaders","api\u002F03.headers",{"title":23,"path":24,"stem":25},"PDF Footers in Vue","\u002Fapi\u002Ffooters","api\u002F04.footers",{"title":27,"path":28,"stem":29},"Security","\u002Fapi\u002Fsecurity","api\u002F05.security",{"title":31,"path":32,"stem":33},"Watermarks","\u002Fapi\u002Fwatermarks","api\u002F06.watermarks",{"title":35,"path":36,"stem":37},"Metadata & Compression","\u002Fapi\u002Fmetadata-compression","api\u002F07.metadata-compression",{"title":39,"path":40,"stem":41},"Programmatic API","\u002Fapi\u002Fprogrammatic-api","api\u002F08.programmatic-api",{"title":43,"path":44,"stem":45},"Loader, Progress, Metrics, Events & Slots","\u002Fapi\u002Fevents-slots","api\u002F09.events-slots",{"title":47,"path":48,"stem":49},"TypeScript","\u002Fapi\u002Ftypescript","api\u002F10.typescript",{"title":51,"path":52,"stem":53},"PDF Styling & data-pdf-ignore","\u002Fapi\u002Fpdf-styling","api\u002F11.pdf-styling",{"title":55,"path":56,"stem":57},"API Reference","\u002Fapi\u002Ffull-reference","api\u002F12.full-reference",{"title":59,"path":60,"stem":61},"Compose Existing PDF Pages","\u002Fapi\u002Fcomposition","api\u002F13.composition",false,{"title":64,"icon":65,"path":66,"stem":67,"children":68,"page":62},"Get Started","i-lucide-book-open","\u002Fget-started","get-started",[69,73,77,81,85,89,93,97,101,105],{"title":70,"path":71,"stem":72},"Introduction","\u002Fget-started\u002Fintroduction","get-started\u002F01.introduction",{"title":74,"path":75,"stem":76},"Installation","\u002Fget-started\u002Finstallation","get-started\u002F02.installation",{"title":78,"path":79,"stem":80},"Quick Start","\u002Fget-started\u002Fquick-start","get-started\u002F03.quick-start",{"title":82,"path":83,"stem":84},"Rendering Modes","\u002Fget-started\u002Frendering-modes","get-started\u002F04.rendering-modes",{"title":86,"path":87,"stem":88},"Component Registration","\u002Fget-started\u002Fregistration","get-started\u002F05.registration",{"title":90,"path":91,"stem":92},"Preview & Download","\u002Fget-started\u002Fpreview-download","get-started\u002F06.preview-download",{"title":94,"path":95,"stem":96},"Smart PDF Pagination","\u002Fget-started\u002Fpagination","get-started\u002F07.pagination",{"title":98,"path":99,"stem":100},"Nuxt 3 & Nuxt 4 SSR","\u002Fget-started\u002Fnuxt-ssr","get-started\u002F08.nuxt-ssr",{"title":102,"path":103,"stem":104},"Migration Guide","\u002Fget-started\u002Fmigration","get-started\u002F09.migration",{"title":106,"path":107,"stem":108},"PDF Paper Formats and Orientation","\u002Fget-started\u002Fpaper-formats","get-started\u002F10.paper-formats",{"title":110,"icon":111,"path":112,"stem":113,"children":114,"page":62},"Use Cases","i-lucide-flask-conical","\u002Fuse-cases","use-cases",[115,119,123,127,131,135,139,143,147,151,155,159,163],{"title":116,"path":117,"stem":118},"Playground","\u002Fuse-cases\u002Fplayground","use-cases\u002F01.playground",{"title":120,"path":121,"stem":122},"Selectable Text Mode","\u002Fuse-cases\u002Fselectable-text","use-cases\u002F02.selectable-text",{"title":124,"path":125,"stem":126},"Clickable PDF Links","\u002Fuse-cases\u002Fclickable-links","use-cases\u002F03.clickable-links",{"title":128,"path":129,"stem":130},"Images & CORS","\u002Fuse-cases\u002Fimages-cors","use-cases\u002F04.images-cors",{"title":132,"path":133,"stem":134},"Production Guide","\u002Fuse-cases\u002Fproduction-guide","use-cases\u002F05.production-guide",{"title":136,"path":137,"stem":138},"Troubleshooting","\u002Fuse-cases\u002Ftroubleshooting","use-cases\u002F06.troubleshooting",{"title":140,"path":141,"stem":142},"Testing & Browser Support","\u002Fuse-cases\u002Ftesting-browser-support","use-cases\u002F07.testing-browser-support",{"title":144,"path":145,"stem":146},"Performance Engineering","\u002Fuse-cases\u002Fperformance-engineering","use-cases\u002F08.performance-engineering",{"title":148,"path":149,"stem":150},"Full Performance Engineering Report","\u002Fuse-cases\u002Fperformance-report","use-cases\u002F09.performance-report",{"title":152,"path":153,"stem":154},"Community & Feedback","\u002Fuse-cases\u002Fcommunity","use-cases\u002F10.community",{"title":156,"path":157,"stem":158},"Acknowledgements","\u002Fuse-cases\u002Facknowledgements","use-cases\u002F11.acknowledgements",{"title":160,"path":161,"stem":162},"Fonts, Charts, SVG and Image Optimization","\u002Fuse-cases\u002Fmedia-typography","use-cases\u002F12.media-typography",{"title":164,"path":165,"stem":166},"PDF Generation Flow","\u002Fuse-cases\u002Fproject-flow","use-cases\u002F13.project-flow",{"title":168,"path":169,"stem":170,"children":171,"page":62},"Versions","\u002Fversions","versions",[172,244],{"title":173,"path":174,"stem":175,"children":176},"v1 Documentation","\u002Fversions\u002F1.1.1","versions\u002F1.1.1\u002Findex",[177,178,210,224],{"title":173,"path":174,"stem":175},{"title":179,"path":180,"stem":181,"children":182,"page":62},"Api","\u002Fversions\u002F1.1.1\u002Fapi","versions\u002F1.1.1\u002Fapi",[183,186,189,193,197,200,203,206],{"title":11,"path":184,"stem":185},"\u002Fversions\u002F1.1.1\u002Fapi\u002Fcomponent","versions\u002F1.1.1\u002Fapi\u002F01.component",{"title":15,"path":187,"stem":188},"\u002Fversions\u002F1.1.1\u002Fapi\u002Fprops","versions\u002F1.1.1\u002Fapi\u002F02.props",{"title":190,"path":191,"stem":192},"Headers","\u002Fversions\u002F1.1.1\u002Fapi\u002Fheaders","versions\u002F1.1.1\u002Fapi\u002F03.headers",{"title":194,"path":195,"stem":196},"Footers","\u002Fversions\u002F1.1.1\u002Fapi\u002Ffooters","versions\u002F1.1.1\u002Fapi\u002F04.footers",{"title":39,"path":198,"stem":199},"\u002Fversions\u002F1.1.1\u002Fapi\u002Fprogrammatic-api","versions\u002F1.1.1\u002Fapi\u002F08.programmatic-api",{"title":43,"path":201,"stem":202},"\u002Fversions\u002F1.1.1\u002Fapi\u002Fevents-slots","versions\u002F1.1.1\u002Fapi\u002F09.events-slots",{"title":47,"path":204,"stem":205},"\u002Fversions\u002F1.1.1\u002Fapi\u002Ftypescript","versions\u002F1.1.1\u002Fapi\u002F10.typescript",{"title":207,"path":208,"stem":209},"Full README Reference","\u002Fversions\u002F1.1.1\u002Fapi\u002Ffull-reference","versions\u002F1.1.1\u002Fapi\u002F12.full-reference",{"title":64,"path":211,"stem":212,"children":213,"page":62},"\u002Fversions\u002F1.1.1\u002Fget-started","versions\u002F1.1.1\u002Fget-started",[214,217,220],{"title":70,"path":215,"stem":216},"\u002Fversions\u002F1.1.1\u002Fget-started\u002Fintroduction","versions\u002F1.1.1\u002Fget-started\u002F01.introduction",{"title":82,"path":218,"stem":219},"\u002Fversions\u002F1.1.1\u002Fget-started\u002Frendering-modes","versions\u002F1.1.1\u002Fget-started\u002F04.rendering-modes",{"title":221,"path":222,"stem":223},"Pagination","\u002Fversions\u002F1.1.1\u002Fget-started\u002Fpagination","versions\u002F1.1.1\u002Fget-started\u002F07.pagination",{"title":110,"path":225,"stem":226,"children":227,"page":62},"\u002Fversions\u002F1.1.1\u002Fuse-cases","versions\u002F1.1.1\u002Fuse-cases",[228,231,234,237,240],{"title":116,"path":229,"stem":230},"\u002Fversions\u002F1.1.1\u002Fuse-cases\u002Fplayground","versions\u002F1.1.1\u002Fuse-cases\u002F01.playground",{"title":136,"path":232,"stem":233},"\u002Fversions\u002F1.1.1\u002Fuse-cases\u002Ftroubleshooting","versions\u002F1.1.1\u002Fuse-cases\u002F06.troubleshooting",{"title":140,"path":235,"stem":236},"\u002Fversions\u002F1.1.1\u002Fuse-cases\u002Ftesting-browser-support","versions\u002F1.1.1\u002Fuse-cases\u002F07.testing-browser-support",{"title":144,"path":238,"stem":239},"\u002Fversions\u002F1.1.1\u002Fuse-cases\u002Fperformance-engineering","versions\u002F1.1.1\u002Fuse-cases\u002F08.performance-engineering",{"title":241,"path":242,"stem":243},"Vue HTML to PDF Examples","\u002Fversions\u002F1.1.1\u002Fuse-cases\u002Fvue-html-to-pdf","versions\u002F1.1.1\u002Fuse-cases\u002F12.vue-html-to-pdf",{"title":245,"path":246,"stem":247,"children":248},"Full References by Package Version","\u002Fversions\u002Ffull-references","versions\u002Ffull-references\u002Findex",[249,250,256,262,268],{"title":245,"path":246,"stem":247},{"title":251,"path":252,"stem":253,"children":254},"vue-pdf-export 1.1.1 Full Reference","\u002Fversions\u002Ffull-references\u002F1.1.1","versions\u002Ffull-references\u002F1.1.1\u002Findex",[255],{"title":251,"path":252,"stem":253},{"title":257,"path":258,"stem":259,"children":260},"vue-pdf-export 1.2.0 Full Reference","\u002Fversions\u002Ffull-references\u002F1.2.0","versions\u002Ffull-references\u002F1.2.0\u002Findex",[261],{"title":257,"path":258,"stem":259},{"title":263,"path":264,"stem":265,"children":266},"vue-pdf-export 1.2.1 Full Reference","\u002Fversions\u002Ffull-references\u002F1.2.1","versions\u002Ffull-references\u002F1.2.1\u002Findex",[267],{"title":263,"path":264,"stem":265},{"title":269,"path":270,"stem":271,"children":272},"vue-pdf-export 1.3.0 Full Reference","\u002Fversions\u002Ffull-references\u002F1.3.0","versions\u002Ffull-references\u002F1.3.0\u002Findex",[273],{"title":269,"path":270,"stem":271},{"id":275,"title":160,"body":276,"description":1029,"extension":1030,"links":1031,"meta":1032,"navigation":405,"path":161,"seo":1033,"stem":162,"__hash__":1036},"docs\u002Fuse-cases\u002F12.media-typography.md",{"type":277,"value":278,"toc":1020},"minimark",[279,288,294,299,718,737,741,751,804,808,816,879,891,895,934,951,955,962,966,986,999,1003,1010,1017],[280,281,282,283,287],"p",{},"This guide describes features in the published ",[284,285,286],"code",{},"vue-pdf-export@1.3.0"," package. Install that version or later before using these options.",[280,289,290,293],{},[284,291,292],{},"vue-pdf-export"," generates PDFs in the browser from Vue 3 content. It prepares media in a private export clone: it waits for fonts, snapshots chart canvases, applies the SVG policy and optionally optimizes images. The live Vue page stays intact, and temporary DOM, font registrations and caches are cleaned after completion, failure or cancellation.",[295,296,298],"h2",{"id":297},"configure-media-for-a-vue-pdf","Configure media for a Vue PDF",[300,301,306],"pre",{"className":302,"code":303,"language":304,"meta":305,"style":305},"language-vue shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003Cscript setup lang=\"ts\">\nimport { Html2Pdf } from 'vue-pdf-export'\nimport type { PdfFontSource, PdfImageOptimizationOptions } from 'vue-pdf-export'\n\nconst fonts: PdfFontSource[] = [\n  { family: 'Report Sans', source: '\u002Ffonts\u002Freport-sans.ttf', format: 'ttf', weight: 400 },\n]\nconst autoOptimize: PdfImageOptimizationOptions = {\n  targetDpi: 144,\n  jpegQuality: 0.85,\n  preserveAlpha: true,\n  cacheRepeated: true,\n}\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003CHtml2Pdf render-mode=\"text\" :fonts=\"fonts\" :auto-optimize=\"autoOptimize\" svg-mode=\"auto\">\n    \u003Ctemplate #pdf-content>\u003Carticle>Report content\u003C\u002Farticle>\u003C\u002Ftemplate>\n  \u003C\u002FHtml2Pdf>\n\u003C\u002Ftemplate>\n","vue","",[284,307,308,343,371,400,407,430,491,497,515,529,542,556,568,574,584,589,599,662,699,709],{"__ignoreMap":305},[309,310,313,317,321,325,328,331,334,338,340],"span",{"class":311,"line":312},"line",1,[309,314,316],{"class":315},"sMK4o","\u003C",[309,318,320],{"class":319},"swJcz","script",[309,322,324],{"class":323},"spNyl"," setup",[309,326,327],{"class":323}," lang",[309,329,330],{"class":315},"=",[309,332,333],{"class":315},"\"",[309,335,337],{"class":336},"sfazB","ts",[309,339,333],{"class":315},[309,341,342],{"class":315},">\n",[309,344,346,350,353,357,360,363,366,368],{"class":311,"line":345},2,[309,347,349],{"class":348},"s7zQu","import",[309,351,352],{"class":315}," {",[309,354,356],{"class":355},"sTEyZ"," Html2Pdf",[309,358,359],{"class":315}," }",[309,361,362],{"class":348}," from",[309,364,365],{"class":315}," '",[309,367,292],{"class":336},[309,369,370],{"class":315},"'\n",[309,372,374,376,379,381,384,387,390,392,394,396,398],{"class":311,"line":373},3,[309,375,349],{"class":348},[309,377,378],{"class":348}," type",[309,380,352],{"class":315},[309,382,383],{"class":355}," PdfFontSource",[309,385,386],{"class":315},",",[309,388,389],{"class":355}," PdfImageOptimizationOptions",[309,391,359],{"class":315},[309,393,362],{"class":348},[309,395,365],{"class":315},[309,397,292],{"class":336},[309,399,370],{"class":315},[309,401,403],{"class":311,"line":402},4,[309,404,406],{"emptyLinePlaceholder":405},true,"\n",[309,408,410,413,416,419,422,425,427],{"class":311,"line":409},5,[309,411,412],{"class":323},"const",[309,414,415],{"class":355}," fonts",[309,417,418],{"class":315},":",[309,420,383],{"class":421},"sBMFI",[309,423,424],{"class":355},"[] ",[309,426,330],{"class":315},[309,428,429],{"class":355}," [\n",[309,431,433,436,439,441,443,446,449,451,454,456,458,461,463,465,468,470,472,475,477,479,482,484,488],{"class":311,"line":432},6,[309,434,435],{"class":315},"  {",[309,437,438],{"class":319}," family",[309,440,418],{"class":315},[309,442,365],{"class":315},[309,444,445],{"class":336},"Report Sans",[309,447,448],{"class":315},"'",[309,450,386],{"class":315},[309,452,453],{"class":319}," source",[309,455,418],{"class":315},[309,457,365],{"class":315},[309,459,460],{"class":336},"\u002Ffonts\u002Freport-sans.ttf",[309,462,448],{"class":315},[309,464,386],{"class":315},[309,466,467],{"class":319}," format",[309,469,418],{"class":315},[309,471,365],{"class":315},[309,473,474],{"class":336},"ttf",[309,476,448],{"class":315},[309,478,386],{"class":315},[309,480,481],{"class":319}," weight",[309,483,418],{"class":315},[309,485,487],{"class":486},"sbssI"," 400",[309,489,490],{"class":315}," },\n",[309,492,494],{"class":311,"line":493},7,[309,495,496],{"class":355},"]\n",[309,498,500,502,505,507,509,512],{"class":311,"line":499},8,[309,501,412],{"class":323},[309,503,504],{"class":355}," autoOptimize",[309,506,418],{"class":315},[309,508,389],{"class":421},[309,510,511],{"class":315}," =",[309,513,514],{"class":315}," {\n",[309,516,518,521,523,526],{"class":311,"line":517},9,[309,519,520],{"class":319},"  targetDpi",[309,522,418],{"class":315},[309,524,525],{"class":486}," 144",[309,527,528],{"class":315},",\n",[309,530,532,535,537,540],{"class":311,"line":531},10,[309,533,534],{"class":319},"  jpegQuality",[309,536,418],{"class":315},[309,538,539],{"class":486}," 0.85",[309,541,528],{"class":315},[309,543,545,548,550,554],{"class":311,"line":544},11,[309,546,547],{"class":319},"  preserveAlpha",[309,549,418],{"class":315},[309,551,553],{"class":552},"sfNiH"," true",[309,555,528],{"class":315},[309,557,559,562,564,566],{"class":311,"line":558},12,[309,560,561],{"class":319},"  cacheRepeated",[309,563,418],{"class":315},[309,565,553],{"class":552},[309,567,528],{"class":315},[309,569,571],{"class":311,"line":570},13,[309,572,573],{"class":315},"}\n",[309,575,577,580,582],{"class":311,"line":576},14,[309,578,579],{"class":315},"\u003C\u002F",[309,581,320],{"class":319},[309,583,342],{"class":315},[309,585,587],{"class":311,"line":586},15,[309,588,406],{"emptyLinePlaceholder":405},[309,590,592,594,597],{"class":311,"line":591},16,[309,593,316],{"class":315},[309,595,596],{"class":319},"template",[309,598,342],{"class":315},[309,600,602,605,608,611,613,615,618,620,623,626,628,630,632,634,636,639,641,643,646,648,651,653,655,658,660],{"class":311,"line":601},17,[309,603,604],{"class":315},"  \u003C",[309,606,607],{"class":319},"Html2Pdf",[309,609,610],{"class":323}," render-mode",[309,612,330],{"class":315},[309,614,333],{"class":315},[309,616,617],{"class":336},"text",[309,619,333],{"class":315},[309,621,622],{"class":315}," :",[309,624,625],{"class":323},"fonts",[309,627,330],{"class":315},[309,629,333],{"class":315},[309,631,625],{"class":355},[309,633,333],{"class":315},[309,635,622],{"class":315},[309,637,638],{"class":323},"auto-optimize",[309,640,330],{"class":315},[309,642,333],{"class":315},[309,644,645],{"class":355},"autoOptimize",[309,647,333],{"class":315},[309,649,650],{"class":323}," svg-mode",[309,652,330],{"class":315},[309,654,333],{"class":315},[309,656,657],{"class":336},"auto",[309,659,333],{"class":315},[309,661,342],{"class":315},[309,663,665,668,670,673,676,679,682,685,688,690,692,695,697],{"class":311,"line":664},18,[309,666,667],{"class":315},"    \u003C",[309,669,596],{"class":319},[309,671,672],{"class":315}," #",[309,674,675],{"class":323},"pdf-content",[309,677,678],{"class":315},">\u003C",[309,680,681],{"class":319},"article",[309,683,684],{"class":315},">",[309,686,687],{"class":355},"Report content",[309,689,579],{"class":315},[309,691,681],{"class":319},[309,693,694],{"class":315},">\u003C\u002F",[309,696,596],{"class":319},[309,698,342],{"class":315},[309,700,702,705,707],{"class":311,"line":701},19,[309,703,704],{"class":315},"  \u003C\u002F",[309,706,607],{"class":319},[309,708,342],{"class":315},[309,710,712,714,716],{"class":311,"line":711},20,[309,713,579],{"class":315},[309,715,596],{"class":319},[309,717,342],{"class":315},[280,719,720,722,723,725,726,729,730,733,734,736],{},[284,721,625],{},", ",[284,724,645],{}," and ",[284,727,728],{},"svgMode"," can also be passed through ",[284,731,732],{},"htmlToPdfOptions",". Explicit component props win. ",[284,735,645],{}," is off unless you enable it, so existing image quality stays as configured.",[295,738,740],{"id":739},"custom-fonts-and-selectable-pdf-text","Custom fonts and selectable PDF text",[280,742,743,744,747,748,750],{},"Export waits for ",[284,745,746],{},"document.fonts.ready"," before layout. With no custom ",[284,749,625],{}," list, Canvas uses the page's computed CSS font. Selectable-text mode still measures the CSS layout but maps unregistered font families to built-in PDF faces. Register a matching file when the exact project font must appear as selectable text.",[280,752,753,754,757,758,761,762,765,766,769,770,773,774,722,777,780,781,769,784,787,788,765,791,769,793,796,797,800,801,803],{},"Each ",[284,755,756],{},"PdfFontSource"," takes ",[284,759,760],{},"family",", optional ",[284,763,764],{},"style"," (",[284,767,768],{},"normal"," or ",[284,771,772],{},"italic","), optional ",[284,775,776],{},"weight",[284,778,779],{},"source"," (URL, ",[284,782,783],{},"ArrayBuffer",[284,785,786],{},"Uint8Array","), and optional ",[284,789,790],{},"format",[284,792,474],{},[284,794,795],{},"otf","). The CSS ",[284,798,799],{},"font-family"," must match ",[284,802,760],{},". Register the bold and italic files separately if the document uses them. The supported OTF path requires TrueType outlines; CFF-outline OTF, WOFF and WOFF2 cannot be embedded by this path. Remote URLs need working CORS, CSP and permission to use the font. Test the actual glyphs and language in a PDF viewer because shaping remains renderer-dependent.",[295,805,807],{"id":806},"canvas-charts-and-inline-svg","Canvas charts and inline SVG",[280,809,810,811,815],{},"Canvas charts are captured as export-only PNG snapshots. Static numeric labels and fixed callouts can be present in the PDF; live hover tooltips cannot remain interactive in a static document. The four-chart ApexCharts sample is ",[812,813,814],"strong",{},"playground-only"," and does not add ApexCharts to the library's runtime requirements.",[817,818,819,836],"table",{},[820,821,822],"thead",{},[823,824,825,830,833],"tr",{},[826,827,828],"th",{},[284,829,728],{},[826,831,832],{},"Canvas PDF",[826,834,835],{},"Selectable-text PDF",[837,838,839,853,866],"tbody",{},[823,840,841,847,850],{},[842,843,844,846],"td",{},[284,845,657],{}," (default)",[842,848,849],{},"Keep inline SVG in staging; the final page is rasterized",[842,851,852],{},"Rasterize SVG because the text renderer does not draw SVG shapes",[823,854,855,860,863],{},[842,856,857],{},[284,858,859],{},"preserve",[842,861,862],{},"Keep inline SVG in staging",[842,864,865],{},"Rasterize unsupported SVG shapes",[823,867,868,873,876],{},[842,869,870],{},[284,871,872],{},"rasterize",[842,874,875],{},"Snapshot SVG into an image first",[842,877,878],{},"Rasterize SVG",[280,880,881,882,885,886,890],{},"External SVG resources, filters, animation and ",[284,883,884],{},"foreignObject"," can differ from the live browser. Test representative charts, logos and icons in both ",[887,888,889],"a",{"href":83},"rendering modes",".",[295,892,894],{"id":893},"image-quality-and-per-export-reuse","Image quality and per-export reuse",[280,896,897,898,900,901,904,905,725,908,911,912,915,916,919,920,923,924,927,928,919,931,933],{},"With ",[284,899,645],{},", oversized raster images are downscaled from their displayed size and ",[284,902,903],{},"targetDpi"," (default 144). ",[284,906,907],{},"maxWidth",[284,909,910],{},"maxHeight"," cap output dimensions. ",[284,913,914],{},"jpegQuality"," defaults to 0.85 and is limited to 0.1–1. ",[284,917,918],{},"preserveAlpha"," defaults to ",[284,921,922],{},"true",", choosing PNG for suitable non-JPEG sources; setting it to ",[284,925,926],{},"false"," flattens transparency onto white for JPEG. ",[284,929,930],{},"cacheRepeated",[284,932,922],{}," and reuses matching prepared sources, dimensions, format and quality during one export. Selectable-text rendering also has its own per-render image cache. Canvas pages remain raster page images, so object-level reuse is different.",[280,935,936,937,940,941,944,945,725,948,890],{},"Repeated image watermarks reuse the prepared source within one export. Sparse layouts reuse a PDF image alias; dense tiled layouts reuse one transparent sheet per page size. Static Canvas footer HTML and unchanged slot captures also reuse preparation. Set ",[284,938,939],{},"collectMetrics"," to inspect ",[284,942,943],{},"metrics.media"," operation counts, including chart snapshots, SVG rasterizations, optimized images, cache hits, watermark reuse and footer captures. These counters are not a speed or byte-saving guarantee. See ",[887,946,947],{"href":32},"watermarks",[887,949,950],{"href":145},"performance engineering",[295,952,954],{"id":953},"cors-failure-and-cleanup","CORS, failure and cleanup",[280,956,957,958,961],{},"Use same-origin media, a server that permits the page origin through CORS, or suitable data URLs. If image optimization cannot decode a cross-origin image, it leaves the staging image in place and warns; the renderer may still fail under its own CORS policy. A CORS-tainted watermark raises an error. Remote fonts can also fail during fetch. Private staging and temporary font registrations are cleaned on success, error and cancellation. See ",[887,959,960],{"href":129},"images and CORS"," for recovery steps.",[295,963,965],{"id":964},"other-fixes-in-v130","Other fixes in v1.3.0",[967,968,969,973,976,983],"ul",{},[970,971,972],"li",{},"Selectable-text table continuation now places an automatic split and repeated heading before the first row that crowds a measured page boundary. The inspected playground fixture no longer has a row-only page at that boundary. Oversized indivisible cells remain a limit.",[970,974,975],{},"A large source logo used at a small header\u002Ffooter size is rasterized proportionally for selectable-text output. A local nine-page fixture shrank from about 973 KB to about 300 KB; other documents can differ.",[970,977,978,979,982],{},"Canvas page encoding uses ",[284,980,981],{},"toBlob"," and binary bytes where available, with a data-URL fallback. The playground's JPEG quality was set to 0.88; that demo setting is not a new library default.",[970,984,985],{},"Export HTML paths for headers, footers and slots are sanitized before staging insertion. A cancelled preflight and late-result guard prevent a cancelled generation from opening a completed preview.",[280,987,988,989,722,992,725,995,998],{},"See ",[887,990,991],{"href":95},"pagination",[887,993,994],{"href":28},"security",[887,996,997],{"href":165},"project flow"," for their boundaries.",[295,1000,1002],{"id":1001},"verification-scope","Verification scope",[280,1004,1005,1006,1009],{},"The library's media verification records unit, TypeScript and build checks, Chromium and WebKit exports, and selected visual PDF inspections. Local Firefox verification failed at the headless graphics launch and remains open. Later pagination and footer fixes have narrower checks. These results cover named fixtures, not arbitrary HTML\u002FCSS or a universal speed target. The ",[887,1007,1008],{"href":141},"testing guide"," explains how to verify your own content.",[280,1011,1012,1013,1016],{},"The ",[887,1014,1015],{"href":165},"generation-flow guide"," shows where preparation, rendering and cleanup happen in the package.",[764,1018,1019],{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":305,"searchDepth":345,"depth":345,"links":1021},[1022,1023,1024,1025,1026,1027,1028],{"id":297,"depth":345,"text":298},{"id":739,"depth":345,"text":740},{"id":806,"depth":345,"text":807},{"id":893,"depth":345,"text":894},{"id":953,"depth":345,"text":954},{"id":964,"depth":345,"text":965},{"id":1001,"depth":345,"text":1002},"Prepare Vue charts, SVG, custom fonts and images for browser PDF export. Compare Canvas and selectable-text behavior, CORS recovery and quality controls.","md",null,{},{"title":1034,"description":1035},"Vue PDF Fonts, Charts, SVG and Images","Use custom PDF fonts, chart snapshots, SVG fallback and opt-in image optimization in vue-pdf-export 1.3.0. Includes renderer limits and CORS fixes.","9JyE6vAjkkBNjBGSzVh9HauDNyCZb1TncNVAavY_tpM",[1038,1040],{"title":156,"path":157,"stem":158,"description":1039,"children":-1},"Credits and licensing acknowledgements for the open-source projects and contributors that support vue-pdf-export, including the selectable-text renderer foundation.",{"title":164,"path":165,"stem":166,"description":1041,"children":-1},"Trace how vue-pdf-export moves from Vue content through pagination, export staging, Canvas or selectable-text rendering, PDF layers and cleanup.",1791274870734]