Я работаю над основным приложением dotnet, которое (помимо прочего) создает PDF-документы на основе каких-то протоколов.Я создаю HTML-документ (сетка начальной загрузки, без графики, только текст), заполненный данными, и преобразую его в PDF с помощью библиотеки DinkToPdf (обертка для инструмента wkhtmltopdf).На моей машине для разработки (Win 10 x64) все работает отлично, PDF выглядит действительно хорошо.Когда я развернул его в Debian VPS со средой выполнения dotnet, PDF выглядит ужасно, в документе больше текста и сетка разрушена.VPS не имеет GUI / X-сервера, только доступ по SSH.Похоже, что свойства GlobalSettings (такие как ViewportSize, PaperSize или DPI) не используются должным образом в Linux.В чем проблема?Есть ли предпосылки для его использования в Linux?Есть ли у вас опыт с этим?
public class ProtocolPdfService : IProtocolPdfService
{
private static IConverter converter = new SynchronizedConverter(new PdfTools());
private readonly GlobalSettings pdfSettings = new GlobalSettings
{
ColorMode = ColorMode.Color,
Orientation = Orientation.Portrait,
PaperSize = PaperKind.A4,
ViewportSize = "1920x1080",
DPI = 300
};
public Stream GetProtocolPdf(int protocolId)
{
...
var pdfByte = GeneratePdfFromHtml(renderedHtml);
return new MemoryStream(pdfByte);
}
public byte[] GeneratePdfFromHtml(string htmlContent)
{
var doc = new HtmlToPdfDocument()
{
GlobalSettings = pdfSettings,
Objects = {
new ObjectSettings() {
PagesCount = true,
HtmlContent = htmlContent,
WebSettings = { DefaultEncoding = "utf-8" },
UseLocalLinks = false,
UseExternalLinks = false,
ProduceForms = false,
}
}
};
return converter.Convert(doc);
}
}