5

我正在浏览器中为打印到 pdf 制作打印模板,并且在一个部分中使用透明的 .png 覆盖。

透明 .png 文件和透明 .gif 文件都会发生这种情况

Chrome 在打印时(包括 .pdf 和打印预览窗口)似乎用 1px 灰线勾勒出透明图像:

展品 A:

在此处输入图像描述

我已经在其他几个浏览器(包括 Safari)中尝试过这个,但似乎没有一个能像 Chrome 那样做。有没有人见过这个?我需要找到一种方法来禁用它或在 Chrome 端破解它,以便它可以跨浏览器工作。

要查看此操作,请单击此处:http: //jsfiddle.net/brandonscript/nELwd/(只是一个<img />标签)并按 Cmd/Ctrl+P 调出打印预览。如果您打印为 .pdf ,您将在预览中看到这一点确保您启用了“背景颜色和图像”,否则您将看不到任何图像。

注意:我不是在打印寻找解决方法,而且我知道如果您将图像大小调整为 100% 并以 100% 缩放查看 .pdf,您不会看到灰线。在打印 .pdf 之前,我需要以编程方式(或以其他方式)删除灰线。

4

3 回答 3

1

我已经进行了足够的实验,并在这样做的同时考虑了上述所有答案。可疑的是,在保存您的图像并在 gimp 中打开并插入它时,我发现的是这个。

原始图像, 擦拭图像周围的空白区域......

这让我觉得你的形象是真实的,包含它周围的灰色边框。我的建议是您删除该图层并使实际图像周围的空白区域透明。

编辑(回复@remus 评论)

我不知道我的说法是否正确,但我相信该图像不是您所期望的。您需要更正该图像。我已经测试过another image of mine粘贴在小提琴上的屏幕和打印预览中没有任何边框。(还有最终的pdf)。对不起,如果这个答案是正确的并且伤害了你。

于 2014-01-20T05:09:45.343 回答
0

虽然我还没有遇到这个确切的问题,但我在 css 打印(用于 pdf 和浏览器打印)方面做了很多工作,而且我经常需要使用 2 张图像:1 张用于屏幕,1 张用于打印(不要使用在您的情况下打印的透明度):

<img src='http://apigee.ignite.ms/iloveapis/portal/badge/heart-overlay.gif' width='300' height='400' class="screen"/>

<img src='http://apigee.ignite.ms/iloveapis/portal/badge/heart-overlay_print.gif' width='300' height='400' class="forPrinting"/>

在您的主 css 文件中:

img.forPrinting { display:none }

在您的打印 css 文件中,该文件应在您的主 css 文件之后声明:

img.screen {display:none }
img.forPrinting { display:block; }
于 2014-01-17T16:55:14.440 回答
-1

简短答案:将您的 PDF 打印预设更改为更高的分辨率。

你会得到: 在此处输入图像描述

长版:

我注意到您通过在 HTML 代码中更改其宽度高度属性来重新调整图像大小。所以我确保你的图像完全符合你需要的尺寸,并且不会有这种奇怪的轮廓。

见链接:jsfiddle.net/cyVqw/

我有一个打印预览:打印预览

PDF截图:

PDF 截图

为了验证 PDF 在任何尺寸下都能保持您的图像透明度,我检查了保存在更高分辨率预设中的 PDF,即“打印质量”。这导致了一个大文件,但具有更好的缩放质量:

这是高分辨率 33% 预览:

高分辨率 33% 预览

高分辨率 200% 预览

高分辨率 200% 预览

因此,您需要做的是调整您的 PDF 质量预设。

于 2014-01-15T17:57:01.817 回答