Suche // Search:

Posts mit dem Label Acrobat werden angezeigt. Alle Posts anzeigen
Posts mit dem Label Acrobat werden angezeigt. Alle Posts anzeigen

21.07.2015

xmpMM-Entferner
//
xmpMM Remover

Heute gibt es eine Lösung abseits von LiveCycle Designer, die aber dennoch mit XFA-Technologie zu tun hat.
Aber der Reihe nach!

Acrobat DC verwendet neuerdings die Mozillas neue JavaScript-Engine SpiderMonkey 24.
Im Gegensatz zu der früheren Versionen unterstützt diese E4X (EcmaScript 4 XML) nicht mehr.
Adobe hat die E4X-Unterstützung zwar noch einmal nachgerüstet, aber ein Ende von E4X in Acrobat ist abzusehen.
Mit dem Ende von E4X werden alle JavaScript-Lösungen die E4X einsetzen nicht mehr unterstützt und benötigen daher eine Alternative.
Ein prominentes Beispiel wäre da der xmpMM-Entferner von UVSAR.
Mit diesem Tool kann man superleicht die Müllhalde von Metadaten, die z.B. InDesign gerne in PDF's hinterlässt, bereinigen.

Die neue Lösung basiert auch auch JavaScript, nutzt aber XFA-Technologie, um die Metadaten, die ja im XML-Format vorliegen, zu manipulieren.
Kurz gesagt: Wir wandeln mittels XMLData.parse() die Metadaten in ein XFA-Objekt um und können dann die Methoden für nodeList-Objekte wie remove() anwenden, um Elemente zu entfernen usw.


Today I present a solution apart from LiveCycle Designer which however uses XFA-Technology.
But let's take one thing at a time!

Acrobat DC newly uses Mozillas JavaScript engine SpiderMonkey 24.
In opposite to earlier version it doesn't support E4X (EcmaScript 4 XML) anymore.
Adobe were so kind it retrofit E4X support but this won't be for forever and the end of E4X support in Acrobat is conceivable.
This also means the end for all JavaScript solutions using E4X, so it's time to find alternatives.
A very popular Example is UVSAR's xmpMM Remover.
This nice tool enables you to remove easily the dump of needless metadata that for example InDesign adds to PDFs.

The new solution still bases on JavaScript but also uses XFA technology to manipulate the metadata that are just XML data.
In short: We convert the metadata into a XFA object using XMLData.parse() and then can use nodeList() methods like remove() to delete elements etc.


JavaScript
function removeMetadata (oDoc, aElements, aAttributes, bLog, bLang) {
 var oMetaData = XMLData.parse(oDoc.metadata, false),
  vRoot = oMetaData.nodes.namedItem("xmpmeta").nodes.namedItem("RDF").nodes.namedItem("Description"),
  vTemp = vRoot;
 
 if (bLog) {
  console.clear();
  console.show();
  console.println(bLang ? "Extrahiere aktuelle Metadaten." : "Extracting current metadata.");
 }
 
 for (var i = 0; i < vRoot.nodes.length; i += 1) {
  aElements.forEach(function (element) {
   if (element == vRoot.nodes.item(i).name) {
    vRoot.nodes.remove(vRoot.nodes.namedItem(element));
    if (bLog) {
     console.println((bLang ? "Entferne Element:\t" : "Removing Element:\t") + element);
    }
   }
  });
  
  aAttributes.forEach(function (element) {
   if (element == vRoot.nodes.item(i).name) {
    vRoot.nodes.remove(vRoot.nodes.namedItem(element));
    if (bLog) {
     console.println((bLang ? "Entferne Attribut:\t" : "Removing Attribute:\t") + element);
    }
   }   
  });
 }
 try {
  if (bLog) {
   console.println(bLang ? "Lade modifizierte Metadaten.\nSpeichern Sie das Dokument, um die Änderungen zu behalten." : "Loading modified metadata.\nSave the document to keep changes.");
  }
  oDoc.metadata = oMetaData.saveXML("pretty");
  app.execMenuItem("SaveAs");
 } catch (error) {
  app.alert(bLang ? "Sicherheitseinstellungen des Dokuments verhindern das Ändern der Metadaten." : "Security settings of the document prevent changes to metadata.");
 }
}

removeMetadata (this, ['DerivedFrom', 'History', 'PageInfo'], ['InstanceID', 'DocumentID', 'OriginalDocumentID', 'RenditionClass', 'DocChangeCount', 'CaptionWriter'], true, appLang);

xmpMM-Entferner - Folder Level Script

//
xmpMM Remover - folder level script
https://files.acrobat.com/a/preview/b3720e40-e862-49ae-853a-20e522c31565

21.01.2014

Gesperrte PDF-Eigenschaften in XFA-Formularen ändern
//
Edit locked PDF properties in XFA forms

Wie schon zuvor beschrieben, ermöglicht das Service Pack 1 für Designer ES4, den Dokumenttitel anstelle des Dateinamens in der Titelleiste des PDF-Viewer anzeigen zu lassen.
Aber, das funktioniert nur mit statischen Formularen und eben nur wenn man ES4 hat.

