Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

iTextsharp landscape document

Tags:

c#

itextsharp

I am trying to create Landscape PDF using iTextSharp but It is still showing portrait. I am using following code with rotate:

Document document = new Document(PageSize.A4, 0, 0, 150, 20); FileStream msReport = new FileStream(Server.MapPath("~/PDFS/") + "Sample1.pdf", FileMode.Create);  try {     // creation of the different writers     PdfWriter writer = PdfWriter.GetInstance(document, msReport);      document.Open();      PdfPTable PdfTable = new PdfPTable(1);     PdfTable.SpacingBefore = 30f;       PdfPCell PdfPCell = null;      Font fontCategoryheader = new Font(Font.HELVETICA, 10f, Font.BOLD, Color.BLACK);      for (int i = 0; i < 20; i++)     {         PdfPCell = new PdfPCell(new Phrase(new Chunk("Sales Manager: ", fontCategoryheader)));         PdfPCell.BorderWidth = 0;         PdfPCell.HorizontalAlignment = Element.ALIGN_LEFT;          if (i % 2 == 0)             PdfPCell.BackgroundColor = Color.LIGHT_GRAY;          PdfPCell.PaddingBottom = 5f;         PdfPCell.PaddingLeft = 2f;         PdfPCell.PaddingTop = 4f;         PdfPCell.PaddingRight = 4f;         PdfTable.AddCell(PdfPCell);     }      document.Add(PdfTable);     document.NewPage();  } catch (Exception ex) {     Console.Error.WriteLine(ex.Message); }  finally {     // we close the document      document.Close(); } 

Please suggest solution.

Thanks.

like image 445
DotnetSparrow Avatar asked Apr 06 '12 06:04

DotnetSparrow


People also ask

How do I set Itextsharp to landscape?

A4. Rotate(), 10, 10, 10, 10); In this mode all pages will be in landscape mode.

What is chunk in Itextsharp?

A Chunk is the smallest significant piece of text that you can work with.


1 Answers

Try this

Document Doc = new Document(new Rectangle(288f, 144f), 10, 10, 10, 10); Doc.SetPageSize(iTextSharp.text.PageSize.A4.Rotate()); 

you might also need this to expand a table to max width.

var _pdf_table = new PdfPTable(2); // table with two  columns PdfPCell hc = new PdfPCell(); _pdf_table.WidthPercentage = 100; //table width to 100per _pdf_table.SetTotalWidth(new float[] { 25, iTextSharp.text.PageSize.A4.Rotate().Width - 25 });// width of each column 

You must make sure that when setting the page size you do it before a call to Doc.Open();

Regards.

like image 193
Shoaib Shaikh Avatar answered Sep 22 '22 17:09

Shoaib Shaikh