c给PDF所有页加上文字水印
给一个PDF的所有页加上文字水印,效果如下
新建一个项目,直接上代码了:using iTextSharp.text; using iTextSharp.text.pdf; using System; using System.IO; using System.Windows.Forms; namespace _111 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { string p = Application.StartupPath + ""; string r = AddTextShuiYin(p + "test.pdf", p + "test1.pdf", 0.5f, "HELLO"); MessageBox.Show(r); } public static string AddTextShuiYin(string PdfPath, string OutPdfPath, float toumingdu, string ShuiYinText) { if (File.Exists(OutPdfPath)) { File.Delete(OutPdfPath); } PdfReader reader = null; PdfStamper ShuiYinOBJ = null; PdfContentByte ShuiYinQu; try { reader = new PdfReader(PdfPath); //得到原PDF的页数和宽高 PDFATT att = new PDFATT(PdfPath); int n = att.PageCount(); float w = att.Width(); float h = att.Height(); //从第0页开始 int i = 0; ShuiYinOBJ = new PdfStamper(reader, new FileStream(OutPdfPath, FileMode.Create)); PdfGState gs = new PdfGState(); //设置透明度 gs.FillOpacity = toumingdu; BaseFont font = BaseFont.CreateFont(@"C:WINDOWSFontsSIMFANG.TTF", BaseFont.IDENTITY_H, BaseFont.EMBEDDED); while (i < n) { i++; //在正文内容下加水印,不挡内容 ShuiYinQu = ShuiYinOBJ.GetUnderContent(i); //在正文内容上加水印,挡内容 //ShuiYinQu = ShuiYinOBJ.GetOverContent(i); ShuiYinQu.SetGState(gs); for (float left = 0; left < w; left += 200) { for (float top = 0; top < h; top += 100) { //透明度 gs.FillOpacity = toumingdu; ShuiYinQu.SetGState(gs); //开始写入文本 ShuiYinQu.BeginText(); ShuiYinQu.SetColorFill(iTextSharp.text.Color.RED); ShuiYinQu.SetFontAndSize(font, 180); ShuiYinQu.SetTextMatrix(2, 2); ShuiYinQu.ShowTextAligned(Element.ALIGN_CENTER, ShuiYinText, w / 2, h / 2, 30); //ShuiYinQu.AddImage(im); } } ShuiYinQu.EndText(); } ShuiYinOBJ.Close(); reader.Close(); return "OK"; } catch (Exception ex) { return ex.ToString(); } } class PDFATT { PdfReader reader; public PDFATT(string iPdfFilePath) { reader = new PdfReader(iPdfFilePath); } public int PageCount() { return reader.NumberOfPages; } public float Width() { return reader.GetPageSize(1).Width; } public float Height() { return reader.GetPageSize(1).Height; } } } }调用方法说明
string p = Application.StartupPath + "";
//参数:源文件地址,新文件地址,透明度(float型),水印文本
string r = AddTextShuiYin(p + "test.pdf", p + "test1.pdf", 0.5f, "HELLO");
MessageBox.Show(r);水印位置
//这里我是w/2和h/2,大概在页中间,当然这里我为了演示没有精确计算,
//30 是旋转角度
ShuiYinQu.ShowTextAligned(Element.ALIGN_CENTER, ShuiYinText, w / 2, h / 2, 30);下次研究下加图片水印
有人认为周杰伦是华语乐坛第一人,他被高估了吗?高估?15座金曲奖历史第一,48次入围金曲奖历史第一,0208年连续6年最高销量国语专辑,03年就荣登美国时代杂志,五次出场春晚,两首歌进高考和小学教材,专辑全亚洲销量第一,03年
凤凰传奇组合为什么做不了夫妻?凤凰传奇组合两位歌手杨魏玲花和曾毅,曾经让不少人觉得他们二人是夫妻关系,实际上两人并非夫妻,他们只是合作人,同事,以及非常好的朋友关系。可能因为两人经常同框出现,从颜值来说,也是郎
骁龙845处理器的6G和8G运存差别有多大?我是科技数码随时答,很高兴能回答这个问题骁龙845处理器的6G和8G运存差别有多大?答案是并没有什么区别,同一款手机不管是内存芯片,还是型号都是一样的,而且处理器也是一样都是高通骁
如果神级文明存在,神级文明不向地球人类开放宇宙空间的原因是什么?我认为,神级文明不向地球人开放宇宙空间的原因主要有以下两点第一,人类发展水平非常落后,且经常爆发战争。从客观的角度来看,人类特别喜欢发动战争。如果神级文明向人类开放宇宙空间,人类的
能把视频里的语音转成文字的APP有哪些?你好,我来回复你的这个问题吧非常高兴的告诉你,是有这个APP的,名字叫快影。不过只能在安卓系统上使用,使用方法也是非常简单的。我有个视频讲了方法,你可以来看下满意的点个赞哦哈喽大家
你见过最自信的女人是怎么样的?我见过最自信的女人是我的二嫂,她今年已经快六十了,比年轻时候更矮更丑,但每次看到她,我都会觉得骨头缝里都是劲,日子特别有奔头!当年父母走得走,留下我和两个哥哥,大哥参军复员后进了一
为何缅北电信诈骗如此猖獗?缅北,一个诈骗分子的境外基地,有媒体说,缅北上空的每有一朵烟花绽放,就意味着意味着在中国国内可能有一个人因此生命凋谢或者家破人亡。(1)为什么缅北会是一个诈骗基地?电信诈骗是一个国
请问,我想在宝马525和奔驰E300L之间选择买一个,该选哪辆?我是大魔王,我来分享要跟奔驰E300L对标也应该是宝马的530Li吧,题主对比525Li,行,因为你没有描述你的具体购车需求和关注点,那我就以我的观点多说一下这两款车都中级豪华商务
80万落地买什么车能装最大的面子?买20辆五菱神车组成车队出行。一会排成s型,一会排成b型。80万是个很尴尬的价格带,可以说是高不成低不就。高一点揽胜GL。X7,卡宴,莱万特可能都不够。买X5。发现5可能又觉得差点
以前农村常吃的茶籽油,为什么现在都没有了,茶籽油去哪了?不是没有吧!在我们家乡都特别多,我家里每年都要榨几百斤油,自己留点吃,其它的全部卖了!话说回来,摘茶籽可是辛苦活,现在好多小年轻都不喜欢去摘!出太阳树上都是灰,下雨又不愿意去摘!山
清炒荷兰豆怎么做才好吃?清炒荷兰豆怎么做才好吃?喜欢用美食表达爱相信付出爱是让自己幸福的最好方式,更多美食问答,请关注觅源良食,让我们给您答疑解惑!豆角,细长细长的,后来才知道,吃了这么多年的豆角还有个名