2
我使用下面的代码内容:添加印记/水印/过PDF使用iTextSharp的
PdfReader PDFReader = new PdfReader("C:\\file.pdf");
FileStream Stream = new FileStream("C:\\new.pdf", FileMode.Create, FileAccess.Write);
PdfStamper PDFStamper = new PdfStamper(PDFReader, Stream);
for (int iCount = 0; iCount < PDFStamper.Reader.NumberOfPages; iCount++)
{
PdfContentByte PDFData = PDFStamper.GetOverContent(iCount + 1);
BaseFont baseFont = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.WINANSI, BaseFont.EMBEDDED);
PDFData.BeginText();
PDFData.SetColorFill(CMYKColor.LIGHT_GRAY);
PDFData.SetFontAndSize(baseFont, 80);
PDFData.ShowTextAligned(PdfContentByte.ALIGN_CENTER, "SAMPLE DOCUMENT", 300, 400, 45);
PDFData.EndText();
}
Stream.Close();
PDFReader.Close();
PDFStamper.Close();
但PDFStamper.Close();
抛出错误。此外,我不知道是否在PDFStamper.Close();
之前或之后拨打PDFReader.Close();
而PDF文件中未添加水印。
谢谢,它现在工作正常。但是有一个问题,我希望我的文本出现在页面内部,它不覆盖整个页面,有时它比页面更小,有时更大。 –
由于使用硬编码坐标('x = 300'和'y = 400'),您会得到此行为。你应该计算偏移量。请参阅[如何将图像水印添加到PDF文件?](http://itextpdf.com/question/how-add-image-watermark-pdf-file)在你的情况下,你也想检查'pagesize .getRight()'和'pageize.getTop()'来确定你的水印是否超出可用空间。另请参阅[如何相对于页面定位文本?](http://itextpdf.com/question/how-position-text-relative-page)这些是Java示例。你将不得不作出最小的改变,使这项工作在iTextSharp –
@BrunoLowagie嗨布鲁诺Lowagie,感谢您的答复。我很荣幸能够与您交谈。我会尝试设置坐标。我试图以对角方式将水印放在PDF文件中作为“示例文档”。我相信你一定在许多文件中看到过这样的情况。我想把它从页面的左下角到右上角开始,而不管页面坐标等。所以,我会尝试使用一些数学来获得。并会查看你给出的链接。谢谢。 –