是否可以在ITextSharp中为pdf页面设置背景图像?
为pdf页面定义背景图像的正确方法是什么?我设置的文件中是否有属性?
或者就像创建另一张图片一样(我的图片有A4页面的尺寸)? 如果我将背景图像添加为普通图像,我是否可以在背景图像的顶部放置段落?
var document = new Document(PageSize.A4, 50, 50, 25, 25);
// Create a new PdfWrite object, writing the output to a MemoryStream
var output = new MemoryStream();
var writer = PdfWriter.GetInstance(document, output);
var logo = iTextSharp.text.Image.GetInstance(Server.MapPath("~/Images/test.jpg"));
logo.SetAbsolutePosition(0,0);
document.Add(logo);
// Will the following paragraph be ON TOP or below the background image?
// I am aiming for on top
document.Add( new Paragraph("sjfkkjdsfk") );
document.Close();
答案 0 :(得分:0)
徽标很好 - 它只是页面上的常规图像内容,而不是背景img(就像在HTML中一样)。要将内容置于其上,您需要使用直接内容:
PdfContentByte over = writer.DirectContent;
over.SaveState();
over.BeginText();
over.SetFontAndSize(BaseFont.CreateFont(), 9);
over.ShowTextAligned(Element.ALIGN_LEFT, "Your Text", x, y, 0);
over.SetLineWidth(0.3f);
over.EndText();
over.RestoreState();
请注意x和y线是从左下角开始的。最后一个参数是旋转。
另一个提示:做一个doc.NewPage();如果你想开始一个带有图像背景的新页面,那么文本线就在新页面上。