首页 新闻 会员 周边 捐助

Asp.net 给PDF加水印图片 C#

0
悬赏园豆:100 [已解决问题] 解决于 2009-06-18 15:57

如题!

漫天的主页 漫天 | 初学一级 | 园豆:30
提问于:2009-06-16 11:22
< >
分享
最佳答案
0

给你两个地址:看看有没有你需要的!

http://blog.csdn.net/longren629/archive/2007/11/09/1875436.aspx

http://www.91now.com/down/soft/141743.htm(图片水印组件下载路径)

LoveO(∩_∩)O | 初学一级 |园豆:55 | 2009-06-16 11:33
其他回答(3)
0

static void waterMark(String inputFile, String outputFile,String userPassWord, String ownerPassWord, String waterMarkName, int permission)

{
        try {
            PdfReader reader = new PdfReader(inputFile);
            PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(  outputFile));
            //
设置密码  
            stamper.setEncryption(userPassWord.getBytes(), ownerPassWord.getBytes(), permission, false);
            BaseFont base = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H",BaseFont.NOT_EMBEDDED);
            int total = reader.getNumberOfPages() + 1;
            Image image = Image.getInstance(imageFilePath);
            image.setAbsolutePosition(200, 400);
            PdfContentByte under;
            int j = waterMarkName.length();
            char c = 0;
            int rise = 0;
            for (int i = 1; i < total; i++) {
                rise = 500;
                under = stamper.getUnderContent(i);
                //
添加图片
                // under.addImage(image);
                under.beginText();
                under.setColorFill(Color.CYAN);
                under.setFontAndSize(base, 30);
                //
设置水印文字字体倾斜 开始
                if (j >= 15) {
                    under.setTextMatrix(200, 120);
                    for (int k = 0; k < j; k++) {
                        under.setTextRise(rise);
                        c = waterMarkName.charAt(k);
                        under.showText(c + "");
                        rise -= 20;
                    }
                } else {
                    under.setTextMatrix(180, 100);
                    for (int k = 0; k < j; k++) {
                        under.setTextRise(rise);
                        c = waterMarkName.charAt(k);
                        under.showText(c + "");
                        rise -= 18;
                    }
                }
                //
字体设置结束
                under.endText();
                //
画一个圆
                // under.ellipse(250, 450, 350, 550);
                // under.setLineWidth(1f);
                // under.stroke();
            }
            stamper.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
以前看到的一个为pdf增加水印的方法,你可以用一下。哈哈

邢少 | 园豆:10926 (专家六级) | 2009-06-16 11:32
0

楼主去搜索下iText,这是一个在java下的开源的处理pdf的类库,里面有给pdf加水印的支持。当然楼主要的是在。net中,这个类库有对应的。net版本叫iTextSharp,使用这个就可以了。

生鱼片 | 园豆:5757 (大侠五级) | 2009-06-16 16:10
0

还可以试试Spire.PDF for Java这个第三方控件,也能够支持给PDF文档添加图片水印,相关代码示例可以参考官网教程:https://www.e-iceblue.cn/watermark/pdf-watermark.html
除了可以添加图片水印外,它还支持添加文本水印。该控件的产品包也可在官网免费下载免费试用:https://www.e-iceblue.cn/Downloads/Spire-PDF-NET.html

Tina_Tang | 园豆:346 (菜鸟二级) | 2021-08-12 14:20
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册