2017-03-16 16 views
1

私はcanvaからPDFを生成し、それを生成するためにjsPDFを使用しています。ここでjsPDFからgeneretedされたPDFにウォーターマークを追加するには?

https://github.com/MrRio/jsPDF

は私がページに透かしを追加したい使用しています何私のコードです。 誰でも私を助けることができますか?

self.downloadCanvasObjectAsPDF = function() { 
     canvas.deactivateAll().renderAll(); 

     try { 
      canvas.getContext('2d'); 
      var imgData = canvas.toDataURL("image/jpeg", 1.0); 
      var pdf = new jsPDF('p', 'mm', [297, 210]); 
      pdf.addImage(imgData, 'JPEG', 5, 5); 
      var namefile = 'export'; 
      if(namefile != null) { 
       pdf.save(namefile + ".pdf"); 
       return true; 
      }else{ 
       return false; 
      } 
     } catch(e) { 
      alert("Error description: " + e.message); 
     } 
    }; 
+0

?画像の引数については、[この回答](https://stackoverflow.com/questions/29578721/image-in-pdf-cut-off-how-to-make-a-canvas-fit-entirely-in- a-pdf-page/29578919#29578919) – K3N

+0

@ K3N:回答を検索しましたが、何の答えも見つかりませんでした。テキストを追加しようとしましたが、テキストの透明度を下げるためにプロパティが必要です。 –

+0

@ K3N:透明なテキストをjsPDFに追加する方法を知っていますか? –

答えて

1

あなたはそれがお互いにオーバーラップしないように、あなたの内容を追加し、あなたの透かしは、それが最初の各ページで手動で画像やテキストも追加することができます。

この方法では、新しいページを追加する際にウォーターマークを追加/呼び出します。 PDF生成の終わりに doc.addPage();

(OR)

あなたはすべてのページの透かしを追加する実行機能を呼び出すことができます。

PDF生成後にすべてのページにウォーターマークを追加したいとします。

function addWaterMark(doc) { 
    var totalPages = doc.internal.getNumberOfPages(); 

    for (i = 1; i <= totalPages; i++) { 
    doc.setPage(i); 
    //doc.addImage(imgData, 'PNG', 40, 40, 75, 75); 
    doc.setTextColor(150); 
    doc.text(50, doc.internal.pageSize.height - 30, 'Watermark'); 
    } 

    return doc; 
} 

コールの参考のため

function getPdf() { 

    var doc = new jsPDF('p', 'pt', 'a4'); 

//Add content 

//finally call the watermark 
    doc = addWaterMark(doc); 

    doc.save('test'); 

} 

フィドルここにPDFを保存する前にこの機能:何が機能していないhttps://jsfiddle.net/Purushoth/f55h4hzs/

+0

お返事ありがとうございます。あなたのコードを試しましたが、既存のコンテンツと重複していません。 –

+0

既存のコンテンツでページ全体をカバーするウォーターマークが必要です。 –

+0

現在、このようなjsPDFではテキストローテーションはサポートされていません。https://freephile.org/w/images/thumb/4/4/Watermark_confidential.png/300px-Watermark_confidential.png 同じサイズの画像(png)を追加できます最初にページの残りの内容を追加します。したがって、実際のコンテンツは透かしと重複しません。 最初に透かしを入れてから、コンテンツを追加してください。新しいページを追加するたびにこれを行います! @RonakChauhan – Purushoth

関連する問題