Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Pdf:为什么汉字是;删去“什么?”;?_C#_Asp.net Mvc_Pdf_Aspose_Chinese Locale - Fatal编程技术网

C# Pdf:为什么汉字是;删去“什么?”;?

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

我正在使用一个名为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 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不够

有了以上内容,西里尔文和波兰语就可以了,但日语还是空白。不过,这对我来说已经足够了。也许对某人来说也会很好