![]() |
Drucken in eine Datei
Hallo zusammen,
wenn ich einen Drucker auswähle, mit dem ich eine Datei erzeuge, quasi den Druckspool auf der Platte speichern möchte, erhalte ich eine Eingabeaufforderung, den Dateinamen einzugeben, wo sie gespeichert werden soll. Meine Frage habe ich die Möglichkeit dem Druckertreiber über einen Parameter, diesen Dateinamen mitzugeben? Bzw. Bietet TPrinter um aus Delphi zu drucken einen Eigenschaft, Methode oder ähnliches ??? Ich bin etwas am verzweifelen. Danke schon mal Gruß Funky |
Re: Drucken in eine Datei
da bin ich auch schon mal daran verzweifelt.
konnte zwar in eine datei speichern, habe es aber nicht geschafft, Windows irgendwie zu überreden, diese auch wieder auszudrucken. wenn du also eine Lösung bekommen hast, dann bitte hier posten. gruessle |
Re: Drucken in eine Datei
Hallo
probier mal
Code:
wenn ich micht recht erinnere muss der Drucker freigegeben sein und der Freigabename benutzt werden.
Copy %1 \\rechner\drucker /b
mfg wo |
Re: Drucken in eine Datei
der Parameter /b ist ne gute idee.
ich habs nämlich auch schon probiert mit dem copy, aber ohne /b. |
Re: Drucken in eine Datei
Zitat:
|
Re: Drucken in eine Datei
datei drucken -> ausdruck in datei umleiten...
sollte mit jeder windows-anwendung gehen, die auch druclen kann. manche druckertreiber unterstützen dieses feature zusätzlich auch. |
Re: Drucken in eine Datei
yo das weiss ich ja das ist ja mein eingangsproblem, ich möchte gerne als parameter den dateinamen mitgeben, damit das festern nicht mehr aufgeblendet wird, wo gespeichert werden soll
gruß Funky |
Re: Drucken in eine Datei
Zitat:
da hab ich dich wohl falsch verstanden... schau dir mal diesen link an: ![]() |
Re: Drucken in eine Datei
ja ne ist das gleiche problem, wenn ich den generic text only nehme, muss ich auch den dateinamen eingeben und den will ich über einen parameter (oder wie auch immer ) dynamisch mitgeben können. :?:
stay tuned Funky |
Re: Drucken in eine Datei
Im Grunde kann man bei StartDoc (API-Funktion) einen Dateinamen mit angeben. Das Original aus Printers.pas sieht so aus (hoffe es ist ok, wenn ich den SC poste):
Delphi-Quellcode:
Die benutzte TDocInfo-Struktur hat auch ein Feld lpszOutput (PChar). Wenn das gesetzt ist, dann erfolgt die Ausgabe in diese Datei.
procedure TPrinter.BeginDoc;
var DocInfo: TDocInfo; begin CheckPrinting(False); SetState(psHandleDC); Canvas.Refresh; TPrinterCanvas(Canvas).UpdateFont; FPrinting := True; FAborted := False; FPageNumber := 1; FillChar(DocInfo, SizeOf(DocInfo), 0); with DocInfo do begin cbSize := SizeOf(DocInfo); lpszDocName := PChar(Title); end; SetAbortProc(DC, AbortProc); StartDoc(DC, DocInfo); StartPage(DC); end; Ich hacke mal eben eine Erweiterung von Printers... Nicht so einfach ... theoretisch müsste man den gesamten SC in eine neue Unit kopieren und fast alles übernehmen ... das kann ich natürlich hier nicht posten (wg. Copyright). |
Re: Drucken in eine Datei
prima, dann werde ich das mal versuchen
danke :) stay tuned Funky |
Re: Drucken in eine Datei
Ggf. geht's so:
Delphi-Quellcode:
... und dann BeginDocWithFilename(Printer, 'C:\hallo.prn') aufrufen statt Printer.BeginDoc.
procedure BeginDocWithFilename(Printer: TPrinter; const Filename: string);
var DC: HDC; DocInfo: TDocInfo; begin if not Printer.Printing then Printer.BeginDoc; if Filename <> '' then begin DC := Printer.Handle; EndPage(DC); AbortDoc(DC); FillChar(DocInfo, SizeOf(DocInfo), 0); with DocInfo do begin cbSize := SizeOf(DocInfo); lpszDocName := PChar(Printer.Title); lpszOutput := PChar(Filename); end; StartDoc(DC, DocInfo); StartPage(DC); end; end; |
Re: Drucken in eine Datei
Liste der Anhänge anzeigen (Anzahl: 1)
Ich kram den Thread jetzt noch mal hoch 8)
Ich habe jetzt eine relativ allgemeingültige Lösung erstellt, die die API-Funktion StartDoc an drei unterschiedlichen Stellen abfangen kann (je nachdem, wie man es möchte). Dadurch kann man bei ALLEN Komponenten, also auch denen, die nicht das TPrinter-Objekt benutzen, direkt in eine Datei mit vorgegebenem Dateinamen drucken. Code (incl. Beispiel) ist angehängt, spätere Updates wird's ![]() |
Re: Drucken in eine Datei
@ volker
ja die unit ist ech super funktioniert echt gut !!! aber jetzt habe ich nochmal ne andere frage vielleicht weiss auch hier der ein oder andere rat und bitte icht mit dem kopf schütteln, wenn ich mich zu dösig anstelle ich möchte gerne ein Tif aus delphi drucken nur habe ich keinen blassen schimmer, wie ich das machen könnte hat jemand eine idee danke schon mal stay tuned Funky |
Re: Drucken in eine Datei
da hast du 2 möglichkeiten, entweder du beschäftigst dich mal ne weile mit bildkopremierungsverfahren und entwickelst seber eine anzeigekomponente für tifs oder du legst dir ein paar komoenenten zu die diese bilder anzeigen können ( z.b. LeadTools ).
mfg herm |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:16 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz