Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Drucken von CMYK-Grafiken ins PDF-Format (https://www.delphipraxis.net/88743-drucken-von-cmyk-grafiken-ins-pdf-format.html)

kachel81 20. Mär 2007 12:31


Drucken von CMYK-Grafiken ins PDF-Format
 
Hallo,

wir verwalten in unserer Software unter anderem Grafiken die von einer Druckerei gedruckt werden müssen. Wir erstellen also mit Acrobat Distiller ein PDF Dokument unseres mit ReportRebuilder erstellten Berichts und müssen feststellen, daß alle Grafiken egal ob es vorher GRAYSACALE oder CMYK-Bilder waren in RGB konvertiert werden.

Jetzt suche ich nach einer Variante wie ich die Grafiken mit Ihrem Original-Farbraum ausdrucken kann.

Versucht habe ich sowas:
Delphi-Quellcode:
  if PrintDialog.Execute then
  begin
    Printer.Title :=ExtractFileName(Application.ExeName);
    Printer.BeginDoc;

    try
      Image1.Picture.LoadFromFile('C:\CMYK.jpg');    
      Printer.Canvas.Draw(50, 50, Image1.Picture.Graphic);
    finally
      Printer.EndDoc;
    end;
  end;
Der ReportBuilder druckt eine Grafik so

Delphi-Quellcode:
  {draw bitmap to printer canvas }
  StretchDIBits(aCanvas.Handle,
                aRect.Left, aRect.Top, aRect.Right - aRect.Left, aRect.Bottom - aRect.Top,
                0, 0, lpBitMapInfo^.bmiHeader.biWidth, lpBitMapInfo^.bmiHeader.biHeight,
                lpImage, lpBitMapInfo^, DIB_RGB_COLORS, aCopyMode);
Dabei kommen immer RGB-Grafiken raus.

Die Distiller Einstellungen habe ich geprüft, d.h. eine CMYK-Grafik landet mit PhotoShop und Distiller
korrekt im PDF-Dokument.

Ich bin für alle Anregungen dankbar. Wenn jemand weiß wie ich nachträglich Grafiken in ein PDF-Dokument einbinden kann wäre mir auch geholfen.

Zur Info:
Um überhaupt CMYK Grafiken zu unterstützen habe ich bisher GraphicEx (lischke) und ImageEn von HiComponents verwendet.

Schonmal vielen Dank

Kachel

bernau 20. Mär 2007 12:49

Re: Drucken von CMYK-Grafiken ins PDF-Format
 
Mit diesem Thema (CMYK) habe ich mich auch schon oft rumgeschlagen. Bis jetzt habe ich noch keine Möglichkteit gefunden mit dem Distiller CMYK-PDF zu erzeugen.

Es gibt da einige Tools, die direkt die PDF mit CMYK-Farben erzeugen (z.B. pdflib). Diese habe ich allerdings noch nicht im Detail getestet. Und natürlich wurde ich auch gerne Wissen, wie Photoshop den Distiller ansteuert um CMYK-Farben zu erzeugen.


Gerd

kachel81 20. Mär 2007 13:20

Re: Drucken von CMYK-Grafiken ins PDF-Format
 
Wie PhotoShop das angeblich machen soll habe ich soeben entdeckt:

Zitat:

Druckunterstützung

Da Microsoft Windows Druckertreiber leider keine Funktionalität zum Drucken von CMYK-Bitmaps bieten, ist der Druck echter CMYK-Daten nur auf PostScript – Druckern möglich.

Die Funktion StretchDIBBlt erkennt automatisch eine übergebene DIB im CMYK-Format und einen PostScript-Druckertreiber und sendet Postscript-code zum Druck der Daten im CMYK-Format an den Drucker.

Wenn der eingesetzte Druckertreiber kein PostScript-Treiber ist, wandelt StretchDIBBlt die Grafik ins RGB-Format und übergibt sie an den Druckertreiber.

Diese Funktionalität erlaubt den Druck sowohl von 16, als auch von 32-Bit Windows Programmen.

Auf diese Weise werden CMYK-Grafiken auch von PhotoShop gedruckt.

Hier der Link: CMYK-Farbraum


Ich teste gerade ob mich das irgendwie weiterbringt.

bernau 20. Mär 2007 13:47

Re: Drucken von CMYK-Grafiken ins PDF-Format
 
Zitat:

Zitat von kachel81
Wie PhotoShop das angeblich machen soll habe ich soeben entdeckt:

Das ist ja klasse. Gebe mir doch bitte Bescheid, was bei dir rauskommt.


Gerd

Pfoto 20. Mär 2007 14:07

Re: Drucken von CMYK-Grafiken ins PDF-Format
 
Hi!

als Notlösung um nachträglich ein PDF-Dokument zu öffnen
und zu bearbeiten bietet sich Adobe Illustrator an.
Der schreibt die veränderte Seite wieder korrekt selbst
in mehrseitige Dokumente.


Vielleicht verstehe ich ja Euer Problem nicht richtig,
aber warum setzt ihr im Distiller nicht einfach eine
Farbumwandlung durch (bei Version 7 unter "Farbe" >
"Farbmanagement" > "Alle Farben in CMYK konvertieren")

Ein hin- und herkonvertieren ist zwar nicht das gelbe vom
Ei, aber immerhin wäre so das Dokument komplett in CMYK.


Gruß
Pfoto

kachel81 20. Mär 2007 14:15

Re: Drucken von CMYK-Grafiken ins PDF-Format
 
Ja, das ist richtig. Für unsere Belange reicht das allerdings nicht. Wir drucken große Katalog aus und je nachdem ob Grafiken in Farbe oder in Graustufen auf einer Seite hinterlegt sind wird das auf der entsprechenden Maschine gedruckt. So muß nicht der komplette Katalog in Farbe gedruckt werden und das spart Geld.

bernau 20. Mär 2007 15:08

Re: Drucken von CMYK-Grafiken ins PDF-Format
 
Zitat:

Zitat von Pfoto
als Notlösung um nachträglich ein PDF-Dokument zu öffnen
und zu bearbeiten bietet sich Adobe Illustrator an.

Ein hin- und herkonvertieren ist zwar nicht das gelbe vom
Ei, aber immerhin wäre so das Dokument komplett in CMYK.

Es ist schon angenehm, wenn man ein Dokument nicht mehrfach anfassen muss. Dabei schleichen sich immer wieder Fehler ein. Ausserdem hat man den Illustrator nicht immer zur Verfügung.

Bei uns wandeln die Druckereien die RGB-PDF selber nach CMYK um. So flexibel sind die Druckereien mitlerweile. Das war schon mal anders. Aber wie gesagt, jede Konvertierung bringt Abweichungen und Fehler. Deshalb ist es gut, wenn es eine Möglichkeit gibt, die PDF direkt in CMYK zu erzeugen.

Gerd

kachel81 23. Mär 2007 09:29

Re: Drucken von CMYK-Grafiken ins PDF-Format
 
Ich glaube jetzt zu wissen warum zumindest der ReportBuilder keine CMYK drucken kann. :gruebel:

Auf jeden Fall kann man mit der Funktion StretchDIBits() CMYK unter folgenden Vorraussetzungen drucken:
- das übergebene DIB ist CMYK
- der Drucker ist ein PostScript-Drucker

Das Problem ist wie man das JPEG so in ein DIB konvertiert, daß der ursprüngliche Farbraum beibehalten wird. Die Delphi Implementation eines TBitmap benutzt den BITMAPINFOHEADER der dieses Feature noch nicht unterstützt. Stattdessen muß man mindestens den BITMAPV4HEADER, mit dem bV4CSType (Color Space Type) = LCS_DEVICE_CMYK verwenden.

Wenn sich einer mit CreateDIBitmap() auskennt und mir einen Denksanstoß geben könnte wäre ich durchaus verbunden :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:14 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