![]() |
[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 |
Re: [Drucken] Buffergröße reduzieren
Welche Buffergröße?
|
Re: [Drucken] Buffergröße reduzieren
Naja die Größe der Daten die der Drucker bekommt.
MfG xZise |
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. |
Re: [Drucken] Buffergröße reduzieren
Zitat:
Zu den DPI: Hängen die vom Drucker ab, oder kann man da selber auch was drehen? MfG xZise |
Re: [Drucken] Buffergröße reduzieren
Scheinbar kennen Drucker nur Monochrome oder Farbe, zumindest steht in
![]() Zitat:
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: |
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? |
Re: [Drucken] Buffergröße reduzieren
Hallo alzaimar,
Zitat:
Zitat:
Zitat:
Zitat:
MfG xZise |
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 |
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 |
Re: [Drucken] Buffergröße reduzieren
![]() die maximale und "optimale" Auflösung hängt vom Drucker ab, aber die Auflösung beim Erstellen des Ausdrucks kann wählen. (hab mir jetzt aber den QuellCode nicht angesehn, aber ich denke/hoffe mal ihr geht auch über ein Printer-Canvas ... ansonsten muß es aber auch irgendwie einstellbar sein)
Delphi-Quellcode:
SetMapMode(Printer.Canvas.Handle, Modus);
MM_HiEnglish 1 Pixel = 0.001 inch \ MM_LoEnglish 1 Pixel = 0.01 inch \ X = 0 und Y = 0 MM_HiMetric 1 Pixel = 0.01 millimeter / ist unten-rechts auf dem Blatt MM_LoMetric 1 Pixel = 0.1 millimeter / MM_Text Each logical unit is mapped to one device pixel. Positive x is to the right; positive y is down. MM_Twips Each logical unit is mapped to one twentieth of a printer's point (1/1440 inch, also called a "twip"). Positive x is to the right; positive y is up.} |
Re: [Drucken] Buffergröße reduzieren
Sorry, dass ich er so spät antworte, aber ich habe gestern erst 2 GiB Daten ins PDF gedruckt (1000 Barcodes auf 23 sehen ziemlich geil aus :mrgreen: ), aber was genau bringt mir jetzt "SetMapMode"?
MfG xZise |
Re: [Drucken] Buffergröße reduzieren
Damit bist du unabhängig von der Auflösung des Drcukers. Denn je nach Auflösung ist ein Pixel mal ein Millimeter oder auch mal zwei. Wenn du den entsprechenden Modus wählst, kannst du die Abstände in Millimetern angeben und das sind dann immer zum Beispiel zwei Millimeter, egal, welche Auflösung der Drucker hat.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:37 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