[Okular-devel] Review Request 114153: An Idea: Render PDF annotations internally while they are being moved

Jon Mease jon.mease at gmail.com
Mon Dec 2 01:36:26 UTC 2013



> On Nov. 27, 2013, 7:49 p.m., Fabio D'Urso wrote:
> > Rendering differences (that I judged ugly) were the reason why I chose to go the dashed outline route.
> 
> Jon Mease wrote:
>     Yeah, that makes sense. How do you feel about my idea above of only using this approach for the "geometric" annotations?  To my eye the rendering looks almost identical.
> 
> Fabio D'Urso wrote:
>     It works for me. IIRC, however, there are some differences with straight lines having non-null "leader lines" (ie those optional perpendicular segments at the endings), maybe you can change Okular's rendering to match Poppler's.
>     BTW, the long-term fix I have in mind is to patch Poppler to render annotations separately to different pixmaps than the rest of the page, so we can really paint them on top of the page inexpensively. But this is lots of work and I have no time to do that at the moment :( so yeah, it works for me! :D
>
> 
> Jon Mease wrote:
>     Thanks for the feedback. I'll give this a shot and update the patch accordingly.  I'll also see if I can generate some annotations with leader lines in Foxit and take a look at Okular's rendering.
>     
>     BTW, the larger project I'm working towards right now is to be able to write on PDFs in Okular with a Wacom tablet and be able to bulk-select words (collections of ink strokes) and move them around like in Xournal.  This update will really improve the appearance of this bulk translation of annotations.
>     
>     I like the sound of this Poppler patch, but it certainly does sound like a lot of work.
> 
> Fabio D'Urso wrote:
>     You don't need FoxIt at all :) Just create a straight line in Okular and set its Leader Line and Leader Line Extension Length properties, then compare Poppler's and PagePainter's renderings.
>     If they look the same, then I was not remembering correctly :P

Thanks for feedback and for the tip. Yes, you're right that Okular's internal rendering of line annotations with leader lines doesn't match Poppler's. In addition, the leader lines aren't always drawn at a perfectly right angle to the main line using Okular's rendering. I've started updating Okular's drawing logic to match poppler, but I'm going to need to update the hit test for line annotations as well. I'll update this review request when I finish this part. 


- Jon


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/114153/#review44612
-----------------------------------------------------------


On Nov. 27, 2013, 3:22 p.m., Jon Mease wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/114153/
> -----------------------------------------------------------
> 
> (Updated Nov. 27, 2013, 3:22 p.m.)
> 
> 
> Review request for Okular.
> 
> 
> Repository: okular
> 
> 
> Description
> -------
> 
> Unlike in other document formats, the annotations on PDF documents are rendered by the Poppler back-end along with the document itself.  Because this document rendering step is expensive we don't render annotations on PDF documents while the annotations are being moved (With Ctrl+Left click drag).  Instead of rendering the annotation itself during the move, we render a dashed outline of the annotation.  For non-PDF document types the annotations are rendered by Okular on top of the document, and so there is no large performance penalty in rendering the annotation smoothly as it is moved.  I find the aesthetic experience of moving annotations on non-PDF to be much more pleasing.
> 
> In this small patch updates the paintCroppedPageOnPainter() function draw external annotations using the internal annotation drawing logic while the annotation is being moved.  It also removes the dashed annotation outline during the move.  With this small change the experience of moving an annotation on a PDF now matches that of moving an annotation on the other document formats.
> 
> Two small oddities:  The rendering of the popup note icon differs between the Poppler back-end and Okular's internal rendering so the icon changes form while being moved and then changes back after being dropped.  The rendering of fonts on inline notes between the Poppler back-end and Okular's internal rendering seems to differ in some cases so as you move an inline note the font changes.
> 
> Thoughts?
> 
> 
> Diffs
> -----
> 
>   ui/pagepainter.cpp d5d9c3e 
> 
> Diff: http://git.reviewboard.kde.org/r/114153/diff/
> 
> 
> Testing
> -------
> 
> Tested drawing and moving each of the annotation types on a PDF document and on a DVI document. The behavior on the DVI document is unchanged. I find the behavior on the PDF document to be more natural.
> 
> 
> Thanks,
> 
> Jon Mease
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/okular-devel/attachments/20131202/b477cc36/attachment.html>


More information about the Okular-devel mailing list