PDF: Добавление поля со списком в интерактивную форму PDF
В этом разделе
Вот C#/VB.NET код, который демонстрирует, как создать поле со списком и добавить его в интерактивную форму PDF документа:
class PdfInteractiveFormListBoxFieldExample
{
/// <summary>
/// Creates a PDF document with the list box field.
/// </summary>
/// <param name="filename">The filename.</param>
public static void CreateDocumentWithListBoxField(string filename)
{
// create PDF document
using (Vintasoft.Imaging.Pdf.PdfDocument document = new Vintasoft.Imaging.Pdf.PdfDocument())
{
// create interactive form in PDF document
document.InteractiveForm =
new Vintasoft.Imaging.Pdf.Tree.InteractiveForms.PdfDocumentInteractiveForm(document);
// specify that the viewer application must construct appearance streams and
// appearance properties for all widget annotations
document.InteractiveForm.NeedAppearances = true;
// create an empty page
Vintasoft.Imaging.Pdf.Tree.PdfPage page = new Vintasoft.Imaging.Pdf.Tree.PdfPage(
document, Vintasoft.Imaging.PaperSizeKind.A4);
// add page to the document
document.Pages.Add(page);
float width = 60;
float height = 70;
// create a rectangle that defines list box position on PDF page
System.Drawing.RectangleF rect = new System.Drawing.RectangleF(
(page.Size.Width - width) / 2,
((page.Size.Height - height) / 3) * 2,
width, height);
// create a list box field
Vintasoft.Imaging.Pdf.Tree.InteractiveForms.PdfInteractiveFormListBoxField listBox =
new Vintasoft.Imaging.Pdf.Tree.InteractiveForms.PdfInteractiveFormListBoxField(
document, "ListBox1", rect, new string[] { "Item1", "Item2", "Item3" });
// set the selected item
listBox.SelectedItem = "Item2";
// set yje default selected item
listBox.DefaultSelectedItem = listBox.SelectedItem;
// set the border style
listBox.Annotation.BorderStyle =
new Vintasoft.Imaging.Pdf.Tree.Annotations.PdfAnnotationBorderStyle(document);
listBox.Annotation.BorderStyle.Style =
Vintasoft.Imaging.Pdf.Tree.Annotations.PdfAnnotationBorderStyleType.Beveled;
listBox.Annotation.BorderStyle.Width = 1;
// set the appearance characteristics
listBox.Annotation.AppearanceCharacteristics =
new Vintasoft.Imaging.Pdf.Tree.Annotations.PdfAnnotationAppearanceCharacteristics(document);
listBox.Annotation.AppearanceCharacteristics.BorderColor = System.Drawing.Color.Gray;
// set the default appearance of text
Vintasoft.Imaging.Pdf.Tree.Fonts.PdfFont font = document.FontManager.GetStandardFont(
Vintasoft.Imaging.Pdf.Tree.Fonts.PdfStandardFontType.TimesRoman);
listBox.SetTextDefaultAppearance(font, 12, System.Drawing.Color.Black);
// add the list box field to the interactive form of document
document.InteractiveForm.Fields.Add(listBox);
// add annotation, associated with list box field, to the page
page.Annotations = new Vintasoft.Imaging.Pdf.Tree.Annotations.PdfAnnotationList(document);
page.Annotations.Add(listBox.Annotation);
// save the document
document.Save(filename);
}
}
}
Class PdfInteractiveFormListBoxFieldExample
''' <summary>
''' Creates a PDF document with the list box field.
''' </summary>
''' <param name="filename">The filename.</param>
Public Shared Sub CreateDocumentWithListBoxField(filename As String)
' create PDF document
Using document As New Vintasoft.Imaging.Pdf.PdfDocument()
' create interactive form in PDF document
document.InteractiveForm = New Vintasoft.Imaging.Pdf.Tree.InteractiveForms.PdfDocumentInteractiveForm(document)
' specify that the viewer application must construct appearance streams and
' appearance properties for all widget annotations
document.InteractiveForm.NeedAppearances = True
' create an empty page
Dim page As New Vintasoft.Imaging.Pdf.Tree.PdfPage(document, Vintasoft.Imaging.PaperSizeKind.A4)
' add page to the document
document.Pages.Add(page)
Dim width As Single = 60
Dim height As Single = 70
' create a rectangle that defines list box position on PDF page
Dim rect As New System.Drawing.RectangleF((page.Size.Width - width) / 2, ((page.Size.Height - height) / 3) * 2, width, height)
' create a list box field
Dim listBox As New Vintasoft.Imaging.Pdf.Tree.InteractiveForms.PdfInteractiveFormListBoxField(document, "ListBox1", rect, New String() {"Item1", "Item2", "Item3"})
' set the selected item
listBox.SelectedItem = "Item2"
' set yje default selected item
listBox.DefaultSelectedItem = listBox.SelectedItem
' set the border style
listBox.Annotation.BorderStyle = New Vintasoft.Imaging.Pdf.Tree.Annotations.PdfAnnotationBorderStyle(document)
listBox.Annotation.BorderStyle.Style = Vintasoft.Imaging.Pdf.Tree.Annotations.PdfAnnotationBorderStyleType.Beveled
listBox.Annotation.BorderStyle.Width = 1
' set the appearance characteristics
listBox.Annotation.AppearanceCharacteristics = New Vintasoft.Imaging.Pdf.Tree.Annotations.PdfAnnotationAppearanceCharacteristics(document)
listBox.Annotation.AppearanceCharacteristics.BorderColor = System.Drawing.Color.Gray
' set the default appearance of text
Dim font As Vintasoft.Imaging.Pdf.Tree.Fonts.PdfFont = document.FontManager.GetStandardFont(Vintasoft.Imaging.Pdf.Tree.Fonts.PdfStandardFontType.TimesRoman)
listBox.SetTextDefaultAppearance(font, 12, System.Drawing.Color.Black)
' add the list box field to the interactive form of document
document.InteractiveForm.Fields.Add(listBox)
' add annotation, associated with list box field, to the page
page.Annotations = New Vintasoft.Imaging.Pdf.Tree.Annotations.PdfAnnotationList(document)
page.Annotations.Add(listBox.Annotation)
' save the document
document.Save(filename)
End Using
End Sub
End Class