zoukankan      html  css  js  c++  java
  • xps转pdf

    先安装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);
            }
    
        }
  • 相关阅读:
    MySql索引
    HashMap 底层解析
    https超文本安全传输协议
    多线程
    过滤器和拦截器
    计算机操作系统
    计算机网络
    java线程内存模型JMM
    jvm
    数据库
  • 原文地址:https://www.cnblogs.com/jonney-wang/p/13266963.html
Copyright © 2011-2022 走看看