0

我正在使用 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);
 }

4

1 回答 1

0

我们最终检查了报告的问题,但我们没有在 Mac 中使用我们的 WebKit 转换器遇到此错误。我们在内部使用 QtWebKit 渲染引擎将 HTML 转换为 PDF 我们必须提供 WebKitPath 作为您机器中 QtBinariesMac 路径的文件夹位置。

我们已经分析了报告的问题,我们怀疑该问题是由于您的应用程序中未正确加载已签名的二进制文件而发生的。公证后,如果二进制文件以任何格式(.pkg)压缩,请解压并尝试转换。但是,请确保您正在运行进行转换的最新 XCode 版本。请尝试以下建议并让我们知道结果。

https://developer.apple.com/forums/thread/124810

https://developer.apple.com/forums/thread/128435

https://github.com/Alamofire/Alamofire/issues/3051#issuecomment-580003683

注意:我为 Syncfusion 工作。

于 2020-07-29T14:29:59.243 回答