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


发布于 2015-09-18 18:24:04
我不能说,因为我有一个解决这个问题的办法,但我已经使它为我工作。似乎renderWatermark()函数在第465行或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');我能够得到一个水印,以显示在正确的位置,尽管使用通用字体,而不是我选择的任何东西。
发布于 2018-06-26 11:47:13
解决方案
示例:
var docDefinition = {
//watermark: 'test watermark',
watermark: {text: 'test watermark', color: 'blue', opacity: 0.3, bold: true, italics: false},
content: [
'Test page of watermark.\n\n',
]
};发布于 2016-01-07 05:14:33
我做了很少的改变,使水印工作,我想。下面是我在printer.js中所做的更改
pdfKitDoc.fill('darkgray'); // Change colour
pdfKitDoc.opacity(0.3); // Change opacity as watermark was too dark for my liking
Commented out below to keep the watermark text horizontal
//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]});
// Changed width and height for proper rendering of watermark text horizontally
pdfKitDoc.addContent('' + (pdfKitDoc.page.width/2 - watermark.size.size.width/4) + ' ' + (pdfKitDoc.page.height/2 - watermark.size.size.height/4) + ' Td');理想情况下,颜色,不透明度和文本方向应该是可配置的。
https://stackoverflow.com/questions/31691355
复制相似问题