2010-10-11 30 views
7

Tôi đang cố gắng để có được tài liệu pdf của tôi để bắt đầu tại (0,0) tuy nhiên có vẻ như đối tượng tài liệu có lề trên mặc định mà tôi không thể đặt thành 0. Có cách nào để làm điều này?Làm cách nào để xóa lề trên mặc định trên tài liệu pdf bằng itextsharp?

Mã của tôi trông giống như sau

 using (MemoryStream memoria = new MemoryStream()) 
     { 
      Document pdf = new Document(new Rectangle(288, 144)); 

      try 
      { 
       PdfWriter writer = PdfWriter.GetInstance(pdf, memoria); 

       pdf.Open(); 
       pdf.SetMargins(0, 0, 0, 0); 

       PdfPTable tPrincipal = new PdfPTable(2);    
       tPrincipal .WidthPercentage = 100;   
       tPrincipal .DefaultCell.Border = 0; 
       tPrincipal .TotalWidth = 288f; 
       tPrincipal .LockedWidth = true; 

....

Tôi chỉ không thể có được để thiết lập các lề trên xuống 0. Nó chỉ doesnt chăm sóc về cài đặt của tôi để (0, 0,0,0) và để lại một lề trên (khoảng 50f).

Trả lời

14

Bạn sẽ cần phải thiết lập lề của bạn trong constructor tài liệu của bạn, như thế này:

Document pdf = new Document(new Rectangle(288f, 144f), 0, 0, 0, 0); 

Bạn sẽ không cần phải sử dụng các phương pháp Document.SetMargins(). Tôi tin rằng bạn sẽ sử dụng SetMargins() sau khi bạn tạo trang mới bằng cách gọi Document.NewPage().

+1

Xin cảm ơn Jay đã làm việc, tuy nhiên tôi phải bao gồm "f" sau tất cả các ceros. Tài liệu pdf = Tài liệu mới (Hình chữ nhật mới (288f, 144f), 0f, 0f, 0f, 0f); – Lilian

+0

@Lilian, điểm tốt họ đang mong đợi nổi. –

+1

và không có lỗi khi bạn sử dụng 0, nó chỉ đặt ở lề mặc định. 0f Tất cả các cách! – TChadwick

1

Lựa chọn 1:

Document doc = new Document(); 
doc.setMargins(0 , 0 , 0 , 0); 

Phương án 2:

Document pdf = new Document(new Rectangle(595 , 842), 0, 0, 0, 0); 

đâu, 595x842 là giấy khổ A4.

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