Frage

Ich habe ein schriftliches PDF -Formular, das in Acrobat Pro erstellt wurde. Jetzt habe ich eine Schaltfläche hinzugefügt, die einen Felderwert ändern, das PDF speichern und schließen muss.

Ich habe mich dafür entschieden, dies zu tun, wie folgt:

var fieldX = this.getField("xxxxField");
fieldX.value = 1;
app.execMenuItem("Save");
this.closeDoc(true);

Aber das speichert die PDF nicht.

Ich möchte keinen Bestätigungsdialog haben. Ich sah saveAs Funktion in der API, aber wie man den realen Pfad inkl. Dateiname des aktuellen Bearbeitungsdokuments? Oder haben Sie andere Ansätze?

Danke.

War es hilfreich?

Lösung

Aber das speichert die PDF nicht.

Das liegt daran, dass es Sicherheitsbeschränkungen gibt, die verhindern app.execMenuItem("Save"); von der Arbeit. Sie dürfen Save Save nicht über JS anrufen.

Funktion in der API, aber wie man den realen Pfad inkl. Dateiname des aktuellen Bearbeitungsdokuments? Oder haben Sie andere Ansätze?

Sie können verwenden Doc.path Um den Pfad des aktuellen Dokuments einschließlich des Dateinamens zu erhalten (und Doc.documentFilename gibt Ihnen nur den Dateinamen).

Jedoch, saveAs unterliegt auch Sicherheitsbeschränkungen und kann nur in einen "privilegierten" Kontext (Stapel oder Konsole) aufgerufen werden. Das funktioniert also auch nicht.

Kurz gesagt, Sicherheitsbeschränkungen hindern Sie daran, Dokumente zu speichern, ohne den Benutzer zu fragen. Wenn Sie darüber nachdenken, ist es nur logisch.

Sehen: Acrobat JS API Referenz

Andere Tipps

Client -Seitencode zum Speichern von PDF -Daten, die unten unter dem Link oder Code verwendet werden. Es ist die vertrauenswürdige Funktion der Kunden, die Sie einsetzen müssen C:\Program Files\Adobe\...\JavaScript\Config.js.

So speichern Sie ein PDF mit Acrobat JavaScript

1) Code zum Speichern von Daten auf Ordnerebene.

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) Code zum Speichern von Daten unter 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;
});
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top