2017-01-09 4 views
0

Ich benutze HTML2PDF, um eine PDF aus Text aus einer Textarea-Eingabe und einem vom Benutzer hochgeladenen Bild zu generieren. Ich benutze einen Style-Block, um das CSS einzurichten, was großartig funktioniert, das resultierende PDF sieht genau so aus, wie ich es möchte.HTML2PDF - Generierte PDF ist nicht wahr CMYK schwarz (0,0,0,100%)

Allerdings ist die PDF soll gerade gehen, ohne jede zusätzliche Umwandlung überhaupt zu drucken. Und hier kommt mein Problem:

Wenn ich die PDF bin Inspektion der Text und schwarzen Rand des PDF ist nicht CMYK 0% 0% 0% 100% sondern einige seltsame Sachen wie CMYK 22% 46% 17% 94% was bedeutet, dass es nicht gedruckt werden soll, weil jeder Buchstabe 4 Mal gedruckt werden würde (zumindest das ist, was mir gesagt wird, weiß ich nichts über den Druck, ich weiß nur, es muss 0 0 sein 0 von 100% ~)

EDIT: Verwirrung zu vermeiden: Dies wird mit einem schwarzen Rande, denken Sie an Anzeigen, Anzeigen von einem Print-Magazin meist schwarzer Text auf weißen Hintergrund sein. Bilder, die zu der Klassifizierung hinzugefügt werden, müssen nicht 100% schwarz sein.

Einige der Code Ich verwende

<?php echo " 
     <style> 
     .contentwrapper { 
      position: relative; 
     } 
     .contentpdf { 
      border: 1mm; 
      border-style: solid; 
      border-color: #000000; 
      padding: 1mm; 
      position: absolute; 
      word-wrap: break-word; 
      word-break: break-all; 
      text-align: justify; 
      height: 50mm; 
      width: 100mm; 
      line-height: 2.5mm; 
      color: #000000; 
      font-family: 'Arial'; 
     } 
     h1 { 
      font-size: 3.5mm; 
      line-height: 5mm; 
      margin: 0 0; 
      margin-top: 0mm; 
      margin-bottom: 0mm; 
      padding: 0 0; 
      color: #000000; 
      font-family: 'Arial'; 
     } 
     p { 
      font-size: 2.5mm; 
      margin: 0 0; 
      margin-bottom: 0.5mm; 
      margin-top: 0.5mm; 
      padding: 0 0; 
      color: #000000; 
      font-family: 'Arial'; 
     } 
     b, strong { 
      word-break: break-all; 
      word-wrap: break-word; 
     } 
     </style> 
    <page format='" . $width . "x" . $height ."' orientation='" . $orientation ."' backcolor='#FFFFFF'> 
    <div class='contentwrapper'> 
     <div class='contentpdf'> 
     " . $html ." 
     </div> 
    </div> 
    </page>"; 
$content = ob_get_clean(); 

$html2pdf = new HTML2PDF('L', 'A4', 'de', false, 'UTF-8', array(0,0,0,0)); 

$html2pdf->setDefaultFont('Arial'); 

$html2pdf->WriteHTML($content); 

$file = "output.pdf"; 
$html2pdf->Output($file, "F"); ?> 

Grundsätzlich habe ich nicht die geringste Ahnung, warum die PDF diese seltsamen Werte und CMYK = 0 0 0 100%

Jede Hilfe wird geschätzt.

+0

meines Wissens drucken Sie nicht 100% schwarz, weil es so schlecht aussieht wie 100% weiß. Hast du es gedruckt? Wenn Sie eine andere Bibliothek ausprobieren möchten, die auf Electron (Chrome) basiert, können Sie https://github.com/msokk/electron-render-service ausprobieren, was auch gut funktioniert. – three

+0

@three Ich habe keinen Zugriff auf den eigentlichen Drucker. Etwas Kontext: Das PDF, das dafür verwendet wird, ist meistens schwarzer Text und das gelegentliche Bild, im Grunde classifieds/Anzeigen in einer Zeitschrift. Ich muss möglicherweise den Render-Service von Ihrem Link versuchen, aber ich würde es vorziehen, nichts anderes zu verwenden – ekrow

+0

ok, Sie könnten mit ihnen in Kontakt treten und sehen, ob der Druck wirklich 100% braucht. Ich habe wirklich Zweifel. – three

Antwort

0

Sie haben ein Problem! Mit HTML2PDF gibt es keine Möglichkeit, ein echtes CMYK-Dokument zu erstellen, das für Ihren Zweck benötigt wird. Die Farbkonvertierung wird niemals das gewünschte (subjektive) Ergebnis erzielen und immer 70% Cyan, 40% Rot oder ähnliches mischen.

Ich würde stattdessen die Druckabteilung die Automatisierung/Integration der Daten in ihr Druckerzeugnis übernehmen lassen, oder wenn das nicht möglich ist, schreibe ein Skript für Photoshop, das ein echtes CMYK-Dokument erstellt und Ebenen mit Text und Bildern hinzufügt .

Oder als dritte Option, vielleicht ist es möglich, den Inhalt des Dokuments ohne Grenze, und lassen Sie die Drucker hinzufügen, eine solide 100% -black Grenze zu unterbreiten.

Die Gründe warum das so schwierig ist, sind ziemlich komplex (additive vs. subtraktive Farben, Farbräume, praktische Überlegungen wie "feste schwarze Flecken sehen in Rasterbildern schlecht aus" etc.) und man kann einige Runden drehen Universität, die sich mit ihnen beschäftigt. Ein lukratives Feld übrigens, wenn Sie eine perfekte Lösung finden.

Verwandte Themen