qingshan

客户要求生成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); 

 

分类:

技术点:

相关文章:

  • 2022-12-23
  • 2021-10-15
  • 2022-12-23
  • 2022-12-23
  • 2021-10-24
  • 2022-12-23
  • 2022-12-23
  • 2021-09-10
猜你喜欢
  • 2022-12-23
  • 2021-12-26
  • 2021-08-14
  • 2022-01-05
  • 2021-08-28
  • 2022-03-08
  • 2022-12-23
相关资源
相似解决方案