2016-12-20 5 views
0

Adob​​e Acrobat Pro DCカスタマイズプロジェクトの中間ストリームに持ち込まれました。このプロジェクトの目標は、各ページの左端に警告を追加することです。私は1つの例外を除いてこれを行うJavaScriptの部分を与えられ、その例外を修正するように求められました。Adob​​e Acrobat Pro DC JavaScriptのフィールドプロパティがプロポゲートしない

コードは次のとおりです。文書の長さが複数のページがあるとき

var inch = 72; 
for (var p = 0; p < this.numPages; p++) { 
    var aRect = this.getPageBox({nPage: p}); 
    aRect[0] = 8.25*inch; //how far from the left the box ends 
    aRect[1] = 0.5*inch; //how high from the bottom the box is 
    aRect[2] = 7.75*inch; //how far from the left the box starts 
    aRect[3] = 11.0*inch; //how tall the box is 
    var f = this.addField("ControlledDoc", "text", p, aRect) 
    f.rotation = 270; 
    f.delay = true; 
    f.textSize = 7.5; 
    f.textFont = font.HelvB; 
    f.textColor = color.red; 
    f.alignment = "center"; 
    f.readonly = true; 
    f.display = display.visible; 
    f.delay = false; 
} 
var myWillSaveScript = 'var f = this.getField("ControlledDoc"); \r' 
+ 'f.value = "This is an electronic controlled copy of a paper based document management system. When printed on the copy machine it becomes an uncontrolled paper copy valid until the end of the printing day."; \r'; 
this.setAction("WillSave", myWillSaveScript); 

問題が提示しています。 ControlledDocフィールドは、期待どおり各ページに複製されます。各ページはControlledDoc#n-1フィールドを取得します.nはページ番号です。最初のページではf.rotationの設定が保持され、プロパティダイアログのOrientationドロップダウンが270に設定されているため、UIに表示されます。ただし、2番目以降のページでは、Orientationは0に設定されています。 Orientationを270に設定しますが、これはJavaScriptを使用して物を自動化する目的に反するものです。

私はJavaScriptでのAcrobat ProのDCを制御する新しいですので、私は愚かな何かが欠けていた場合、私は驚かないだろう...私は2番目にローテーション設定スティックを作るために変更する必要が何

とその後のページ?

答えて

0

私はあなたがスクリプトを実行するときにページ1にいると仮定しています。それがページ1で正しいと思われる理由です。

遅延プロパティーがfalseの場合、trueに設定されるまで、フィールドの外観の更新が遅れるようにAcrobatに指示します。あなたはページにフィールドを追加すると、すべての設定が完了するまで、外観を生成しないようにAcrobatに指示しています...それはOKです...しかし、私は疑いがあります。遅延プロパティがtrueに設定されていても、それらのページに対して更新されました。遅延プロパティを設定する2行を抜き出すだけで動作します。

+0

私は 'f.delay ...'の行をコメントアウトしてみましたが、前と同じ動作をしました。 – cptully

+0

上記のコメントは私が上記のコードとほぼ同じコードを見つけたAcrobat Reader DCマニュアルのJavaScriptを見つけることにつながりました。私は全く新しいスクリプトファイルとpuのものを少しずつ始め、それを動作させました!感謝!!! – cptully

1

フィールドのプロパティは、フィールドレベル(同じ名前のフィールドのすべてのコピーで同じ)、またはウィジェットレベル(フィールドのコピーからフィールドのコピーまでの違いと異なる場合があります)にあります。

Acrobat JavaScriptのドキュメントには、これらのプロパティのリストがあります。残念ながら、これらの2つのリスト(フィールドレベルとウィジェットレベル)にはrotationプロパティは含まれていません。つまり、フィールドかウィジェットレベルかはわかりません。あなたの説明から、私はそれがウィジェットレベルであると感じる。

どのページでも個々のフィールドを作成することをお勧めします。あなたはラインdelayプロパティについて

var f = this.addField("ControlledDoc." + p, "text", p, aRect) ; 

でそれを行うだろう:私は常に(代わりにfield.delayの)doc.delayプロパティを使用して、ためにループの外で、それが最大のパフォーマンスゲインを提供できるように。しかし、スクリプトがループ内に存在する場合は、コンソールからdelayをfalseに設定する必要があります。私の経験から、これはすべての外観を作成します(しかし、それを知るには、そのページに乗り込み、すぐに作成されなければなりません...)。

関連する問題