gpt4 book ai didi

c# - C# mvc 4 中的 Wkhtmltopdf 编码问题

转载 作者:太空狗 更新时间:2023-10-29 21:02:09 24 4
gpt4 key购买 nike

我正在使用 wkhtmltopdf 将 html 转换为 pdf。问题是带有 č、š、ž、đ(这些是塞尔维亚语、克罗地亚语、斯洛文尼亚语使用的字符)等字符的字体。它们不会以 pdf 格式核心显示。 HTML 正确呈现。

我的 html 是这样构造的:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>Export</title>
</head>
<body>
<h3>č,š,ž,đ</h3>
</body>
</html>

在我使用 wkhtmptopdf 的 C# 代码中我这样做

        Process p;
ProcessStartInfo psi = new ProcessStartInfo();
psi.FileName = HtmlToPdfExePath;
psi.WorkingDirectory = Path.GetDirectoryName(psi.FileName);

// run the conversion utility
psi.UseShellExecute = false;
psi.CreateNoWindow = true;
psi.RedirectStandardInput = true;
psi.RedirectStandardOutput = true;
psi.RedirectStandardError = true;

// note: that we tell wkhtmltopdf to be quiet and not run scripts
string args = "-q -n ";
args += "--disable-smart-shrinking ";
args += "--orientation Portrait ";
args += "--outline-depth 0 ";
args += "--page-size A4 ";
args += "--encoding utf-8";
args += " - -";

psi.Arguments = args;

p = Process.Start(psi);

如您所见,我在 html 和 wkhtmltopdf 上使用 utf-8 编码作为参数,但字符没有正确呈现。我错过了什么?以下是我在 pdf 中得到的内容。英文字符渲染正常。

This is pdf as image

最佳答案

重定向流的默认编码由您的默认代码页定义。您需要将其设置为 UTF-8。

不幸的是 Process 不允许你这样做,所以你需要制作自己的 StreamWriter:

StreamWriter stdin = new StreamWriter(process.StandardInput.BaseStream, Encoding.UTF8);

关于c# - C# mvc 4 中的 Wkhtmltopdf 编码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14055502/

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