2010-10-11 15 views
7

Sto cercando di ottenere il mio documento PDF per iniziare a (0,0) tuttavia sembra che l'oggetto del documento abbia un margine superiore predefinito che non posso impostare a 0. C'è un modo per farlo?Come posso rimuovere il margine superiore predefinito su un documento pdf con itextsharp?

Il mio codice è simile al seguente

 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; 

....

Ho appena riesco arrivare a impostare il margine superiore a 0. E 'solo non si preoccupa per la mia impostazione su (0, 0,0,0) e lascia un margine superiore (circa 50f).

risposta

14

È necessario impostare i margini nel costruttore documento, in questo modo:

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

Non sarà necessario utilizzare il metodo Document.SetMargins(). Credo che useresti SetMargins() dopo aver creato una nuova pagina chiamando lo Document.NewPage().

+1

Grazie Jay che ha funzionato, tuttavia ho dovuto includere la "f" dopo tutti i ceros. Documento pdf = nuovo documento (nuovo rettangolo (288f, 144f), 0f, 0f, 0f, 0f); – Lilian

+0

@Lilian, buon punto che si aspettano i galleggianti. –

+1

e non ci sono errori quando si utilizza 0, inserisce solo i margini predefiniti. 0f Fino in fondo! – TChadwick

1

Opzione 1:

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

Opzione 2:

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

Dove, 595x842 è la carta di formato A4.

Problemi correlati