2012-04-06 9 views
16

Sto cercando di creare Landscape PDF utilizzando iTextSharp ma è ancora visualizzato. Sto usando il seguente codice con rotazione:Documento panoramico iTextsharp

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

Si prega di suggerire soluzione.

Grazie.

+0

è possibile verificare con Rectangle pageSize = new Rectangle (150, 20); Documento documento = nuovo documento (pageSize); – Vinay

+0

Controlla la domanda già fornita, potresti ottenere l'indizio di cui hai bisogno http://stackoverflow.com/questions/2370427/itextsharp-set-a-document-horizontal-page-a4 –

risposta

30

Prova questa

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

si potrebbe anche bisogno di questo per espandere una tabella di larghezza massima.

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 

Cordiali saluti.

+0

Ciao Shoaib, No, sta ancora mostrando la stessa dimensione . Con landscape, la larghezza sarà maggiore dell'altezza o la direzione del testo diventerà dall'alto verso il basso o dal basso verso l'alto? La larghezza – DotnetSparrow

+0

diventa maggiore .. non ruoterà il contenuto del codice di controllo –

+0

appena aggiunto. codice btw che ho condiviso utilizza itextsharp 4.1 –

3

Non c'è bisogno di inizializzare il documento e ripristinare le dimensioni della pagina ...

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

... farà il trucco.

(4.1.6.0)