4

Javascript では、pdfmake を使用して pdf ドキュメントを生成しています。透かしをサポートしていることをgithubから読みました。以下は私の使用法ですが、ランダムで奇妙な文字が表示されます。これらの文字は、透かしで提供されるテキストに関係なく同じです。誰でもアイデアを得ましたか?

pdfmake

ここに画像の説明を入力

ここに画像の説明を入力

4

4 に答える 4

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');

透かしを正しい位置に表示することができましたが、選択したフォントではなく一般的なフォントを使用していました.

于 2015-09-18T18:24:04.387 に答える
1

透かしを希望どおりに機能させるために、さらにいくつかの変更を加えました。以下は、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');

理想的には、色、不透明度、テキストの向きを構成できる必要があります。

于 2016-01-07T05:14:33.410 に答える
0

let docDefinition = {
        //watermark: 'watermark',
        watermark: {text: 'watermark', color: 'black', opacity: 0.3, bold: true, italics: false},
        content: [
             { text: "watermark test", fontSize: 18 },,
        ]
    };
于 2021-09-08T07:36:14.960 に答える