2011-01-04 5 views
3

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

EDIT: После некоторого времени, потраченного на это, я, наконец, понял, как добавить изображение. Но проблема в том, что изображение слишком велико. Теперь моя проблема заключается в том, как уменьшить изображение или я хочу видеть изображение на странице в обычном формате. Теперь, как я могу это сделать?

ответ

6

Во-первых, примеры. Все они являются частью «iText in Action, 2nd edition». К счастью, к примерам книги относятся все available on line. Они помечены различными классами и темами, которые они охватывают, чтобы помочь вам найти то, что вы, возможно, ищете. Хорошая вещь.

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

С одной стороны, The Book очень полезен, но не требуется. С другой стороны, деньги, потраченные на книгу, - это деньги, предоставленные для поддержки 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 

сделайте ваш выбор.

С другой стороны, если вы хотите добавить изображение в поток контента, 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 с сообщением «Изображение должно иметь абсолютное позиционирование.» (или независимо от вашей локализованной версии этой строки).

+0

В iText только типы начинаются с букв верхнего регистра. Мне ясно, что все, кто одобрил предыдущие изменения, не были знакомы с iText и не искали его. –