Создать PDF с помощью iTextSharp с оконными формами - PullRequest
1 голос
/ 15 февраля 2012

Я пытаюсь создать pdf документ в моем приложении Windows Forms , в приложении у меня есть формы и пользовательские элементы управления с несколькими элементами управления внутри, такие как textbox, richtexbox, ярлык, кнопка, радиокнопка и т. д. *

Я хочу создать PDF-файл с данными, представленными в этих формах и пользовательскими элементами управления, PDF-файл должен выглядеть как содержимое этих форм и пользовательских элементов управления, кнопка, текстовое поле, метки и т. Д., Подобно изображению из этих форм. и пользовательский контроль.

Извините, если мне не ясно, я хочу добавить то, что пользователь видит в форме, как это было изображение, но не делать снимок экрана, это как сделать что-то вроде этого:

pdfDocument.Add(Button);
pdfDocument.Add(textBox);

Возможно, этот вопрос неправильный, , но я новичок в создании PDF .

Ответы [ 2 ]

3 голосов
/ 15 февраля 2012

Чтобы сделать метод скриншота, вы можете сделать что-то вроде этого:

using (Bitmap b = new Bitmap(this.Width, this.Height))
{
    using (Graphics g = Graphics.FromImage(b))
    {
        g.CopyFromScreen(this.Location, new Point(0, 0), this.Size);
    }
    Document doc = new Document();
    iTextSharp.text.Image i = iTextSharp.text.Image.GetInstance(b, System.Drawing.Imaging.ImageFormat.Bmp);
    PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream(@"C:\Temp\output.pdf", FileMode.Create));
    doc.SetPageSize(new iTextSharp.text.Rectangle(this.Size.Width + doc.LeftMargin + doc.RightMargin, this.Size.Height + doc.TopMargin + doc.BottomMargin));

    doc.Open();

    doc.Add(i);
    doc.Close();
}
1 голос
/ 15 февраля 2012

Простой способ - сделайте снимок экрана своего приложения одним нажатием кнопки и вставьте это изображение в PDF-файл с помощью itextsharp.

Сложный (но, возможно, лучший способ) - напишите код, используя i-textharp для генерации PDF, передавая ваши данные ...

...