<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
        {mso-style-priority:99;
        mso-style-link:"Plain Text Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.EmailStyle19
        {mso-style-type:personal-compose;
        font-family:"Times New Roman",serif;
        color:black;}
span.PlainTextChar
        {mso-style-name:"Plain Text Char";
        mso-style-priority:99;
        mso-style-link:"Plain Text";
        font-family:"Calibri",sans-serif;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal"><font size="3" color="black" face="Calibri"><span style="font-size:12.0pt;color:black">Hi,<o:p></o:p></span></font></p>
<p class="MsoNormal"><font size="3" color="black" face="Calibri"><span style="font-size:12.0pt;color:black"><o:p> </o:p></span></font></p>
<p class="MsoNormal"><font size="3" color="black" face="Calibri"><span style="font-size:12.0pt;color:black">I suggest to promote Qt PDF to a Qt module. For Qt 5.14, it will be in Tech Preview state, and Shawn Rutledge is volunteering to be the maintainer. Although
 still staying an independent library from the user's perspective, it will be hosted and built in the qtwebengine.git repository. Initially only the desktop platforms (Windows, Linux, macOS) would be supported.<o:p></o:p></span></font></p>
<p class="MsoNormal"><font size="3" color="black" face="Calibri"><span style="font-size:12.0pt;color:black"><o:p> </o:p></span></font></p>
<p class="MsoNormal"><font size="3" color="black" face="Calibri"><span style="font-size:12.0pt;color:black">Qt PDF is so far a Qt labs module [1]. It allows Qt applications to render/view PDF's in QWidget based applications [2], and is built on top of PDFium.
 However, development has been stagnant, also because it is built on top of a rather old version of PDFium.<o:p></o:p></span></font></p>
<p class="MsoNormal"><font size="3" color="black" face="Calibri"><span style="font-size:12.0pt;color:black"><o:p> </o:p></span></font></p>
<p class="MsoNormal"><font size="3" color="black" face="Calibri"><span style="font-size:12.0pt;color:black">Why wasn't PDFium updated? PDFium got merged into Chromium a while ago, and is nowadays built as part of Chromium, using their build system (gn). Updating
 qtpdf.git to ship with latest PDFium would require quite some work, and keeping it up to date would require continuous work, too - work that nobody was willing to invest into so far.<o:p></o:p></span></font></p>
<p class="MsoNormal"><font size="3" color="black" face="Calibri"><span style="font-size:12.0pt;color:black"><o:p> </o:p></span></font></p>
<p class="MsoNormal"><font size="3" color="black" face="Calibri"><span style="font-size:12.0pt;color:black">But it turns out that, since Qt 5.11, we have PDFium already in our sources, and we're actually also building it! It's part of the Qt WebEngine libs
 that use it for PDF rendering in HTML. So technically, you can already render PDF's by loading them into a Qt WebEngine page. Anyhow, not everybody wants to ship a web browser for 'just' rendering PDF's [3] ...<o:p></o:p></span></font></p>
<p class="MsoNormal"><font size="3" color="black" face="Calibri"><span style="font-size:12.0pt;color:black"><o:p> </o:p></span></font></p>
<p class="MsoNormal"><font size="3" color="black" face="Calibri"><span style="font-size:12.0pt;color:black">So the idea is that we leverage on the existing build infrastructure for PDFium in qtwebengine.git, and host and build the Qt PDF libraries there. This
 also means that PDFium will be updated as part of the regular Chromium updates in qtwebengine.git. qtwebengine.git would furthermore get configure flags so that you can build just the Qt PDF libs. And, to reiterate: The Qt PDF libraries will _not_ depend on
 Qt WebEngine libs at runtime.<o:p></o:p></span></font></p>
<p class="MsoNormal"><font size="3" color="black" face="Calibri"><span style="font-size:12.0pt;color:black"><o:p> </o:p></span></font></p>
<p class="MsoNormal"><font size="3" color="black" face="Calibri"><span style="font-size:12.0pt;color:black">What do you think? Are there any objections for going forward with this for Qt 5.14?<o:p></o:p></span></font></p>
<p class="MsoNormal"><font size="3" color="black" face="Calibri"><span style="font-size:12.0pt;color:black"><o:p> </o:p></span></font></p>
<p class="MsoNormal"><font size="3" color="black" face="Calibri"><span style="font-size:12.0pt;color:black">Regards<o:p></o:p></span></font></p>
<p class="MsoNormal"><font size="3" color="black" face="Calibri"><span style="font-size:12.0pt;color:black"><o:p> </o:p></span></font></p>
<p class="MsoNormal"><font size="3" color="black" face="Calibri"><span style="font-size:12.0pt;color:black">Kai<o:p></o:p></span></font></p>
<p class="MsoNormal"><font size="3" color="black" face="Calibri"><span style="font-size:12.0pt;color:black"><o:p> </o:p></span></font></p>
<p class="MsoNormal"><font size="3" color="black" face="Calibri"><span style="font-size:12.0pt;color:black">[1] https://github.com/qt-labs/qtpdf<o:p></o:p></span></font></p>
<p class="MsoNormal"><font size="3" color="black" face="Calibri"><span style="font-size:12.0pt;color:black">[2] A Qt Quick API might come in the future
<o:p></o:p></span></font></p>
<p class="MsoNormal"><font size="3" color="black" face="Calibri"><span style="font-size:12.0pt;color:black">[3] Don't be fooled about the complexity of PDF though: It's quite a big spec, which - among other things - requires a JS engine!<o:p></o:p></span></font></p>
</div>
</body>
</html>