我正在使用C#和iTextSharp为我的PDF文件添加水印:
Document document = new Document();
PdfReader pdfReader = new PdfReader(strFileLocation);
PdfStamper pdfStamper = new PdfStamper(pdfReader, new FileStream(strFileLocationOut, FileMode.Create, FileAccess.Write, FileShare.None));
iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance(WatermarkLocation);
img.SetAbsolutePosition(100, 300);
PdfContentByte waterMark;
//
for (int pageIndex = 1; pageIndex <= pdfReader.NumberOfPages; pageIndex++)
{
waterMark = pdfStamper.GetOverContent(pageIndex);
waterMark.AddImage(img);
}
//
pdfStamper.FormFlattening = true;
pdfStamper.Close();
Run Code Online (Sandbox Code Playgroud)
它工作正常,但我的问题是,在一些PDF文件中没有添加水印虽然文件大小增加,任何想法?
文件大小增加的事实是添加水印的良好指示.主要问题是您在页面的可见区域外添加水印.请参阅如何使用iText相对于页面定位文本?
你需要这样的东西:
Rectangle pagesize = reader.GetCropBox(pageIndex);
if (pagesize == null)
pagesize = reader.GetMediaBox(pageIndex);
img.SetAbsolutePosition(
pagesize.GetLeft(),
pagesize.GetBottom());
Run Code Online (Sandbox Code Playgroud)
即:如果要在页面的左下角添加图像.您可以添加偏移量,但要确保x方向上的偏移量不超过页面宽度,y方向上的偏移量不超过页面高度.
| 归档时间: |
|
| 查看次数: |
13913 次 |
| 最近记录: |