我正在使用HTML2PDF从textarea输入的文本和用户上传的图像生成PDF。我正在使用样式块来设置CSS,效果很好,生成的PDF看起来与我想要的完全一样。
然而,PDF应该直接打印而无需任何额外的转换。这就是我的问题:
当我检查PDF时,PDF的文字和黑色边框不是 CMYK 0%0%0%100%,而是一些奇怪的东西,如 CMYK 22%46% 17%94%这意味着它不应该被打印,因为每个字母将被打印4次(至少那是我所说的,我对打印一无所知,我只知道它必须是0 0 0 100%〜)
编辑:为避免混淆:这将主要是带有黑色边框的白色背景上的黑色文字,想到分类广告,来自印刷杂志的广告。添加到分类中的图像不需要是100%黑色。
我正在使用的一些代码
<?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"); ?>
基本上,我没有丝毫的线索为什么PDF是那些奇怪的值而不是CMYK 0 0 0 100%
感谢任何帮助。
答案 0 :(得分:1)
你有问题!使用HTML2PDF,无法创建真正的CMYK文档,这是您的目的所必需的。颜色转换永远不会达到你想要的(主观)结果,并且总是混合70%青色,40%红色或类似的东西。
我会让打印部门负责自动化/将数据集成到他们的打印产品中,或者如果不可能的话,为Photoshop编写一个脚本,创建一个真正的CMYK文档并添加带有文本和图像的图层。
或者作为第三种选择,也许可以在没有任何边框的情况下提交文档内容,并让打印机添加稳固的100%黑边框。
原因&#34;为什么&#34;这是如此困难是非常复杂的(加性与减色,色彩空间,实际考虑因素如&#34;光栅图像中的实心黑点看起来很糟糕&#34;等等)你可以在任何一所大学处理它们。如果你找到一个完美的解决方案,那么这是一个有利可图的领域。