[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs:api\u002FQuittio\u002FCore\u002FPdf\u002FLogoCache":3},{"versions":4,"version":26,"nav":28,"path":106,"kind":107,"page":108},[5,10,13,16,18,20,22,24],{"name":6,"label":7,"prefix":8,"channel":9},"0.7","0.7 (latest)","","latest",{"name":11,"label":12,"prefix":11,"channel":11},"next","next (unreleased)",{"name":14,"label":14,"prefix":14,"channel":15},"0.6","old",{"name":17,"label":17,"prefix":17,"channel":15},"0.5",{"name":19,"label":19,"prefix":19,"channel":15},"0.4",{"name":21,"label":21,"prefix":21,"channel":15},"0.3",{"name":23,"label":23,"prefix":23,"channel":15},"0.2",{"name":25,"label":25,"prefix":25,"channel":15},"0.1",{"name":6,"label":7,"prefix":8,"channel":9,"base":27},"\u002Fdocs",[29,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,91,94,97,100,103],{"slug":30,"title":31,"preview":32},"index","Home",false,{"slug":34,"title":35,"preview":32},"getting-started","Getting started",{"slug":37,"title":38,"preview":32},"concepts","E-invoicing basics",{"slug":40,"title":41,"preview":32},"examples","Examples",{"slug":43,"title":44,"preview":32},"building-invoices","Building invoices",{"slug":46,"title":47,"preview":32},"formats","Formats and profiles",{"slug":49,"title":50,"preview":32},"validation","Validation",{"slug":52,"title":53,"preview":32},"templates","Templates and design",{"slug":55,"title":56,"preview":32},"documents","Quotes and other documents",{"slug":58,"title":59,"preview":32},"reading","Reading incoming invoices",{"slug":61,"title":62,"preview":32},"laravel","Laravel integration",{"slug":64,"title":65,"preview":32},"configuration","Configuration",{"slug":67,"title":68,"preview":32},"commands","Artisan commands",{"slug":70,"title":71,"preview":32},"testing","Testing",{"slug":73,"title":74,"preview":32},"country-packs","Country packs",{"slug":76,"title":77,"parent":74,"preview":32},"country-at","Austria",{"slug":79,"title":80,"parent":74,"preview":32},"country-be","Belgium",{"slug":82,"title":83,"parent":74,"preview":32},"country-ch","Switzerland",{"slug":85,"title":86,"parent":74,"preview":32},"country-fr","France",{"slug":88,"title":89,"preview":90},"managed","Managed layer (preview)",true,{"slug":92,"title":93,"preview":32},"troubleshooting","Troubleshooting",{"slug":95,"title":96,"preview":32},"faq","FAQ",{"slug":98,"title":99,"preview":32},"compatibility","Versioning and compatibility",{"slug":101,"title":102,"preview":32},"field-reference","Field reference",{"slug":104,"title":105,"preview":32},"ai","AI assistants","api\u002FQuittio\u002FCore\u002FPdf\u002FLogoCache","api",{"title":109,"description":110,"html":111,"headings":112},"LogoCache","Prepares logos for the PDF and caches the result.","\u003Cp class=\"q-api-crumbs\">\u003Ca href=\"\u002Fdocs\u002Fapi\">API reference\u003C\u002Fa> \u002F \u003Ca href=\"\u002Fdocs\u002Fapi\u002FQuittio\">Quittio\u003C\u002Fa> \\ \u003Ca href=\"\u002Fdocs\u002Fapi\u002FQuittio\u002FCore\">Core\u003C\u002Fa> \\ \u003Ca href=\"\u002Fdocs\u002Fapi\u002FQuittio\u002FCore\u002FPdf\">Pdf\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch1>LogoCache\u003C\u002Fh1>\n\u003Cp class=\"q-api-facts\">\u003Cspan class=\"q-api-badge q-api-badge-kind\">final readonly class\u003C\u002Fspan> in \u003Cspan class=\"q-api-badge\">quittio\u002Fcore\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cp class=\"q-api-name\">\u003Ccode>Quittio\\Core\\Pdf\\LogoCache\u003C\u002Fcode> · \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FQuittio\u002Fquittio\u002Fblob\u002Fv0.7.1\u002Fpackages\u002Fcore\u002Fsrc\u002FPdf\u002FLogoCache.php#L25\">Source\u003C\u002Fa>\u003C\u002Fp>\n\n\u003Cp class=\"q-doc-lead\">Prepares logos for the PDF and caches the result.\u003C\u002Fp>\n\u003Cp>mPDF never fetches a logo itself: remote images (http and https only) are downloaded by\n\u003Ccode>RemoteImageFetcher\u003C\u002Fcode> from public hosts and cached as local files; other stream\nwrappers are refused. Logos may be local files (configuration), data URIs or such URLs.\u003C\u002Fp>\n\u003Cp>Without PDF\u002FA, large raster files are scaled once to the size used in the PDF; SVG must be\nself-contained. For PDF\u002FA (ZUGFeRD\u002FFactur-X), which allows neither the alpha channel mPDF\nwould write nor mPDF's SVG output (ISO 19005-3, 6.2.2), every logo is re-encoded as RGB PNG\non white: raster images are flattened, SVG is rasterised with Imagick.\u003C\u002Fp>\n\n\u003Ch2 id=\"methods\">Methods\u003Ca class=\"q-doc-anchor\" href=\"#methods\" aria-label=\"Link to this section\">#\u003C\u002Fa>\u003C\u002Fh2>\n\u003Ctable class=\"q-doc-table q-stack-table q-api-summary\">\u003Cthead>\u003Ctr>\u003Cth>Method\u003C\u002Fth>\u003Cth>Description\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\n\u003Ctr>\u003Ctd>\u003Ca href=\"#method-__construct\">\u003Ccode>->__construct()\u003C\u002Fcode>\u003C\u002Fa>\u003C\u002Ftd>\u003Ctd data-label=\"Description\">\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>\u003Ca href=\"#method-resolve\">\u003Ccode>->resolve()\u003C\u002Fcode>\u003C\u002Fa>\u003C\u002Ftd>\u003Ctd data-label=\"Description\">A value for the renderer that can never trigger a server-side request: a local file ({@see realpath()}) for existing files, or a canonical data URI built from bytes this class has decoded and checked itself (for http(s) URLs and data URIs). Null if a remote logo cannot be downloaded. Everything else is refused.\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\n\u003Csection class=\"q-api-member\" id=\"method-__construct\">\n\u003Ch3>\u003Ccode>__construct()\u003C\u002Fcode>\u003Ca class=\"q-doc-anchor\" href=\"#method-__construct\" aria-label=\"Link to this method\">#\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cdiv class=\"q-doc-code q-doc-code-plain\">\u003Cpre class=\"shiki github-dark-default\" style=\"background-color:#0d1117;color:#e6edf3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\" style=\"padding-left:2ch;text-indent:-2ch\">\u003Cspan style=\"color:#FF7B72\">public\u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\"> function\u003C\u002Fspan>\u003Cspan style=\"color:#79C0FF\"> __construct\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">(\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\" style=\"padding-left:6ch;text-indent:-6ch\">\u003Cspan style=\"color:#FF7B72\">    string\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\"> $directory,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\" style=\"padding-left:6ch;text-indent:-6ch\">\u003Cspan style=\"color:#FF7B72\">    int\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\"> $maxWidth \u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\">=\u003C\u002Fspan>\u003Cspan style=\"color:#79C0FF\"> 600\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\" style=\"padding-left:6ch;text-indent:-6ch\">\u003Cspan style=\"color:#FF7B72\">    int\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\"> $maxHeight \u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\">=\u003C\u002Fspan>\u003Cspan style=\"color:#79C0FF\"> 200\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\" style=\"padding-left:6ch;text-indent:-6ch\">\u003Cspan style=\"color:#FF7B72\">    bool\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\"> $pdfa \u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\">=\u003C\u002Fspan>\u003Cspan style=\"color:#79C0FF\"> false\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\" style=\"padding-left:6ch;text-indent:-6ch\">\u003Cspan style=\"color:#FF7B72\">    ?\u003C\u002Fspan>\u003Cspan style=\"color:#79C0FF\">RemoteImageFetcher\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\"> $fetcher \u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\">=\u003C\u002Fspan>\u003Cspan style=\"color:#79C0FF\"> null\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\" style=\"padding-left:2ch;text-indent:-2ch\">\u003Cspan style=\"color:#E6EDF3\">)\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\u003C\u002Fdiv>\n\n\n\u003Ctable class=\"q-doc-table q-stack-table\">\u003Cthead>\u003Ctr>\u003Cth>Parameter\u003C\u002Fth>\u003Cth>Type\u003C\u002Fth>\u003Cth>Description\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\n\u003Ctr>\u003Ctd>\u003Ccode>$directory\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd data-label=\"Type\">\u003Ccode>string\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd data-label=\"Description\">\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>\u003Ccode>$maxWidth\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd data-label=\"Type\">\u003Ccode>int\u003C\u002Fcode>\u003Cspan class=\"q-api-default\"> = \u003Ccode>600\u003C\u002Fcode>\u003C\u002Fspan>\u003C\u002Ftd>\u003Ctd data-label=\"Description\">\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>\u003Ccode>$maxHeight\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd data-label=\"Type\">\u003Ccode>int\u003C\u002Fcode>\u003Cspan class=\"q-api-default\"> = \u003Ccode>200\u003C\u002Fcode>\u003C\u002Fspan>\u003C\u002Ftd>\u003Ctd data-label=\"Description\">\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>\u003Ccode>$pdfa\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd data-label=\"Type\">\u003Ccode>bool\u003C\u002Fcode>\u003Cspan class=\"q-api-default\"> = \u003Ccode>false\u003C\u002Fcode>\u003C\u002Fspan>\u003C\u002Ftd>\u003Ctd data-label=\"Description\">\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>\u003Ccode>$fetcher\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd data-label=\"Type\">\u003Ccode>?\u003Ca href=\"\u002Fdocs\u002Fapi\u002FQuittio\u002FCore\u002FPdf\u002FRemoteImageFetcher\">RemoteImageFetcher\u003C\u002Fa>\u003C\u002Fcode>\u003Cspan class=\"q-api-default\"> = \u003Ccode>null\u003C\u002Fcode>\u003C\u002Fspan>\u003C\u002Ftd>\u003Ctd data-label=\"Description\">\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\n\u003C\u002Fsection>\n\u003Csection class=\"q-api-member\" id=\"method-resolve\">\n\u003Ch3>\u003Ccode>resolve()\u003C\u002Fcode>\u003Ca class=\"q-doc-anchor\" href=\"#method-resolve\" aria-label=\"Link to this method\">#\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cdiv class=\"q-doc-code q-doc-code-plain\">\u003Cpre class=\"shiki github-dark-default\" style=\"background-color:#0d1117;color:#e6edf3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\" style=\"padding-left:2ch;text-indent:-2ch\">\u003Cspan style=\"color:#FF7B72\">public\u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\"> function\u003C\u002Fspan>\u003Cspan style=\"color:#D2A8FF\"> resolve\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">(\u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\">?string\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\"> $logo)\u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\">:\u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\"> ?string\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\u003C\u002Fdiv>\n\n\u003Cp>A value for the renderer that can never trigger a server-side request: a local file ({@see realpath()}) for existing files, or a canonical data URI built from bytes this class has decoded and checked itself (for http(s) URLs and data URIs). Null if a remote logo cannot be downloaded. Everything else is refused.\u003C\u002Fp>\n\n\u003Ctable class=\"q-doc-table q-stack-table\">\u003Cthead>\u003Ctr>\u003Cth>Parameter\u003C\u002Fth>\u003Cth>Type\u003C\u002Fth>\u003Cth>Description\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\n\u003Ctr>\u003Ctd>\u003Ccode>$logo\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd data-label=\"Type\">\u003Ccode>?string\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd data-label=\"Description\">\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\n\u003Cdl class=\"q-api-dl\">\n\u003Cdt>Returns\u003C\u002Fdt>\u003Cdd>\u003Ccode>?string\u003C\u002Fcode>\u003C\u002Fdd>\n\u003C\u002Fdl>\n\u003C\u002Fsection>",[113],{"id":114,"text":115,"level":116},"methods","Methods",2]