Itextsharp масштабирование изображения на всю страницу
Я пытаюсь масштабировать изображение на всю страницу в документ PDF. Я создаю документ с помощью iTextSharp. Изображение имеет правильное соотношение сторон для страницы, но я бы предпочел, чтобы изображение искажалось, а не заполняло всю доступную область.
в настоящее время у меня есть:
Dim Document As New Document(PageSize, 0, 0, 0, 0)
...
Dim ContentImage = '''Method call to get image'
Dim Content = iTextSharp.text.Image.GetInstance(ContentImage, New BackgroundColor)
Content.SetAbsolutePosition(0, 0)
Content.ScaleToFit(Document.PageSize.Width, Document.PageSize.Height)
Document.Add(Content)
к сожалению, это не учитывать поля принтера...
Мне нужно изображение, чтобы соответствовать области печати (как можно лучше определить в формат PDF)
спасибо заранее
3 ответов
Если вы решили сделать это эмпирически, то возьмите печать страницы с вашим кодом, так как это масштабирует границу страницы, чтобы изображение было черным в первой половине дюйма поля, если бы оно могло перейти к краю. Измерьте расстояние от каждого края до Черного в дюймах и разделите каждый на 72.0.
назовем их: lm, rm, tm, bm (левые правые верхние нижние поля.
Dim pageWidth = document.PageSize.Width - (lm + rm);
Dim pageHeight = document.PageSize.Height - (bm + tm);
Content.SetAbsolutePosition(lm, bm);
Content.ScaleToFit(pageWidth, pageHeight);
Document.Add(Content)
область печати зависит от принтера, PDF-файлы ничего не знают об этом. Страница PDF может содержать содержимое от поля до поля. Вы можете распечатать PDF-файл с опцией "Fit to printer margins", чтобы вся страница PDF была напечатана в масштабе печатаемой области принтера.
вы можете масштабировать изображение в соответствии со страницей PDF, используя следующий фрагмент кода.
В. Б.
Dim img As iTextSharp.text.Image = iTextSharp.text.Image.GetInstance(System.Drawing.Image.FromStream(resourceStream), System.Drawing.Imaging.ImageFormat.Png)
img.SetAbsolutePosition(0, 0)
'set the position to bottom left corner of pdf
img.ScaleAbsolute(iTextSharp.text.PageSize.A7.Width, iTextSharp.text.PageSize.A7.Height)
'set the height and width of image to PDF page size
C#
iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance(System.Drawing.Image.FromStream(resourceStream, System.Drawing.Imaging.ImageFormat.Png);
img.SetAbsolutePosition(0, 0); // set the position to bottom left corner of pdf
img.ScaleAbsolute(iTextSharp.text.PageSize.A7.Width,iTextSharp.text.PageSize.A7.Height); // set the height and width of image to PDF page size
Если вы хотите полный код (C#), вы также можете обратиться по следующей ссылке. Полный код добавляет изображение на все страницы существующего PDF-файла.