Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi [Drucken] Buffergröße reduzieren (https://www.delphipraxis.net/126559-%5Bdrucken%5D-buffergroesse-reduzieren.html)

xZise 28. Dez 2008 10:53


[Drucken] Buffergröße reduzieren
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo ihr,

wie kann man die Buffergröße bei 12 Seiten reduzieren? Wir drucken nur "Barcodes" mit etwas Text, aber der PDF-Drucker hat so 1,1 GB Daten zu verarbeiten. Ich dachte da zum einem statt 32 bit nur 8 oder 1 bit zu nehmen. Hätten wir zwar kein Hinting, aber SO wichtig ist das Hinting nicht.

In wie weit ich Code raus geben kann muss ich nochmal gucken, da es nicht direkt "mein" Code ist (Wir haben uns in Gruppen aufgeteilt, und ich bin nicht in der Gruppe die Druckt, aber ich bin hier angemeldet ^^ ), aber die entsprechenden Personen sind kontaktiert.

[edit=0]So ich habe das Okay von den entsprechenden Personen bekommen. Das Ergebnis ist im Anhang![/edit]

MfG
xZise

alzaimar 28. Dez 2008 17:57

Re: [Drucken] Buffergröße reduzieren
 
Welche Buffergröße?

xZise 28. Dez 2008 20:08

Re: [Drucken] Buffergröße reduzieren
 
Naja die Größe der Daten die der Drucker bekommt.

MfG
xZise

Sunlight7 28. Dez 2008 23:54

Re: [Drucken] Buffergröße reduzieren
 
Ggf. mit weniger DPI drucken.

zB.
bei 720 DPI auf A4 bei 32 Bits ~ 123,06 MB / Seite
bei 360 DPI auf A4 bei 32 Bits ~ 47,79 MB / Seite

Wobei 32 Bits wohl unnötig wären.

xZise 29. Dez 2008 00:02

Re: [Drucken] Buffergröße reduzieren
 
Zitat:

Zitat von Sunlight7
Wobei 32 Bits wohl unnötig wären.

Genau. Ich mein Graystufen (also 8 Bit), wäre ja schon eine Verringerung um Faktor 4. Aber wie stellt man das ein?

Zu den DPI: Hängen die vom Drucker ab, oder kann man da selber auch was drehen?

MfG
xZise

Sunlight7 29. Dez 2008 01:19

Re: [Drucken] Buffergröße reduzieren
 
Scheinbar kennen Drucker nur Monochrome oder Farbe, zumindest steht in Delphi-Referenz durchsuchenDeviceCapabilities nicht mehr als
Zitat:

dmColor

Switches between color and monochrome on color printers. Following are the possible values:

DMCOLOR_COLOR
DMCOLOR_MONOCHROME
Und egal was ich dem Drucker einstelle, es zeigt immer 24 Bit an.

Delphi-Quellcode:
   var cd:String;
       th:Integer;
begin
   If not PrintDialog1.Execute then
      Exit;

   Printer.BeginDoc;

   Case GetDeviceCaps(Printer.Canvas.Handle, BITSPIXEL) of
       1: cd:='Monochrome';
       4: cd:='16 Farben';
       8: cd:='256 Farben';
      16: cd:='16 Bit High Color';
      24: cd:='24 Bit True Color';
      32: cd:='32 Bit RGBA Color';
      else cd:='Öhm?';
   end;

   Printer.Canvas.Font.Color:=0;
   th:=Printer.Canvas.TextHeight('Bla bla bla');
   Printer.Canvas.TextOut(0, 0, 'Das ist nur ein Test');
   Printer.Canvas.TextOut(0, th, Format('Auflösung: %d x %d', [Printer.PageWidth, Printer.PageHeight]));
   Printer.Canvas.TextOut(0, th * 2, 'Farbtiefe: '+cd);

   Printer.EndDoc;

Was die DPI angeht, das kannst Du per TPrintDialog bzw. TPrintSetupDialog einstellen und ist bei jedem Drucker anders.
Konnte man bei meinm alter Drucker 180, 360 & 720 DPI einstellen heißt es beim neuem dann; Entwurf, Normal, Foto & Optimales Foto.
Wobei es sich dann auch um 180, 360, 720 & 1440 DPI dreht und es mich bei 180 DPI nervt, weil er da immer in den Sparmodus schaltet und kaum sichtbar druckt :evil:

alzaimar 29. Dez 2008 06:57

Re: [Drucken] Buffergröße reduzieren
 
Schon mal FastReport, FreeReport, oder Quickreport probiert? Ich drucke ständig Barcodes mit FastReport auf einem Laserdrucker aus und scher mich nicht darum.

Weiteres (Riesen-) FauxPas: Du malst einen Barcode und verzerrst ihn dann (Stretchdraw). Anschließend sind die Linien vermutlich nicht mehr gleich dick (+/- 2pixel). Bei hohen Auflösungen kann das egal sein, aber bei kleinen DPI dürfte/könnte der Scanner dann Probleme bekommen. Du solltest nur um ganzzahlige Faktoren skalieren, damit dieses Problem nicht auftritt. Auch könne es nicht schaden, direkt auf den Druckercanvas zu zeichnen, wobei vorher die Strichdicke(n) einmalig berechnet werden. Dann ist der Barcode vielleicht etwas kürzer als geplant, dafür aber pixelgenau. Ich vermute, dass sich dann auch das Speicherproblem löst.

Mein Tipp: Investiert ein paar Euronen in FastReport. Das ist allemal billiger, als sich tagelang mit diesem Problem rumzuärgern. Dort gibt es auch eine Barcode-Komponente, die diverse Codes pixelgenau ausdruckt.

Edit: PDF kennt zudem diverse Auflösungen, auch hier könntet ihr drehen. Wenn ihr jedoch ein PDF später ausdruckt, dann müssen die Barcodes schon ziemlich groß sein (bzw. dürfen nicht zu klein sein), damit sie problemlos gelesen werden können.

Letzte Frage: Ist das PDF 1.2GB groß, oder wie?

xZise 29. Dez 2008 11:18

Re: [Drucken] Buffergröße reduzieren
 
Hallo alzaimar,

Zitat:

Zitat von alzaimar
Schon mal FastReport, FreeReport, oder Quickreport probiert? Ich drucke ständig Barcodes mit FastReport auf einem Laserdrucker aus und scher mich nicht darum.

[...]

Mein Tipp: Investiert ein paar Euronen in FastReport. Das ist allemal billiger, als sich tagelang mit diesem Problem rumzuärgern. Dort gibt es auch eine Barcode-Komponente, die diverse Codes pixelgenau ausdruckt.

Naja da müsste man gucken.

Zitat:

Zitat von alzaimar
[...]Weiteres (Riesen-) FauxPas: Du malst einen Barcode und verzerrst ihn dann (Stretchdraw). Anschließend sind die Linien vermutlich nicht mehr gleich dick (+/- 2pixel). Bei hohen Auflösungen kann das egal sein, aber bei kleinen DPI dürfte/könnte der Scanner dann Probleme bekommen. Du solltest nur um ganzzahlige Faktoren skalieren, damit dieses Problem nicht auftritt. Auch könne es nicht schaden, direkt auf den Druckercanvas zu zeichnen, wobei vorher die Strichdicke(n) einmalig berechnet werden. Dann ist der Barcode vielleicht etwas kürzer als geplant, dafür aber pixelgenau. Ich vermute, dass sich dann auch das Speicherproblem löst.[...]

Zur Skalierung müsste ich mir den Code angucken (wobei ich sie extra drauf hingewiesen hatte ganzzahlige Faktoren zu verwenden). Und warum sie sich weigern direkt auf dem Canvas zu Zeichnen ist mir auch schleierhaft (imho bräuchte man noch nicht mal die Barcode-Klasse).

Zitat:

Zitat von alzaimar
Edit: PDF kennt zudem diverse Auflösungen, auch hier könntet ihr drehen. Wenn ihr jedoch ein PDF später ausdruckt, dann müssen die Barcodes schon ziemlich groß sein (bzw. dürfen nicht zu klein sein), damit sie problemlos gelesen werden können.´

Ne ich drucke nur auf PDF, weil der Scanner nicht bei mir rumliegt und ich kein Papier verschwenden will.

Zitat:

Zitat von alzaimar
Letzte Frage: Ist das PDF 1.2GB groß, oder wie?

Nein knapp 12 MiB... Möglicherweise wegen Komprimierungen?

MfG
xZise

Oreaden 29. Dez 2008 11:40

Re: [Drucken] Buffergröße reduzieren
 
Sag mal XZISE, wie Groß ist denn dein BarCodeEtikett (BCE)? Wirklich DIN A4 oder vielleicht doch etwas kleiner. Falls dein BCE nur einen Bruchteil deiner A4 Seite ausmacht, so würdest du alleine schon viel sparen, wenn Du auf die tatsächliche BCE Seitengröße drucken würdest, da ansonsten die gesamte A4 Seite auf den Drucker übertragen wird. So über dem Daumen gepeilt sollte das wohl eine Verschwendung von mehreren 1000% sein.

In deinem Profil sehe ich, dass Du D2009Prof einsetzt, hier ist doch RAVE mit bei, und bei RAVE sind doch die Barcodekomponenten mit bei. Die könntest Du doch Problemlos dafür einsetzen, entweder Formular- oder Codebased.

Schöne Grüße
OREADEN

xZise 29. Dez 2008 12:37

Re: [Drucken] Buffergröße reduzieren
 
Hi Oreaden,
ICH verwende Delphi 2009.

Und das BCE ist A4.Width div 4 und A4.Height div 11 groß, aber dafür drucken wir 44 Barcodes/BCEs auf eine A4 Seite.

MfG
xZise


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:30 Uhr.
Seite 1 von 2  1 2      

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