我正在使用 MAC 操作系统上的 syncfusion webkit 渲染将 html 转换为 PDF。在我对我的应用程序进行公证之前,它工作正常。当我尝试对我的应用程序进行公证时,我收到了类似QtMacBinaries are not signed
.
我使用我的开发人员 ID 证书签署了所有QtMacBinaries 。现在公证成功了,但是 html 到 PDF 的转换失败了。
我收到以下错误:
Syncfusion.Pdf.PdfException: dyld: Library not loaded: @rpath/libQt5Core.5.dylib
Referenced from: /Users/sangapankaj/Projects/TestConverter/bin/Release/TestConverter.app/Contents/Resources/QtBinariesMac/Syncfusion.WebKitWrapper
Reason: image not found
,'Html conversion failed
Syncfusion version: Syncfusion.HtmlToPdfConverter.QtWebKit.Net.Core.18.2.0.44,
OS: MAC 10.14,
Compiler: Visual Studio 2019,
Language: dot net
我不确定我错过了什么?罪魁祸首是Syncfusion.WebkitWrapper二进制文件。如果我使用我的开发人员 ID 证书对其进行签名,它将无法加载 QT 库。如果我在没有签名的情况下使用它,它可以正常工作。
Code
HtmlToPdfConverter htmlToPdfConverter;
WebKitConverterSettings webKitConverterSettings;
PdfDocument pdfDocument = null;
try
{
htmlToPdfConverter = new HtmlToPdfConverter();
webKitConverterSettings = new WebKitConverterSettings();
webKitConverterSettings.WebKitPath = "/Applications/MacUncle OLM Converter.app/Contents/Resources /QtBinariesMac";
htmlToPdfConverter.ConverterSettings = webKitConverterSettings;
string strTempPath = Path.GetTempPath();
pdfDocument = htmlToPdfConverter.Convert(bdy, strTempPath);
}
catch(Exception e)
{
string exp = string.Format("{0} exception caught", e);
Log.WriteErrorLog(exp);
}