zoukankan      html  css  js  c++  java
  • PDFSHARP 解决汉字问题

    客户要求生成PDF文件,使用了PDFSHARP,但发现汉字全变成了乱码。网上也没有找到针对性的教程。

    经翻查源码,最终解决办法如下:

    LoopNum++;
                this.textBox1.Text += ""+LoopNum.ToString()+"次循环" +"\r\n";
                // Create a new PDF document
                PdfDocument document = new PdfDocument();
                document.Info.Title = "PDFSHARP测试";
    
                // Create an empty page
                PdfPage page = document.AddPage();
    
                // Get an XGraphics object for drawing
                XGraphics gfx = XGraphics.FromPdfPage(page);
    
                //XPdfFontOptions options = new XPdfFontOptions(PdfFontEncoding.Unicode, PdfFontEmbedding.Always);
    
                System.Drawing.Text.PrivateFontCollection pfcFonts = new System.Drawing.Text.PrivateFontCollection();
                string strFontPath = @"C:/Windows/Fonts/msyh.ttf";//字体设置为微软雅黑
                pfcFonts.AddFontFile(strFontPath);
    
                XPdfFontOptions options = new XPdfFontOptions(PdfFontEncoding.Unicode, PdfFontEmbedding.Always);
                XFont font = new XFont(pfcFonts.Families[0], 15, XFontStyle.Regular, options);
     
                // Create a font
                //XFont font = new XFont("Times New Roman", 20, XFontStyle.BoldItalic);
    
                // Draw the text
                gfx.DrawString("你好,世界!", font, XBrushes.Black,
                  new XRect(0, 0, page.Width, page.Height),
                  XStringFormats.Center);
    
                // Save the document...
                string filename = "HelloWorld_"+LoopNum.ToString()+".pdf";
                document.Save(filename); 
  • 相关阅读:
    AndroidStudio小技巧--依赖库
    仿iOS Segmented Control样式"
    Metaweblog在Android上使用
    正则表达式使用技巧
    flask中gunicorn的使用
    Git用法小记
    指定GPU训练模型
    python中grpc的使用示例
    如何用LaTex编辑数学公式
    keras使用多进程
  • 原文地址:https://www.cnblogs.com/qingshan/p/2584884.html
Copyright © 2011-2022 走看看