[{"data":1,"prerenderedAt":693},["ShallowReactive",2],{"navigation_docs":3,"-use-cases-selectable-text":139,"-use-cases-selectable-text-surround":688},[4,55,89],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":54},"API","i-lucide-braces","\u002Fapi","api",[10,14,18,22,26,30,34,38,42,46,50],{"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},"Headers","\u002Fapi\u002Fheaders","api\u002F03.headers",{"title":23,"path":24,"stem":25},"Footers","\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, 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},"Full README Reference","\u002Fapi\u002Ffull-reference","api\u002F11.full-reference",false,{"title":56,"icon":57,"path":58,"stem":59,"children":60,"page":54},"Get Started","i-lucide-book-open","\u002Fget-started","get-started",[61,65,69,73,77,81,85],{"title":62,"path":63,"stem":64},"Introduction","\u002Fget-started\u002Fintroduction","get-started\u002F01.introduction",{"title":66,"path":67,"stem":68},"Installation","\u002Fget-started\u002Finstallation","get-started\u002F02.installation",{"title":70,"path":71,"stem":72},"Quick Start","\u002Fget-started\u002Fquick-start","get-started\u002F03.quick-start",{"title":74,"path":75,"stem":76},"Rendering Modes","\u002Fget-started\u002Frendering-modes","get-started\u002F04.rendering-modes",{"title":78,"path":79,"stem":80},"Component Registration","\u002Fget-started\u002Fregistration","get-started\u002F05.registration",{"title":82,"path":83,"stem":84},"Preview & Download","\u002Fget-started\u002Fpreview-download","get-started\u002F06.preview-download",{"title":86,"path":87,"stem":88},"Pagination","\u002Fget-started\u002Fpagination","get-started\u002F07.pagination",{"title":90,"icon":91,"path":92,"stem":93,"children":94,"page":54},"Use Cases","i-lucide-flask-conical","\u002Fuse-cases","use-cases",[95,99,103,107,111,115,119,123,127,131,135],{"title":96,"path":97,"stem":98},"Playground","\u002Fuse-cases\u002Fplayground","use-cases\u002F01.playground",{"title":100,"path":101,"stem":102},"Selectable Text","\u002Fuse-cases\u002Fselectable-text","use-cases\u002F02.selectable-text",{"title":104,"path":105,"stem":106},"Clickable PDF Links","\u002Fuse-cases\u002Fclickable-links","use-cases\u002F03.clickable-links",{"title":108,"path":109,"stem":110},"Images & CORS","\u002Fuse-cases\u002Fimages-cors","use-cases\u002F04.images-cors",{"title":112,"path":113,"stem":114},"Production Guide","\u002Fuse-cases\u002Fproduction-guide","use-cases\u002F05.production-guide",{"title":116,"path":117,"stem":118},"Troubleshooting","\u002Fuse-cases\u002Ftroubleshooting","use-cases\u002F06.troubleshooting",{"title":120,"path":121,"stem":122},"Testing & Browser Support","\u002Fuse-cases\u002Ftesting-browser-support","use-cases\u002F07.testing-browser-support",{"title":124,"path":125,"stem":126},"Performance Engineering","\u002Fuse-cases\u002Fperformance-engineering","use-cases\u002F08.performance-engineering",{"title":128,"path":129,"stem":130},"Full Performance Engineering Report","\u002Fuse-cases\u002Fperformance-report","use-cases\u002F09.performance-report",{"title":132,"path":133,"stem":134},"Community & Feedback","\u002Fuse-cases\u002Fcommunity","use-cases\u002F10.community",{"title":136,"path":137,"stem":138},"Acknowledgements","\u002Fuse-cases\u002Facknowledgements","use-cases\u002F11.acknowledgements",{"id":140,"title":100,"body":141,"description":152,"extension":683,"links":684,"meta":685,"navigation":586,"path":101,"seo":686,"stem":102,"__hash__":687},"docs\u002Fuse-cases\u002F02.selectable-text.md",{"type":142,"value":143,"toc":672},"minimark",[144,149,153,158,195,199,202,258,265,269,272,276,279,282,285,290,294,307,348,351,354,376,379,384,391,394,420,426,430,454,457,460,513,516,657,668],[145,146,148],"h1",{"id":147},"selectable-text-mode","Selectable Text Mode",[150,151,152],"p",{},"Selectable-text mode uses a browser-layout-to-vector-PDF renderer rather than html2canvas for the main body content.",[154,155,157],"h3",{"id":156},"what-it-is-designed-to-preserve","What it is designed to preserve",[159,160,161,165,168,171,174,177,180,183,186,189,192],"ul",{},[162,163,164],"li",{},"real PDF text",[162,166,167],{},"selection\u002Fsearch\u002Fcopy",[162,169,170],{},"text line placement based on browser layout",[162,172,173],{},"common font weight\u002Fstyle\u002Fcolor\u002Falignment",[162,175,176],{},"backgrounds",[162,178,179],{},"borders",[162,181,182],{},"images",[162,184,185],{},"opacity",[162,187,188],{},"overflow clipping",[162,190,191],{},"multi-page layout",[162,193,194],{},"clickable links",[154,196,198],{"id":197},"current-limitations","Current limitations",[150,200,201],{},"Some browser CSS\u002Ffeatures are not fully reproduced in selectable-text mode, including or depending on renderer support:",[159,203,204,212,215,218,221,224,227,237,240,243,248,251],{},[162,205,206,207,211],{},"complex stacking-context \u002F ",[208,209,210],"code",{},"z-index"," reordering",[162,213,214],{},"background images and gradients",[162,216,217],{},"shadows",[162,219,220],{},"CSS transforms",[162,222,223],{},"custom TTF\u002Fweb-font embedding",[162,225,226],{},"some non-WinAnsi glyphs such as CJK\u002Femoji",[162,228,229,230,233,234],{},"pseudo-elements such as ",[208,231,232],{},"::before"," \u002F ",[208,235,236],{},"::after",[162,238,239],{},"native list markers in some layouts",[162,241,242],{},"RTL text",[162,244,245],{},[208,246,247],{},"position: fixed",[162,249,250],{},"complex rounded clipping",[162,252,253,254,257],{},"native ",[208,255,256],{},"break-inside: avoid"," semantics inside the vector renderer",[150,259,260,261,264],{},"For those cases, prefer ",[208,262,263],{},"renderMode=\"canvas\"",".",[154,266,268],{"id":267},"font-metric-differences","Font metric differences",[150,270,271],{},"Selectable text uses PDF font metrics, which can differ slightly from browser web-font metrics. Most normal text is visually close, but highly stylized button\u002Flink text with large letter spacing or fixed widths can look different.",[154,273,275],{"id":274},"headerfooter-text","Header\u002Ffooter text",[150,277,278],{},"In selectable-text mode, plain header\u002Ffooter text and footer page-number text are emitted as real selectable PDF text. Complex HTML styling may be simplified to preserve selectability.",[154,280,27],{"id":281},"security",[150,283,284],{},"Selectable-text mode supports PDF encryption because the vendored vector renderer passes the package's jsPDF constructor options at document creation time.",[286,287,289],"h2",{"id":288},"rendering-modes-reference","Rendering modes reference",[154,291,293],{"id":292},"canvas-mode","Canvas mode",[150,295,296,297,233,300,233,303,306],{},"Canvas mode is the default and uses the package's existing ",[208,298,299],{},"html2pdf.js",[208,301,302],{},"html2canvas",[208,304,305],{},"jsPDF"," pipeline.",[308,309,314],"pre",{"className":310,"code":311,"language":312,"meta":313,"style":313},"language-vue shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003CHtml2Pdf render-mode=\"canvas\" \u002F>\n","vue","",[208,315,316],{"__ignoreMap":313},[317,318,321,325,329,333,336,339,343,345],"span",{"class":319,"line":320},"line",1,[317,322,324],{"class":323},"sMK4o","\u003C",[317,326,328],{"class":327},"swJcz","Html2Pdf",[317,330,332],{"class":331},"spNyl"," render-mode",[317,334,335],{"class":323},"=",[317,337,338],{"class":323},"\"",[317,340,342],{"class":341},"sfazB","canvas",[317,344,338],{"class":323},[317,346,347],{"class":323}," \u002F>\n",[150,349,350],{},"Use it when the highest possible browser CSS fidelity is more important than selectable body text.",[150,352,353],{},"Best for:",[159,355,356,359,362,364,367,370,373],{},[162,357,358],{},"complex CSS",[162,360,361],{},"gradients",[162,363,217],{},[162,365,366],{},"transforms",[162,368,369],{},"custom web fonts",[162,371,372],{},"visual dashboards",[162,374,375],{},"designs where browser appearance is the priority",[150,377,378],{},"Body content is rasterized, so normal body text is not selectable\u002Fsearchable.",[380,381,383],"h4",{"id":382},"incremental-canvas-rendering","Incremental Canvas rendering",[150,385,386,387,390],{},"When the export DOM contains ",[208,388,389],{},".html2pdf__page-break"," markers, Canvas mode uses an incremental page-by-page renderer instead of capturing the entire document as one giant canvas.",[150,392,393],{},"This path:",[159,395,396,399,402,408,411,414,417],{},[162,397,398],{},"clones and renders one logical PDF page at a time",[162,400,401],{},"keeps raster dimensions page-bounded",[162,403,404,405,407],{},"releases temporary page DOM after ",[208,406,302],{}," finishes reading it",[162,409,410],{},"releases canvas backing stores after insertion into jsPDF",[162,412,413],{},"reports page-level progress",[162,415,416],{},"yields to the browser between expensive steps",[162,418,419],{},"supports cooperative cancellation before the next page begins",[150,421,422,423,425],{},"Canvas documents without page-break markers keep the legacy ",[208,424,299],{}," worker for backwards compatibility.",[154,427,429],{"id":428},"selectable-text-mode-1","Selectable text mode",[308,431,433],{"className":310,"code":432,"language":312,"meta":313,"style":313},"\u003CHtml2Pdf render-mode=\"text\" \u002F>\n",[208,434,435],{"__ignoreMap":313},[317,436,437,439,441,443,445,447,450,452],{"class":319,"line":320},[317,438,324],{"class":323},[317,440,328],{"class":327},[317,442,332],{"class":331},[317,444,335],{"class":323},[317,446,338],{"class":323},[317,448,449],{"class":341},"text",[317,451,338],{"class":323},[317,453,347],{"class":323},[150,455,456],{},"Selectable text mode converts the live browser layout into PDF vector\u002Ftext operations instead of turning the entire document into a screenshot.",[150,458,459],{},"It supports:",[159,461,462,465,468,471,474,477,480,482,484,486,489,492,495,498,501,504,507,510],{},[162,463,464],{},"selectable body text",[162,466,467],{},"searchable body text",[162,469,470],{},"copyable body text",[162,472,473],{},"selectable header\u002Ffooter text",[162,475,476],{},"selectable footer page numbers",[162,478,479],{},"clickable PDF hyperlinks",[162,481,182],{},[162,483,176],{},[162,485,179],{},[162,487,488],{},"basic border radius",[162,490,491],{},"text color, weight, italic, decoration, alignment, and spacing",[162,493,494],{},"multi-page output",[162,496,497],{},"manual page-break markers",[162,499,500],{},"PDF password protection",[162,502,503],{},"PDF permissions",[162,505,506],{},"metadata",[162,508,509],{},"compression",[162,511,512],{},"headers, footers, and watermarks",[150,514,515],{},"Example:",[308,517,519],{"className":310,"code":518,"language":312,"meta":313,"style":313},"\u003CHtml2Pdf render-mode=\"text\" :security=\"security\" :metadata=\"metadata\" :compress=\"true\">\n\n  \u003Ctemplate #pdf-content>\n    \u003Cmain>\n      \u003Ch1>Selectable report\u003C\u002Fh1>\n      \u003Cp>You can select and search this text in the generated PDF.\u003C\u002Fp>\n\n      \u003Ca href=\"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fvue-pdf-export\">\n        Open vue-pdf-export on npm\n      \u003C\u002Fa>\n    \u003C\u002Fmain>\n  \u003C\u002Ftemplate>\n\u003C\u002FHtml2Pdf>\n",[208,520,521,581,588,594,600,606,612,617,623,629,635,641,647],{"__ignoreMap":313},[317,522,523,525,527,529,531,533,535,537,540,542,544,546,549,551,553,555,557,559,561,563,565,568,570,572,576,578],{"class":319,"line":320},[317,524,324],{"class":323},[317,526,328],{"class":327},[317,528,332],{"class":331},[317,530,335],{"class":323},[317,532,338],{"class":323},[317,534,449],{"class":341},[317,536,338],{"class":323},[317,538,539],{"class":323}," :",[317,541,281],{"class":331},[317,543,335],{"class":323},[317,545,338],{"class":323},[317,547,281],{"class":548},"sTEyZ",[317,550,338],{"class":323},[317,552,539],{"class":323},[317,554,506],{"class":331},[317,556,335],{"class":323},[317,558,338],{"class":323},[317,560,506],{"class":548},[317,562,338],{"class":323},[317,564,539],{"class":323},[317,566,567],{"class":331},"compress",[317,569,335],{"class":323},[317,571,338],{"class":323},[317,573,575],{"class":574},"sfNiH","true",[317,577,338],{"class":323},[317,579,580],{"class":323},">\n",[317,582,584],{"class":319,"line":583},2,[317,585,587],{"emptyLinePlaceholder":586},true,"\n",[317,589,591],{"class":319,"line":590},3,[317,592,593],{"class":548},"  \u003Ctemplate #pdf-content>\n",[317,595,597],{"class":319,"line":596},4,[317,598,599],{"class":548},"    \u003Cmain>\n",[317,601,603],{"class":319,"line":602},5,[317,604,605],{"class":548},"      \u003Ch1>Selectable report\u003C\u002Fh1>\n",[317,607,609],{"class":319,"line":608},6,[317,610,611],{"class":548},"      \u003Cp>You can select and search this text in the generated PDF.\u003C\u002Fp>\n",[317,613,615],{"class":319,"line":614},7,[317,616,587],{"emptyLinePlaceholder":586},[317,618,620],{"class":319,"line":619},8,[317,621,622],{"class":548},"      \u003Ca href=\"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fvue-pdf-export\">\n",[317,624,626],{"class":319,"line":625},9,[317,627,628],{"class":548},"        Open vue-pdf-export on npm\n",[317,630,632],{"class":319,"line":631},10,[317,633,634],{"class":548},"      \u003C\u002Fa>\n",[317,636,638],{"class":319,"line":637},11,[317,639,640],{"class":548},"    \u003C\u002Fmain>\n",[317,642,644],{"class":319,"line":643},12,[317,645,646],{"class":548},"  \u003C\u002Ftemplate>\n",[317,648,650,653,655],{"class":319,"line":649},13,[317,651,652],{"class":323},"\u003C\u002F",[317,654,328],{"class":327},[317,656,580],{"class":323},[658,659,660],"blockquote",{},[150,661,662,663,264],{},"Selectable-text mode intentionally favors real PDF text over pixel-perfect parity with every browser CSS feature. See ",[664,665,667],"a",{"href":666},"#selectable-text-mode-notes","Selectable Text Mode Notes",[669,670,671],"style",{},"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 .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);}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}",{"title":313,"searchDepth":583,"depth":583,"links":673},[674,675,676,677,678,679],{"id":156,"depth":590,"text":157},{"id":197,"depth":590,"text":198},{"id":267,"depth":590,"text":268},{"id":274,"depth":590,"text":275},{"id":281,"depth":590,"text":27},{"id":288,"depth":583,"text":289,"children":680},[681,682],{"id":292,"depth":590,"text":293},{"id":428,"depth":590,"text":429},"md",null,{},{"title":100,"description":152},"uDlLdYgXp_aOmb9sgNq2-OW6JcIfikGYnGelltodxK8",[689,691],{"title":96,"path":97,"stem":98,"description":690,"children":-1},"The live playground is the fastest way to compare Canvas and selectable-text rendering and exercise the package without installing it.",{"title":104,"path":105,"stem":106,"description":692,"children":-1},"Enable PDF links through htmlToPdfOptions.enableLinks:",1788876781735]