1

我已经看到了如何使用 iTextSharp 将文本水印添加到现有 PDF 文档的问题的答案。我的问题是我们如何做多行文本。有没有办法在没有定义多个 PdfContentByte 的情况下做到这一点。我试图插入一个换行符但没有运气。

这是来自互联网的代码。我刚刚添加

pdfData.ShowTextAligned(Element.ALIGN_CENTER, editDate, (pageRectangle.Width / 2) + 100, (pageRectangle.Height / 2) - 100, 45);

作为获取水印第二行的第二行,它可以工作,但使用与第一行相同的参数(颜色、大小等)。

iTextSharp.text.Rectangle pageRectangle = PDFreader.GetPageSizeWithRotation(1);
//pdfcontentbyte object contains graphics and text content of page returned by pdfstamper    
PdfContentByte pdfData = stamper.GetOverContent(1);

//create fontsize for watermark    
pdfData.SetFontAndSize(BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED), 120);

//create new graphics state and assign opacity    
PdfGState graphicsState = new PdfGState();
graphicsState.FillOpacity = 0.2F;
//set graphics state to pdfcontentbyte    
pdfData.SetGState(graphicsState);

//set color of watermark    
pdfData.SetColorFill(iTextSharp.text.Color.BLUE);

//indicates start of writing of text    
pdfData.BeginText();

//show text as per position and rotation    
pdfData.ShowTextAligned(Element.ALIGN_CENTER, "E D I T E D" , (pageRectangle.Width / 2), (pageRectangle.Height / 2), 45);
pdfData.ShowTextAligned(Element.ALIGN_CENTER, editDate, (pageRectangle.Width / 2) + 100, (pageRectangle.Height / 2) - 100, 45);
//call endText to invalid font set    

pdfData.EndText();
4

0 回答 0