AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

PDF Printer Name vom Ausgabefile

Ein Thema von juniorA · begonnen am 10. Mai 2021 · letzter Beitrag vom 12. Mai 2021
Antwort Antwort
Seite 1 von 2  1 2      
juniorA

Registriert seit: 14. Sep 2011
112 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

PDF Printer Name vom Ausgabefile

  Alt 10. Mai 2021, 17:47
Besteht die Chance beim Drucken über einen PDF Drucker an den Namen (mit Pfad) des Ausgabefiles zu kommen, bzw. diesen schon vorher zu setzen?
  Mit Zitat antworten Zitat
Incocnito

Registriert seit: 28. Nov 2016
213 Beiträge
 
#2

AW: PDF Printer Name vom Ausgabefile

  Alt 11. Mai 2021, 07:26
Hi,

das kommt natürlich immer auf den PDF-Drucker an.
Wir hatten (weit vor der einführung des Standard-PDF-Druckers von Windows) eDocPrintPro eingesetzt,
wodurch wir auch eigene "Drucker" registrieren konnten. Das war ganz nützlich, weil man über die
Registry sagen konnte in welchem Verzeichnis ein Drucker speichern soll und es gab keine
Aufforderung an den Benutzer sich ein Verzeichnis und einen Dateinamen zu überlegen.
Leider weiß ich nicht, wie komplex jetzt das Lizenzsystem von eDocPrintPro (geworden) ist,
oder ob es das überhaubt noch gibt.
Vielleicht kann dir jemand anderes helfen, wenn du dein Problem etwas detailierter beschreibst.
Wozu brauchst du das? Vielleicht gibt es andere Wege.
Bist du an einen speziellen Druckertreiber gebunden? Vielleicht kennt sich damit jemand aus.

Liebe Grüße
Incocnito
  Mit Zitat antworten Zitat
juniorA

Registriert seit: 14. Sep 2011
112 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: PDF Printer Name vom Ausgabefile

  Alt 11. Mai 2021, 08:44
