使用pdfmake的水印

时间:2015-07-29 04:41:33

标签: javascript watermark pdfmake

在Javascript中,我使用pdfmake生成pdf文档。我从github上读到它支持水印,以下是我的用法,但它给了我一些随机和奇怪的字符。无论水印中提供什么文本,这些字符都是相同的。有人有想法吗?

pdfmake

enter image description here

enter image description here

3 个答案:

答案 0 :(得分:4)

  

解决方案

示例:

UnobservedTaskException

答案 1 :(得分:2)

我不能说因为我有解决这个问题的方法,但我已经让它对我有用了。似乎第465行或附近的renderWatermark()函数或pdfmake.js在编码字体时遇到问题。

var encoded = watermark.font.encode(watermark.text);返回一个空字符串,并且没有该函数稍后要查找的扩展属性。

通过更改

pdfKitDoc.addContent('/' + encoded.fontId + ' ' + watermark.size.fontSize + ' Tf');

pdfKitDoc.addContent('/ ' + watermark.size.fontSize + ' Tf');

pdfKitDoc.addContent('<' + encoded.encodedText + '> Tj');

pdfKitDoc.addContent('(' + watermark.text + ') Tj');

我能够将水印显示在正确的位置,虽然使用的是通用字体,而不是我选择的任何字体。

答案 2 :(得分:1)

我做了一些更改,让水印按我的意愿工作。以下是我在printer.js中所做的更改

pdfKitDoc.fill(&#39;深灰&#39); //改变颜色 pdfKitDoc.opacity(0.3); //改变不透明度,因为水印对我来说太暗了

下面注释以保持水印文字水平

// var angle = Math.atan2(pdfKitDoc.page.height,pdfKitDoc.page.width)* 180 / Math.PI; //pdfKitDoc.rotate(0, {origin:[pdfKitDoc.page.width / 2,pdfKitDoc.page.height / 2]});

//更改宽度和高度,以便水平正确呈现水印文本

pdfKitDoc.addContent(&#39;&#39; +(pdfKitDoc.page.width / 2 - watermark.size.size.width / 4)+&#39;&#39; +(pdfKitDoc.page。 height / 2 - watermark.size.size.height / 4)+&#39; Td&#39;);

理想情况下,颜色,不透明度和文本方向应该是可配置的。