使用iTextSharp设置页边距

时间:2012-02-11 01:12:24

标签: c# .net itextsharp

我有一个嵌入了PDF表单字段的模板PDF文件。我正在使用PdfStamper来填写这些字段。另外,我希望能够更改生成的PDF的边距。有什么办法可以修改加盖PDF的页边距吗?

3 个答案:

答案 0 :(得分:21)

您可以在一行中完成所有操作。

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

答案 1 :(得分:14)

我所知道的只有这样。

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

但是,这也会限制保证金

答案 2 :(得分:-2)

setMaring已实施为




    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;
            }

因此保证金适用于下一页。 解决这个问题后打开pdfDocument调用newPage() 这个解决方案适用于空pdfDocument。



    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
                    {


                    }

                }

            }