彩票走势图

Aspose.Pdf.Kit开发:处理表单域

转帖|其它|编辑:郝浩|2011-09-08 14:33:34.000|阅读 540 次

概述:Adobe Acrobat Form (以前叫AcroForm) 是表单域的集合,用来以交互方式从用户那里收集信息。有时,我们也称这类表单为交互表单。一个PDF文档不能包含一个以上的表单。在交互表单中,表单域按层次结构组织,它们可以从父域中继承某些属性。在世界范围内,AcroForms正逐渐成为商业和政府组织收集用户信息的正式途径。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

  Adobe Acrobat Form (以前叫AcroForm) 是表单域的集合,用来以交互方式从用户那里收集信息。有时,我们也称这类表单为交互表单。一个PDF文档不能包含一个以上的表单。在交互表单中,表单域按层次结构组织,它们可以从父域中继承某些属性。在世界范围内,AcroForms正逐渐成为商业和政府组织收集用户信息的正式途径。

Aspose.Pdf和表单域

  Aspose.Pdf支持创建交互表单。Aspose.Pdf支持一些简单类型的可以添加到PDF表单中的表单域。这些表单域类型在枚举类型FormFieldType中定义。FormFieldType枚举类型中预定义的表单域如下表所示:

表单域类型 描述
RadioButton 单选按钮
List 列表框
CheckBox 复选框
Combo 组合框
Text 文本域

  注意:向PDF文档中添加表单域时必须为每个表单域指定唯一的名称。因为填充表单域时,通过表单域的名称来操作。例如:如果需要通过一些工具如Aspose.Pdf.Kit填充表单域时,可以根据表单域名称来填充。

如何添加表单域?

  Aspose.Pdf提供了FormField类以便开发人员在他们的PDF表单中创建不同种类的表单域。开发人员可以创建FormField对象然后使用FormFieldType指定它们的类型。最后开发人员可以使用FormField类的FieldName 和 FieldValue属性设置表单域的名称和值。FormField类还有许多其它属性供开发人员自定义Aspose.Pdf支持的任意类型的表单域。

下面的例子演示了表单域的用法。

示例代码:

