Экспортируйте весь интерфейс в PDF - PullRequest
0 голосов
/ 11 ноября 2018

Я создал простую программу, которая содержит метки и текстовые поля. Я добавил кнопку для экспорта всего интерфейса с метками и текстовыми полями в PDF, но я получаю это сообщение об ошибке:

Невозможно привести объект типа 'System.Windows.Forms.Panel' к типу. 'ITextSharp.text.IElement'.,

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    Dim pdfDoc As New Document()
    Dim pdfWrite As PdfWriter = PdfWriter.GetInstance(pdfDoc, New FileStream("C:\Users\Win 10\Desktop\simple.pdf", FileMode.Create))

    pdfDoc.open()
    pdfDoc.Add(Panel1)
    pdfDoc.Add(Panel2)
    pdfDoc.Add(TextBox1)
    pdfDoc.Add(TextBox2)
    pdfDoc.Close()
End Sub

1 Ответ

0 голосов
/ 12 ноября 2018

Вам нужно будет преобразовать элементы управления в растровые изображения, а затем перетащить их в PDF.

Я написал эту функцию, которая будет принимать WinForms элементы управления, преобразовывать их в растровое изображение, а затем в iTextSharp.text.Image форматы, которые затем можно поместить в PDF.

Function ControlToPDFImage(ControlToConvert As Windows.Forms.Control)

    Dim Bmp As Bitmap = New Bitmap(ControlToConvert.Width, ControlToConvert.Height)
    ControlToConvert.DrawToBitmap(Bmp, New Drawing.Rectangle(0, 0, Panel1.Width, Panel1.Height))
    Dim PDFImg As Image = iTextSharp.text.Image.GetInstance(Bmp, System.Drawing.Imaging.ImageFormat.Png)

    Return PDFImg

End Function

Так что если вы измените свой код на это, он должен работать:

pdfDoc.Add(ControlToPDFImage(Panel1))
pdfDoc.Add(ControlToPDFImage(Panel2))
pdfDoc.Add(ControlToPDFImage(TextBox1))
pdfDoc.Add(ControlToPDFImage(TextBox2))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...