2012-04-06 14 views
16

Ich versuche, Landschaft PDF mit iTextSharp erstellen, aber es zeigt immer noch Porträt. Ich verwende folgenden Code mit drehen:iTextsharp Landschaft Dokument

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(); 
} 

Bitte schlagen Sie Lösung vor.

Danke.

+0

können Sie mit Rectangle pageSize = new Rectangle (150, 20) überprüfen; Dokument Dokument = neues Dokument (pageSize); – Vinay

+0

Überprüfen Sie die bereits beantwortete Frage, möglicherweise erhalten Sie den Hinweis, den Sie benötigen http://StackOverflow.com/Questions/2370427/itextsharp-set-a-document-horizontal-Seite-a4 –

Antwort

30

Versuchen Sie, diese

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

Sie auch diese benötigen eine Tabelle maximale Breite zu erweitern.

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 

Grüße.

+0

Hallo Shoaib, Nein, es zeigt immer noch die gleiche Größe . Ist die Breite bei Querformat größer als die Höhe oder wird die Textrichtung von oben nach unten oder von unten nach oben angezeigt? – DotnetSparrow

+0

Breite wird größer .. es wird nicht den Inhalt drehen –

+0

Prüfcode ich gerade hinzugefügt. btw code i shared verwendet iutxtsharp 4.1 –

3

Keine Notwendigkeit, das Dokument und setzen Sie die Seitengröße ...

Document doc = new Document(iTextSharp.text.PageSize.A4.Rotate(), 10, 10, 10, 10); 

... wird der Trick zu initialisieren.

(4.1.6.0)