How to set the page size to Envelope size with Landscape orientation?

I have problem on creating .pdf file with the Page settings as Envelope ,landscape format.

Here is my Code to convert the asp page into pdf in Itextsharp

Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=Receipt.pdf");
Response.Cache.SetCacheability(HttpCacheability.NoCache);
StringWriter sw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
bind_Data();
this.Page.RenderControl(hw);

StringReader sr = new StringReader(sw.ToString());
Document pdfDoc = new Document(PageSize.A4.Rotate(), 10f, 10f, 100f, 0f);
//here i need to set Pagesize as Envelope.
HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
pdfDoc.Open();
htmlparser.Parse(sr);
pdfDoc.Close();
Response.Write(pdfDoc);
Response.End();

i googled it but i couldn’t find Envelope size.How do i set the page size as Envelope ,Landscape in dynamically

Thanks In Advance

Answers:

Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

You are creating an A4 document in landscape format with this line:

Document pdfDoc = new Document(PageSize.A4.Rotate(), 10f, 10f, 100f, 0f);

If you want to create a document in envelope format, you shouldn’t create an A4 page, instead you should do this:

Document pdfDoc = new Document(envelope, 10f, 10f, 100f, 0f);

In this line, envelope is an object of type Rectangle.

There is no such thing as the envelope size. There are different envelope sizes to choose from: http://www.paper-papers.com/envelope-size-chart.html

For instance, if you want to create a page with the size of a 6-1/4 Commercial Envelope, then you need to create a rectangle that measures 6 by 3.5 inch. The measurement system in PDF doesn’t use inches, but user units. By default, 1 user unit = 1 point, and 1 inch = 72 points.

Hence you’d define the envelope variable like this:

Rectangle envelope = new Rectangle(432, 252);

Because:

6 inch x 72 points = 432 points (the width)
3.5 inch x 72 points = 252 points (the height)

If you want a different envelope type, you have to do the calculations of the dimensions of that envelope format.

Method 2

I want to generate multiple pdf by using this code but it is generating only one PDF … then going to catch block, Please give solution of this problem.

Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=" + begin + ".pdf");
Response.Cache.SetCacheability(HttpCacheability.NoCache);
StringWriter sw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
Panel1.RenderControl(hw);
StringReader sr = new StringReader(sw.ToString());
Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 100f, 0f);
HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
pdfDoc.Open();
htmlparser.Parse(sr);
pdfDoc.Close();
Response.Write(pdfDoc);
Response.End();


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x