JavaScript di Acrobat Save & Exit Button
-
19-09-2019 - |
Domanda
Ho una forma pdf scrivibile creata in Acrobat Pro. Ora, ho aggiunto un pulsante che deve cambiare un valore di campi, salvare il pdf e chiuderlo.
Ho deciso di fare questo come segue:
var fieldX = this.getField("xxxxField");
fieldX.value = 1;
app.execMenuItem("Save");
this.closeDoc(true);
Ma questo non salva il pdf.
Non voglio avere una finestra di conferma. Ho visto la funzione saveAs
nell'API, ma come ottenere il reale percorso incl. il nome del file del documento di modifica corrente? O avete altri approcci?
grazie.
Soluzione
Ma questo non salva il pdf.
Questo perché ci sono restrizioni di protezione che impediscono app.execMenuItem("Save");
di lavorare. Non ti è permesso di chiamare Salva tramite JS.
funzione nella API, ma come ottenere il reale percorso incl. il nome del file del documento di modifica corrente? O avete altri approcci?
È possibile utilizzare Doc.path
per ottenere il percorso del documento attuale il nome del file (e Doc.documentFilename
ti dà il nome del file unico).
Tuttavia, saveAs
è anche soggetto a restrizioni di sicurezza, e può essere chiamato solo in un contesto "privilegiato" (batch o console). Quindi questo non funziona neanche.
In breve, le restrizioni di sicurezza ti impedirà il salvataggio dei documenti senza chiedere all'utente. Se ci pensate, è logico.
Si veda: Acrobat JS API di riferimento
Altri suggerimenti
codice lato client per salvare i dati in formato PDF utilizzati al di sotto link o codice. E 'lato client funzione che è necessario mettere in C:\Program Files\Adobe\...\JavaScript\Config.js.
fiducia
Come salvare un file PDF con Acrobat JavaScript
1) Codice per salvare i dati a livello di cartella.
var mySaveAs = app.trustedFunction ( function(oDoc,cPath,cFlName)
{
app.beginPriv();
var flag=false;
cPath = cPath.replace(/([^\/])$/, "$1/");
if(cPath.indexOf("http://") !== -1 || cPath.indexOf("https://") !== -1)
{
cPath = cPath.replace('http://', "\\\\");
cPath = cPath.replace('https://', "\\\\");
while(cPath.indexOf("/") !== -1)
{
cPath = cPath.replace('/', "\\\\");
}
}
if(cPath.indexOf(":") !== -1)
{
cPath = cPath.replace(":","@");
}
try{
oDoc.saveAs(cPath + cFlName);
flag = true;
}catch(e){
app.alert("Error During Save");
}
app.endPriv();
return flag;
});
2) Codice per salvare i dati in SharePoint.
var mySaveAs = app.trustedFunction ( function(oDoc,cPath,cFlName)
{
app.beginPriv();
var flag=false;
try{
app.execMenuItem("Save");
flag = true;
}catch(e){
app.alert("Error During Save");
}
app.endPriv();
return flag;
});