Dominik,

     Thank you for that suggestion.  The code change fixes PDFs that I
generate myself (my small test case).
However, it does not work with editing existing PDFs.

     I will study the functionality in PdfAcroForm.cpp and experiment.
 Thank you very much.

ps- Why is the "NeedAppearances" code commented out at all?  In a
future release will there a way to specify this behavior
programatically so that users won't need to maintain custom PoDoFos?


On Sun, Mar 21, 2010 at 5:36 PM, Dominik Seichter <domseich...@web.de> wrote:
> Hi,
>
> Thanks for your very good problem description.
>
> Please try to enable the line below in PdfAcroForm::Init ():
>
>    m_pObject->GetDictionary().AddKey( PdfName("NeedAppearances"),
> PdfVariant(true) );
>
> Enabling this line should fix your problem.
>
> Best regards,
>        Dom
>
>
> Am Dienstag 16 März 2010 schrieb dennis jenkins:
>> Hello PoDoFo Community,
>>
>>      I am having difficulty understanding why PDF forms created and
>> populated with podofo do not work in Adobe Reader as desired.  I wrote
>> code to create a one page PDF with one form field and set text on it.
>> The text is clearly in the form (when viewed with PoDoFoBrowser 0.5
>> (win32)).  Yet when I open the PDF in Adobe Reader (9.2.0, win32), the
>> field appears empty.  When I click on the text field my value is
>> visible.  When I click off of the field, my value disappears.  (My
>> code is below)
>>
>>      I'm using the latest podofo from svn (rev 1199, checked out this
>> morning), and the PDF 1.3 spec from Adobe's web site [1].  I studied
>> the sample code in "podofo/test/FormTest" [2].  I skimmed most of the
>> PDF reference manual, and intently read (twice) section 7.6,
>> "Interactive Forms".
>>
>>     My ultimate goal is to write a routine that will read a third
>> party PDF (with a form on it), fill in the fields and save the form.
>> At a later time a user would then load the form into and further edit
>> it, email it and/or print it.  When I failed to get this to work with
>> the desired forms (US / IRS tax form "941" [3]), I created a small app
>> to build a custom PDF with a simplified form.  I get the same results
>> with both forms.
>>
>>     I've viewed both forms inside PoDoFoBrowser.  Some annotation
>> elements have different attributes, but they are essentially the same.
>>
>>     I have three theories:
>>
>> a) It is simply not possible to construct a PDF form with data
>> pre-populated using "PdfTextField.SetText()".
>>
>> b) I'm doing something wrong.
>>
>> c) I need to set some additional attributes or values in the
>> annotation element, or its parent object, or in the document object
>> itself.
>>
>>     At this time I can see only one possible hack:  To read the form
>> field's "rects" and create a text overlay in the same position.  This
>> is indeed a hack as this will prevent the user from properly editing
>> the form at a later time (prior to them printing or otherwise using
>> it).
>>
>>     Although I am using PoDoFoBrowser and Adobe Reader on win32, I am
>> doing my development on Gentoo Linux.  This, hopefully, does not
>> matter.
>>
>>     I would very much appreciate any suggestions, assistance, etc...
>> If it would be helpful, I can post the "stuff" that PoDoFoBrowser
>> shows inside the forms.  However, it is fairly easy to download the
>> "941" form and view it directly.
>>
>>     Thank you for your time.
>>
>>
>> [1] http://www.adobe.com/devnet/pdf/pdfs/PDFReference13.pdf
>>
>> [2]
>>  https://podofo.svn.sourceforge.net/svnroot/podofo/podofo/trunk/test/FormTe
>> st/FormTest.cpp
>>
>> [3] http://www.irs.gov/pub/irs-pdf/f941.pdf
>>
>>
>>
>> // "main()", "#include" and original error handling omitted for brevity.
>> // "HelloWorld" line shamelessly stolen from the PoDoFo online example.
>>
>> void     RunPdfTest (const char *filename)
>> {
>>     PdfStreamedDocument doc (filename);
>>     PdfPage *pPage = doc.CreatePage (PdfPage::CreateStandardPageSize
>> (ePdfPageSize_Letter));
>>
>>     PdfPainter painter;
>>     painter.SetPage (pPage);
>>     PdfFont *pFont = doc.CreateFont ("Arial");
>>     pFont->SetFontSize (18.0);
>>     painter.SetFont (pFont);
>>     painter.DrawText (56.69, pPage->GetPageSize().GetHeight() - 56.69,
>> "Hello World!" );
>>
>>     PdfTextField text (pPage, PdfRect (100, 200, 300, 400), &doc);
>>     text.SetFieldName ("text-field");
>>     text.SetText ("test");
>>     text.SetMultiLine (false);
>>
>>     painter.FinishPage ();
>>     doc.Close();
>> }
>>
>> ---------------------------------------------------------------------------
>> --- Download Intel&#174; Parallel Studio Eval
>> Try the new software tools for yourself. Speed compiling, find bugs
>> proactively, and fine-tune applications for parallel performance.
>> See why Intel Parallel Studio got high marks during beta.
>> http://p.sf.net/sfu/intel-sw-dev
>> _______________________________________________
>> Podofo-users mailing list
>> Podofo-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/podofo-users
>>
>
>
> --
> **********************************************************************
> Dominik Seichter - domseich...@web.de
> KRename  - http://www.krename.net  - Powerful batch renamer for KDE
> KBarcode - http://www.kbarcode.net - Barcode and label printing
> PoDoFo - http://podofo.sf.net - PDF generation and parsing library
> SchafKopf - http://schafkopf.berlios.de - Schafkopf, a card game,  for KDE
> Alan - http://alan.sf.net - A Turing Machine in Java
> **********************************************************************
>

------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Podofo-users mailing list
Podofo-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/podofo-users

Reply via email to