[C#]


//创建一个Pdf对象pdf1
Pdf pdf1 = new Pdf();

//在pdf1中添加一个Section对象
Section sec1 = pdf1.Sections.Add();

//创建一个表单域
FormField combo = new FormField();

//设置表单域的类型为组合框
combo.FormFieldType = FormFieldType.Combo;

//设置表单域的名称
combo.FieldName = "ACombo";

//添加几个选项

combo.ChoiceOptions = new string[]{"Red","Green","Blue"};

//指定组合框的默认值
combo.FieldValue = "Red";

//设置表单域的宽度

combo.FormWidth = 80;

//设置表单域的高度
combo.FormHeight = 20;

//添加表单域到sec1的段落集合中

sec1.Paragraphs.Add(combo);

//保存Pdf
pdf1.Save(...);

[VB.NET]


'创建一个Pdf对象pdf1
Dim pdf1 As Pdf = New Pdf

'在pdf1中添加一个Section对象sec1
Dim sec1 As Section = pdf1.Sections.Add()

'创建一个表单域
Dim combo As FormField = New FormField

'设置表单域的类型为组合框
combo.FormFieldType = FormFieldType.Combo

'设置表单域的名称

combo.FieldName = "ACombo"

'添加几个选项

combo.ChoiceOptions = New String() {"Red", "Green", "Blue"}

'指定组合框的默认值
combo.FieldValue = "Red"

'设置表单域的宽度

combo.FormWidth = 80

'设置表单域的高度
combo.FormHeight = 20

'添加表单域到sec1的段落集合中
sec1.Paragraphs.Add(combo)

'保存Pdf
pdf1.Save(...)

[XML]


<?xml version="1.0" encoding="utf-8" ?>
<Pdf xmlns="Aspose.Pdf">
<Section>
<FormField FormFieldType="Combo" FieldName="ACombo"
FieldValue="Red" ChoiceOptions="Red Green Blue"
FormWidth="80" FormHeight="20" />
</Section>
</Pdf>

使用自定义定位

  在Aspose.Pdf中,FormField类设计为段落,不支持嵌入表单域。由于表单域经常与其它内容(如,文本)一起使用。 通常有两种方法定位表单域:使用表格或使用自定义定位。

  注意:对于单选按钮,只支持自定义定位。

  Aspose.Pdf在PositioningType枚举类型中定义了一些定位类型。这些预定义的定位类型及含义如下表所示。

定位类型 说明
Auto 段落由页面绘制引擎自动定位
PageRelative 段落相对与页面定位
ColumnRelative 段落相对于栏目定位
ParagraphRelative 段落相对与其它段落定位

下面的例子演示了如何通过自定义定位使用单选按钮。

[C#]


//创建一个Pdf对象并添加一个Section对象sec1
Pdf pdf1 = new Pdf();
Section sec1 = pdf1.Sections.Add();

//创建一个table,指定列宽并将它添加到sec1中
Table tab1 = new Table();
tab1.ColumnWidths = "120 120 120";
sec1.Paragraphs.Add(tab1);

//在table中添加一行
Row r1 = tab1.Rows.Add();

//在行中添加一个单元格,设置它的边距,并指定单元格中的第一个段落的id为"text1"
Cell c1 = r1.Cells.Add("item1");
c1.Padding.Left = 30;
c1.Paragraphs[0].ID = "text1";

//在行中添加第2个单元格,设置它的边距,并指定单元格中的第一个段落的id为"text2"
Cell c2 = r1.Cells.Add("item2");
c2.Padding.Left = 30;
c2.Paragraphs[0].ID = "text2";

//在行中添加第3个单元格,设置它的边距,并指定单元格中的第一个段落的id为"text3"
Cell c3 = r1.Cells.Add("item3");
c3.Padding.Left = 30;
c3.Paragraphs[0].ID = "text3";

//创建一个单选按钮类型的表单域,设置表单域名称和按钮颜色,设置选中的按钮
FormField radio = new FormField();
radio.FormFieldType = FormFieldType.RadioButton;
radio.FieldName = "ARadio";
radio.ButtonColor = System.Drawing.Color.FromName("Red");
radio.RadioButtonCheckedIndex = 0;

//创建第1个单选钮,添加到上面的表单域中,指定宽度和高度。单选钮的位置设为相对

//段落。 将单选钮与ID为"text1"的文本段落关联。
RadioButton bt1 = radio.RadioButtons.Add();
bt1.ButtonHeight = 12;
bt1.ButtonWidth = 12;
bt1.PositioningType = PositioningType.ParagraphRelative;
bt1.ReferenceParagraphID = "text1";
bt1.Left = -20;
bt1.Top = 0;

//创建第2个单选钮,添加到上面的表单域中,指定宽度和高度。单选钮的位置设为相对
//段落。 将单选钮与ID为"text2"的文本段落关联。
RadioButton bt2 = radio.RadioButtons.Add();
bt2.ButtonHeight = 12;
bt2.ButtonWidth = 12;
bt2.PositioningType = PositioningType.ParagraphRelative;
bt2.ReferenceParagraphID = "text2";
bt2.Left = -20;
bt2.Top = 0;

//创建第3个单选钮,添加到上面的表单域中,指定宽度和高度。单选钮的位置设为相对
//段落。 将单选钮与ID为"text3"的文本段落关联。

RadioButton bt3 = radio.RadioButtons.Add();
bt3.ButtonHeight = 12;
bt3.ButtonWidth = 12;
bt3.PositioningType = PositioningType.ParagraphRelative;
bt3.ReferenceParagraphID = "text3";
bt3.Left = -20;
bt3.Top = 0;

//将单选按钮表单域添加到sec1的段落集合中
sec1.Paragraphs.Add(radio);

//保存Pdf
pdf1.Save(...);

[VB.NET]


'创建一个Pdf对象并添加一个Section对象sec1
Dim pdf1 As Pdf = New Pdf
Dim sec1 As Section = pdf1.Sections.Add()

'创建一个table,指定列宽并将它添加到sec1中
Dim tab1 As Table = New Table
tab1.ColumnWidths = "120 120 120"
sec1.Paragraphs.Add(tab1)

'在table中添加一行
Dim r1 As Row = tab1.Rows.Add()

'在行中添加一个单元格,设置它的边距,并指定单元格中的第一个段落的id为"text1"

Dim c1 As Cell = r1.Cells.Add("item1")
c1.Padding.Left = 30
c1.Paragraphs(0).ID = "text1"

'在行中添加第2个单元格,设置它的边距,并指定单元格中的第一个段落的id为"text2"
in the cell to "text2"
Dim c2 As Cell = r1.Cells.Add("item2")
c2.Padding.Left = 30
c2.Paragraphs(0).ID = "text2"

'在行中添加第3个单元格,设置它的边距,并指定单元格中的第一个段落的id为"text3"
in the cell to "text3"
Dim c3 As Cell = r1.Cells.Add("item3")
c3.Padding.Left = 30
c3.Paragraphs(0).ID = "text3"

'创建一个单选按钮类型的表单域,设置表单域名称和按钮颜色,设置选中的按钮
Dim radio As FormField = New FormField
radio.FormFieldType = FormFieldType.RadioButton
radio.FieldName = "ARadio"
radio.ButtonColor = System.Drawing.Color.FromName("Red")
radio.RadioButtonCheckedIndex = 0

'创建第1个单选钮,添加到上面的表单域中,指定宽度和高度。单选钮的位置设为相对
'段落。 将单选钮与ID为"text1"的文本段落关联。
Dim bt1 As RadioButton = radio.RadioButtons.Add()
bt1.ButtonHeight = 12
bt1.ButtonWidth = 12
bt1.PositioningType = PositioningType.ParagraphRelative
bt1.ReferenceParagraphID = "text1"
bt1.Left = -20
bt1.Top = 0

'创建第2个单选钮,添加到上面的表单域中,指定宽度和高度。单选钮的位置设为相对
'段落。 将单选钮与ID为"text2"的文本段落关联。

Dim bt2 As RadioButton = radio.RadioButtons.Add()
bt2.ButtonHeight = 12
bt2.ButtonWidth = 12
bt2.PositioningType = PositioningType.ParagraphRelative
bt2.ReferenceParagraphID = "text2"
bt2.Left = -20
bt2.Top = 0

'创建第3个单选钮,添加到上面的表单域中,指定宽度和高度。单选钮的位置设为相对
'段落。 将单选钮与ID为"text3"的文本段落关联。

Dim bt3 As RadioButton = radio.RadioButtons.Add()
bt3.ButtonHeight = 12
bt3.ButtonWidth = 12
bt3.PositioningType = PositioningType.ParagraphRelative
bt3.ReferenceParagraphID = "text3"
bt3.Left = -20
bt3.Top = 0

'将单选按钮表单域添加到sec1的段落集合中
sec1.Paragraphs.Add(radio)

'保存Pdf
pdf1.Save("e:/temp/test.pdf")

[XML]


<?xml version="1.0" encoding="utf-8" ?>
<Pdf xmlns="Aspose.Pdf">
<Section>
<Table ColumnWidths="120 120 120">
<Row>
<Cell PaddingLeft="30">
<Text ID="text1">
<Segment>item1</Segment>
</Text>
</Cell>
<Cell PaddingLeft="30">
<Text ID="text2">
<Segment>item2</Segment>
</Text>
</Cell>
<Cell PaddingLeft="30">
<Text ID="text3">
<Segment>item3</Segment>
</Text>
</Cell>
</Row>
</Table>
<FormField FormFieldType="RadioButton"
RadioButtonCheckedIndex="0" FieldName="aRadioutton"
ButtonColor="Red">
<RadioButton ButtonWidth="12" ButtonHeight="12"
PositioningType="ParagraphRelative"
ReferenceParagraphID="text1" Left="-20" Top="0">
</RadioButton>
<RadioButton ButtonWidth="12" ButtonHeight="12"
PositioningType="ParagraphRelative"
ReferenceParagraphID="text2" Left="-20" Top="0">
</RadioButton>
<RadioButton ButtonWidth="12" ButtonHeight="12"
PositioningType="ParagraphRelative"
ReferenceParagraphID="text3" Left="-20" Top="0">
</RadioButton>
</FormField>
</Section>
</Pdf>


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn

文章转载自:网络转载

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP