PDFsharp页面大小和设置保证金问题c#

时间:2013-04-12 08:35:29

标签: c# pdfsharp

我正在使用PDFsharp lib将图像转换为pdf。我需要设置保证金和页面大小所以我从这个论坛得到一个技巧来设置页面大小和页边距。从这里我得到了我用过的代码但是两个区域的错误。这是我得到的代码。

page = document.AddPage();
//page.Size = PdfSharp.PageSize.A4;
XSize size = PageSizeConverter.ToSize(PdfSharp.PageSize.A4);
if(page.Orientation == PageOrientation.Landscape)
{
   page.Width  = size.Height;
   page.Height = size.Width;
}
else
{
   page.Width  = size.Width;
   page.Height = size.Height;
}

// default unit in points 1 inch = 72 points
page.TrimMargins.Top = 5;
page.TrimMargins.Right = 5;
page.TrimMargins.Bottom = 5;
page.TrimMargins.Left = 5;

我收到了此行的错误

XSize size = PageSizeConverter.ToSize(PdfSharp.PageSize.A4);

所以我需要将其更改为

System.Drawing.Size size = PageSizeConverter.ToSize(PdfSharp.PageSize.A4);

现在我的程序编译但是当我设置margin时我得到了错误调用 PdfSharp不包含TrimMargins的定义

以下这些行不会编译设置保证金。

    pdfPage.TrimMargins.Top = 5;
    pdfPage.TrimMargins.Right = 5;
    pdfPage.TrimMargins.Bottom = 5;
    pdfPage.TrimMargins.Left = 5;

我使用的是pdf sharp库版本 1.0.898.0

因此,请指导我如何设置保证金。

以下是从图像文件

生成pdf的完整代码
public static string GeneratePdfFromImage(string source)
        {
            string destinaton = source.Replace("gif", "pdf");
            PdfDocument doc = new PdfDocument();
            PdfPage pdfPage = new PdfPage();
            System.Drawing.Size size = PageSizeConverter.ToSize(PdfSharp.PageSize.A4);
            pdfPage.Orientation = PageOrientation.Portrait;

            pdfPage.Width = size.Width;
            pdfPage.Height = size.Height;
            pdfPage.TrimMargins.Top = 5;
            pdfPage.TrimMargins.Right = 5;
            pdfPage.TrimMargins.Bottom = 5;
            pdfPage.TrimMargins.Left = 5;

            doc.Pages.Add(pdfPage);

            XGraphics xgr = XGraphics.FromPdfPage(doc.Pages[0]);
            XImage img = XImage.FromFile(source);

            try
            {
                xgr.DrawImage(img, 0, 0);
                doc.Save(destinaton);
                doc.Close();
            }
            catch (Exception ex)
            {
                destinaton = "";
            }

            return destinaton;
        }

1 个答案:

答案 0 :(得分:5)

您无法使用PDFsharp设置边距 - 您可以在绘制项目时在页面上保留边距。

您复制的代码来自MigraDoc。 MigraDoc包含在PDFsharp中,但是在不处理页面的更高级别上工作,而是处理部分,在这里您可以设置边距。

有关详细信息,请访问PDFsharp和MigraDoc网站:
http://pdfsharp.net/
还有一个PDFsharp示例,显示如何设置页面大小。

使用PDFsharp时,您可以在页面的任何位置绘制图像,还可以指定图像的大小。