2010-10-11 19 views
7

Estoy tratando de que mi documento pdf comience en (0,0) sin embargo, parece que el documento tiene un margen superior predeterminado que no puedo establecer en 0. ¿Hay alguna manera de hacerlo?¿Cómo puedo eliminar el margen superior predeterminado en un documento pdf con itextsharp?

Mi código tiene el siguiente

 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; 

....

no lo puedo llegar a establecer el margen superior a 0. Simplemente no le importa acerca de mi entorno a (0, 0,0,0) y deja un margen superior (alrededor de 50f).

Respuesta

14

Tendrá que establecer sus márgenes en su constructor de documentos, así:

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

Usted no tendrá que utilizar el método Document.SetMargins(). Creo que usaría SetMargins() después de crear una nueva página llamando al Document.NewPage().

+1

Gracias Jay que funcionó, sin embargo tuve que incluir la "f" después de todos los ceros. Documento pdf = nuevo Documento (nuevo Rectángulo (288f, 144f), 0f, 0f, 0f, 0f); – Lilian

+0

@Lilian, buen punto que esperan flotadores. –

+1

y no hay ningún error cuando usa 0, simplemente pone los márgenes predeterminados. 0f Todo el camino! – TChadwick

1

Opción 1:

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

Opción 2:

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

Cuando, 595x842 es papel de tamaño A4.

Cuestiones relacionadas