2016-10-20 7 views
0

フォルダ内のPDFが有効なPDF/Aファイルであることを処理して確認します。問題は、プレフライトがPDF、プロセスに変換された後、ユーザーの入力が気になるファイルを破棄するためにハングしてしまうWordやExcelなどのファイルを含むフォルダを処理する必要があることです。数百のファイルがあるので、ユーザーの入力を待つことはできません。Acrobat DCプリフライトで非​​PDFファイルを処理する

おそらく、私は検索時に正しいフレーズを使用しませんが、Adobe Acrobat DCにPDFファイルのみを処理させる方法を見つけることはできません。私は、Acrobat Xではソースファイルhttps://www.evermap.com/ActionWizardX.aspを指定できますが、DCで同等のファイルが見つかりませんでした。

PDFファイルのみを処理するように強制する方法はありますか?


編集:

が@Joel Geraciの提案に従い、this postを見つけ、私はアクションで実行される次のスクリプトを作成しました。この時点では、プロファイルを実行しているようですが、this.closeDoc()への呼び出しがドキュメントの保存を促さないため、実際にドキュメントを変更するかどうかわかりません。その結果ドキュメントは次のように保存されていないようですPDF/Aファイル。

/* Convert PDF/A-3a */ 
try 
{ 
    if(this.path.split('.').pop() === 'pdf') 
    { 
    var oProfile = Preflight.getProfileByName("Convert to PDF/A-3a"); 

    if(oProfile != undefined) 
    { 
     var myPreflightResult = this.preflight(oProfile); 
     console.println("Preflight found " + myPreflightResult.numErrors + " Errors."); 
     console.println("Preflight found " + myPreflightResult.numWarnings + " Warnings."); 
     console.println("Preflight found " + myPreflightResult.numInfos + " Infos."); 
     console.println("Preflight fixed " + myPreflightResult.numFixed + " Errors."); 
     console.println("Preflight not fixed " + myPreflightResult.numNotFixed + " Errors."); 
     this.closeDoc(); 
    } 
    } 
} 
catch(theError) 
{ 
    $error = theError; 
    this.closeDoc({bNoSave : true}); 
} 

編集2:私はsaveAs機能を使用してセトリング終わった

。 XMLデータをファイルにエクスポートする方法がわかりませんが、これで十分です。

/* Convert PDF/A-3a */ 
try 
{ 
    if(this.path.split('.').pop() === 'pdf') 
    { 
    var oThermometer = app.thermometer; 
    var oProfile = Preflight.getProfileByName("Convert to PDF/A-3a"); 

    if(oProfile != undefined) 
    { 
     var myPreflightResult = this.preflight(oProfile, false, oThermometer); 
     console.println("Preflight found " + myPreflightResult.numErrors + " Errors."); 
     console.println("Preflight found " + myPreflightResult.numWarnings + " Warnings."); 
     console.println("Preflight found " + myPreflightResult.numInfos + " Infos."); 
     console.println("Preflight fixed " + myPreflightResult.numFixed + " Errors."); 
     console.println("Preflight not fixed " + myPreflightResult.numNotFixed + " Errors."); 
     if(myPreflightResult.numErrors > 0) { 
     var cXMLData = myPreflightResult.report(oThermometer); 
     console.println(cXMLData); 
     } 
     this.saveAs(path,"com.callas.preflight.pdfa"); 
    } 
    } 
} 
catch(theError) 
{ 
    $error = theError; 
    this.closeDoc({bNoSave : true}); 
} 

編集3:

だから問題は、私のJavaScriptが実行される前に、非PDFファイルがthis.path.split('.').pop() === 'pdf'は、実際には何を除外しないことを意味し、変換して読んでいるということです。 DocクラスのrequiresFullSaveプロパティがドキュメントが一時ファイルであるかどうかを指定しています。しかし、一時ファイルを保存するかどうか依頼されていることがわかりましたが、これは役に立ちません。一時ファイルにDoc.closeDoc(true)を呼び出す

編集4

は、Acrobatがクラッシュすると、保存せずにドキュメントを閉じるために別の方法があるように思われない原因となります。私は、ユーザーに保存を促すことなく一時的な文書を閉じることができ、PDF以外のファイルをすべて削除することに頼った明確な方法がないことが判明しました。

決勝スクリプト:むしろプリフライト走るアクションを作成するよりも

/* Convert PDF/A-3a */ 
try 
{ 
    console.println(path + " is temp: " + requiresFullSave); 
    if(!requiresFullSave) 
    { 
    var oThermometer = app.thermometer; 
    var oProfile = Preflight.getProfileByName("Convert to PDF/A-3a"); 

    if(oProfile != undefined) 
    { 
     var myPreflightResult = this.preflight(oProfile, false, oThermometer); 
     console.println("Preflight found " + myPreflightResult.numErrors + " Errors."); 
     console.println("Preflight found " + myPreflightResult.numWarnings + " Warnings."); 
     console.println("Preflight found " + myPreflightResult.numInfos + " Infos."); 
     console.println("Preflight fixed " + myPreflightResult.numFixed + " Errors."); 
     console.println("Preflight not fixed " + myPreflightResult.numNotFixed + " Errors."); 
     if(myPreflightResult.numErrors > 0) { 
     var cXMLData = myPreflightResult.report(oThermometer); 
     console.println(cXMLData); 
     } 
     this.saveAs(path,"com.callas.preflight.pdfa"); 
    } 
    } 
    else{ 
    // As noted in the documentation found [here][2] 
    // Note:If the document is temporary or newly created, setting dirty to false has no effect. That is, the user is still asked to save changes before closing the document. See requiresFullSave. 
    // this.dirty = false; 
    // this.closeDoc(true); 
    } 
} 
catch(theError) 
{ 
} 

答えて

1

は、いくつかのJavaScriptを実行し、アクションを作成してみてください。 JavaScriptは処理されるファイルのファイル拡張子をテストし、PDFの場合はJavaScript経由でプリフライトを実行し、そうでない場合はスキップします。

+0

PreflightProfileを実行した文書を、成功した場合に保存する方法を知っていますか? – Nielsvh

+1

最も簡単な方法は... app.execMenuItem( "Save"); しかし、下のURLのトピックに関する素晴らしい記事があります。 https://acrobatusers.com/tutorials/how-save-pdf-acrobat-javascript – joelgeraci

関連する問題