Javascript 在每个页面中旋转PDF文件上的动态表单

Javascript 在每个页面中旋转PDF文件上的动态表单,javascript,pdf,Javascript,Pdf,我需要实现一个PDF格式的表单,允许我在打印文件时有“打印日期”。纸上 文件版本我想要打印日期,而在原始PDF中它必须隐藏。为此,我想补充一点 将JavaScript转换为PDF 我的问题是我不能旋转所有形式的文本 以下是我在Acrobat 9 Professional上遵循的步骤: 1) 我转到“高级->文档处理->文档JavaScript”,并添加一个名为“表单”的JavaScript,如下所示: function forms() { var inch = 72; for (var p

我需要实现一个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()
第一页的输出如下图所示:

但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;