Pdfsharp - 如何确定字段

时间:2016-03-28 17:55:59

标签: pdf pdfsharp

我需要在具有特定表单字段的页面上绘制图像。使用pdfsharp,给定一个字段名称,如何找到与该字段关联的pdf页面?

2 个答案:

答案 0 :(得分:0)

您可以使用字段对象的page元素访问该字段的页面引用。然后使用此引用来匹配文档中的页面。

public PdfPage GetPageFromField( PdfDocument myDocument, string focusFieldName )
{
  // get the field we're looking for
  PdfTextField currentField = (PdfTextField)( fillablePdf.AcroForm.Fields["MyFocusField"]);
  if( currentField != null )
  {
    // get the page element
    var focusPageReference = (PdfReference)currentField.Elements["/P"];
    // loop through our pages to match the reference
    foreach( var page in myDocument.Pages )
    {
      if( page.Reference = focusPageReference )
      {
        return page;
      }     
    }
  }
  // could not find a page for this field
  return null;
}

答案 1 :(得分:0)

这里有更正的改进,它也返回了 pagenum:

PdfPage GetPageFromField(PdfDocument myDocument, string focusFieldName, out int pageNum)
{
    // get the field we're looking for
    PdfAcroField currentField = (PdfAcroField)(myDocument.AcroForm.Fields[focusFieldName]);
    pageNum = 0;
    if (currentField != null)
    {
        // get the page element
        var focusPageReference = (PdfReference)currentField.Elements["/P"];
        // loop through our pages to match the reference
        foreach (var page in myDocument.Pages)
        {
            pageNum++;
            if (page.Reference == focusPageReference)
            {
                return page;
            }
        }
    }
    // could not find a page for this field
    return null;
}