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文件中作爲「示例文檔」。我相信你一定在許多文件中看到過這樣的情況。我想把它從頁面的左下角到右上角開始,而不管頁面座標等。所以,我會嘗試使用一些數學來獲得。並會查看你給出的鏈接。謝謝。 –