3

使用 PDF,是否可以创建具有多个字段的单个表单元素,其中多个字段可以选择?例如,在 HTML 中,可以创建一组与相同字段名称关联的复选框:

<div>Select one for Member of the School Board</div>
<input type="checkbox" name="field(school)" value="vote1">
<span class="label">Libby T. Garvey</span><br/>
<input type="checkbox" name="field(school)" value="vote2">
<span class="label">Emma N. Violand-Sanchez</span><br/>

在这种情况下,字段名称为“field(school)”,提交表单时,“field(school)”可以提供 0、1 或 2 次。

PDF 中是否存在等效结构,其中单个字段可以具有多个值。到目前为止,在我的调查中,似乎如果为字段分配了相同的名称,则只能选择一个字段。如果可以在 PDF 中实现这一点,这个结构叫什么,如何实现?

编辑:为了澄清,我知道PDF可以包含多个具有不同字段名称的表单字段,并且可以独立选择这些字段,但是分组是隐式的,而不像HTML表单那样显式。我想使用一种结构,使选项的分组明确,并且最好允许限制(例如,至少需要一个,允许的不超过 2 个等)。

编辑:如果有人能找到权威意见认为这是不可能的,那也是一个理想的答案。

4

2 回答 2

1

对的,这是可能的。在 Adob​​e PDF 中,您有复选框概念和单选按钮概念。虽然每个复选框和单选按钮都可以有自己的名称,但是,它们也可以通过 GroupName.subobj 通过子层进行分组。

Adobe 是这样描述的:

字段名称。这可以包括分层语法以便于逻辑分组。例如,名称 myGroup.firstField 意味着表单字段 firstField 属于一组名为 myGroup 的字段。创建逻辑层次结构的优点是您可以通过设置组的属性来强制相关表单字段的属性之间保持一致,这些属性会自动传播到组内的所有表单字段。

当通过层次结构设置字段时,您可以在这种情况下获取 myGroup 的值,并返回组的选定值。同样,在 RadioButtons 的情况下,您将确保组中的所有字段具有相同的名称。

这种创建表单字段的方法适用于所有字段,但需要注意的是单选按钮需要特殊处理。由于一组单选按钮代表一组互斥的选项,因此它们属于同一组。因此,同一组中所有单选按钮的名称必须相同。此外,出口值

必须使用单个语句设置单选按钮集,其中一组值由 Field 对象的 exportValues 属性分配。例如,假设我们要创建一组三个单选按钮,每个按钮宽 12 磅,高 12 磅,都命名为 myRadio。我们将它们放在文档的第 5 页,它们的导出值将是 Yes、No 和 Cancel。它们可以如下面的代码所示创建:

var name = "myRadio";
var type = "radiobutton";
var page = 5;
var rb = this.addField(name, type, page, [400, 442, 412, 430]);
this.addField(name, type, page, [400, 427, 412, 415]);
this.addField(name, type, page, [400, 412, 412, 400]);
rb.exportValues=["Yes", "No", "Cancel"];
于 2010-04-13T22:42:02.643 回答
1

asnyder 的回答让我得出结论,没有自动的方法来处理单个字段中的多个值(就像使用 HTML 一样)。asnyder 的示例来自使用 JavaScript 开发 Acrobat 应用程序,可从Acrobat Javascript 开发人员中心获得。本文档提供了一些有关如何操作复选框、组合框和单选按钮的示例。所有示例都阐明了这个问题,并最终让我得出结论,任何使用 PDF 表单的系统都将隐式定义任何多选组。

使用 groupName.fieldName 的构造似乎有助于将小部件作为一个组进行操作(在 Acrobat Javascript 中),但不能枚举组的字段(不枚举所有字段并过滤 groupName),并且如果不以编程方式检查值,则无法确定该组。

换句话说,多选值不是 Acrobat 的固有特征,也不是 PDF 的本质特征,尽管可以通过编程实现这种形式。

于 2010-04-18T14:16:07.317 回答