You can see how is GetField working:
PdfField PdfPage::GetField( int index )
{
int nCount = 0;
int nAnnots = this->GetNumAnnots();
PdfAnnotation* pAnnot = NULL;
for( int i=0;i<nAnnots;i++ )
{
pAnnot = this->GetAnnotation( i );
// Count every widget annotation with a FieldType as PdfField
if( pAnnot->GetType() == ePdfAnnotation_Widget )
{
if( nCount == index )
{
return PdfField( pAnnot->GetObject(), pAnnot );
}
else
++nCount;
}
}
PODOFO_RAISE_ERROR( ePdfError_ValueOutOfRange );
}
On Tue, Mar 26, 2019 at 8:49 PM Michal Sudolsky <[email protected]> wrote:
>
>>
>>
>> for (int i = 0; i < curPage->GetNumAnnots(); i++)
>>
>> {
>>
>> curAnno = curPage->GetAnnotation(i);
>>
>> mRect = curAnno->GetRect();
>>
>>
>>
>> PdfField curField = curPage->GetField(i);
>>
>>
> I would be cautious about calling GetField with "annotation" index. It is
> possible that there are annotations that are not acroform fields so these
> indexes would not match and there can be different number of annotations
> and acroform fields. Better would be to create curField from curAnno like I
> mentioned in my pseudo example "PdfField curField(curAnno->GetObject(),
> curAnno);". And you can also check whether is curAnno of type "widget" and
> skip if not: "if(curAnno->GetType() != ePdfAnnotation_Widget) continue;"
>
>
>
_______________________________________________
Podofo-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/podofo-users