itext生成重複水印 watermark

2021-07-04 05:04:23 字數 1616 閱讀 9679

在這裡只講在生成pdf的檔案過程中新增水印,至於向已存在的pdf檔案中新增水印,那並不是本文所**的內容。

在網上搜了很多文字都不知道該怎麼做。因為網上大部分都是講的向已經存在的pdf檔案中新增水印,而不是在寫檔案的過程中直接新增水印。

不過還是有找到下面的文章,

itext in action學習筆記,使我很快找到了辦法。那就是通過新增pageevent事件解決。

**如下:

writer.setpageevent(new watermark("hello world"));//水印內容

//在繼承自pdfpageeventhelper類中的onendpage方法中新增水印

public void onendpage(pdfwriter writer, document document)

不過水印只是出來了一條,並沒有我想想的多條。

後來只有硬著頭皮看itext5的文件《itext in action》 second edition英文版,結果還是沒正明白。

於是還是只有在網上搜,結果收到下面的

乙個問答,裡面的提問及回答給了我很大的啟示

that method is obsolete. 

use page events to add watermarks (as many as you want).

br,

bruno

看來還是得在pageevent中做文章。有過了許久,突然靈光一線。出現一條就用一次,出現多條,用個迴圈列印不就是了嗎?於是趕緊先看看columntext的showtextaligned()方法的api文件。

showtextaligned

public static void showtextaligned(pdfcontentbyte canvas,

int alignment,

phrase phrase,

float x,

float y,

float rotation)shows a line of text. only the first line is written.

parameters:

canvas - where the text is to be written to

alignment - the alignment

phrase - the phrase with the text

x - the x reference position

y - the y reference position

果然發現有橫縱座標的引數。於是乎將自定義的watermark類改為如下:

public class watermark extends pdfpageeventhelper 

public watermark(string watercont)

@override

public void onendpage(pdfwriter writer, document document)

} }}

問題自然就解決了。

Itext生成PDF檔案加密與加水印

最近的專案中使用itext將txt檔案轉換為pdf檔案,並且實現對檔案的一些許可權控制。現實對pdf檔案加密,新增水印等。最主要的是要實現對pdf檔案實現金鑰簽名,一直都還沒有實現成功!等實現好了後再加上來。public class pdfconvertor catch exception e 建立...

itext生成pdf文件

包 交易金額 datamap.put jine order.getorderprojiectmoney datamap.put jinedaxie stringutil.trans2rmb order.getorderprojiectmoney datamap.put daozhangshijian...

使用iText生成pdf文件

一 建立乙個新pdf文件 1.首先建立乙個文件document document doc new document 也可以設定文件背景,大小等 文件的背景色 rectangle psize new rectangle 144,90 psize.setbackgroundcolor color.blu...