【问题标题】:What do I need to do to make this transparency work我需要做什么才能使这种透明度发挥作用
【发布时间】:2014-06-22 05:05:15
【问题描述】:

我有一个 PDF,我知道它具有透明度,但 Acrobat pro 将透明部分呈现为实心。如果我在 chrome 中查看它,它看起来是正确的。如果我进行输出预览并将“显示”选项更改为“非 DeviceCMYK”,它会预览透明度,但这实际上并没有改变 PDF,我不知道如何删除 CMYK 以便它将是透明的。

Here is the pdf again

我已经为此搞砸了。好像有一些淘汰赛分组,如何在 Acrobat 中更改?

我似乎也可以在 Acrobat 中剪切图像,然后将其粘贴回去,这样我就可以获得所需的透明度。这是什么变化?如何在无需剪切、粘贴和重新定位的情况下进行更改?

【问题讨论】:

  • 您是否以编程方式创建 PDF?
  • @ChrisHaas 是的,这是 Coldfusion 的水印操作。我不知道具体对 post 脚本有什么影响。我确定 CF 可能正在做一些导致糟糕 PDF 的事情,但是由于我无法更改 CF 所做的事情,并且我可以让 Chrome 看到它是透明的,并且让 Acrobat 预览它是透明的,我正在寻找看看我是否可以在 acrobat 中做些什么来真正让它以透明度打印。
  • 您的链接需要 Dropbox 登录。请允许无需登录即可访问。
  • 也就是说,这个问题让人想起this question - Chrome 也显示了透明度,但当前的 Acrobat 版本没有......结果证明 Acrobat 是正确的,因为使用了淘汰组和透明度因此,不应让同一组的淘汰部分发光,而是该组后面的材料(在这种情况下是白色背景)。 Chrome 似乎忽略了淘汰组设置。
  • @mkl 修复了链接,下拉框关闭了第一个。据我所知,我也没有使用淘汰赛组。

标签: pdf acrobat


【解决方案1】:

Acrobat pro 将透明部分呈现为实心。如果我在 chrome 中查看它,它看起来是正确的。

就像the question Transparent images in PDF 的情况一样,问题确实是透明度组中的剔除设置。某些查看者似乎忽略了敲除设置,尤其是内置的 Chrome PDF 预览器,但(当前)Adobe Acrobat 和 Reader 版本正确地遵守了设置。

与其他问题的情况相比,所讨论的组不是页面组,而是特定xobject的组。但是,由于该 xobject 包含透明图像和 OP 想要通过的图像,因此观察到的问题非常相似。

如何在 Acrobat 中更改此设置?

我没有发现在 Acrobat 中编辑透明度组设置的明显方法。但不幸的是,我这里只有 9.5 版,也许新版本允许。

我似乎也可以在 Acrobat 中剪切图像,然后将其粘贴回去,这样我就可以获得所需的透明度。这是什么变化

这很可能会将图像从图像共享的剔除透明度组(实际照片和要用于变暗的部分透明的纯黑色图像)中剪切出来,然后将其粘贴回去导致这两个图像驻留在不同的透明度组;因此,他们再也不能互相击倒了。

如何在无需剪切、粘贴和重新定位的情况下更改它

您可以轻松修补 PDF,从而从透明度组定义中删除 K 剔除条目,见下文。

PDF 结构

OP 提供的 PDF 的第 1 页内容包含相当多的对象层次结构:

  • 即时页面内容不属于透明度组,包含一个图像 xobject Im0 和两个表单 xobject Fm1Fm2
  • 表单 xobject Fm1 具有剔除透明度 Group 条目并包含一个表单 xobject HiQPdf_fnebajfcjaojkndmodkafcbjdllengkl
  • xobject HiQPdf_fnebajfcjaojkndmodkafcbjdllengkl 表单没有自己的 Group 条目,但属于其父级的剔除透明度组;它包含两个图像xobjects HiQPdf_fhhbjncnhiipkdhfommnfnbdgijfcjpiHiQPdf_ibbjecddhjhkknkjbhmbefkgfbbmakep,后者覆盖前者的顶部。
  • 图像 xobject HiQPdf_fhhbjncnhiipkdhfommnfnbdgijfcjpi 包含一些房子的照片,没有透明度。
  • 图像 xobject HiQPdf_ibbjecddhjhkknkjbhmbefkgfbbmakep 为黑色,透明度 SMask 处处为 162。

有点透明的图片HiQPdf_ibbjecddhjhkknkjbhmbefkgfbbmakep和被它覆盖的图片HiQPdf_fhhbjncnhiipkdhfommnfnbdgijfcjpi都属于Fm1提供的同一个剔除透明组。因此,透明度不会让 HiQPdf_fhhbjncnhiipkdhfommnfnbdgijfcjpi 中的房子透出来,而是让 Fm1 背后的房子。

但是 Fm1 后面没有任何东西,它在 PDF 中意味着白色背景。结合 HiQPdf_ibbjecddhjhkknkjbhmbefkgfbbmakep 的黑度和恒定的 SMask 值 162,您会在 Adob​​e Reader 中看到灰色条:

删除淘汰赛

Fm1的剔除透明度组字典在对象31 0中:

31 0 obj
<</K true/S/Transparency>>
endobj 

通过用空格覆盖/K true,PDF 被修补为在这里有一个非敲除组,结果是:

【讨论】:

  • 谢谢。现在我只需要弄清楚如何以编程方式做到这一点,我就会做好准备。
  • 现在我只需要弄清楚如何以编程方式做到这一点,我会做好准备的。 - 为此,您可能想问一个专门的问题,说明您选择的编程环境和PDF处理库。
  • 幸运的是我能够弄清楚这一点,我已经有一个特定于语言的问题正在运行,我可以自己回答:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-07-13
  • 2019-11-15
  • 2021-07-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多