簡體   English   中英

如何在PDF中添加JavaScript按鈕以將數據保存到(png)文件?

[英]How to add a javascript button to PDF that saves data to a (png) file?

我使用python + matplotlib創建PDF圖形,並且可以添加一個JavaScript警報框,當打開PDF時顯示該圖形中的數據。

我要更改行為,以使PDF中有一個按鈕。 您可能已經以某種形式看到“打印”按鈕。 按下此按鈕將詢問用戶文件名並將硬編碼的字符串保存到該文件。 另外,另一個按鈕可以將PDF保存為PNG(也可以進行硬編碼)。

我的問題是特權。 PDF-javascript-api表示禁止靜默文件訪問,但是如果用戶啟動保存,則將允許它(例如,使用標准保存對話框)。

但是我無法使保存對話框方法起作用。 沒有參數的Adobe doc.saveAs()不會打開“保存”對話框,但是會抱怨權限不足。

我希望解決方案盡可能地可移植。 一切都應嵌入到PDF(一個文件)中。

編輯:

剛剛發現了一種類似但完全不同的方法:您可以將附件放入按鈕一樣的PDF中,並可以保存到磁盤中:

https://tex.stackexchange.com/questions/117792/listings-copy-to-clipboard-feature

這是我當前的代碼:

var nRslt = app.alert({cMsg: "save data?", nType: 3});
app.alert({cMsg: nRslt});
if (nRslt==4){
this.saveAs();
}

該按鈕采用表格形式,如果結果為“ OK”(nType = 4),則應打開保存對話框。 這產生

NotAllowedError: Security settings prevent access to this property or method.
Doc.saveAs:4:Doc undefined:Open

目的是將按鈕從警報框移至文檔,然后修改保存的內容。 但是現在安全設置給我帶來了麻煩。

該代碼提供了引發錯誤的原因。

doc.saveAs()方法需要一個有效的路徑作為參數。 而且,為了通過按鈕工作,它需要更高的特權,這意味着您必須創建一個應用程序級腳本,該腳本必須安裝在應使用文檔的任何位置。

但是還有另一種方法可以起作用:

if (app.alert({cMsg: "save data?", nType: 3}) == 4){
app.execMenuItem("SaveAs") ;
}

這樣,將打開“保存文件”對話框。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM