我通过flashpaper实现了转成pdf。
但是加水印中,如下代码
public static bool PDFWatermark(string inputfilepath, string outputfilepath, string ModelPicName, float top, float left, ref string strMsg)
{
PdfReader pdfReader = null;
PdfStamper pdfStamper = null;
try
{
//pdf读取器
pdfReader = new PdfReader(inputfilepath);
//页数
int numberOfPages = pdfReader.NumberOfPages;
//页的大小
iTextSharp.text.Rectangle psize = pdfReader.GetPageSize(1);
float width = psize.Width;
float height = psize.Height;
//生成的pdf
pdfStamper = new PdfStamper(pdfReader, new FileStream(outputfilepath, FileMode.Create));
PdfContentByte waterMarkContent;
//用于水印的图片
iTextSharp.text.Image image = iTextSharp.text.Image.GetInstance(ModelPicName);
image.GrayFill = 60;//透明度,灰色填充
image.ImageMask.Transparency = new int[]{50,50};
image.InitialRotation = 2;
image.Interpolation = true;
image.MakeMask();
//image.Rotation//旋转
//image.RotationDegrees//旋转角度
//水印的位置
if (left < 0)
{
left = width - image.Width + left;
}
image.SetAbsolutePosition(left, (height - image.Height) - top);
//每一页加水印,也可以设置某一页加水印
for (int i = 1; i <= numberOfPages; i++)
{
waterMarkContent = pdfStamper.GetUnderContent(i);
waterMarkContent.AddImage(image);
}
strMsg = "success";
return true;
}
catch (Exception ex)
{
strMsg = ex.Message.Trim();
return false;
}
finally
{
if (pdfStamper != null)
pdfStamper.Close();
if (pdfReader != null)
pdfReader.Close();
}
}
将
waterMarkContent = pdfStamper.GetUnderContent(i)
换成
waterMarkContent = pdfStamper.GetOverContent(i)可以加上,水印浮在内容上面了。
因此我联想到使用GetUnderContent方法的时候是因为水印被背景覆盖了。
求高手帮忙!
10 个解决方案
#1
用控件不好?
#2
使用flashpaper不行吗?那在代码里面用哪个第三方的插件呢?
#3
或者有办法读取pdf的时候将背景从文件中剔除吗?itextsharp里面有相应的方法吗?
#4
可以直接用itextsharp去产生PDF并加水印。
#5
用itextsharp直接转的话,觉得比较烦,因为要兼容不同的格式。包括图片,txt,这些格式都是要的。另外可能也有效率的问题。
#6
有人有好的方案吗?用iTextsharp会有各种格式转换的问题。而且转换效率不能保证呢。
#7
iTextsharp 免費的是這樣了。問問作者吧
#8
已经解决了,使用处理过的png图片可以。
#9
楼主希望发一份DEMO我看看 我想知道如何加水印
#10
处理成透明的图片?
#1
用控件不好?
#2
使用flashpaper不行吗?那在代码里面用哪个第三方的插件呢?
#3
或者有办法读取pdf的时候将背景从文件中剔除吗?itextsharp里面有相应的方法吗?
#4
可以直接用itextsharp去产生PDF并加水印。
#5
用itextsharp直接转的话,觉得比较烦,因为要兼容不同的格式。包括图片,txt,这些格式都是要的。另外可能也有效率的问题。
#6
有人有好的方案吗?用iTextsharp会有各种格式转换的问题。而且转换效率不能保证呢。
#7
iTextsharp 免費的是這樣了。問問作者吧
#8
已经解决了,使用处理过的png图片可以。
#9
楼主希望发一份DEMO我看看 我想知道如何加水印
#10
处理成透明的图片?