Suche // Search:

Posts mit dem Label Reader Extensions werden angezeigt. Alle Posts anzeigen
Posts mit dem Label Reader Extensions werden angezeigt. Alle Posts anzeigen

28.06.2015

Formulare mit neuem Namen in bestimmtes Verzeichnis speichern
//
Save forms with new name in specified directory

Vor langer Zeit hab ich mal ein Beispiel veröffentlicht, um zu zeigen, wie man Formulare mit neuem Dateinamen in gewünschte Verzeichnisse speichert.
Auch wenn das Beispiel schon gut funktionierte, war mir der Aufbau immer noch etwas zu kompliziert, daher habe ich eine neue Version entworfen.
Das Beispiel zeigt 4 Möglichkeiten ein Formular zu speichern.

Long ago I've posted a sample to demonstrate how you can save forms with new file names in desired directories.
Weell, even if the sample was working I always felt a bit unsatisfied with its structure so I I've designed a new version.
It show 4 methods to save a form.

Folder Level Script – JavaScript
var lcbSaveAs = app.trustedFunction( function (vDoc, vPath) {      
    app.beginPriv();
   vDoc.saveAs({cPath: vPath});
    app.endPriv();
});

Funktion zum Speichern mittels Folder Level Script
//
Function to save through folder level script
function lcbSave (vDoc, vPath, vCurrentName, vDefaultName) { 
 if (vCurrentName === vDefaultName) {
  try {
   event.target.lcbSaveAs(vDoc, vPath);
   xfa.host.messageBox("File was saved under:\r\r" + vPath.toUpperCase(), "File Saved", 3, 0);
         xfa.form.execInitialize();
  } catch (error) {
   xfa.host.messageBox(error.toString().replace("RaiseError: ", "") + "\r\rEnsure the destination folder exists and there isn't already a file with the same file name in that folder!\n\n" + error, "Failed to save file", 0, 0);
  }
 } else {
  app.execMenuItem("SaveAs");
 }
}

Skript zum Erstellen des Zielpfads in einem Unterordner (nur eine der Möglichkeiten)
//
Script to create save path in sub folder (just one of the methodes)
var vSlash = "/",
 vNewName = Topic1.Variables.FormName.rawValue,
 vNewPath = Topic1.Variables.CurrentPath.rawValue,
 vSubfolder = Topic1.Variables.Subfolder.rawValue,
 vCurrentName = event.target.documentFileName,
 vCurrentPath = event.target.path,
 vDefaultName = vDefaultFileName.value,
 vSeparator = Topic1.Variables.Separator.boundItem(Topic1.Variables.Separator.getDisplayItem(Topic1.Variables.Separator.selectedIndex)),
 vDate = util.printd("ddmmyyyy", new Date());
 
