2012-04-06 33 views
16

Tôi đang cố gắng tạo Cảnh PDF bằng iTextSharp nhưng Nó vẫn hiển thị hình chân dung. Tôi đang sử dụng mã sau đây với xoay:Tài liệu cảnh quan 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(); 
} 

Vui lòng đề xuất giải pháp.

Cảm ơn.

+0

bạn có thể kiểm tra bằng Rectangle pageSize = new Rectangle (150, 20); Tài liệu tài liệu = Tài liệu mới (pageSize); – Vinay

+0

Kiểm tra câu hỏi đã được trả lời, bạn có thể nhận được manh mối bạn cần http://stackoverflow.com/questions/2370427/itextsharp-set-a-document-horizontal-page-a4 –

Trả lời

30

Hãy thử điều này

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

bạn cũng có thể cần điều này để mở rộng một bảng với chiều rộng tối đa.

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 

Kính trọng.

+0

Xin chào Shoaib, Không, nó vẫn hiển thị cùng một kích thước . Với cảnh quan, chiều rộng sẽ lớn hơn chiều cao hay hướng văn bản sẽ trở thành từ trên xuống dưới hoặc từ dưới lên trên? – DotnetSparrow

+0

chiều rộng trở nên lớn hơn .. nó sẽ không xoay nội dung mã số –

+0

tôi vừa thêm vào. mã btw i được chia sẻ đang sử dụng itextsharp 4.1 –

3

Không cần phải khởi tạo các tài liệu và thiết lập lại kích thước trang ...

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

... sẽ làm các trick.

(4.1.6.0)

Các vấn đề liên quan