Autor Beitrag
Mirja
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Fr 29.05.09 08:42 
Hallo zusammen,

wäre schön, wenn mir jemand bei der Lösung zu folgendem Problem helfen könnte:

Ich soll mit dem Developer Studio 2006 ein Programm schreiben, dass Einzelpdfs zu einem Sammelpdf zusammenfasst. Nachdem ich etwas gegoogled hatte, kam folgendes dabei heraus:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
   fs := TFileStream.Create(OutFileName, fmCreate or fmShareExclusive);

   for ......Schleife über alle einzufügenden pdfs
   begin
     if FileExists(FileName) then
     begin
       ss := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite) ;
       try  
         res := fs.CopyFrom(ss, 0);               
       finally
         ss.Free;
       end;
     end;   
   end;


Man kann dem Sammelpdf (OutFileName) zwar beim Wachsen zusehen, während die PDFs hinzugefügt werden, aber wenn man es öffnet, enthält es nur das erste PDF.
Die Einzelpdfs sind übrigens alle 3seitig (keine Ahnung, ob das eine Rolle spielt).

Vielleicht hat ja jemand von euch eine Idee. Würde mir wirklich sehr helfen.

Vielen Dank
Mirja
oki
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 40

Win XP
Delphi 2007 Prof
BeitragVerfasst: Fr 29.05.09 09:19 
Ich glaub nicht, dass du die PDF's einfach so hintereinander hängen kannst. Das sind ja alles einzelne komplette Files und keine Dateiinhalte. Ich hab sowas zwar auch noch nicht gemacht, aber ich glaube mal gelesen zu haben, dass es für Delphi eine freie Komponente/Unit für pdf's gibt.

Gruß oki

_________________
42
Mirja Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Fr 29.05.09 11:51 
Hallo oki,

danke für Deine Antwort.

Mit einer Unit oder Komponente wäre ich auch schon zufrieden. Leider kosten alle die ich finden konnte
Geld und da ich nichts ausgeben darf, fällt das flach :(

Hat sonst vielleicht noch jemand eine Idee?

Gruß
Mirja
Nersgatt
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1581
Erhaltene Danke: 279


Delphi 10 Seattle Prof.
BeitragVerfasst: Fr 29.05.09 12:43 
Wenn Du keine Komonente findest, dann wirst Du Dich wohl mit dem genauen Dateiformat auseinandersetzen müssen. Dann hast Du durchaus Arbeit.

_________________
Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
uko
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 220
Erhaltene Danke: 1

Win XP, VISTA, WIndows 7
Delphi 2007/2010 Prof
BeitragVerfasst: Fr 29.05.09 12:46 
Hallo Mirja,

also direkt mit Bordmitteln geht da gar nichts. Du brauchst schon externe Komponenten (wenn es direkt in den Code rein soll) oder Du installierst PDFTK (www.pdfhacks.com/pdftk/) und rufst das von Delphi auf mit den entsprechenden Parametern zum mergen. Bin mir aber nicht sicher, ob das auch bei passwortgeschützten Dokumenten funktioniert (und ob es rechtlich ok ist PDFTk zu Kunden mit auszuliefern).
Sich selbst in SPec von PDF für so was einzuarbeiten: das kostet mehr als so was zu kaufen!

Externe Komponenten: schau Dir mal QuickPDF an (www.quickpdflibrary.com/). Da ist wieder Bewegung reingekommen und so teuer sind die auch nicht (und wenn es ein komerzielles Programm wird, dann dürften ja ein paar hundert Doller keine Rolle spielen)

Grüße,
Uli
Mirja Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Mi 03.06.09 09:35 
Vielen Dank!

Die Idee mit pdftk war super!

Jetzt funktioniert alles so, wie es soll.

Gruß
Mirja