提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
转帖|其它|编辑:郝浩|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
文章转载自:网络转载面对“数字中国”建设和中国制造2025战略实施的机遇期,中车信息公司紧跟时代的步伐,以“集约化、专业化、标准化、精益化、一体化、平台化”为工作目标,大力推进信息服务、工业软件等核心产品及业务的发展。在慧都3D解决方案的实施下,清软英泰建成了多模型来源的综合轻量化显示平台、实现文件不失真的百倍压缩比、针对模型中的大模型文件,在展示平台上进行流畅展示,提升工作效率,优化了使用体验。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@pclwef.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