2015-12-20 38 views
0

我一直在尋找一個如何在acroforms中調用可信賴功能的例子,並沒有找到任何。我正在嘗試爲我的公司構建一個表單,該表單允許用戶單擊按鈕並自動將表單保存到我們服務器上的文件夾(例如:// SERVER1/Forms /)。我發現這個代碼來測試並把它放在C:\ Program Files文件(x86)的\的Adobe \ Acrobat Reader軟件DC \讀卡器\的Javascript如何從acroform調用可信功能

//SaveAs Function1 

var date = new Date(); 
var day = date.getDate(); 
var month = date.getMonth()+1; 
var year = date.getFullYear(); 
var dateSigned = String(month) + String(day) + String(year); 

var mySaveDoc = app.trustedFunction(function(doc,fileNam­e){ 
app.beginPriv(); 

var myPath = "C/test/" + fileName + "Agreement " + dateSigned + ".pdf"; 


//saveAs is the only privileged code that needs to be enclosed 
doc.saveAs({cPath: myPath, bCopy: true, bPromptToOverwrite: false}); 
//doc.close(); 

app.endPriv(); 
}); 

上使這項工作任何幫助,不勝感激!

回答

0

我認爲應用程序級腳本的位置是正確的;檢查你的文件夾中是否有其他文件;其中一個是來自Adobe的預編譯的。

現在,調用可信功能,嗯......,把它作爲你會調用任何其它功能:

mySaveDoc(this, fileName) ; 

而且應該這樣做。

然而,也有一些問題,我不喜歡那麼多的應用程序級別的腳本:

dateSigned變量及其邊角料將被定義和應用程序啓動時初始化,然後繼續他們的價值。換句話說,如果您始終保持Reader在運行,那麼日期將不會更新。要始終獲取當前日期,您必須初始化函數中的dateSigned變量。而且,與您在Acrobat JavaScript中一樣,您可以使用util對象來組裝字符串。然後

您的腳本應該是這樣的:

var mySaveDoc = app.trustedFunction(function(doc, fileName){ 
app.beginPriv() ; 
var dateSigned = util.printd("MMDDYYYY", new Date() ; 
var myPath = "/C/test" + filename + "Agreement " + dateSigned + ".pdf" ; 
doc.saveAs({cPath: myPath, bCopy: true, bPromptToOverwrite: false}) ; 
app.endPriv() ; 
}) ; 

注意,有ALS在路徑的開始斜線(雖然我可能是錯上;因爲我沒有訪問Windows機器,我無法驗證它;如果其他人使用Acrobat,請打開任何文件,然後從控制檯運行this.path(),然後他可以確認斜槓(或不)。

+0

謝謝你的幫助!有沒有辦法將dateSigned var格式化爲YYYYMMDD?絕對; – JB11

+0

絕對;實際上,你已經有了格式字符串(YYYYMMDD)。有關util.scand()的更多信息,請參閱Acrobat JavaScript文檔,它是Acrobat SDK文檔的一部分,可從Adobe網站下載。 –