我需要将表单实现为PDF,允许我在打印文件时拥有“打印日期”。在论文
我想要打印日期的文件版本在原始PDF中它必须隐藏。要做到这一点,我想添加
JavaScript到PDF。
我的问题是我不能以所有形式旋转文本。
这是我在Acrobat 9 Professional上遵循的程序:
1)我转到“高级 - >文档处理 - >文档JavaScript”,然后添加一个名为“表单”的JavaScript,如下所示:
function forms()
{
var inch = 72;
for (var p = 0; p < this.numPages; p++) {
// create rectangle quads for field
var aRect = this.getPageBox( {nPage: p} );
aRect[0] = 0.3*inch;
aRect[1] = 10.85*inch;
aRect[2] = aRect[0]+24;
aRect[3] = 0.85*inch;
// now construct text field to fill with date information
var f = this.addField("PrintField","text",p,aRect);
f.delay = true;
f.textSize = 10;
f.textFont = font.HelvB;
f.textColor = color.black;
f.alignment = "center";
f.readonly = true;
f.print = true;
f.hidden = true;
f.delay = false;
f.rotation = 90;
}
}
forms()
2)在我进入“高级 - &gt;文档处理 - >设置文档操作”后,我设置了文档操作“文档将
打印“as:
var f = this.getField("PrintField");
f.hidden = false;
var d = new Date();
var year = d.getYear()+1900;
var mins = d.getMinutes();
if (mins < 10) {mins = "0" + mins};
//if (d.getHours() >= 12) {mins = mins + " PM";} else {mins = mins + " AM"; }
f.value = "DATA DI STAMPA "+ (d.getMonth()+1) + "/" + d.getDate() + "/"+ year + " " + d.getHours() + ":" + mins;
3)在进入“高级 - &gt;文档处理 - >设置文档操作”后,我设置了文档操作“文档已
打印“as:
var f = this.getField("PrintField");
f.value = "";
f.hidden = true;
FIRST页面的输出如下图所示:
但其他页面如下:
你可以帮我告诉我我做错了什么吗?
另一件事:如果我更改了JavaScript代码,保存pdf文件并打印文件,它在每个页面中都有两个表单:旧表单和修改后的表单!为什么?
许多人提前感谢!!
答案 0 :(得分:0)
文档每次打开文档时都会执行JavaScripts,但您不仅要定义一个函数,还要运行它。因此,在保存并再次打开后,您将获得2组字段。
我不明白(也许你们都没有),为什么你选择在每次文档打开时创建字段,然后将它们隐藏起来直到打印。在我看来,可能性很多,例如:
现在,关于设置字段值(假设您没有选择上面的第三种方法)。您的“将打印”功能在第一页上只获取一个字段,并设置其值。其他人仍然空虚。您应该创建具有唯一名称的字段(将名称添加到名称是显而易见的方式),然后使用get field
设置值迭代所有字段,使用相同的算法重新创建名称或使用{{1 }和numFields
。