2015-07-05 7 views
1

Как получить номер страницы поля формы с помощью Aspose PDF? Я пытаюсь воссоздать форму PDF в HTML, помещая изображение каждой страницы и накладывая каждое поле, используя номер страницы, координаты и размеры.Как получить номер страницы формы в формате Aspose PDF?

Вот мой текущий код:

public static List<PdfFieldDisplayModel> GetFieldPlacements(Stream stream) 
    { 
     var fields = new List<PdfFieldDisplayModel>(); 
     var doc = new Document(stream); 
     var pdfForm = new Aspose.Pdf.Facades.Form(stream); 

     foreach (Field ff in doc.Form) 
     { 
      var txt = doc.Form[ff.Name] as TextBoxField; 
      var f = new PdfFieldDisplayModel(); 
      f.PageNumber = ?????????????? 
      f.Name = ff.Name; 
      f.PartialName = ff.PartialName; 
      f.Value = ff.Value; 
      f.Width = txt.Rect.Width; 
      f.Height = txt.Rect.Height; 
      f.Left = txt.Rect.LLX; 
      f.Bottom = txt.Rect.LLY; 
      fields.Add(f); 
     } 
     return fields; 
    } 
+0

Вы знаете, что одна форма AcroForm поле может иметь появлений на нескольких страницах? – mkl

+0

Да, я. Я бы предположил, что могу получить экземпляр поля тоже со своим уникальным местоположением: номер страницы, координаты и размеры. – EdenMachine

ответ

1

Меня зовут Nayyer и я разработчик евангелист в Aspose. Чтобы получить индекс страницы для поля формы, попробуйте использовать PageIndex свойство Aspose.Pdf.InteractiveFeatures.Forms.Field экземпляр.

[C#]

//open document 
Document pdfDocument = new Document("c:/pdftest/SingleField_output.pdf","password"); 
//get values from all fields 

foreach (Aspose.Pdf.InteractiveFeatures.Forms.Field formField in pdfDocument.Form) 
{ 
    //get field value 
    Console.WriteLine("PartialName : {0} ", formField.PartialName); 
    Console.WriteLine("Value : {0} ", formField.Value); 
    Console.WriteLine("Value : {0} ", formField.PageIndex); 
} 
+0

Когда была реализована эта функция? Я должен использовать более старую версию, потому что у меня нет свойства PageIndex. Я считаю, что использую v6.9. – EdenMachine

+0

Я боюсь, что я не смогу поделиться точной версией, в которой было добавлено это свойство. Однако я рекомендую вам попробовать использовать последнюю версию Aspose.Pdf для .NET 10.5.0 (http://www.aspose.com/community/files/51/.net-components/aspose.pdf-for-.net /entry632625.aspx), как во время моего тестирования, я вижу это свойство в этой версии. – codewarior

+0

Можно ли это сделать с помощью TextFragment's и при добавлении их в документ? Например. с помощью 'Document.ProcessParagraphs()' aftre вставка фрагмента? Я пытаюсь сделать это, но 'txtFragment.Page.Number' имеет' Page = null'. – user2173353