pdf加水印,文件流输出问题

问题描述

下面这段代码是iTextSharp.dll组件给pdf水印,代码运行正常。请教大家一个问题,如何修改代码直接在原pdf文件上加水印,而不是传入新文件加水印后输出新的pdf文件。publicboolPDFWatermark(stringinputfilepath,stringoutputfilepath,stringModelPicName,floatbottom,floatright){PdfReaderpdfReader=null;PdfStamperpdfStamper=null;try{pdfReader=newPdfReader(inputfilepath);intnumberOfPages=pdfReader.NumberOfPages;iTextSharp.text.Rectanglepsize=pdfReader.GetPageSize(1);floatwidth=psize.Width;floatheight=psize.Height;pdfStamper=newPdfStamper(pdfReader,newFileStream(outputfilepath,FileMode.Create));PdfContentBytewaterMarkContent;iTextSharp.text.Imageimage=iTextSharp.text.Image.GetInstance(ModelPicName);image.GrayFill=0.3f;//透明度,灰色填充//水印的位置if(right<0){right=width-image.Width+right;}image.SetAbsolutePosition(right,(height-image.Height)-bottom);waterMarkContent=pdfStamper.GetUnderContent(1);waterMarkContent.AddImage(image);returntrue;}catch(Exceptionex){ex.Message.Trim();returnfalse;}finally{if(pdfStamper!=null)pdfStamper.Close();if(pdfReader!=null)pdfReader.Close();//添加水印成功}}//添加水印

解决方案

解决方案二:
方法一试试看inputfilepath、outputfilepath两个都一样,指向同一个文件,是否运行正常如果不行,那就在调用成功后if(PDFWatermark(参数列表)){System.IO.File.Delete(inputfilepath);System.IO.File.Move(outputfilepath,inputfilepath);}

时间: 2024-10-07 08:56:52

pdf加水印,文件流输出问题的相关文章

C#可以用文件流输出excel表格并且控制表格的背景颜色吗?

问题描述 不用excel对象操作因为客户机器很可能不安装可以直接用文件流来操作excel的背景吗求方法 解决方案 解决方案二:可以用第三方插件(dll)不过NPOI对于设置单元格背景有BUG,设置了之后执行会报错找找别的第三方dll吧,很多种类的解决方案三:流,不可以.有没有excel的背景色感觉对数据没有多大用.关键还是输入效率及数据的正确性.解决方案四:excel可接受多种数据格式,只有excel自己的数据格式需要使用excel对象而XML.HTML等都可以以流方式输出

c++文件流输出-C++从文件中输出类时重复输出的问题

问题描述 C++从文件中输出类时重复输出的问题 #ifndef CLASSDEF_H#define CLASSDEF_H class MoneyData{public: int year; int month; int day; char remark[80]; char PI[40]; char BankAccount[20]; char form[15]; char direction[5]; double Change; double Cash; double Saving; static

c++文件流输出-c++文件流。

问题描述 c++文件流. 第一次运行没有问题,在生成文件后,第二次运行,就会出错,文件变成乱码. 解决方案 流,简单来说就是建立在面向对象基础上的一种抽象的处理数据的工具.在流中,定义了一些处理数据的基本操作,如读取数据,写入数据等,程序员是对流进行所有操作的,而不用关心流的另一头数据的真正流向.流不但可以处理文件,还可以处理动态内存.网络数据等多种数据形式.如果你对流的操作非常熟练,在程序中利用流的方便性,写起程序会大大提高效率的.目录一.打开文件二.关闭文件三.读写文件四.检测EOF五.文件

图片加水印-C#图片以流的形式加水印

问题描述 C#图片以流的形式加水印 用流读取的图片,我在上面加了文字水印. 但是我要怎么控制水印的位置,比如说我要加到右下角.应该怎么算坐标?(同一个坐标 .jpg格式跟tif格式位置不一样.)下面是我的代码: /// /// 图片加水印 /// /// 图片路径 /// 字体 /// 字体大小 /// 水印位置 /// 水印文字 /// 存储图片的文件夹 public void AddWaterText(string oldPath,string font,int fontSize,strin

用ITextSharp给pdf文档加水印在FireFox下水印消失并且不允许打印功能失效

问题描述 用ITextSharp给pdf文档加水印在FireFox下水印消失并且不允许打印功能失效有没有大神遇到过这种问题?或者C#有没有其它的方法给pdf加水印,10点上线回帖!谢谢这个是在googlechrome下面,禁用打印和水印都是成功的这是在火狐下面,水印消失,禁止打印也无效了! 解决方案

文件操作-ASP.NET对称解密后Response文件流下载

问题描述 ASP.NET对称解密后Response文件流下载 一个AES对称加密压缩文件用AES解密后使用MemoryStream内存文件流存放后转换为byte[]字节流数组使用Response文件流输出方式输出.压缩文件打开的时候提示文件流出错,内容一样可以查看说明解密成功了.使用FileStream保存文件无任何异常. ` 解决方案 http://www.cnblogs.com/chaoa/archive/2012/03/09/2386106.html

格式工厂如何为视频文件加水印?

  格式工厂是一个免费的万能视频格式转换软件,很多朋友下载的电影都会用它来转换格式,rmvb到mp4等,有些朋友希望给视频加上水印,这里是格式工厂为视频文件加水印图文教程. 1 在源文件添加界面中点击您需要转换的影片格式,这里以"所有转到MP4"为例 2 在所有转到MP4界面中点击"添加文件"添加您需要转换的影片,您所添加的视频文件就显示在(2)处,点击"输出配置"对视频进行设置 3 在视频设置界面中点击"水印"就能添加图片,

文件流 二进制-C++文件流二进制加解密问题

问题描述 C++文件流二进制加解密问题 最近在编一个加密程序,想通过fstream来对文件进行操作.想用文件流实现在文件中的二进制模二加,求助大神们. fstream finout: finout.open(filename,ios_base::binary):接下来就不知道怎么做了,不想用fwrite

class-文件上传加参数files=文件流上传类型为enctype=multipart/form-data

问题描述 文件上传加参数files=文件流上传类型为enctype=multipart/form-data 文件上传加个参数files=文件流,上传类型为: enctype="multipart/form-data" 能解释下? 解决方案 表单中enctype="multipart/form-data"的意思,是设置表单的MIME编码.默认情况,这个编码格式是application/x-www-form-urlencoded,不能用于文件上传:只有使用了multip