[Gelöst] PDF - Formularfelder automatisch füllen

17. April 2007 12:09

Hallo zusammen,

weiß jemand ob und wie man ein existierendes PDF-Dokument mit Daten füllen kann? Dieses PDF-Dokument hat Formularfelder, die manuell im Reader gefüllt werden können. Kann ich irgendwie auf diese Felder zugreifen?

Gruß Joker
Zuletzt geändert von Joker am 23. April 2007 17:30, insgesamt 1-mal geändert.

19. April 2007 09:03

So, falls jemand mal was ähnliches entwickeln will, ich habe jetzt manuell über einen Dataport ein FDF-File erstellt, das die Daten für das PDF-File enthält. Eine direkte Möglichkeit auf das PDF zuzugreifen habe ich leider nicht gefunden.

Gruß Joker

19. April 2007 09:32

Da verstehe ich jetzt nicht so recht. Du hast mittels eines Dataports ein PDF erstellt :roll:

Wie hast du das denn hinbekommen?

19. April 2007 09:34

Hallo Joker,

vielen Dank für die Info, dass du selbst einen Weg gefunden hast.

Der Dataport ist wahrscheinlich exakt auf dein Problem zugeschnitten und wird wohl den anderen Mitgliedern hier wenig hilfreich sein, aber sicherlich hast du irgendwo eine Format-Beschreibung, wie die FDF-Datei aufgebaut sein muss, damit der Adobe Reader sie verarbeiten kann.

Es wäre äusserst hilfreich, wenn du die Format-Beschreibung hier zur Verfügung stellen würdest, so profitieren alle Mitglieder davon.
Deinen Dataport darfst du natürlich auch hier hochladen, damit man eine Vorstellung bekommt, wie die FDF-Datei aus Navision erzeugt werden kann.

Vielen Dank für deine Mithilfe.

19. April 2007 11:31

Hallo Joker,

Joker hat geschrieben:Kann ich irgendwie auf diese Felder zugreifen?

Um auf deine Urspüngliche Frage zurückzukommen.
Eine Lösung habe ich nicht "zur Hand", jedoch möchte ich Fragen, ob dir die Automation Komponeten vom Arcrobat bekannt sind.
Mit diesen kannst du den Reader von Navision aus öffnen.
Ich könnte mir Vorstellen, das es hier evtl. auch Methoden gibt, die im Formular die Felder ansprechen. (Ähnlich wie mit Excel-Automation!).

Hier im Forum gibt es einige Beiträge zu PDF-Dateien, vieleicht wirst du fündig!
Suche

Oder hier bei MIBUSO im Forum:MIBUSO-Forum
(Hier sind sehr viele Beiträge rund um PDF Dateien)
Gruß Mikka

19. April 2007 15:27

Hallo,
danke für die Tipps, aber leider habe schon überall gesucht. Auch mit den Automation Objekten bin ich nicht weiter gekommen...ich will aber nicht ausschliessen, dass ich etwas übersehen habe.

Mein Dataport ist wirklich sehr spezifisch, deshalb habe ich mal die wichtigsten Zeilen rausgenommen. Dazu gibt es noch eine mögliche kleine Beispiel FDF-Datei (findet man aber auch über google)

FDF-Format

%FDF-1.2
1 0 obj <<
/FDF << /Fields [
<< /V (Hans)/T (Vorname)>>
<< /V (Berger)/T (Nachname)>>
]/F (C:\Vorlage.pdf)>>
>>
endobj
trailer
<< /Root 1 0 R>>
%%EOF


Mein C/AL Code:
Code:

CurrDataport.FILENAME := 'c:\Content.fdf';
CurrFile.CREATEOUTSTREAM(StreamOutObj);
StreamOutObj.WRITETEXT('%FDF-1.2');
StreamOutObj.WRITETEXT();
StreamOutObj.WRITETEXT('1 0 obj');
StreamOutObj.WRITETEXT();
StreamOutObj.WRITETEXT('<< ');
StreamOutObj.WRITETEXT();
StreamOutObj.WRITETEXT('/FDF << /Fields [');
StreamOutObj.WRITETEXT(' << /V (Hans)/T (Vorname)>> << /V (Berger)/T (Nachname)>> ');
StreamOutObj.WRITETEXT(']/F (C:\Vorlage.pdf) >>');
StreamOutObj.WRITETEXT();
StreamOutObj.WRITETEXT(' >>');
StreamOutObj.WRITETEXT();
StreamOutObj.WRITETEXT('endobj');
StreamOutObj.WRITETEXT();
StreamOutObj.WRITETEXT('trailer');
StreamOutObj.WRITETEXT();
StreamOutObj.WRITETEXT('<< /Root 1 0 R');
StreamOutObj.WRITETEXT('>>');
StreamOutObj.WRITETEXT();
StreamOutObj.WRITETEXT('%%EOF');

so was gibt es schon ...

23. April 2007 16:46

Hallo Joker!

In dem Report Objekt ID 11110 (4.00.03 DACH) findest du die Österreichische Umsatzsteuer-Voranmeldung. In dieser wird genau das gemacht was du hier vorhast.

Du kannst ein PDF angeben dann einen Speicherpfad für das FDF nach der Erstellung des FDF wirst du gefragt ob du das PDF mit den FDF Daten ansehen willst.

Muste da schon mehrmals was dran drehen und hab mir den Code angesehen und muss sagen das ist sehr einfach und verständlich wie du das machen must.

Ich hoffe ich konnte dir helfen.

Schöne Grüße aus Österreich

Christian F.

23. April 2007 17:29

Hallo froewis,

genau das hab ich gesucht. Aber mit meiner Lösung bin ich ja nicht weit weg...schade nur um die vergeudetete Zeit :cry:
Trotzdem vielen Dank für en Tipp.

Gruß
Joker