<table><tr><td style="">sander added a comment.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D7949" rel="noreferrer">View Revision</a></tr></table><br /><div><div><p>Without having looked at the code, here is a hypothesis of how Kate can print to a pdf file and have the text remain selectable.  The Arthur font drawing code uses the QPainter::drawGlyphRun method to paint individual glyphs/letters.  That method only receives a position and a QGlyphRun object (which in turn contains a QRawFont and char codes).  In my limited understanding, this mechanism makes selectable text impossible, because the unicode information is gone.</p>

<p>However, QPainter also has various drawText methods, which are given unicode text, and which use the current QFont set with the setFont method. Possibly, these methods make QPainter retain the letter information when painting onto a QPrinter representing a pdf file.  However, QFonts cannot represent fonts that are embedded in a pdf document---you need a QRawFont for that.  For kate this does not matter, for poppler it does.</p>

<blockquote style="border-left: 3px solid #a7b5bf; color: #464c5c; font-style: italic; margin: 4px 0 12px 0; padding: 4px 12px; background-color: #f8f9fc;"><p>Background: [...] and we plan to have some features implemented in the print dialog (for Qt/Okular).</p></blockquote>

<p>Can I learn more about this somewhere?</p></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D7949" rel="noreferrer">https://phabricator.kde.org/D7949</a></div></div><br /><div><strong>To: </strong>sander, Okular<br /><strong>Cc: </strong>ltoscano, rkflx, michaelweghorn, ngraham, aacid<br /></div>