最近在做一个asp.netPdf加图片水印的功能,引用到网上的方法,但是发现只能在绝对路径上加水印

最近在做一个asp.netPdf加图片水印的功能,引用到网上的方法,但是发现只能在绝对路径上加水印

问题描述:

最近在做一个asp.netPdf加水印的功能,套用了网上的一个模板,但是发现pdf引用本地路径就能正常生成水印,写网站中的相对路径就不行,想问下各位,是否这个方法只能在本地路径下生成水印

你可以做这样一个测试,编写代码:
string s = Path.GetFullPath("1.txt");
Response.Write(s);
看下这个路径和你预期的是否一致:

图片说明

加水印是在文件上添加了数据的,因此必须确认你有添加数据的权限,而且进行的操作是在服务器断进行的操作,所以你的ASP.NET代码确实应该在本机文件上进行操作。如果你引用的文件是其它网址的文件,则只能添加伪水印。
实际上,你ASP.NET的代码客户端是无法查看的,因此也并不会暴露你的设置。实际上网上的很多共享代码,例如上传文件等等,在服务器端也是使用的绝对路径,或者是相对服务器文件夹的绝对路径。
还有一种办法是你可以把pdf文件的二进制数据放入数据库中,然后从读出的数据库数据中添加水印,这样也许可以解决你的“强迫症”。而且数据库中也方便管理,免得时间久了你忘记你的PDF到底是放到哪一个目录下了。