2012-02-11 17 views
12

Ho un file PDF modello con un campo modulo PDF incorporato. Sto usando PdfStamper per compilare questi campi. Inoltre, vorrei poter modificare i margini per il PDF generato. c'è un modo per modificare i margini della pagina sul PDF stampato?Imposta i margini della pagina con iTextSharp

+0

È necessario mantenere la ** stessa ** dimensione della pagina esistente come modello PDF o è accettabile creare un nuovo documento con una pagina leggermente più grande/più piccola? – kuujinbo

risposta

13

L'unico modo che conosco è questo.

iTextSharp.text.Rectangle rec = new iTextSharp.text.Rectangle(pageWidth, pageHeight); 
Document doc = new Document(rec); 
doc.SetMargins(0f, 0f, 0f, 0f); 

Tuttavia, questo limiterà i margini troppo

+2

Grazie mille! Quello era un problema fastidioso. Potrebbe anche voler notare che la larghezza della pagina e il peso della pagina sono espressi in pixel. Ho usato 612 x 792 (per 72 dpi) per ottenere una dimensione di pagina normale. – James

16

si può fare tutto in una sola riga.

Document doc = new Document(PageSize.LETTER, 0f, 0f, 0f, 0f); 
-1

setMaring Impelemented come




    public override bool SetMargins(float marginLeft, float marginRight, float marginTop, float marginBottom) 
      { 
       if ((this.writer != null) && this.writer.IsPaused()) 
       { 
        return false; 
       } 
       this.nextMarginLeft = marginLeft; 
       this.nextMarginRight = marginRight; 
       this.nextMarginTop = marginTop; 
       this.nextMarginBottom = marginBottom; 
       return true; 
      } 

Perciò margine applicato per la pagina successiva. per risolvere questo problema dopo aver aperto pdfDocument chiama newPage() questa soluzione funziona per pdfDocument vuoto.



    using (FileStream msReport = new FileStream(pdfPath, FileMode.Create)) 
      { 
       using (Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 10f, 10f)) 
       { 
        try 
        { 
         //open the stream 
         pdfDoc.Open(); 
         pdfDoc.setMargin(20f, 20f, 20f, 20f); 
         pdfDoc.NewPage(); 

         pdfDoc.Close(); 

        } 
        catch (Exception ex) 
        { 
         //handle exception 
        } 

        finally 
        { 


        } 

       } 

      } 

Problemi correlati