2015-04-16 4 views
1

SO У меня есть форма PDF-формы с текстовыми полями, которые являются редактируемыми полями. Я могу сгенерировать предварительно заполненный PDF-файл со значениями из моей базы данных в шаблон через приложение MVC 4.0. Что хорошо работает. Теперь я хочу добавить изображение из папки в PDF, который будет отличаться одной формой от другой формы. Изображение будет зависеть от пользовательского ввода. Изображение будет помещено в нижней части PDF-файла. Я не вижу контейнер изображений или контейнера изображений в качестве зарегистрированного параметра. Только один, который я вижу, - это текстовое поле, флажок, радио, список и т. Д., Но ничего похожего на iimage.Добавить изображение в существующий PDF с помощью itextsharp

Достаточно знать, как динамически добавить изображение в PDF?

+0

Я не думаю, что это возможно. Форма PDF не следует путать с формой HTML. Они разные звери. В форме PDF нет цикла ответа на запрос после ответа. Введенный текст просто устанавливается в PDF, как если бы он был жестко закодирован в PDF. –

+0

«Я могу сгенерировать предварительно заполненный PDF-файл со значениями из моей базы данных в шаблон через приложение MVC 4.0». Как вы это делаете? Могу поспорить, что вы используете библиотеку, и очень вероятно, что одну и ту же библиотеку можно использовать для добавления изображений в существующий файл PDF. – yms

+0

@yms да я использую библиотеку itextsharp. Я сейчас изучаю, когда мы говорим, я искал форму, поданную ранее, но теперь просматриваю библиотеку. –

ответ

1

Вы можете найти ответ на свой вопрос в official documentation, а точнее в chapter 8. В разделе 8.2.3, озаглавленном «Кнопки», я объясняю, что мы обычно используем кнопки в качестве заполнителей для изображений, потому что кнопки могут иметь значок .

Пример ReplaceIcon показывает, как вы можете заменить значок кнопки выделения. Как вы используете C#, вы можете захотеть взглянуть на ReplaceIcon.cs:

PdfReader reader = new PdfReader(aPdf); 
using (MemoryStream ms = new MemoryStream()) { 
    using (PdfStamper stamper = new PdfStamper(reader, ms)) { 
     AcroFields form = stamper.AcroFields; 
     PushbuttonField ad = form.GetNewPushbuttonFromField("button_name"); 
     ad.Layout = PushbuttonField.LAYOUT_ICON_ONLY; 
     ad.ProportionalIcon = true; 
     ad.Image = Image.GetInstance(yourImage); 
     form.ReplacePushbuttonField("button_name", ad.Field); 
     } 
    } 
    // ms will contain your PDF in memory 
} 
reader.Close(); 

Обратите внимание, что линия ad.ProportionalIcon = true; будет масштабировать изображение так, что она соответствует кнопке.

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