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.

È stato utile?

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;
});
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top