HTML в библиотеку PDF в функции Azure - PullRequest
0 голосов
/ 21 октября 2018

Функции Azure, по-видимому, еще не поддерживают System.Drawing ( информация о sanbox ).При запуске функции с зависимостью от нее выдается следующее сообщение:

System.Drawing is not supported on this platform.

Я изначально использовал Select.HtmlToPdf в WebApp для создания документов PDF из HTML.Но после переноса создания PDF в функцию Azure это больше не вариант.

Кроме того, рекомендуемая библиотека - wkhtmltopdf, но, похоже, версия .netstandard2.0 отсутствует.

Как бы вы выполнили создание PDF с помощью функций Azure (C #)?


Обновление: функция работает в плане обслуживания приложения S1 -

Обновление 2:использование метода, показанного на OdeToCode , дает ошибку Qt: Could not initialize OLE (error 80010106)

Ответы [ 3 ]

0 голосов
/ 25 октября 2018

Для DinkToPdf ошибка Qt: Could not initialize OLE (error 80070005) вызвана тегами или ссылками javascript.См. тест, выполненный Travis .Когда js удаляется, функция возвращает PDF успешно, но сообщение об ошибке сохраняется.

Я обнаружил, что другая библиотека lib OpenHtmlToPdf работает для функции Azure в S1 (B1 +, как упомянуто @Filip) плана обслуживания приложения.Просто измените метод BuildPdf с sample , предлагаемого @Scott.Не проверял его работоспособность.

private static byte[] BuildPdf(string html)
{
    return OpenHtmlToPdf.Pdf.From(html).Content();
}
0 голосов
/ 26 октября 2018

На этом этапе я создал новый netcore2.0 API Azure AppService, который поддерживает Select.HtmlToPdf и, вероятно, переместит эту функциональность в контейнер, если через некоторое время он все еще не будет работать с netcore3.0.Функция просто вызывает API с некоторыми параметрами и может ожидать асинхронную генерацию PDF.

Как уже упоминалось Джерри , она может работать с DinkToPdf .Однако шаблон HTML-документации не должен содержать JavaScript, поэтому данное решение недопустимо для моего варианта использования.

0 голосов
/ 21 октября 2018

Я недавно принял решение о создании PDF-файлов из HTML-страниц.У меня также были проблемы с поиском подходящей среды, которая будет работать в функции Azure.Но я обнаружил, что, используя wkhtmltopdf, я мог генерировать PDF-документы из HTML-страниц.

Вот ссылка: https://wkhtmltopdf.org/

Я обнаружил, что минимальный план обслуживания приложения, с которым я мог работать, был: План обслуживания B1.Это не будет работать с планом потребления.Я сделал это, используя экспериментальный режим Powershell, но то же самое должно быть возможно с использованием C # или любого другого из поддерживаемых языков.

Я не в восторге от вывода PDF, но он выполняет свою работу.Есть много вариантов для использования, но это, кажется, не имеет большого значения для меня, кроме портретного или ландшафтного режима.

...