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); 

 

posted @ 2012-07-10 16:27  青衫  阅读(6207)  评论(1编辑  收藏  举报