Nun ist die Verwendung des Dokumenttitels aber die viel schönere Lösung, schließlich erlaubt er Zeichen, die in Dateinamen gar nicht erlaubt sind und Dateinamen sind nicht selten nichtssagend.
Bei regulären PDF's kann man das schnell mit Acrobat in den Dokumenteigenschaften ändern, aber bei XFA-Formularen ist hier alles ausgegraut.

Die Lösung des Problems liegt dennoch in Acrobat und funktioniert mit allen XFA-Formularen.
Gleich mehr dazu.

Ein positiver Nebeneffekt stellt sich hierbei noch ein, denn es lassen sich auch noch viele andere PDF-Eigenschaften ändern, die XFA-Formularen normalerweise vorenthalten werden.
So können Sie wie bei regulären PDF's die Dokumentbeschreibung ändern, festlegen ob Menüsleisten ausgeblendet werden sollen, wie die Seitenanpassung erfolgen soll oder welcher Seitenbereich gedruckt werden soll.


As I've already described earlier the service pack 1 for Designer ES4 allows you to set up your forms to display the document title instead of the file name in the PDF viewers title bar.
But, this only works for static forms and only if you use ES4.

The use of the document title is the much better solution, as it allows the usage of characters you cannot use in file names and those file names are quite often vacuous.
With regular PDF's you would open its document properties in Acrobat to edit the setting, but not so with XFA forms as everything is grayed out then.

The solution that for is also in Acrobat and it works with all XFA forms.
Of which more later.

It additionally has an excellent side effect which will allow you to change many more PDF properties that are regulary kept away from XFA forms.
You'll be able to edit the document description, set which menu bars to hide, how the intial view has to be or what page range should be printed by default.



Schritt 1 – Öffnen Sie Ihre XFA-Formular in Acrobat und öffnen Sie dessen Eigenschaften mit [Strg] + [D].
//
Step 1 – Open your XFA form in Acrobat and then open its properties by pressing [Ctrl] + [D].
Gesperrte Dokumenteigenschaften in XFA-Formualren
//
Locked PDF Properties in XFA forms


Schritt 2 – Unter dem Reiter [Sicherheit] ändern Sie das Sicherheitssystem auf „Kennwortschutz“.
//
Step 2 – Under the [Security] tab change the Security Method to 'Password Security'.


Schritt 3 – Geben Sie ein Passwort zum Öffnen des Dokuments ein und bestätigen Sie es im folgenden Dialog. Das Passwort muss nicht sicher sein — ein einzelnes Zeichen reicht hier völlig aus.
//
Step 3 – Enter a password to open the document and confirm it in the following dialog. You don't have to enter any strong password — a single character is enough.


Schritt 4 – Klicken Sie nun rechts auf die Schaltfläche [Einstellungen] ändern.
//
Step 4 – Click on the [Change Settings] button on the right.
Dokumenteinschränkungen bestehen noch
//
Document Restrictions are still there



Schritt 5 – In diesem Dialog müssen Sie nichts machen, klicken Sie einfach auf [OK] um ihn zu schließen. Danach passiert etwas Unerwartetes …
//
Step 5 – In this dialog you don't need to do anything, just click [OK] to close it. After that something unexpected happens …
Hier gibt's nichts zu tun, einfach nur OK klicken
//
Nothing to do here, just click OK

Schritt 6 – … Acrobat entfernt fasst alle Dokumenteinschräkungen vom Formular. Das ist genau was wir brauchen, also Klicken Sie auf [OK], um diese Dokumenteigenschaften zu speichern.
//
Step 6 – … Acrobat removes most of the Document Restrictions from the form. That's exactly what we need, so click [OK] to save the current document properties.
Dokumenteinschränkungen wurden ausgehoben
//
Document Restrictions are removed

Schritt 7 – Nun öffnen Sie die Dokumenteigenschaften erneut. Sie sind nun in der Lage Elemente unter den Reitern [Beschreibung], [Ansicht bei Öffnen] usw. zu ändern. Zum Beispiel können Sie den Dokumententitel anstelle des Dateinamens anzeigen lassen oder die Menüleiste beim Öffnen des Formulars ausblenden lassen.
//
Step 7 – Now open the Document Properties again. You're able to edit different elements under the [Description], [Inital View] tab etc. For example you can select the document title to be displayed instead of the file name or hide the menu bar when the form opens.
Felder der Dokumentbeschreibung veränderbar
//
Fields of Document Description now editable

Ansicht beim Öffnen veränderbar
//
Initial View Settings editable

Schritt 8 – Nachdem Sie alle Eigenschaften geändert haben, setzen Sie das Sicherheitssystem wieder auf keine Sicherheit und speichern das Formular ab.
//
Step 8 – After you applied all changes set the Security Method back to no Security and then save the form.


Beispielformular
https://files.acrobat.com/preview/2b06f176-acaf-4d6a-820b-fc881046b1e5
//
Sample form
https://files.acrobat.com/preview/b7c0ac80-23c2-4747-b37c-4254d7da002c


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