> From: Carlos Garcia Campos
>> Excerpts from Fabio D'Urso's message of jue mar 29 00:47:36 +0200 2012:
>> 0005 adds leading line support when drawing AnnotLines.
>This causes that nothing is drawn in page 7 of pdf_commenting_new
>where Leader extension lines are supposed to be. Previously, two lines
>were rendered, although without the leading thing.

Thank you for testing. After some some experiments I found the cause.
I mildly blame the PDF itself for this. Those two annotations exceed the bbox.
Looking closer, you'll see that only the visible part of the AnnotLine is drawn
(a small fraction of the leading lines).
The only solution I see is to disable bbox clipping. The specs say that each 
annot
must be contained within the bbox, but acroread does not enforce this, which is
probably why no one noticed. If you disable clipping, everything gets fine.
(I'm attaching a diff for you to test with)
 
>> Note on 0007: AnnotFreeText is a box with text inside. This patch only 
>> implements basic functionality:
>>  [...]
>> I'll try to fix 0007 to output font res dict tomorrow, but I feel that even 
>> at this stage this basic implementation can be useful.
>> The other patches are final
>>                            
>I haven't tried this yet, since it doesn't seem to be finished.
In reply to that mail, I posted a slightly changed 0007 and another patch to 
fix the invalid font reference.
I don't plan to add other features to AnnotFreeText, therefore I consider them 
final.

Thanks,
Fabio
                                          
diff --git a/poppler/Gfx.cc b/poppler/Gfx.cc
index 958194b..e12185d 100644
--- a/poppler/Gfx.cc
+++ b/poppler/Gfx.cc
@@ -4725,6 +4725,7 @@ void Gfx::drawForm(Object *str, Dict *resDict, double *matrix, double *bbox,
 		 matrix[3], matrix[4], matrix[5]);
 
   // set form bounding box
+#if 0
   state->moveTo(bbox[0], bbox[1]);
   state->lineTo(bbox[2], bbox[1]);
   state->lineTo(bbox[2], bbox[3]);
@@ -4733,6 +4734,7 @@ void Gfx::drawForm(Object *str, Dict *resDict, double *matrix, double *bbox,
   state->clip();
   out->clip(state);
   state->clearPath();
+#endif
 
   if (softMask || transpGroup) {
     if (state->getBlendMode() != gfxBlendNormal) {
_______________________________________________
poppler mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/poppler

Reply via email to