我正在使用ABCPdf 11将html转换为pdf,需要转换的html页面需要JWT令牌,因此需要传递到ABCChrome,以便它可以使用JWT令牌。 我已经尝试了以下方法,但是身份验证仍然失败:
doc.HtmlOptions.HttpAdditionalHeaders = $"Authorization: Bearer {accessToken}";
根据上面URL中的描述,我还尝试了以下选项:
doc.HtmlOptions.NoCookie = true;
doc.HtmlOptions.Media = MediaType.Screen;
添加HttpAdditionalHeaders
后,当我从pdf库获得http状态时,我确实获得了401 http状态代码,该代码确认了
var imageId = doc.AddImageUrl(model.Url);
var status = doc.HtmlOptions.ForChrome.GetHttpStatusCode(imageId);
此处的状态为401-未经授权
答案 0 :(得分:1)
ABCChrome引擎当前不支持HttpAdditionalHeaders属性。 here指定了ABCChrome支持的唯一HtmlOptions。
您可以尝试以下几种方法:
我确实知道WebSupergoo为其所有许可证(包括试用许可证)提供free support。
祝你好运。
答案 1 :(得分:1)
通过电子邮件发送了ABCPdf支持,不幸的是ABCChrome不支持HttpAdditionalHeaders
属性,因此解决方法是自己下载HTML并将其转换为PDF,请参见以下示例:
var imageId = doc.AddImageHtml(html); // <- html downloaded from auth url
也不要忘记添加分页:
// add all pages to pdf
while (doc.Chainable(imageId))
{
doc.Page = doc.AddPage();
imageId = doc.AddImageToChain(imageId);
}
for (int i = 1; i <= doc.PageCount; i++)
{
doc.PageNumber = i;
doc.Flatten();
}