if (vCurrentName === vDefaultName) {
 if (vNewName !== null && vNewPath !== null) {
  vNewPath += vSubfolder;
  vNewPath += vSlash;
  vNewPath += vNewName.replace(/[\s\!\?\<\>\'\"\*\/\\\=\?\^\`\{\}\|\~]+/g, vSeparator);
  vNewPath += vSeparator;
  vNewPath += vDate;
  vNewPath += ".pdf";
  console.println(vNewPath);
 } else {
  vNewPath = vCurrentPath;
 }
}
this.rawValue = vNewPath;


Beispiel – Zip-Datei mit Formular, Folder Level Script und Unterordner
//
Example – Zip file containing form, folder level script and sub folders
https://documentcloud.adobe.com/link/track?uri=urn%3Aaaid%3Ascds%3AUS%3Ab00d4d56-9bd9-4500-99d4-b233387bfe92

15.07.2014

XML per Skript in Adobe Reader importieren
//
Import XML via Script into Adobe Reader

Wenn es im den Import und Export von Daten geht, gibt es im Adobe Reader viele Hürden.
Der Export klappt hier noch relativ einfach über eine E-Mail aber der Import bleibt einen ohne LiveCycle Reader Extensions ersteinmal verwehrt.

Dabei kann man schon seit Version 9.2 externe Dateien mit dem Reader importieren.
Möglich macht das die JavaScript-Methode readFileIntoStream().

Dieses Beispiel zeigt, wie man damit Daten einer XML-Datei in ein XFA-Formular importieren kann – in Adobe Reader natürlich!


When it comes to import and export of data you'll be faced to many barriers, especially in Adobe Reader.
Ok, you can export your data quite easily by sending an email, but the import is a forbidden fruit unless you have LiveCycle Reader Extensions at hand.

Well, since Reader version 9.2 you're already able to import files with Reader.
This is possible through the JavaScript method readFileIntoStream().

This example shows, how you can import data into XFA forms from external XML files – In Adobe Reader of course!

Skript zum Importieren einer XML-Datei
//
Script to import a XML file

var vStream = util.readFileIntoStream();
if (vStream) {
    var vImport, vImportData, vImportXML;
    vImport = util.stringFromStream(vStream)
    .replace(/(\<\?.*\?\>\s*)|(\<!-{2}(.|\n|\r)*-{2}\>)|(\r\n|\r|\n)/g, "");
    vImportData = eval(vImport);
    vImportXML = vImportData.toXMLString();
    xfa.datasets.data.loadXML(vImportXML, false, true);
}

Beispiel Dateien
//
Sample files
https://files.acrobat.com/a/preview/4bbd94e6-c3e9-413a-badc-5154731720a7

26.07.2011

Dateien auf Verwendungsrechte hin überprüfen
//
Check files for Usage Rights

Wenn man viel mit Formularen arbeitet, die in Acobe Reader nutzbar sein sollen, muss man Acrobat die "Zusätzlichen Funktionen" (Verwendungsrechte in Adobe Reader) hinzufügen.
Blöd nur, dass man später nicht mehr sehen kann, bei welchen Formular das evtl. schon gemacht wurde.
In Acrobat bekommt man das nur raus, wenn ich nochmal versucht die Verwendungsrechte hinzuzufügen und eine Fehlermeldung erhält.
Das ist nervig, da man sich erst einmal durch das Menü hangeln muss, um den passenden Menüpunkt aufzurufen.

Klar, man könnte einen Adobe Reader parallel zu Acrobat installieren, da sieht man ja sofort, ob das Formular auch gespeichert werden kann.
Aber, Adobe rät strikt von einer Parallelinstallation beider Programme auf einem System ab, und die wissen schon warum.

Darum hab ich mir ein kleines Folder Level Script erstellt, dass einen neuen Menüpunkt im Menü "Datei" und unter "Werkzeuge" > "Zusatzprogramme" anlegt.
Hiermit kann man abfragen, ob schon Verwendungsrechte vorhanden sind und ggf. welche hinzufügen.


If you work a lot with forms which also should be usable in Adobe Reader, you have to apply the "Additional Features" (Usage Rights in Adobe Reader) with Acrobat.
Too bad that you later cannot see which form already has been Reader-enabled.
In Acrobat you only can try to apply the Usage Rights again, which then returns an error message.
That's annoying, as you have to navigate through several sub menus to call the specific menu item.

Obviously you could install Adobe Reader parallel to Acrobat, where you easily can see if the form is saveable.
But, Adobe strict advises againt a parallel installation of both application on the same system, and who else better knows why.

So, for this purpose I wrote a small folder level script, which adds a new menu item in the "File" menu and under "Tools" > "Add-on Tools".
With it you easily can check you file for Usage Rights and also apply them if neccessary.


Fehlermeldung wenn Datei schon Verwendungrechte hat
//
Error message if file already has Usage Rights

Menüpunkte zum Prüfen der Verwendungsrechte
//
Menu Items to check the Usage Rights


Meldung, wenn Datei schon Verwendungsrechte hat
//
Message if file already has Uasge Rights

Meldung, wenn Verwendungrechte noch hinzugefügt werden können
//
Message if Usage Rights can be applied




Folder Level Script
https://files.acrobat.com/a/preview/127a4ddd-a177-4a06-a2af-0f6fe9bef4ad