如何通过pdfsharp设置pdf格式,将pagesize设置为A4并适合页面大小(缩小)

问题描述 投票:0回答:1

我想将图像通过pdfsharp转换为pdf在asp.net mvc项目中。我已经成功地将它们转换为pdf,但是它们是奇怪格式,例如:此图像:

enter image description here

通过pdfsharp转换后:

enter image description here

我希望pdf文件可以适应页面,适合页面(缩小),页面大小为A4

下面是我的代码:

PdfSharp.Pdf.PdfDocument doc = new PdfSharp.Pdf.PdfDocument();
                    doc.PageLayout = PdfPageLayout.OneColumn;

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

                    pdfPage.Orientation = PageOrientation.Portrait;

                    pdfPage.Width = size.Width;
                    pdfPage.Height = size.Height;
                    pdfPage.TrimMargins.Top = 0.5;
                    pdfPage.TrimMargins.Right = 0.5;
                    pdfPage.TrimMargins.Bottom = 0.5;
                    pdfPage.TrimMargins.Left = 0.5;
                    doc.Pages.Add(new PdfSharp.Pdf.PdfPage());
                    XGraphics xgr = XGraphics.FromPdfPage(doc.Pages[0]);
                    XImage img;
                    try
                    {
                        img = XImage.FromFile(s);
                        //pdfPage.Width = img.Size.Width;
                        //pdfPage.Height = img.Size.Height;
                        xgr.DrawImage(img, 0, 0);
                        img.Dispose();
                    }
                    catch (Exception ex)
                    {
                        flag = 3;
                        errormassage = ex.Message;
                        errorfiles.Add(s);

                    }


                    xgr.Dispose();
                    FileInfo fi = new FileInfo(s);
                    doc.Save(s.Replace(fi.Extension, ".pdf"));
                    doc.Close();
asp.net asp.net-mvc pdfsharp migradoc
1个回答
0
投票

使用具有宽度和高度参数的xgr.DrawImage(img, 0, 0);的重载,并指定所需的值。

您的呼叫将按照为该图像指定的尺寸绘制图像-结果是无法预测的。

© www.soinside.com 2019 - 2024. All rights reserved.