2014-02-12 3 views
0

У меня есть изображение, которое мне нравится использовать в качестве фона для моего pdf. Мой pdf-файл находится в LANDSCAPE, поэтому фоновое изображение должно вписываться в мой альбом pdf.Backgroundimage в ландшафте и обложке всего pdf с iTextSharp

Как я могу это сделать? Это мой код, но изображение не показывает право в альбомной :(

string imageFilePath = Server.MapPath(".") + "/images/test.jpg"; 
iTextSharp.text.Image jpg = iTextSharp.text.Image.GetInstance(imageFilePath); 
Document pdfDucment = new Document(new Rectangle(288f, 144f), 10, 10, 10, 10); 
pdfDucment.SetPageSize(iTextSharp.text.PageSize.A4.Rotate());  

jpg.ScaleToFit(1500, 1500); 
jpg.Alignment = iTextSharp.text.Image.UNDERLYING; 
jpg.SetAbsolutePosition(0,5); 
+0

* изображение не отображается правильно * - что именно вы имеете в виду, каким образом это неправильно? – mkl

+0

Не полный экран в ландшафте – KEVIN

+0

Ваш код неверен во многих местах. (Как будто вы никогда не читали никакой документации о iTextSharp.) Я делаю вам пример, чтобы показать вам, как это делается. Дайте мне минуту или пять. –

ответ

0

Пожалуйста, обратите внимание на BackgroundImage примере и его resulting pdf.

Теперь давайте взглянем на код и список всех ошибки.

  • неясно, что вы ожидаете, как размер страницы. Сначала необходимо создать документ, используя прямоугольник 288 на 144 пт. Можно также определить поля. Тем не менее, вы затем изменить размер страницы в повернутой A4 как ваш фрагмент кода esn't показывается, когда вы действительно открываете документ, трудно определить размер страницы. Если после изменения размера страницы на A4 будет вызываться Open(), это будет A4. Если он срабатывает до изменения размера страницы, он будет 288 на 144.
  • Вы изменяете размер изображения с помощью метода ScaleToFit(). Вы хотите, чтобы изображение соответствовало квадрату 1500 на 1500 пт. Если ваше изображение также является квадратом, изображение действительно будет перемасштабировано до 1500 на 1500 пт. Однако, если изображение представляет собой прямоугольник, оно будет меньше 1500 на 1500, потому что ScaleToFit() сохраняет пропорции, пытаясь поместить изображение в заданные размеры. В моем примере я использую абсолютное масштабирование. Конечно, это может исказить ваше изображение, но опять же: вы хотите, чтобы изображение охватывало всю страницу.
  • Вы добавляете изображение с помощью Image.UNDERLYING, но что делать, если в документе есть другие изображения? Как вы будете заставлять изображение добавляться под ними и не покрывать их? Самый безопасный способ сделать это - добавить изображение как прямой контент к слою под обычным контентом.
  • Наконец, вы используете 0, 5 в качестве абсолютного положения. Почему не 0, 0? Вы хотите увидеть маржу? Если да, то как вы можете заверить, что маржа составляет 5 пунктов на каждой стороне страницы?

Если вы исправляете эти ошибки один за другим, используя пример Java как вдохновение, вы сможете решить свою проблему.

+0

ссылки сломаны – TWilly

Смежные вопросы