带有 PNG 的 CFPDF:透明度为黑色。 PDF是白色的

CFPDF with PNG: transparency is black. With PDF it's white

我正在尝试为具有透明背景的 PNG 文件的 PDF 添加水印。

每次我创建水印时,它都会以黑色背景出现。在使用 PDF 作为水印时,我得到了白色背景的水印。此外,PDF 水印在变成缩略图时会变成灰度。

这是什么原因造成的?我能做些什么来实现透明度?

我正在使用 ColdFusion 11。

这是两者的代码:

PNG 水印:

<cfpdf
 action="addwatermark"
 foreground="true"
 opacity="6"
 source="PDFS/blankpage.pdf"
 destination="PDFS/watermarked/blankpage.pdf"
 image="PDFS/samplemusicpage2.png"
 overwrite="yes"
>

<cfpdf
 action="thumbnail"
 resolution="low"
 source="PDFS/watermarked/blankpage.pdf"
 destination="PDFS/_thumbnails"
 imageprefix="blankpage"
 overwrite="yes"
 scale="40"
>

以下是使用 PDF 作为水印的代码:

<cfpdf
 action="addwatermark"
 foreground="true"
 opacity="6"
 source="PDFS/blankpage.pdf"
 destination="PDFS/watermarked/blankpage.pdf"
 copyfrom="PDFS/samplemusicpage.pdf"
 overwrite="yes"
>
<cfpdf
 action="thumbnail"
 resolution="low"
 source="PDFS/watermarked/blankpage.pdf"
 destination="PDFS/_thumbnails"
 imageprefix="blankpage"
 overwrite="yes"
 scale="40"
>

以下是我在此示例中使用的图像: 这是 PNG 文件:

这是阅读 PDF 文件:

我找到了解决我自己问题的方法。我发现实现此目的的最佳方法是将 PDF 创建为图像,然后使用 Coldfusion 的成像将水印添加到图像。

<cfloop query="jpgfiles">
<cfset theFile = directory & "/" & name>
<cfset imgFile = imageRead(theFile)>
<cfset imgInfo = imageInfo(imgFile)>
<cfset imagepaste(imgFile, watermark, imgInfo.width-watermarkinfo.width, imgInfo.height-watermarkinfo.height)>
<cfset imageWrite(imgFile, processedfolder & "/" & name, true)>
</cfloop>

有些术语是我的变量,但重点是我不再像上面那样在图像上使用黑色背景。