C# Pdf:为什么汉字是;删去“什么?”;?
我正在使用一个名为Aspose.PDF的PDF生成库。我喜欢这个库,但我在PDF中显示汉字时遇到了问题。我使用以下代码在C#.NET MVC中生成PDF: htmlString变量内的值为:C# Pdf:为什么汉字是;删去“什么?”;?,c#,asp.net-mvc,pdf,aspose,chinese-locale,C#,Asp.net Mvc,Pdf,Aspose,Chinese Locale,我正在使用一个名为Aspose.PDF的PDF生成库。我喜欢这个库,但我在PDF中显示汉字时遇到了问题。我使用以下代码在C#.NET MVC中生成PDF: htmlString变量内的值为: <!DOCTYPE html> <html> <body style="font-family: 'Arial Unicode MS',Arial,sans-serif; "> <center><h3>Corrective Action P
<!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>
纠正措施计划PDF
身份证件
地位
审计类型
审核表格
类别
问题
位置ID
地方
开始日期
1260
刚出现的
凸轮形式
CAM表格4-所有行动计划选项
CAM4:使用行动计划
液滴仪不合格
017
安格尔顿
2014/2/13 14:00:00
如您所见,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#更改为以下内容来修复它:
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);
我也有类似的问题,但设置有很大不同。
我没有使用BindHTML和HTML数据,而是使用XML输入:
var pdf = new Aspose.Pdf.Generator.Pdf();
pdf.BindXML(thexml);
pdf.Save(fullFilePath);
其中XML
包含一个关于如何生成PDF对象的冗长而复杂的描述。一直以来,Aspose PDF XML规范都在运行。除非某些内部文本或内部html数据包含非拉丁字符
我尝试了西里尔语、日语和波兰语的例子——在前两种语言中,所有“特殊”字符都表示为空格,在波兰语中,所有特殊字符都强制使用最接近的拉丁字符(ć->c,Ł->L等等)
顺便说一句,我使用Aspose.PDF v9.6.0.0
在这个问题/答案的帮助下,我能够在某种程度上获得以下信息:
var pdf = new Aspose.Pdf.Generator.Pdf();
pdf.TextInfo.IsUnicode = true;
pdf.SetUnicode();
pdf.BindXML(thexml);
pdf.Save(fullFilePath);
您呈现的其他设置似乎没有改变任何东西。另外,很奇怪,我必须设置两次IsUnicode,就像你看到的那样<代码>设置Unicode不够
有了以上内容,西里尔文和波兰语就可以了,但日语还是空白。不过,这对我来说已经足够了。也许它也适合某些人。我也有类似的问题,但设置有很大不同。
我没有使用BindHTML和HTML数据,而是使用XML输入:
var pdf = new Aspose.Pdf.Generator.Pdf();
pdf.BindXML(thexml);
pdf.Save(fullFilePath);
其中XML
包含一个关于如何生成PDF对象的冗长而复杂的描述。一直以来,Aspose PDF XML规范都在运行。除非某些内部文本或内部html数据包含非拉丁字符
我尝试了西里尔语、日语和波兰语的例子——在前两种语言中,所有“特殊”字符都表示为空格,在波兰语中,所有特殊字符都强制使用最接近的拉丁字符(ć->c,Ł->L等等)
顺便说一句,我使用Aspose.PDF v9.6.0.0
在这个问题/答案的帮助下,我能够在某种程度上获得以下信息:
var pdf = new Aspose.Pdf.Generator.Pdf();
pdf.TextInfo.IsUnicode = true;
pdf.SetUnicode();
pdf.BindXML(thexml);
pdf.Save(fullFilePath);
您呈现的其他设置似乎没有改变任何东西。另外,很奇怪,我必须设置两次IsUnicode,就像你看到的那样<代码>设置Unicode不够
有了以上内容,西里尔文和波兰语就可以了,但日语还是空白。不过,这对我来说已经足够了。也许对某人来说也会很好