[{"data":1,"prerenderedAt":446},["ShallowReactive",2],{"navigation_docs":3,"-use-cases-testing-browser-support":139,"-use-cases-testing-browser-support-surround":442},[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":120,"body":141,"description":152,"extension":437,"links":438,"meta":439,"navigation":336,"path":121,"seo":440,"stem":122,"__hash__":441},"docs\u002Fuse-cases\u002F07.testing-browser-support.md",{"type":142,"value":143,"toc":434},"minimark",[144,149,153,156,172,175,180,183,274,277,305,308,324,327,430],[145,146,148],"h1",{"id":147},"browser-support","Browser Support",[150,151,152],"p",{},"The package targets modern browsers supported by Vue and the underlying PDF\u002Fbrowser APIs.",[150,154,155],{},"Recommended testing:",[157,158,159,163,166,169],"ul",{},[160,161,162],"li",{},"Chromium \u002F Chrome \u002F Edge",[160,164,165],{},"Firefox",[160,167,168],{},"WebKit",[160,170,171],{},"Safari when Safari is important to production users",[150,173,174],{},"Playwright WebKit tests the WebKit engine; it is not identical to testing the Safari application itself.",[176,177,179],"h2",{"id":178},"testing","Testing",[150,181,182],{},"The project includes unit\u002Fintegration and browser E2E coverage for major workflows, including:",[157,184,185,188,191,194,197,200,203,206,209,212,215,218,221,224,227,230,233,236,239,242,245,248,259,262,265,268,271],{},[160,186,187],{},"PDF generation",[160,189,190],{},"preview Blob creation",[160,192,193],{},"download",[160,195,196],{},"print flow",[160,198,199],{},"rendering mode routing",[160,201,202],{},"selectable-text generation",[160,204,205],{},"PDF link annotations",[160,207,208],{},"pagination and page-break mapping",[160,210,211],{},"metadata",[160,213,214],{},"compression",[160,216,217],{},"security",[160,219,220],{},"protected\u002Funprotected PDFs",[160,222,223],{},"header page targeting",[160,225,226],{},"selective header spacing",[160,228,229],{},"optional header\u002Ffooter logos",[160,231,232],{},"custom logo sizing",[160,234,235],{},"header\u002Ffooter HTML rendering",[160,237,238],{},"selectable header\u002Ffooter text",[160,240,241],{},"footer page numbering",[160,243,244],{},"per-page watermark targeting",[160,246,247],{},"progress stages",[160,249,250,251,255,256],{},"page-aware ",[252,253,254],"code",{},"currentPage"," \u002F ",[252,257,258],{},"totalPages",[160,260,261],{},"cooperative cancellation and recovery",[160,263,264],{},"10 \u002F 25 \u002F 50 \u002F 100-page large-document regression fixtures",[160,266,267],{},"selectable repeated-image caching",[160,269,270],{},"page-bounded Canvas image-heavy rendering",[160,272,273],{},"temporary rendering DOM\u002Fsnapshot cleanup",[150,275,276],{},"Because PDF rendering is CPU-heavy, a small Playwright worker count is recommended:",[278,279,284],"pre",{"className":280,"code":281,"language":282,"meta":283,"style":283},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","npx playwright test --workers=2\n","bash","",[252,285,286],{"__ignoreMap":283},[287,288,291,295,299,302],"span",{"class":289,"line":290},"line",1,[287,292,294],{"class":293},"sBMFI","npx",[287,296,298],{"class":297},"sfazB"," playwright",[287,300,301],{"class":297}," test",[287,303,304],{"class":297}," --workers=2\n",[150,306,307],{},"Because large PDF rendering is CPU- and memory-intensive, use a single worker for heavy stress\u002Fregression suites:",[278,309,311],{"className":280,"code":310,"language":282,"meta":283,"style":283},"npx playwright test --workers=1\n",[252,312,313],{"__ignoreMap":283},[287,314,315,317,319,321],{"class":289,"line":290},[287,316,294],{"class":293},[287,318,298],{"class":297},[287,320,301],{"class":297},[287,322,323],{"class":297}," --workers=1\n",[150,325,326],{},"Run the full release checks before publishing:",[278,328,330],{"className":280,"code":329,"language":282,"meta":283,"style":283},"\nnpm run type-check\n\nnpm run build\n\nnpm run build:demo\n\nnpm run test:unit:run\n\nnpx playwright test e2e\u002Fgenerate-pdf.spec.ts --workers=2\n\nnpm publish --dry-run\n",[252,331,332,338,350,355,365,370,380,385,395,400,414,419],{"__ignoreMap":283},[287,333,334],{"class":289,"line":290},[287,335,337],{"emptyLinePlaceholder":336},true,"\n",[287,339,341,344,347],{"class":289,"line":340},2,[287,342,343],{"class":293},"npm",[287,345,346],{"class":297}," run",[287,348,349],{"class":297}," type-check\n",[287,351,353],{"class":289,"line":352},3,[287,354,337],{"emptyLinePlaceholder":336},[287,356,358,360,362],{"class":289,"line":357},4,[287,359,343],{"class":293},[287,361,346],{"class":297},[287,363,364],{"class":297}," build\n",[287,366,368],{"class":289,"line":367},5,[287,369,337],{"emptyLinePlaceholder":336},[287,371,373,375,377],{"class":289,"line":372},6,[287,374,343],{"class":293},[287,376,346],{"class":297},[287,378,379],{"class":297}," build:demo\n",[287,381,383],{"class":289,"line":382},7,[287,384,337],{"emptyLinePlaceholder":336},[287,386,388,390,392],{"class":289,"line":387},8,[287,389,343],{"class":293},[287,391,346],{"class":297},[287,393,394],{"class":297}," test:unit:run\n",[287,396,398],{"class":289,"line":397},9,[287,399,337],{"emptyLinePlaceholder":336},[287,401,403,405,407,409,412],{"class":289,"line":402},10,[287,404,294],{"class":293},[287,406,298],{"class":297},[287,408,301],{"class":297},[287,410,411],{"class":297}," e2e\u002Fgenerate-pdf.spec.ts",[287,413,304],{"class":297},[287,415,417],{"class":289,"line":416},11,[287,418,337],{"emptyLinePlaceholder":336},[287,420,422,424,427],{"class":289,"line":421},12,[287,423,343],{"class":293},[287,425,426],{"class":297}," publish",[287,428,429],{"class":297}," --dry-run\n",[431,432,433],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}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);}",{"title":283,"searchDepth":340,"depth":340,"links":435},[436],{"id":178,"depth":340,"text":179},"md",null,{},{"title":120,"description":152},"Fuo2K2uYuWknFSznEklGUeX1IS6evUubTIPVXJxvEJ8",[443,444],{"title":116,"path":117,"stem":118,"description":283,"children":-1},{"title":124,"path":125,"stem":126,"description":445,"children":-1},"The large-document milestone was not only a benchmark exercise. It changed the runtime architecture and added repeatable correctness, cleanup and memory diagnostics.",1788876783521]