0

これは本当に奇妙なものです。当社には InDesign スクリプトがあり、最後に Acrobat を呼び出して (Applescript 経由で) PDF ファイルを開き、ページを置き換え、ファイルを保存して閉じます。このスクリプトを 1 年半以上使用していますが、所有している 9 台のコンピューターのうち 8 台で問題は発生していません。ただし、最後のものは、ファイルを開いて保存しようとすると、奇妙なメッセージが表示されます。

明確にするために言うと、9 台のコンピューターはすべて Mac であり、すべて OS X 10.9.5 Mavericks を実行しています。スクリプトは中央サーバー上にあるため、すべて同じファイルを使用しています。

var unlockCover2014 = app.trustedFunction(function (fName, fPrefix)
{
    app.beginPriv();
    var folderPrefix = fName.match(/^.*?(?=JOBS)/);
    console.println("fName is " + fName);
    console.println("folderPrefix is " + folderPrefix);
    var myDoc = app.openDoc(folderPrefix + "Product Templates/ProofCoverNew/proof_cover_2014.pdf");
    myDoc.replacePages(0, fName, 0, 0);
    myDoc.saveAs(fName);
    myDoc.closeDoc(true);
    app.endPriv();
});

このファイルは、フォルダ レベルのスクリプトとして適切なフォルダに保存されます。8台のコンピューターがこれを問題なく実行します。ただし、9 番目は、これを Acrobat の Javascript コンソールに表示します。

fName is /ArtDept/ArtDept/JOBS/425000-425999/425000 Folder/425000_cover.pdf
folderPrefix is /ArtDept/ArtDept/

RaiseError: This file is already open.
Doc.saveAs:9:
 ===> This file is already open.

このコンピュータだけで、PDF ファイルが既に開いていると判断する理由がわかりません。これにより発生する問題は、メインの InDesign スクリプトの実行が終了しても、Acrobat で 2 つのドキュメントが開いたままになり、保存するはずのドキュメントが保存されないことです。

ここで何が起こっているかについてのアイデアはありますか?

4

2 に答える 2

0

私はついに問題が何であるかを発見しました。それが(ほとんど)明白であることに少しばかげているように感じますが、おそらく私の状況で他の人を助けるかもしれません.

Acrobat を呼び出していたメインの InDesign スクリプトの行を無効にしました。他の問題に対処した後、後でその問題に戻ると考えました。そうしてメイン スクリプトを再度実行したところ、実際には、メイン スクリプトの実行中に、Acrobat がすでにそのカバー シート PDF のコピーを開いていることがわかりました。最初はビックリしましたが、ヘッドデスクをしているとすぐに原因がわかりました。

このコンピューターの InDesign は、デフォルトで、エクスポート後に PDF を自動的に開くように設定されています。

そのため、コードの一部に短い行を追加して、PDF エクスポート設定を設定し、その機能をオフにしました。

with (app.pdfExportPreferences)
{
    pageRange = proofRange;
    if (multiColor) pageRange = colorTable.toString();
    useSecurity = true;
    disallowChanging = true;
    disallowCopying = false;
    disallowDocumentAssembly = true;
    disallowExtractionForAccessibility = false;
    disallowFormFillIn = true;
    disallowHiResPrinting = false;
    disallowNotes = true;
    disallowPlaintextMetadata = true;
    disallowPrinting = false;
    changeSecurityPassword = "(NOPE)";
    viewPDF = false;
}

viewPDF最後の行です。(申し訳ありませんが、マークダウンで強調表示できるとは思いません。)このような半明白な原因を見落としたのはばかげていると思いますが、これが同様の問題を経験している他の誰かに役立つことを願っています. とにかく助けてくれてありがとう、@Loic。

于 2015-02-19T17:05:45.703 に答える