我想将图像通过pdfsharp转换为pdf在asp.net mvc项目中。我已经成功地将它们转换为pdf,但是它们是奇怪格式,例如:此图像:
通过pdfsharp转换后:
我希望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();
使用具有宽度和高度参数的xgr.DrawImage(img, 0, 0);
的重载,并指定所需的值。
您的呼叫将按照为该图像指定的尺寸绘制图像-结果是无法预测的。