Dee*_*ons 6 c# pdf asp.net watermark itextsharp
不知道这是否可能.在创建pdf并将其保存在磁盘后,在添加水印时看到很多帖子.但在创建文档时如何添加图像水印.我知道如何将图像添加到文档中.但是我如何定位它以使其出现在页面末尾.
这与添加页眉或页脚基本相同。
您需要创建一个实现 的类PdfPageEvent,并在 中OnPageEnd获取页面的 PdfContentByte,然后在那里绘制图像。使用绝对位置。
注意:您可能想从 PdfPageEventHelper 派生,它具有所有页面事件的空实现,因此您只需要编写您真正关心的方法。
注意:除非您的图像大部分是透明的,否则将其绘制在页面顶部会掩盖许多事情。IIRC(“如果我记得正确”),iText 添加的 PNG 和 GIF 文件将自动被正确屏蔽,让它们下面的东西显示出来。
如果你想在所有东西下面添加一个不透明的图像,你应该覆盖OnStartPage()。
这是 Java,但转换它主要是将方法名称大写并交换 get/set 调用以进行属性访问。
Image watermarkImage = new Image(imgPath);
watermarkImage.setAbsolutePosition(x, y);
writer.setPageEvent( new MyPageEvent(watermarkImage) );
public MyPageEvent extends PdfPageEventHelper {
private Image waterMark;
public MyPageEvent(Image img) {
waterMark = img;
}
public void OnEndPage/*OnStartPage*/(PdfWriter writer, Document doc) {
PdfContentByte content = writer.getContent();
content.addImage( waterMark );
}
}
Run Code Online (Sandbox Code Playgroud)
小智 5
对于C#,请使用此代码...
//new Document
Document DOC = new Document();
// open Document
DOC.Open();
//create New FileStream with image "WM.JPG"
FileStream fs1 = new FileStream("WM.JPG", FileMode.Open);
iTextSharp.text.Image JPG = iTextSharp.text.Image.GetInstance(System.Drawing.Image.FromStream(fs1), ImageFormat.Jpeg);
//Scale image
JPG.ScalePercent(35f);
//Set position
JPG.SetAbsolutePosition(130f,240f);
//Close Stream
fs1.Close();
DOC.Add(JPG);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17131 次 |
| 最近记录: |