iTextSharp水印多行文字

时间:2012-05-19 19:13:13

标签: itextsharp

我已经看到了如何使用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();

0 个答案:

没有答案