ITextSharp Определение фонового изображения страницы: как правильно? - PullRequest
0 голосов
/ 07 марта 2012

Можно ли установить фоновое изображение для страницы PDF в ITextSharp?

Как правильно определить фоновое изображение для страницы PDF? Есть ли свойство документа, который я установил?

Или это похоже на создание другого изображения (мое изображение имеет размеры страницы А4)? Если я добавлю фоновое изображение как обычное изображение, смогу ли я разместить абзацы поверх фонового изображения?

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();

1 Ответ

0 голосов
/ 08 марта 2012

Логотип в порядке - это просто обычное изображение на странице, а не фоновое изображение (как в HTML).Чтобы поместить контент поверх этого, вам нужно использовать Direct Content:

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 находится в нижнем левом углу.Последний параметр предназначен для вращения.

Еще один совет: do a doc.NewPage ();если вы хотите начать новую страницу с фоновым изображением, значит текстовый шнур находится на новой странице.

...