PDF Datei drucken

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: PDF Datei drucken

Beitrag von AUGE_OHR »

Jan hat geschrieben: Di, 17. Jul 2018 11:32Du hast es nicht gelesen.
schon wieder unterstellst du mir etwas ... WAS SOLL DAS :angry4:

ich habe schlichtweg noch mehr Fragen die ich von Stefan beantwortet haben möchte :!:
gruss by OHR
Jimmy
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: PDF Datei drucken

Beitrag von Jan »

Jimmy,

ich unterstelle Dir gar nichts. ich schreibe, was passiert ist. Wie geschrieben: Stefan hat es gesagt. Ich habe Dich 2x direkt auf diesen Umstand angesprochen. Du bist niemals auch nur mit einem Wort darauf eingegangen. Im Gegenteil, hast einen Weg gepostet, der zwar funktioniert (ich verwende den schon länger), der aber schon vorher von jemandem Anderen gepostet und schon da von Stefan aus besagtem Grund abgelehnt worden war.

Also: Keine Unterstellung. Sondern Tatsachen.

Und jetzt bitte wieder zum Thema des Threads. Das ist Dir ja immer sehr wichtig. und wäre hier auch extrem zielführend.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
mini990
1000 working lines a day
1000 working lines a day
Beiträge: 592
Registriert: Sa, 28. Jan 2006 9:44
Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.
Danksagung erhalten: 1 Mal

Re: PDF Datei drucken

Beitrag von mini990 »

Sumatra PDF gibt einen Errorlevel zurück der abgefragt werden kann.

Danke

Gruß Stefan
Der Grund für diese Geschichte:
ich bedrucke vorgegebene Formulare. bei diesen muss ich Druckpositionen exakt einhalten.
Bei Listen etc. ist mir des wurscht, da benutze ich den Standard PDf-Drucker des Systems.
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: PDF Datei drucken

Beitrag von AUGE_OHR »

mini990 hat geschrieben: Do, 12. Jul 2018 13:35 Mit einem Standardprogramm und Shellexecute mache ich es momentan.
Nur wie gesagt...... Der typische Anwender verstellt die Vorgaben (x Seiten pro Blatt, zentrierte Ausgabe etc.)
Shellexecute greift ja auf den "default" Drucker zu ... wenn du ihm nichts anderes sagst.
die "Vorgaben" sind ja nun die einzelnen Propertys des Drucker und dort stelle ich x Seiten pro Blatt etc. ein.

... oder verstehe ICH das immer noch verkehrt :?:
gruss by OHR
Jimmy
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: PDF Datei drucken

Beitrag von brandelh »

Sumatra.EXE kann man mit RunShell() starten, die PDF drucken, ohne dass jemand sieht dass es überhaupt aktiv war.
Zudem scheint es einen Rückgabewert für Fehlermeldungen zu haben, perfekt, wenn man QuickPDF etc. nicht hat.

Ob man einen Drucker vorgeben kann, weiß ich jetzt nicht. Natürlich ist die EXE aber unabhängig von der Xbase++ und der Windows Version (ab NT glaube ich ?)
Gruß
Hubert
Benutzeravatar
mini990
1000 working lines a day
1000 working lines a day
Beiträge: 592
Registriert: Sa, 28. Jan 2006 9:44
Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.
Danksagung erhalten: 1 Mal

Re: PDF Datei drucken

Beitrag von mini990 »

@ Jimmy:
Die Anwendung läuft auf Rechnern mit XP, Win 7 und 10
manipulationssicher heißt daß der Anwender den Ausdruck nicht verändern kann ( z.B. zentrieren, einpassen etc.)

Gruß Stefan
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: PDF Datei drucken

Beitrag von AUGE_OHR »

mini990 hat geschrieben: Di, 17. Jul 2018 19:58Die Anwendung läuft auf Rechnern mit XP, Win 7 und 10
OK, auf älteren OS() braucht man einen 3-PP Reader (Encoder) mit dem man ein PDF ausdrucken kann.
mini990 hat geschrieben:manipulationssicher heißt daß der Anwender den Ausdruck nicht verändern kann ( z.B. zentrieren, einpassen etc.)
"Ausdruck" heisst für mich Papier, richtig :?:
z.B. zentrieren, einpassen etc. auf dem Papier, richtig :?:

angenommen ich will "Millimeter-Papier" ausdrucken was auf jedem Drucker funktionieren soll.
dazu muss "der" Drucker nach deinen Angaben eingestellt sein bevor ein Ausdruck erfolgt.

auch wenn man nur 1 x Drucker hat sollte man beim drucken aus einer Xbase++ App den Drucker "konfigurieren"
bei "Millimeter-Papier" brauche ich z.b. die richtige Druckauflösungen oder den richtigen Papier Schacht.

dafür ist nun XbpPrinter() zuständig.
mit XbpPrinter():list() bekommst man ein Array mit Drucker "Namen" zurück.
zum "konfigurieren" des Drucker benötigt man auch einen XbpPresSpace() s.h XbpPrinter() / FUNCTION PrinterPS()

für "Millimeter-Papier" würde ich die default Einstellungen ändern in

Code: Alles auswählen

   XbpPresSpace():mode := XBPPS_MODE_HIGH_PRECISION
   XbpPresSpace():create([<oDevice>],[<aPageSize>], GRA_PU_HIMETRIC)
wie schon gesagt muss man jetzt nicht drucken, es ging nur um das "konfigurieren" des Druckers.

wenn man mehrere Drucker hat können diese beiden API Function helfen.

Code: Alles auswählen

DLLFUNCTION SetDefaultPrinterA(pPrinter) USING OSAPI FROM WINSPOOL.DRV   // thanks Phil Ide
DLLFUNCTION GetDefaultPrinterA(@pPrinter,@pwdBufferSize) USING OSAPI FROM WINSPOOL.DRV  // thanks Phil Ide
ich würde also so vorgehen

Code: Alles auswählen

   GetDefaultPrinterA() -> OldPrinter
   XbpPrinter()-> MyPrinter
   SetDefaultPrinterA(MyPrinter)
   ShellExecuteA(,"print",,,,) // oder was auch immer
   SetDefaultPrinterA(OldPrinter)
gruss by OHR
Jimmy
Benutzeravatar
mini990
1000 working lines a day
1000 working lines a day
Beiträge: 592
Registriert: Sa, 28. Jan 2006 9:44
Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.
Danksagung erhalten: 1 Mal

Re: PDF Datei drucken

Beitrag von mini990 »

Code: Alles auswählen

   GetDefaultPrinterA() -> OldPrinter
   XbpPrinter()-> MyPrinter
   SetDefaultPrinterA(MyPrinter)
   ShellExecuteA(,"print",,,,) // oder was auch immer
   SetDefaultPrinterA(OldPrinter)
So mache ich es bereits...
Danke

Gruß Stefan
Antworten