Как добавить изображения в PDF с помощью ITextSharp? - PullRequest
3 голосов
/ 04 января 2011

Я хочу работать с iTextSharp 5.0.5.Но не нашел ни одного учебника по этой версии.Я скачал некоторые учебники по предыдущей версии, но выдает ошибку.Я просто хочу сшить некоторые изображения в PDF-файл iTextSharp.Может кто-нибудь дать мне код для этого?

РЕДАКТИРОВАТЬ: Через некоторое время я наконец понял, как добавить изображение.Но проблема в том, что изображение слишком велико.Теперь моя проблема в том, как уменьшить изображение или я хочу увидеть изображение на странице в обычном формате.Теперь, как я могу это сделать?

1 Ответ

6 голосов
/ 05 января 2011

Во-первых, примеры.Они все являются частью "iText in Action, 2nd edition".К счастью, все примеры из книги доступны в режиме онлайн .Они помечены различными классами и темами, которые они освещают, чтобы помочь вам найти то, что вы можете искать.Good Stuff.

Многие старые примеры, как вы указали, больше не помогали.Вот почему их больше нет на сайте.Все примеры в книге настолько современны, насколько Бруно может управлять (и он поддерживает их в актуальном состоянии).

С одной стороны, Книга очень полезна, но не обязательна.С другой стороны, деньги, потраченные на книгу, - это деньги, выделенные на поддержку iText.Мне лично не выгодно, если вы покупаете книгу, но считаю Бруно другом.Помоги моему другу.

Или еще.Grr.

;)


Если вы используете Image с Document, у вас есть несколько вариантов:

image.scaleAbsolute(xScale, yScale); // 1.0f == same size

image.scalePercent(percent); // 100.0f == same size

image.scaleToFit(desiredX, desiredY); // in points, always maintains aspect ratio

Takeваш выбор.

С другой стороны, если вы добавляете изображение в поток контента, PdfContentByte напрямую, у вас есть выше, плюс:

// scale/position the image Right Here.
contentByte.addImage(image, desiredX, 0, 0, desiredY, xLoc, yLoc );
// will NOT maintain aspect ratio.  That's a "2d transformation matrix".  Google it.

При добавленииИзображение для PdfContentByte (или его подклассов), вы можете использовать вышеприведенную матричную технику или установить масштаб изображения (первый набор вызовов) и его положение.От вас требуется , чтобы использовать абсолютное позиционирование при использовании следующего:

image.setAbsolutePosition(xLoc, yLoc);
contentByte.addImage(image);

Если вы этого не сделаете, addImage сгенерирует DocumentException с сообщением "Изображение должноиметь абсолютное позиционирование. "(или какой бы то ни было вашей локализованной версией этой строки).

...