Pdfsharp-如何确定字段的页码
我需要在具有特定表单字段的页面上绘制图像。使用pdfsharp,给定字段名,如何查找与该字段关联的pdf页面?您可以使用field对象的page元素访问该字段的页面引用。然后使用此引用匹配文档中的页面Pdfsharp-如何确定字段的页码,pdf,pdfsharp,Pdf,Pdfsharp,我需要在具有特定表单字段的页面上绘制图像。使用pdfsharp,给定字段名,如何查找与该字段关联的pdf页面?您可以使用field对象的page元素访问该字段的页面引用。然后使用此引用匹配文档中的页面 public PdfPage GetPageFromField( PdfDocument myDocument, string focusFieldName ) { // get the field we're looking for PdfTextField currentField =
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;
}
这里有一个改进,它还返回了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;
}
据我记忆所及,P值不是强制性的。此外,在多个页面上有小部件的字段又如何呢?