Seite 1 von 1

Printer_Lib - Fragen

Verfasst: 12.11.2015 18:17
von Amor_2001
Hallo zusammen,
ich möchte in einem Programm dem Anwender die Möglichkeit geben eine Datei zu drucken.
Hierbei soll er in einem eigenen Menü die Möglichkeit haben zu wählen, ob schwarz/weiß oder Farbe und ob A3 oder A4.
Das zu druckende Dokument soll dann auf die entsprechende Papiergröße skaliert werden.

Hier ein Testbeispiel:

Code: Alles auswählen

Procedure Print_Trennblatt(zeile1$,zeile2$)
  Print_OpenPrinter(Print_GetDefaultPrinter(),"PAPERSIZE="+Str(#DMPAPER_A4)+",ORIENTATION="+Str(#DMORIENT_LANDSCAPE)+",COLOR="+Str(#DMCOLOR_COLOR))
  Print_StartPrinting("TB:")
  Print_SetTextColor(#Red)
  Print_SetTextAlign(#TA_CENTER)
  Print_SetTextAlign(#VTA_CENTER)
  Print_Font("Arial",60, #PB_Font_Bold)
  Print_Text(145,60,zeile1$)
  Print_Text(145,100,zeile2$)
  Print_StopPrinting()
EndProcedure

Print_Trennblatt("Zeile1", "Zeile2")
Die Steuerung A3 oder A4 funktioniert problemlos, aber die Steuerung ob Farbe oder sw funktioniert nicht. Der Drucker druckt immer mit dem in der Standardeinstellung vorgenommenen Wert.
Auch für die automatische Skalierung fehlt mir eine Idee.

Wäre für Tipps oder Code's sehr dankbar

Re: Printer_Lib - Fragen

Verfasst: 12.11.2015 18:36
von ts-soft
Ich kenne die Printer_Lib nicht, aber für Drucksachen bietet sich doch die neue VectorDrawing Lib an,
die es seit PB5.40 gibt, an :)

Re: Printer_Lib - Fragen

Verfasst: 12.11.2015 18:50
von Amor_2001
Habe noch nicht mit PB 5.40 gearbeitet. Kenne leider diese LIB nicht. Hättest du damit einen Lösungsansatz?

Re: Printer_Lib - Fragen

Verfasst: 12.11.2015 19:12
von ts-soft
PureBasic VectorDrawing hat geschrieben:Die VectorDrawing Bibliothek bietet auflösungsunabhängige, hoch-qualitative Zeichenoperationen für das Anzeigen, die Bild-Manipulation oder für das Drucken. Anders als die 2DDrawing Bibliothek können die Funktionen in dieser Bibliothek in einer Vielzahl von Maßeinheiten operieren und erlauben die gewünschten Koordinaten-Umwandlungen. Dies ermöglicht das einfache Programmieren von Zeichenoperationen, welche unabhängig von der aktuellen Ausgabeauflösung sind und einfach in verschiedene Größen skaliert werden können. Die VectorDrawing Bibliothek unterstützt Alpha-Transparenz bei all ihren Operationen.

Re: Printer_Lib - Fragen

Verfasst: 16.11.2015 09:34
von Amor_2001
Ich glaube, ich kann da nicht mehr mithalten. Das klingt für mich ganz schön kompliziert für das was ich eigentlich machen wollte.
Kurz umrissen: Der Benutzer bekommt ein PDF als Vorschau angezeigt. Wenn er es drucken möchte, soll er in einem Menü wählöen A4/A3.....sw/farbe. dann PDF drucken.
Hatte gehofft, dass ich mit nem Tipp das schnell hinbekomme. Nun sieht es aber wirklich kompliziert für mich aus.

Re: Printer_Lib - Fragen

Verfasst: 16.11.2015 11:16
von NicTheQuick
Woher bekommst du denn das PDF und wie generierst du die Vorschau? Und wieso reicht ein normaler PDF-Viewer nicht?

Re: Printer_Lib - Fragen

Verfasst: 17.11.2015 10:08
von Amor_2001
Die PDFe werden von einem anderen System bereitgestellt, dieses generiert auch eine runtergerechnete JPG für die Voranzeige. Diese zeige ich dann an.
Ich wollte auf externe Browser oder DLLs verzichten, damit alles aus einem Guss kommt.
Das eigentliche PDF sollte dann wie schon beschrieben mit den eingestellten Optionen zum Drucker geschickt werden.

Re: Printer_Lib - Fragen

Verfasst: 17.11.2015 11:08
von NicTheQuick
Okay, dafür brauchst du dann natürlich einen PDF-Renderer, der das PDF öffnen, rendert und dann zum Drucker schickt. Um das in dein eigenes Programm zu integrieren, wird das bestimmt noch eine Menge Arbeit, zumal zu erst einmal eine Bibliothek finden musst, die das kann und die du mit Purebasic ansprechen kannst.

Re: Printer_Lib - Fragen

Verfasst: 17.11.2015 14:08
von Amor_2001
Das hatte ich nach den letzten Antworten schon befürchtet. Ein LIB habe ich noch nicht gefunden. Dann muss ich wohl nach einer Alternative suchen, oder?

Re: Printer_Lib - Fragen

Verfasst: 21.11.2015 23:45
von kunstlust
Soweit die Drucker PostScript können, ist der Direktdruck möglich. Mit der Hilfe von @PJL Kommandos ist es Problemlos möglich Kopie und Farbe zu steuern.