首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >支持中文字符的PDFSharp

支持中文字符的PDFSharp
EN

Stack Overflow用户
提问于 2013-02-07 16:43:10
回答 3查看 3.9K关注 0票数 3

我在C#的PDFSharp中显示中文字符时遇到问题。在创建PDF字符串的过程中,它是正常的,但在创建pdf文件后,它不显示它。我找到了一个解决方案

代码语言:javascript
运行
复制
XFont font_small2 = new XFont("微软雅黑", 9, XFontStyle.Regular, options)

这个解决方案在我的本地主机上工作,但当我在beta服务器上发布它时,它不显示中文字符。

EN

回答 3

Stack Overflow用户

发布于 2013-06-25 12:24:39

您可以将原始中文字体嵌入到pdf文件中,并使用正确的CMAP。

代码语言:javascript
运行
复制
var options = new XPdfFontOptions(PdfFontEmbedding.Always);
var font = new XFont("微软雅黑", 9, XFontStyle.Regular, options);

代码语言:javascript
运行
复制
var page = new PdfPage();
var gfx = XGraphics.FromPdfPage(page);
gfx.MFEH = PdfFontEmbedding.Automatic;
票数 1
EN

Stack Overflow用户

发布于 2013-02-07 16:55:01

确保该字体已正确安装在beta服务器上,并确保应用程序具有足够的权限。确保字体嵌入到PDF文件中。

根据PDFsharp常见问题解答,CJK字体不受支持。但是,如果环境设置正确,您仍然可以在服务器和本地计算机上获得相同的结果。

票数 0
EN

Stack Overflow用户

发布于 2019-12-16 23:53:28

这两种解决方案都不适用于较新版本的库,所以我想出了一个解决方法,可以将字符绘制到位图,然后将位图添加到PDF:

代码语言:javascript
运行
复制
        Font font = GetFont(fieldInfo, fontSize * 0.97f); // Chosen empirically
        using (var imageStream = new MemoryStream())
        {
            // Draw string as an image
            using (var bitmap = new Bitmap((int) fieldRect.Width, (int) (fieldRect.Height * 1.5f)))
            using (Graphics graphics = Graphics.FromImage(bitmap))
            {
                graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;
                graphics.DrawString(fieldValue, font, Brushes.Black, PointF.Empty);
                bitmap.Save(imageStream, ImageFormat.Png);
            }

            // Draw image on PDF
            using (XImage xImage = XImage.FromStream(imageStream))
            {
                double labelPositionX = fieldRect.X1 + 2;
                double labelPositionY = fieldRect.Y2 - 2;
                xGraphics.DrawImage(xImage, labelPositionX, page.Height - labelPositionY);
            }
        }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14746920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档