首页 > 其他 > 详细

xps转pdf

时间:2020-07-08 15:25:11      阅读:48      评论:0      收藏:0      [点我收藏+]

先安装PdfSharp 程序包。

    class Converter
    {
        public static void Xps2Pdf(string xpsFileName, string pdfName)
        {
            if (!Directory.Exists(Path.GetDirectoryName(pdfName)))
            {
                Directory.CreateDirectory(Path.GetDirectoryName(pdfName));
            }
            
            PdfDocument pdf = new PdfDocument();
            XpsDocument xpsDoc = new XpsDocument(xpsFileName, System.IO.FileAccess.Read);
            FixedDocumentSequence docSeq = xpsDoc.GetFixedDocumentSequence();
            var PageCount = docSeq.References[0].GetDocument(false).Pages.Count;

            double scale = 300 / 96;

            for (int pageNum = 0; pageNum < PageCount; pageNum++)
            {
                DocumentPage docPage = docSeq.DocumentPaginator.GetPage(pageNum);

                RenderTargetBitmap renderTarget =
                    new RenderTargetBitmap((int)(scale * (docPage.Size.Height + 1)),
                                                                   (int)(scale * (docPage.Size.Height + 1)),
                                                                   scale * 96,
                                                                   scale * 96, PixelFormats.Pbgra32);
                renderTarget.Render(docPage.Visual);
                PngBitmapEncoder encoder = new PngBitmapEncoder();
                encoder.Frames.Add(BitmapFrame.Create(renderTarget));

                MemoryStream s = new MemoryStream();
                encoder.Save(s);
                XImage img = XImage.FromStream(s);

                PdfPage page = pdf.AddPage();
                page.Width = renderTarget.Width;
                page.Height = renderTarget.Height;
                page.Size = PageSize.A4;
                XGraphics g = XGraphics.FromPdfPage(page);
                g.DrawImage(img, 0, 0);

            }
            pdf.Save(pdfName);
        }

    }

 

xps转pdf

原文:https://www.cnblogs.com/jonney-wang/p/13266963.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!