Hello,

    Just ignore the "Deman loading..." stuff (I commented out that code in
my own copy of podofo).

    I had the same problem a few months ago.  I needed to fill out a form
and have my changes "visible" inside Adobe Reader.  A few helpful
individuals on this list provided me with the information that I needed.  I
ended up implementing this function, which I call before filling in the
individual form text fields.  I won't claim that my solution is the "correct
solution", but it works for me.

// See section 12.7.3.3 (page 434) of ISO-32000-1:2008.
// Need to construct an appearance stream for each form field,
// or configure document to generated one dynamically.

// See section 12.7.4.3 (page 444) of ISO-32000-1:2008.
// Shows a correct "Appearance Stream" for a text field.

// We can always directly hack the dictionary thuslu:
//    PdfAnnotation::GetObject()->GetDictionary()

static void     HackPdfFormDocument (PdfDocument &doc)
{
//
http://www.mail-archive.com/[email protected]/msg01155.html
// Stolen from PdfAcroForm::Init()
//      doc.GetAcroForm()->Init
(PdfAcroForm::ePdfAcroFormDefaultAppearance_BlackText12pt);

        PdfObject *pObj = doc.GetAcroForm()->GetObject();

        pObj->GetDictionary().AddKey (PdfName ("NeedAppearances"),
PdfVariant (true));

        if (!pObj->GetDictionary().HasKey("DA"))
        {
                PdfFont         *pFont = doc.CreateFont ("Arial");
                PdfObject       *pResource = NULL;
                PdfObject       *pFontDict = NULL;

// Create "DR" key.
                if (!pObj->GetDictionary().HasKey (PdfName ("DR")))
                {
                        pObj->GetDictionary().AddKey (PdfName ("DR"),
PdfDictionary());
                }
                pResource = pObj->GetDictionary().GetKey( PdfName("DR") );

                if (!pResource->GetDictionary().HasKey( PdfName ("Font")))
                {
                        pResource->GetDictionary().AddKey (PdfName ("Font"),
PdfDictionary());
                }
                pFontDict = pResource->GetDictionary().GetKey(
PdfName("Font") );

                pFontDict->GetDictionary().AddKey( pFont->GetIdentifier(),
pFont->GetObject()->Reference() );

// Create "DA" key.
                std::ostringstream oss;
                PdfLocaleImbue (oss);
                oss << "0 0 0 rg /" << pFont->GetIdentifier().GetName() << "
12 Tf";
                pObj->GetDictionary().AddKey( PdfName("DA"), PdfString(
oss.str() ) );
        }
}




On Tue, May 11, 2010 at 12:55 AM, shoks <[email protected]> wrote:

> What does it mean?
>
> I've tried running FormTest to fill-up a form that contains a text and
> textfield. The form was created using Adobe Livecycle ES2. Was able to enter
> the value for the textfield but the output PDF, the field is still empty. Is
> this a known limitation? Am I missing something? I can email the form if it
> would help.
>
> ---
>
> s...@shovm:~/work/webprint/podofo/latest/svn-051110/podofo-build/test/FormTest$
> ./FormTest basicform1.pdf out.pdf
> Demand loading on, but can't demand-load from object stream.
> Demand loading on, but can't demand-load from object stream.
> Demand loading on, but can't demand-load from object stream.
> Demand loading on, but can't demand-load from object stream.
> Demand loading on, but can't demand-load from object stream.
> Demand loading on, but can't demand-load from object stream.
> Demand loading on, but can't demand-load from object stream.
> Demand loading on, but can't demand-load from object stream.
> Demand loading on, but can't demand-load from object stream.
> Demand loading on, but can't demand-load from object stream.
> Demand loading on, but can't demand-load from object stream.
> Demand loading on, but can't demand-load from object stream.
> Demand loading on, but can't demand-load from object stream.
> Demand loading on, but can't demand-load from object stream.
> Demand loading on, but can't demand-load from object stream.
> Demand loading on, but can't demand-load from object stream.
> Demand loading on, but can't demand-load from object stream.
> Demand loading on, but can't demand-load from object stream.
> Demand loading on, but can't demand-load from object stream.
> Demand loading on, but can't demand-load from object stream.
> Demand loading on, but can't demand-load from object stream.
> Demand loading on, but can't demand-load from object stream.
> Demand loading on, but can't demand-load from object stream.
> Demand loading on, but can't demand-load from object stream.
> Demand loading on, but can't demand-load from object stream.
> Demand loading on, but can't demand-load from object stream.
> Demand loading on, but can't demand-load from object stream.
> Demand loading on, but can't demand-load from object stream.
> <<
> /Type /XRef
> /DecodeParms <<
> /Columns 4
> /Predictor 12Attached is the PDF form.
> >>
> /Filter /FlateDecode
> /ID [ <EB0100EDF7912D45B347600E6C6DE8B6> <587040659ED7434A94715F5497439722>
> ]
> /Index [ 34 21 ]
> /Info 33 0 R
> /Length 62
> /Prev 81584
> /Root 35 0 R
> /Size 34
> /W [ 1 2 1 ]
> >>Page 1 contains 1 fields.
>   Field:
>   Type : TextField
>   Current value:
>   Enter new value (if empty value is unchanged):
> this is a test
>
> s...@shovm
> :~/work/webprint/podofo/latest/svn-051110/podofo-build/test/FormTest$
>  --
>
>
> Thanks
>
> ------------------------------------------------------------------------------
>
>
> _______________________________________________
> Podofo-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/podofo-users
>
>
------------------------------------------------------------------------------

_______________________________________________
Podofo-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/podofo-users

Reply via email to