Welches Problem habe ich konkret.
Ich habe eine Funktion mit der Bilder an den Drucker ausgeben will.
Wenn ich den Drucken mit Printer.BeginDoc starte, meldet sich der Dialog meines Standarddrucker.
In diesem Fall ist es Microsoft Print to PDF.
Wie bekomme ich zum einen den Pad und den Dateinamen wo die Druckausgabe hin gehen schon voreingestellt und
wie bekomme ich im Nachgang den Pfad und den Dateinamen ausgelesen.
So wie es aussieht, scheint Windows sich das ja zu merken, denn wenn ich das nächste Mal den Dialog aufrufe, stehen da ja die letzten Einstellungen. Auf welche Variablen muss ich da zu greifen???.
Angehängte Grafiken
Dateityp: jpg drucker.jpg (76,0 KB, 21x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.275 Beiträge
 
Delphi 12 Athens
 
#4

AW: PDF Printer Name vom Ausgabefile

  Alt 11. Mai 2021, 09:27
Du kannst in .Fielename vor dem Execute auch etwas reinschreiben. (mit oder ohne Pfad)


[edit]
Mist, das ist ja kein Dialog vom Programm.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (11. Mai 2021 um 09:49 Uhr)
  Mit Zitat antworten Zitat
Incocnito

Registriert seit: 28. Nov 2016
213 Beiträge
 
#5

AW: PDF Printer Name vom Ausgabefile

  Alt 11. Mai 2021, 09:39
Ich befürchte nur, dass dann der Anwender das trotzdem noch ändern kann,
was ihm dann ja wieder nicht hilft.
Ich weiß nicht, ob man den zuletzt verwendeten Pfad/Dateinamen aus Windows auslesen kann.
Wäre für mich dann aber sowieso eher Quick-and-Dirty ...
Kann man FastReport nicht kostenlos nutzen? Wie sieht das Lizenztechnisch aus?
Der hat doch sicher auch einen PDF-Export. Dann wird der Anwender gar nicht mehr gefragt.
Vielleicht ist das ein Ansatz.

LG Incocnito
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.275 Beiträge
 
Delphi 12 Athens
 
#6

AW: PDF Printer Name vom Ausgabefile

  Alt 11. Mai 2021, 09:50
Mist, das war ja kein "eigener" Dialog.

Aber irgendwie kann man oftmals dennoch den AusgabePfad übergeben. (hängt vom Treiber/Software ab)


Versuch mal einen Dateinamen+Pfad in den Title des Druckauftrags zu schreiben.


Systemverwaltung > Eigenschaften des Druckers, da kann man oft Ausgabepfad und Muster für Dateiname vorgeben.
Wird man bestimmt auch irgendwo in der Registry vorher ändern können.

Und mindestens für "MS Print to PDF" gibt es wohl auch paar Lösungen.
Bei Google suchenpdf-printer filename



Jo, oder eine Report- bzw. PDF-Komponente und dann programmintern.
Wir machen das über FastReport,
bzw. nur Bild(er) in PDF mit ImageEn.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (11. Mai 2021 um 09:57 Uhr)
  Mit Zitat antworten Zitat
juniorA

Registriert seit: 14. Sep 2011
112 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

AW: PDF Printer Name vom Ausgabefile

  Alt 11. Mai 2021, 10:55
Werde leider nicht so glücklich mit den angegeben Link.
Wenn ich den Druckdialog starte, müssen ja irgendwoher die Voreinstellungen kommen. Es sind ja immer die letzten Einstellungen. Wenn alle Stränge reißen, besteht dann nicht die Möglichkeit automatisch ein PDF zu erstellen und dieses im Nachgang dann über einen eigen Dialog umzubenennen. Gibt es dazu einen PDF-Drucker?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.275 Beiträge
 
Delphi 12 Athens
 
#8

AW: PDF Printer Name vom Ausgabefile

  Alt 11. Mai 2021, 12:45
Jo, oder eine Report- bzw. PDF-Komponente und dann programmintern.
Wir machen das über FastReport,
bzw. nur Bild(er) in PDF mit ImageEn.
?


Bei Google suchendelphi pdf komponente
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
746 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: PDF Printer Name vom Ausgabefile

  Alt 11. Mai 2021, 13:59
Welches Problem habe ich konkret.
Ich habe eine Funktion mit der Bilder an den Drucker ausgeben will.
Wenn ich den Drucken mit Printer.BeginDoc starte, meldet sich der Dialog meines Standarddrucker.
In diesem Fall ist es Microsoft Print to PDF.
Wie bekomme ich zum einen den Pad und den Dateinamen wo die Druckausgabe hin gehen schon voreingestellt und
wie bekomme ich im Nachgang den Pfad und den Dateinamen ausgelesen.
So wie es aussieht, scheint Windows sich das ja zu merken, denn wenn ich das nächste Mal den Dialog aufrufe, stehen da ja die letzten Einstellungen. Auf welche Variablen muss ich da zu greifen???.
Wenn ich dich richtig verstehe, willst du Bilder als PDF drucken und dabei direkt in deinem Programm den Filenamen des PDFs und den Drucker festlegen ohne dass der Benutzer Dialoge (Drucker/Speichern) angezeigt erhält.

Das Beispiel von stackoverflow (Code unten rein kopiert, damit dieser nicht verloren geht, wenn stackoverflow eingestellt werden sollte) hilft dir nicht?

Drucker festlegen, Zielfile festlegen und dann mit Begindoc loslegen...(Code unten)
Bei meinem Windows 10.0.19043.964 wird so kein Dialog angezeigt - und das Speichern funktioniert.

Delphi-Quellcode:
procedure TForm89.Button1Click(Sender: TObject);
var
    PrtIndex : Integer;
    DeviceMode : THandle;
    Device,
    Driver,
    Port : array [0..255] of Char;
begin
    // Warning: The printer name is case sensitive
    PrtIndex := Printer.Printers.IndexOf('Microsoft Print to PDF');
    if PrtIndex < 0 then
        raise Exception.Create('Printer not found');
    Printer.PrinterIndex := PrtIndex;
    Printer.GetPrinter(Device, Driver, Port, DeviceMode);
    Printer.SetPrinter(Device, Driver, 'C:\Users\micha\Desktop\TestPrintToPdf.pdf', 0);
    Printer.BeginDoc;
    Printer.Canvas.TextOut(100, 100, 'Hallo delphipraxis.net');
    Printer.EndDoc;
end;
Michael Gasser

Geändert von Michael II (11. Mai 2021 um 14:05 Uhr)
  Mit Zitat antworten Zitat
bcvs

Registriert seit: 16. Jun 2011
677 Beiträge
 
Delphi 12 Athens
 
#10

AW: PDF Printer Name vom Ausgabefile

  Alt 11. Mai 2021, 14:50
Zitat:
Ich habe eine Funktion mit der Bilder an den Drucker ausgeben will.
Oder schau dir mal SynPDF an:
https://github.com/synopse/SynPDF

Damit kannst du auf den Canvas des PDFs schreiben und malen und direkt ein PDF erzeugen, ohne irgendwelche Druckertreiber.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz