PDF-Formular mit neuem Dateinamen speichern

Liebe PDF-Profis,

mir steht Adobe Acrobat 9 Pro zur Verfügung. Ich möchte Formulare ausfüllen lassen, die auf Knopfdruck gespeichert werden, wobei sich der Dateiname automatisch aus den Inhalten zweier Formularfelder zusammensetzen soll.
Beispiel: Feld1=Name, Feld2=Vorname : Gewünschter Dateiname=Name_Vorname.pdf

Der Vorgang sollte ausgelöst werden durch einen Button „speichern“, wie wir ihn auch vom „senden“ oder „drucken“ her kennen.

Ziel: Ich sammele Antworten unterschiedlicher Personen und möchte diese in eine Exceltabelle einlesen. Dafür müssen alle PDF-Dateien einen anderen Namen bekommen, der einer bestimmten Logik gehorcht.

Viele Grüße aus dem Emsland
Maik

Guten Tag,

Aus Sicherheitsgründen gibt es leider per Acrobat-JavaScript keinen Zugang zum Dateisystem aus einer PDF-Datei heraus.

Man könnte versuchen, mit einem Application-Level-JavaScript ein SaveAs zu implementieren. Diese würde in Acrobat eine Schaltfläche oder einen Menüpunkt installieren, womit im aktuell geöffenten Dokument die erforderlichen Informationen ausgelesen und dann das Dokument gespeichert würde. Dies scheitert aber daran, dass die Funktion saveAs gemäss Dokumentation nur während Konsolen- oder Batch-Ereignissn ausgeführt werden kann.

Die „nächsthöhere“ Lösung wäre ein Plug-In zu Acrobat. Plug-Ins haben im Gegensatz zu JavaScript vollen Zugang zu den lokalen Ressourcen. Ein Beispiel ist das PlugIn MVPDFSaveAsPlus, das auf meiner Website dokumentiert ist.
Siehe: www.veron.ch, dort unter: „Beispiele von PDF-Projekten“

Mit freundlichen Grüssen aus Allschwil bei Basel
Marc Véron
[email protected]
www.veron.ch

Hallo Maik,

wenn Du das PDF Acrobat Reader fähig machst, dann kann man mit dem AR Daten eingeben und wird, sobald man das Dokument schließen will, gefragt, unter welchen Dateinamen es gespreichert werden soll. Falls das bei Dir so nicht funktioniert, dann sende mir doch einmal ein Muster-PDF, ich werde es dann bearbeiten und Dir zurück senden.

Freundliche Grüße

CupidoVienna

Hallo CupidoVienna,

vielen Dank für deine rasche Rückantwort.

Das funktioniert bei mir auch so, wie du es beschrieben hast. Es ist für mich jedoch wichtig, dass die Namensgebung exakt ist und ich habe die Erfahrung gemacht, dass z.B. der eine Name_Vorname, der nächste Vorname_Name, ein weiterer Name-Vorname usw. schreibt. Damit kann ich dann nichts mehr anfangen.

Deshalb die Idee der Automatisierung.

Natürlich kann ich das beim Einlesen auch bestimmen (Kopie der PDF von E-Mail-Anhang auf Platte), aber das macht natürlich viel Arbeit, wenn man z.B. 200 oder mehr Rückantworten erwartet.

Vielen Dank für deine Mühe

Maik

Hallo Maik,

leider ist mir keine Designer-Funktion bekannt, die diese Funktionalität hergibt. Ich denke, es könnte -wenn überhaupt- nur über Javasrcipt gelöst werden.

Ich würde einen anderen -vermutlich einfacheren- Weg gehen:
Im Formular auch den Namen des Empfängers abfragen, sa dass dieser auch in den Formulardaten enthalten ist.
Nach dem Import in die Datenbank sind dann dort automatisch alle Daten verfügbar.

Mit freundlichen Grüßen aus dem sonnigen Mainhattan
Armin Scher

Vielen Dank, Armin,

das ist grundsätzlich i.O. Wenn du jedoch 200 Mail-Antworten erwartest und diesen beim Speichern immer selber neue Namen vergeben musst, die einem logischen Sortierkriterium unterliegen sollen, dann wäre der gewünschte Weg eine enorme Hilfe.

Danke für deine Mühe und viele Grüße aus dem Emsland

Maik

Hallo Marc,

vielen Dank für deine tollen Ausführungen. Die muß ich erst einmal verstehen :wink:

Wenn ich innerhalb eines Dokumentes JavaScripts ausführe, bin ich also weder in einem Konsolen- noch in einem Batch-Ereignis? Würde das nicht bedeuten, dass die Funktion saveAs nie funktioniert? (Bin kein JS-Spezialist!)

Du bietest dieses PlugIn MVPDFSaveAsPlus an, das sich theoretisch gut anhört - es würde offensichtlich mein Problem lösen. Dazu zwei Fragen:
a) Was soll es kosten?
b) Wird das Plugin in das Dokument eingebaut oder muß es jeder Nutzer haben und installieren? (Was ich nicht so elegant fände, weil ich das nicht voraussetzen kann)

Viele Grüße in die schöne Schweiz
Maik

Hallo Maik,

aus Deiner Antwort schließe ich, dass Du kein Server-Formular verwenden willst, sondern Formulare ausgefüllt als eMail-Anhang zurückgesendet werden sollen.

Dann sehe ich eigentlich nur zwei Möglichkeiten:

  • Anpassung der „Speichern“-Funktion (sofern dies möglich ist) mit Hilfe des Livecycle-Designers.

Du wirst aber an die techischen Grenzen stoßen, wenn die Empfänger statt über eine Acrobat-Vollversion lediglich über einen Reader verfügen: Mit dem reader ist das Speichern von Formulardaten nicht möglich.

  • Vergabe eines neuen Dateinamens beim Speichern aus der empfangenen eMail heraus.

Vielleicht findest Du bessere/mehr Hilfe bei

  • www.pdfzone.de --> Formulare
  • www.acronaut.de --> Userforum zu Thema PDF
  • in den zusätzlichen Informationen von Adobe zum Bereich Livecyle Designer. Dort gibt es PDF- und CHM-Dateien zu den Funktionen von FormCalc und JavaScript.

Sorry, dass ich nicht mehr zu dem Thema weiß. Ich bin aber sicher, dass es eine Lösung für dieses Problem seitens Adobe gibt, da die Formulare über eine Lizenzfreigabe bis 500 Exemplare gibt (siehe Adobe-Lizenzbestimmungen).

Mit freundlichen Grüßen aus Mainhattan
Armin Scher

Leider kann ich da nicht kompetent weiterhelfen!

Ich würde diesen Weg mit einer Zeitstempelvariable gehen, dann sind die Dateinamen in jedem Falle unverwechselbar. Aber wie gesagt: nicht mein Bereich.

Viele Grüße

Ulrich Thiele

Hallo Armin,

nein, ein Serverformular möchte ich nicht nutzen.

Das Speichern von Formulardaten ist übrigens mit dem Reader möglich, wenn ich diese Funktion freischalte! Eine tolle Erweiterung der Version Acrobat9Pro und höher.

Vielen Dank für die Links. Ich werde mich da weiter durchkauen.

Wie sagt man: Aller Anfang ist schwer :wink: Da muß ich eben durch.

Viele Grüße aus dem Emsland
Maik

Vielen Dank für deine Nachricht, Ulrich.

Zeitstempelvariable ist ein interessanter Gedanke, hilft mir jedoch bei der Organisation der Daten in diesem Fall leider nicht weiter.

Viele Grüße aus dem Emsland
Maik

Hallo Maik,

wenn Du dort die Dokus nicht findest (sind ein wenig versteckt), gib Bescheid und Deine Mail-Adresse, dann schicke ich sie Dir rüber…

Grüße aus Mainhattan
Armin Scher

Hallo Maik,

Danke für die Antwort.

Zunächst einmal eine Erklärung zu den JavaScripts in der PDF- bzw. Acrobat-Welt.

Diese werden durch verschiedene Ereignise ausgelöst, z.B. sind „Seite anzeigen“ oder „Maustaste auf Schaltfläche loslassen“ oder „Feldwert geändert“ solche Ereignisse innerhalb eines Dokumentes.

Damit sind wir bie den Orten, wo sich JavaScripts befinden können, nämlich innerhalb eines Dokumentes (und dort z.B. auf Dokumentebene, auf Seiteneben, bezogen auf Formularfelder), innerhalb des Batch-Mechanismus (der darauf ausgelegt ist, viele PDF-Dateien zu bearbeiten), vom Debugger (=Konsole) aus gestartet oder eben auf Applikationsebene.
Letzteres ist ein JavaScript, das als Datei auf dem Computer abgelegt ist.

Aus Sicherheitserwägungen, die sich im Lauf der Geschichte von Acrobat immer mehr verschärft haben, können diese JavaScripts bezogen auf die lokale Systemressourcen nur wenig tun. SaveAs ist gemäss Dokumentation nur in Konsolen- oder Batch-Ereignissen erhältlich. Letzeres z.B. wenn man in einer Batch-Sequenz PDF-Dateien verändern und unter neuem Namen speichern will.

Plug-Ins hingegen sind eigentlich DLLs, die auf dem Rechner (im Plug-Ins-Ordner der Acrobat-Installation) installiert sind und vollen Zugriff auf das System haben. Sie klinken sich beim Start von Acrobat ein und erweitern dessen Funktionalität.

Damit ist Frage b) beantwortet. Wichtig ist noch der Hinweis, dass die Plug-Ins meiner Firma nur für Acrobat (nicht Reader) und nur für Windows entwickelt werden.

Zu Frage a): Die Plug-Ins werden jeweils an die Bedürfnisse des Kunden angepasst - es gibt ja sehr viele verschiedene Szenarios. Dies wirkt sich auch auf die Kosten aus, die ich ungern in einem Forum bespreche. Können wir dazu auf den direkten E-Mail-Kanal wechseln ([email protected]) oder telefonieren (+41 483 84 61)?

Schöne Grüsse aus Allschwil bei Basel
Marc Véron
[email protected]
www.veron.ch

sorry, da kann ich nicht helfen

viele grüße
uwe

Ah Maik, jetzt bin ich total verwirrt! Wie wäre es mit einer kurzen präzisen Aufgabenbeschreibung?

Wäre doch nett!

FG CupidoVienna

Hallo Cupido Vienna,
die Beschreibung steht in meiner ersten Anfrage.
Hintergrund ist: Ich möchte Daten von Schülern abfragen. Um die Antworten, die ich in gespeicherten PDF-Formularen per CD zurückbekommen wollte, logisch vorzusortieren, wollte ich die Namenskonvention für die PDF-Dateien festlegen.
Du kannst dir vorstellen, dass das Ergebnis bei pubertierenden Schülern jedoch chaotisch ausfällt. Einer hält sich an die Konvention, der andere speichert unter dem Formularnamen ab usw.
Inzwischen habe ich herausgefunden, dass ein JavaScript mit dem schlauen Befehl saveAs beim Reader nicht funktioniert (hier wollte ich die Feldinhalte auslesen und speichern lassen) und werde wohl die Daten über Acrobat.com sammeln.
Danke für dein Hilfsangebot. Falls dir doch noch ein Weg einfallen sollte, immer her damit.

Viele Grüße
Maik

Hallo Maik,

na bei pubertierenden Schülern würde ich eine Datenbank im Netz zur Verfügungsstellen und die Daten sammeln, dann kannst mit den Daten machen was Du willst.

Freundliche Grüße

CupidoVienna