早上好,
我正在尝试使用 html 生成带有 Tuesspechkin 的 pdf 文件。它在本地完美运行,但在生产中却不行。
public static bool GeneratePDFFromHTMLPaysage(String full_path, String htmlContent, String baseUrl)
{
try
{
String content = "<!DOCTYPE html><html><head><meta http-equiv='X-UA-Compatible' content='IE=edge'><meta charset='UTF-8' name='viewport' content='width=device-width, initial-scale=1'><title>Titre</title><link rel='stylesheet' type='text/css' href='https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css'><script type='text/javascript' src='https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js'></script></head><body><div class='container'>";
content = content + htmlContent;
content = content + "</div></body></html>";
full_path = full_path + ".pdf";
var document = new HtmlToPdfDocument
{
GlobalSettings =
{
ProduceOutline = true,
PaperSize = System.Drawing.Printing.PaperKind.A4, // Implicit conversion to PechkinPaperSize
Margins =
{
All = 0,
Unit = Unit.Centimeters
},
Orientation = GlobalSettings.PaperOrientation.Landscape
},
Objects = {
new ObjectSettings { HtmlText = content }
}
};
IConverter convert = new StandardConverter(
new PdfToolset(
new Win64EmbeddedDeployment(
new TempFolderDeployment())));
byte[] test = convert.Convert(document);
System.IO.File.WriteAllBytes(full_path, test);
return true;
}
catch (Exception e)
{
ErrorManager.Log(e.Message + "\n" + e.InnerException + "\n" + e.StackTrace);
return false;
}
}
基本上,我尝试用 32 位替换 64 位,按照文档中的建议指定了一个静态部署路径(这样做会创建一个放置丢失 DLL 的文件夹,它在本地的行为与在生产中的行为相同,但只能工作本地)。
我的应用程序是一个基本的 Windows 应用程序,我只需从 Debug 或 Release 文件夹复制文件即可部署它:
如您所见,我包含了 wkhtmltox.dll,因此它会自动部署在项目的根文件夹中,但也没有结果
**总结:** .NET 4 框架,windows 应用程序,尝试使用 Tuesspechkin,在生产中安装了 Visual C++ 2013,试图解决丢失的 dll,以及代码中的很多东西
感谢您的关注,希望有解决方案