Export the entire interface to PDF











up vote
1
down vote

favorite












I created a simple program that contains Labels and TextBoxes. I added a Button to export the entire interface with Labels and Textboxes to PDF but I get this error message:




Unable to cast object of type 'System.Windows.Forms.Panel' to type
'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:UsersWin 10Desktopsimple.pdf", FileMode.Create))

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









share|improve this question




















  • 1




    I changed the tagged language from VBA to VB.Net. Different lnguages. You will probably need the render to Bitmaps your Controls. See Control.DrawToBitmap.
    – Jimi
    Nov 11 at 15:20

















up vote
1
down vote

favorite












I created a simple program that contains Labels and TextBoxes. I added a Button to export the entire interface with Labels and Textboxes to PDF but I get this error message:




Unable to cast object of type 'System.Windows.Forms.Panel' to type
'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:UsersWin 10Desktopsimple.pdf", FileMode.Create))

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









share|improve this question




















  • 1




    I changed the tagged language from VBA to VB.Net. Different lnguages. You will probably need the render to Bitmaps your Controls. See Control.DrawToBitmap.
    – Jimi
    Nov 11 at 15:20















up vote
1
down vote

favorite









up vote
1
down vote

favorite











I created a simple program that contains Labels and TextBoxes. I added a Button to export the entire interface with Labels and Textboxes to PDF but I get this error message:




Unable to cast object of type 'System.Windows.Forms.Panel' to type
'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:UsersWin 10Desktopsimple.pdf", FileMode.Create))

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









share|improve this question















I created a simple program that contains Labels and TextBoxes. I added a Button to export the entire interface with Labels and Textboxes to PDF but I get this error message:




Unable to cast object of type 'System.Windows.Forms.Panel' to type
'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:UsersWin 10Desktopsimple.pdf", FileMode.Create))

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






vb.net winforms






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 11 at 15:19









Jimi

6,07421233




6,07421233










asked Nov 11 at 14:17









anater mj

337




337








  • 1




    I changed the tagged language from VBA to VB.Net. Different lnguages. You will probably need the render to Bitmaps your Controls. See Control.DrawToBitmap.
    – Jimi
    Nov 11 at 15:20
















  • 1




    I changed the tagged language from VBA to VB.Net. Different lnguages. You will probably need the render to Bitmaps your Controls. See Control.DrawToBitmap.
    – Jimi
    Nov 11 at 15:20










1




1




I changed the tagged language from VBA to VB.Net. Different lnguages. You will probably need the render to Bitmaps your Controls. See Control.DrawToBitmap.
– Jimi
Nov 11 at 15:20






I changed the tagged language from VBA to VB.Net. Different lnguages. You will probably need the render to Bitmaps your Controls. See Control.DrawToBitmap.
– Jimi
Nov 11 at 15:20














1 Answer
1






active

oldest

votes

















up vote
2
down vote



accepted










You will need to convert the controls to Bitmap images, then drop them into the PDF.



I wrote this function that will take WinForms controls, convert them to Bitmap and then into iTextSharp.text.Image formats that can then be placed inside of a 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


So if you change your code to this, it should work:



pdfDoc.Add(ControlToPDFImage(Panel1))
pdfDoc.Add(ControlToPDFImage(Panel2))
pdfDoc.Add(ControlToPDFImage(TextBox1))
pdfDoc.Add(ControlToPDFImage(TextBox2))





share|improve this answer























  • this worked for me thanks
    – anater mj
    Nov 12 at 7:51










  • As a note, Control.DrawToBitmap will not work with a RichTextBox control. It will not give any errors, but the control's content will not be rendered. In this case, you'll need to take a screenshot of the control bounds. See the Graphics.CopyFromScreen method.
    – Jimi
    Nov 12 at 8:28













Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53249615%2fexport-the-entire-interface-to-pdf%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes








up vote
2
down vote



accepted










You will need to convert the controls to Bitmap images, then drop them into the PDF.



I wrote this function that will take WinForms controls, convert them to Bitmap and then into iTextSharp.text.Image formats that can then be placed inside of a 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


So if you change your code to this, it should work:



pdfDoc.Add(ControlToPDFImage(Panel1))
pdfDoc.Add(ControlToPDFImage(Panel2))
pdfDoc.Add(ControlToPDFImage(TextBox1))
pdfDoc.Add(ControlToPDFImage(TextBox2))





