gpt4 book ai didi

c# - Aspose.pdf : Why are Chinese characters "Blanked Out"?

转载 作者:太空宇宙 更新时间:2023-11-03 19:09:40 27 4
gpt4 key购买 nike

我正在使用一个名为 Aspose.Pdf 的 PDF 生成库。我喜欢这个库,但是我在让中文字符出现在 PDF 中时遇到了问题。我正在使用以下代码在 C#.NET MVC 中生成 PDF:

var pdf = new Aspose.Pdf.Generator.Pdf();
pdf.IsLandscape = true;
pdf.HtmlInfo.CharsetApplyingLevelOfForce = Aspose.Pdf.Generator.HtmlInfo.CharsetApplyingForceLevel.EnforceUseAlways;
pdf.HtmlInfo.CharSet = "UTF-8";
pdf.HtmlInfo.BadHtmlHandlingStrategy = Aspose.Pdf.Generator.BadHtmlHandlingStrategy.TreatAsPlainText;
pdf.BindHTML(htmlString);
pdf.SetUnicode();
pdf.Save(fullFilePath);

htmlString 变量中的值为:

<!DOCTYPE html>
<html>
<body style="font-family: 'Arial Unicode MS',Arial,sans-serif; ">
<center><h3>Corrective Action Plans PDF</h3></center>
<table style="padding: 5px; font-size: 8pt; border: 1px solid #000000;" cellpadding="5">
<tr style="border: 1px solid #000000;" bgcolor="#4D94FF">
<th style="border: 1px solid #000000;" width="11%">
ID
</th>
<th style="border: 1px solid #000000;" width="11%">
Status
</th>
<th style="border: 1px solid #000000;" width="11%">
审计类型
</th>
<th style="border: 1px solid #000000;" width="11%">
审核表格
</th>
<th style="border: 1px solid #000000;" width="11%">
Category
</th>
<th style="border: 1px solid #000000;" width="11%">
问题
</th>
<th style="border: 1px solid #000000;" width="11%">
Location ID
</th>
<th style="border: 1px solid #000000;" width="11%">
Location
</th>
<th style="border: 1px solid #000000;" width="11%">
Start Date
</th>
</tr>
<tr style="border: 1px solid #000000;" bgcolor="#CCCCCC">
<td style="border: 1px solid #000000;" width="11%">
1260
</td>
<td style="border: 1px solid #000000;" width="11%">
New
</td>
<td style="border: 1px solid #000000;" width="11%">
CAM Forms
</td>
<td style="border: 1px solid #000000;" width="11%">
CAM Form 4 - All Action Plan Options
</td>
<td style="border: 1px solid #000000;" width="11%">
CAM4: Use Action Plan
</td>
<td style="border: 1px solid #000000;" width="11%">
Droplist Non-Compliant
</td>
<td style="border: 1px solid #000000;" width="11%">
017
</td>
<td style="border: 1px solid #000000;" width="11%">
ANGLETON
</td>
<td style="border: 1px solid #000000;" width="11%">
2014/2/13 14:00:00
</td>
</tr>
</table>
</body>
</html>

如您所见,HTML 标记中有中文字符,位于表格的标题行中。但是,这些值在生成的 PDF 文档中被“删除”了。

谁能帮我解决这个问题?

最佳答案

这是一个非常具体的问题,所以我什至不确定我是否会得到对此的回应。但是,我很绝望,所以还是伸出了手。 :)

无论如何,我坚持了下来并设法找到了解决方案。我通过将 C# 更改为以下内容来修复它:

var pdf = new Aspose.Pdf.Generator.Pdf();
pdf.IsLandscape = true;

Aspose.Pdf.Generator.Section section = pdf.Sections.Add();
Aspose.Pdf.Generator.Text text = new Aspose.Pdf.Generator.Text(section, htmlString);
text.IsHtmlTagSupported = true;
text.IsHtml5Supported = true;
text.TextInfo.FontName = "Arial Unicode MS";
text.IfHtmlTagSupportedOverwriteHtmlFontNames = true;
section.Paragraphs.Add(text);
pdf.SetUnicode();

pdf.Save(fullFilePath);

关于c# - Aspose.pdf : Why are Chinese characters "Blanked Out"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21868057/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com