我有一个.net项目,它在docker-compose中运行。
因此我将
Syncfusion.HtmlToPdfConverter.Net.Linux
用于 .net core 应用程序。
using Microsoft.AspNetCore.Mvc;
using Syncfusion.HtmlConverter;
using Syncfusion.Pdf;
using System;
using System.IO;
namespace Catalog.Api.Controllers.V5
{
[ApiController]
[Route("v5/pdf-generate")]
public class PdfGenerateController : Controller
{
public PdfGenerateController(){}
[HttpGet]
public IActionResult UrlToPdf()
{
//Initialize HTML to PDF converter.
HtmlToPdfConverter htmlConverter = new HtmlToPdfConverter();
//Convert URL to PDF document.
PdfDocument document = htmlConverter.Convert("https://www.google.com");
//Create memory stream.
MemoryStream stream = new MemoryStream();
//Save and close the document.
document.Save(stream);
document.Close(true);
return File(stream.ToArray(), System.Net.Mime.MediaTypeNames.Application.Pdf, "HTML-to-PDF.pdf");
}
}
}
这是我的控制器。
我运行此控制器并收到错误。
Syncfusion.Pdf.PdfException: 'Blink files are missing at /root/.nuget/packages/syncfusion.htmltopdfconverter.net.linux/21.2.9/lib/netstandard2.0/runtimes/linux/native'
请有人帮助我吗?
我们已检查了我们这边报告的问题,但它运行正常。因此我们附上了示例供您参考。请尝试一下您的样品并让我们知道结果
示例:https://www.syncfusion.com/downloads/support/directtrac/general/ze/WebAPIDockerTest-500059707
进一步分析,如果设置了运行时标识符,请将其删除并尝试转换,或者将应用程序文件夹设置为闪烁路径,然后执行转换。
请找到以下链接
我们已经发现并修复了此问题,并将在 2023 年第 2 卷版本中提供。
我们已在最新的第 2 卷版本 (v22.1.34) 中修复了此问题“将 html 转换为 pdf 时发生闪烁文件丢失异常”修复。
请使用以下链接下载我们最新的 NuGet,
https://www.nuget.org/packages/Syncfusion.HtmlToPdfConverter.Net.Linux/22.1.34
我们很高兴地宣布,我们的 Essential Studio 2023 第 1 卷服务包版本 v21.2.3 已推出,可通过以下链接下载。
Essential Studio 2023 第 2 卷主版本 v22.1.34 可供下载 |公告 论坛 |同步融合
我们感谢您的支持,并感谢您耐心等待此版本。如果您需要任何进一步的帮助,请与我们联系。
我遇到了同样的问题,在 Dockerfile 上添加以下内容后:
RUN apt-get update && \
apt-get install -yq --no-install-recommends \
libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 \
libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 \
libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 \
libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 \
libnss3 libgbm1
并添加上面示例源代码中给出的 BlinkConverterSettings:
BlinkConverterSettings settings = new BlinkConverterSettings();
settings.CommandLineArguments.Add("--no-sandbox");
settings.CommandLineArguments.Add("--disable-setuid-sandbox");
//Convert URL to PDF document.
htmlConverter.ConverterSettings = settings;
效果非常好。