Autor |
Beitrag |
C++arsten
      
Beiträge: 79
|
Verfasst: Fr 22.07.11 09:53
Hallo,
ich starte mit Printer.BeginDoc, dann wird der Drucker "gefüllt", es endet mit Printer.EndDoc. Drucken funktioniert, sogar mit xps-Drucker. Ich möchte nun aber die Datei nicht drucken, sondern als pdf speichern. Hat jemand dazu einen Rat? Danke!
MfG
Carsten
|
|
uko
      
Beiträge: 220
Erhaltene Danke: 1
Win XP, VISTA, WIndows 7
Delphi 2007/2010 Prof
|
Verfasst: Fr 22.07.11 11:28
virtuellen PDF Drucker installieren und auf den drucken (z.B. FreePDF). Oder mal die diversen PDF Komponenten (QuickPDF, Gnostice, ...) ausprobieren.
|
|
C++arsten 
      
Beiträge: 79
|
Verfasst: Sa 23.07.11 09:52
ich probiers mal und melde mich, danke.
|
|
Kawa
      
Beiträge: 45
Erhaltene Danke: 1
|
Verfasst: Sa 23.07.11 18:00
Hallo,
aus Memo oder Richedit Datei willst du als PDF Speichern!
|
|
C++arsten 
      
Beiträge: 79
|
Verfasst: So 24.07.11 09:58
Hallo, pdfcreator scheint das Problem zu lösen.
Ich melde mich, wenn das Problem abschließend gelöst ist.
MfG Carsten
|
|
C++arsten 
      
Beiträge: 79
|
Verfasst: So 24.07.11 17:06
pdfcreator läuft. Danke erst einmal für die Antworten.
Nun habe ich noch eine Frage. Das Drucken soll im Hintergrund erfolgen, d. h. der user soll nicht über den Druckerdialog gehen müssen. Mir würde ein Codeschnipsel reichen, wie ich eine Seite mehrfach als pdf in einem gegebenen Verzeichnis (soll programmseitig festgelegt werden) abspeichern kann.
Hat jemand einen Rat?
|
|
Kawa
      
Beiträge: 45
Erhaltene Danke: 1
|
Verfasst: So 24.07.11 22:42
man kann auch so lösen ohne Komponente und Drucker Dialog!
die Units einfügen in "uses"
Delphi-Quelltext 1:
| SynCommons, SynPdf, SQLite3Pages,Fastmm4 |
direkt Speichern
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| procedure TForm1.Button1Click(Sender: TObject); begin with TGDIPages.Create(self) do try BeginDoc; Font.Size := 9; AppendRichEdit(RichEdit.Handle); EndDoc;
ExportPDF(ChangeFileExt(paramstr(0),'test.pdf'),true,false); finally Free; end; end; |
---------------------------
mit SaveDialog Speichern
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26:
| procedure TForm1.Button2Click(Sender: TObject); var dateiname:String; BEGIN if SaveDialog1.Execute then begin with TGDIPages.Create(self) do try BeginDoc; Font.Size := 9; AppendRichEdit(RichEdit.Handle); EndDoc;
if TFileName(SaveDialog1.FileName) = '*.pdf' then case SaveDialog1.FilterIndex of 0: dateiName := ChangeFileExt(SaveDialog1.FileName,'.pdf'); end else SaveDialog1.FileName :=ChangeFileExt(SaveDialog1.FileName,'.pdf'); dateiName :=ChangeFileExt(SaveDialog1.FileName,'.pdf'); ExportPDF(TFileName(SaveDialog1.FileName),true,false); finally Free; end; END; END; |
Moderiert von Narses: Code- durch Delphi-Tags ersetzt
|
|
C++arsten 
      
Beiträge: 79
|
Verfasst: Mo 25.07.11 21:59
Hallo Kawa,
danke für die Antwort. Doch wo holst du denn das her: SynCommons, SynPdf, SQLite3Pages,Fastmm4?
|
|
Kawa
      
Beiträge: 45
Erhaltene Danke: 1
|
Verfasst: Mo 25.07.11 23:48
C++arsten hat folgendes geschrieben : | Hallo Kawa,
danke für die Antwort. Doch wo holst du denn das her: SynCommons, SynPdf, SQLite3Pages,Fastmm4? |
wenn ich schaffe gucke ich morgen (26.07.11) nach!
|
|
uko
      
Beiträge: 220
Erhaltene Danke: 1
Win XP, VISTA, WIndows 7
Delphi 2007/2010 Prof
|
Verfasst: Di 26.07.11 06:02
FastMM4 kannst Du erst mal vergessen (ist der Delphi Speichermanager), die beiden Syn... Units brauchst Du wohl: das sollte von SynopsePDF sein, die PDF Komponente, die in dem Code verwendet wird (nur so viel zum Thema "ohne Komponente"): blog.synopse.info/ca...s/Synopse-PDF-engine
SQLite3Pages stammt auch aus dem Synopse Umfeld. Mußt schauen, ob Du sie brauchst oder ob sie nicht schon bei der PDF Engine dabei ist.
|
|
Kawa
      
Beiträge: 45
Erhaltene Danke: 1
|
Verfasst: Di 26.07.11 21:59
ok,
gehe mal bitte die Seite: synopse.info/fossil/...9320457a69760e0b2789
dann " ZIP archive" (5mb) herunterladen!,da sind auch Beispiele drin.
Für diesen Beitrag haben gedankt: Blawen
|
|