SelectPDF ConvertUrl土耳其字符显示异常问题及替代方案咨询
解决SelectPDF转换HTML到PDF时土耳其字符显示异常的问题
针对SelectPDF的修复方案
- 确认HTML文件编码与声明:把HTML文件保存为UTF-8编码,同时在
<head>里添加编码声明:<meta charset="UTF-8"> - 配置转换器的字体嵌入规则:SelectPDF默认可能没嵌入土耳其字符所需字体,手动指定支持多语言的字体并开启嵌入:
HtmlToPdf converter = new HtmlToPdf(); // 用支持土耳其语的字体,比如Arial Unicode MS或系统自带的土耳其语字体 converter.Options.DefaultFontName = "Arial Unicode MS"; // 开启字体嵌入 converter.Options.EmbedFonts = true; // 只嵌入用到的字符子集,减少文件体积 converter.Options.FontEmbeddingMode = PdfFontEmbeddingMode.Subset; PdfDocument doc = converter.ConvertUrl(htmlurl); doc.Save(outputPath); - 修正本地文件的URL格式:本地HTML文件传给
ConvertUrl时,要转成标准的file://协议路径,避免编码读取错误:string fileUrl = new Uri(url).AbsoluteUri; PdfDocument doc = converter.ConvertUrl(fileUrl);
替代PDF转换工具推荐
如果上面的方法都没用,试试这些工具,它们对非英文字符兼容性更好,且支持本地HTML转PDF:
- iText 7(含HtmlConverter):开源PDF库,可直接加载本地HTML文件,通过指定土耳其语支持字体实现正确渲染,自定义程度高。
- wkhtmltopdf:基于WebKit的命令行工具,C#里可通过进程调用,对HTML渲染兼容性强,默认支持多语言字符,只要HTML编码正确就能正常显示。
- PuppeteerSharp:Chrome无头浏览器的.NET封装,完全模拟浏览器渲染HTML,完美支持现代HTML特性和土耳其字符,渲染效果和浏览器一致。
内容的提问来源于stack exchange,提问作者Alparslan Ozturk
相关产品推荐
相关产品推荐