share|improve this answer























  • this worked for me thanks
    – anater mj
    Nov 12 at 7:51










  • As a note, Control.DrawToBitmap will not work with a RichTextBox control. It will not give any errors, but the control's content will not be rendered. In this case, you'll need to take a screenshot of the control bounds. See the Graphics.CopyFromScreen method.
    – Jimi
    Nov 12 at 8:28

















up vote
2
down vote



accepted










You will need to convert the controls to Bitmap images, then drop them into the PDF.



I wrote this function that will take WinForms controls, convert them to Bitmap and then into iTextSharp.text.Image formats that can then be placed inside of a 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


So if you change your code to this, it should work:



pdfDoc.Add(ControlToPDFImage(Panel1))
pdfDoc.Add(ControlToPDFImage(Panel2))
pdfDoc.Add(ControlToPDFImage(TextBox1))
pdfDoc.Add(ControlToPDFImage(TextBox2))





share|improve this answer























  • this worked for me thanks
    – anater mj
    Nov 12 at 7:51










  • As a note, Control.DrawToBitmap will not work with a RichTextBox control. It will not give any errors, but the control's content will not be rendered. In this case, you'll need to take a screenshot of the control bounds. See the Graphics.CopyFromScreen method.
    – Jimi
    Nov 12 at 8:28















up vote
2
down vote



accepted







up vote
2
down vote



accepted






You will need to convert the controls to Bitmap images, then drop them into the PDF.



I wrote this function that will take WinForms controls, convert them to Bitmap and then into iTextSharp.text.Image formats that can then be placed inside of a 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


So if you change your code to this, it should work:



pdfDoc.Add(ControlToPDFImage(Panel1))
pdfDoc.Add(ControlToPDFImage(Panel2))
pdfDoc.Add(ControlToPDFImage(TextBox1))
pdfDoc.Add(ControlToPDFImage(TextBox2))





share|improve this answer














You will need to convert the controls to Bitmap images, then drop them into the PDF.



I wrote this function that will take WinForms controls, convert them to Bitmap and then into iTextSharp.text.Image formats that can then be placed inside of a 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


So if you change your code to this, it should work:



pdfDoc.Add(ControlToPDFImage(Panel1))
pdfDoc.Add(ControlToPDFImage(Panel2))
pdfDoc.Add(ControlToPDFImage(TextBox1))
pdfDoc.Add(ControlToPDFImage(TextBox2))






share|improve this answer














share|improve this answer



share|improve this answer








edited Nov 12 at 8:25









Jimi

6,07421233




6,07421233










answered Nov 11 at 21:23









Nathan Champion

2269




2269












  • this worked for me thanks
    – anater mj
    Nov 12 at 7:51










  • As a note, Control.DrawToBitmap will not work with a RichTextBox control. It will not give any errors, but the control's content will not be rendered. In this case, you'll need to take a screenshot of the control bounds. See the Graphics.CopyFromScreen method.
    – Jimi
    Nov 12 at 8:28




















  • this worked for me thanks
    – anater mj
    Nov 12 at 7:51










  • As a note, Control.DrawToBitmap will not work with a RichTextBox control. It will not give any errors, but the control's content will not be rendered. In this case, you'll need to take a screenshot of the control bounds. See the Graphics.CopyFromScreen method.
    – Jimi
    Nov 12 at 8:28


















this worked for me thanks
– anater mj
Nov 12 at 7:51




this worked for me thanks
– anater mj
Nov 12 at 7:51












As a note, Control.DrawToBitmap will not work with a RichTextBox control. It will not give any errors, but the control's content will not be rendered. In this case, you'll need to take a screenshot of the control bounds. See the Graphics.CopyFromScreen method.
– Jimi
Nov 12 at 8:28






As a note, Control.DrawToBitmap will not work with a RichTextBox control. It will not give any errors, but the control's content will not be rendered. In this case, you'll need to take a screenshot of the control bounds. See the Graphics.CopyFromScreen method.
– Jimi
Nov 12 at 8:28




















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.





Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


Please pay close attention to the following guidance:


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53249615%2fexport-the-entire-interface-to-pdf%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Full-time equivalent

さくらももこ

13 indicted, 8 arrested in Calif. drug cartel investigation