Javascript 在每个页面中旋转PDF文件上的动态表单
我需要实现一个PDF格式的表单,允许我在打印文件时有“打印日期”。纸上 文件版本我想要打印日期,而在原始PDF中它必须隐藏。为此,我想补充一点 将JavaScript转换为PDF 我的问题是我不能旋转所有形式的文本 以下是我在Acrobat 9 Professional上遵循的步骤: 1) 我转到“高级->文档处理->文档JavaScript”,并添加一个名为“表单”的JavaScript,如下所示:Javascript 在每个页面中旋转PDF文件上的动态表单,javascript,pdf,Javascript,Pdf,我需要实现一个PDF格式的表单,允许我在打印文件时有“打印日期”。纸上 文件版本我想要打印日期,而在原始PDF中它必须隐藏。为此,我想补充一点 将JavaScript转换为PDF 我的问题是我不能旋转所有形式的文本 以下是我在Acrobat 9 Professional上遵循的步骤: 1) 我转到“高级->文档处理->文档JavaScript”,并添加一个名为“表单”的JavaScript,如下所示: function forms() { var inch = 72; for (var p
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()
第一页的输出如下图所示:
但oter页面如下所示:
你能帮我告诉我我做错了什么吗
另一件事:如果我更改JavaScript代码,保存pdf文件并打印文件,它在每个页面上都有两个表单:旧表单和修改表单!为什么?
非常感谢 每次打开文档时都会执行文档Java脚本,但您不仅要定义一个函数,还要运行它。因此,在保存并再次打开后,将得到两组字段 我不明白(也许你们也不明白),为什么每次打开文档时都选择创建字段,然后隐藏它们直到打印。在我看来,可能性很多,例如:
- 使用Acrobat UI工具创建一次李>
- 您只需在Acrobat的控制台中运行创建它们的函数一次李>
- 您在“将打印”中创建它们(设置值),并在“已打印”中删除它们李>
- 您可以按自己的方式操作,就像现在一样,并在关闭时删除字段李>
- 等等
现在,关于设置字段值(假设您没有选择上面的第三种方法)。“Will Print”函数只在第一页获取一个字段,并设置其值。其他人仍然是空的。您应该创建具有唯一名称的字段(向名称添加页码是一种明显的方法),然后使用
get field
设置值对所有字段进行迭代,要么用相同的算法重新创建名称,要么使用numFields
和getNthFieldName
我不知道存在多个字段,但现在yoy解释了Acrobat的工作原理,我想我会解决我的问题!我让你知道!谢谢
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;
var f = this.getField("PrintField");
f.value = "";
f.hidden = true;