Правильно подгоняйте размер изображения в существующий PDFC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Правильно подгоняйте размер изображения в существующий PDF

Сообщение Anonymous »

Я пишу простое приложение для преобразования изображений в одностраничные файлы PDF.
Приложение работает нормально (полный исходный код доступен на GitHub), но этот метод дает мне некоторую проблему: < /p>

Код: Выделить всё

    private void CreateDoc(string srcFilename, string folder, PageSize pageSize)
{
string dstFilename = System.IO.Path.Combine(folder, System.IO.Path.GetFileNameWithoutExtension(srcFilename) + ".pdf");

using PdfWriter writer = new(dstFilename);
using PdfDocument pdfDocument = new(writer);

iText.IO.Image.ImageData imageData = iText.IO.Image.ImageDataFactory.Create(srcFilename);

iText.Layout.Element.Image image = new(imageData);

iText.Kernel.Geom.Rectangle? rectangle = null;

if (pageSize == PageSize.ImageSize)
{
rectangle = new(0, 0, (int)image.GetImageWidth(), (int)image.GetImageHeight());
}
else
{
rectangle = pageSize.PdfSize();
if (rectangle != null)
image.ScaleToFit(
rectangle.GetWidth(),
rectangle.GetHeight());
else throw new Exception("Page size not supported!");
}

if (rectangle == null)
throw new Exception("Page not created!");

iText.Layout.Document document = new(pdfDocument, new iText.Kernel.Geom.PageSize(rectangle));

float offX = (rectangle.GetWidth() - image.GetImageScaledWidth()) / 2;
float offY = (rectangle.GetHeight() - image.GetImageScaledHeight()) / 2;

image.SetFixedPosition(offX, offY);

document.SetMargins(0, 0, 0, 0);

document.Add(image);
}
Метод создает документ PDF в папке только с одной страницей, содержащей одно изображение (

Код: Выделить всё

srcFilename
), третий параметр - это размер страницы, на которой будет размещено изображение (изображение будет масштабировано в соответствии с страницей), PageSize может быть одним из типичных размеров бумажных листов или изображений .
Также может отсканировать файл PDF, чтобы сборы. Созданная PDF -страница соответствует размеру бумаги, но, поскольку исходное изображение почти никогда не соответствует белым границам размера листа occours . Если я хочу избежать таких границ, мне нужно установить PAGESIZE = Imagesize ... В данном случае страница создается без белых границ, но она намного больше, чем правильный размер страницы (2x, 3x).
Как я могу вычислить/применить коэффициент масштабирования, чтобы минимизировать разногласия?>

Подробнее здесь: https://stackoverflow.com/questions/791 ... isting-pdf
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Правильно подгоняйте размер изображения в существующий PDF
    Anonymous » » в форуме C#
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Правильно подгоняйте размер изображения в существующий PDF
    Anonymous » » в форуме C#
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Правильно подгоняйте размер изображения в существующий PDF
    Anonymous » » в форуме C#
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Правильно подгоняйте размер изображения в существующий PDF
    Anonymous » » в форуме C#
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Правильно подгоняйте размер изображения в существующий PDF
    Anonymous » » в форуме C#
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»