Как добавить ссылку на внешнюю таблицу стилей, используя iText и htmltopdf - PullRequest
0 голосов
/ 20 февраля 2020

У меня есть консольное приложение, которое генерирует PDF из HTML. HTML выглядит следующим образом:

<!DOCTYPE html>

<html lang="en" xmlns="http://www.w3.org/1999/xhtml"> <head>
    <meta charset="utf-8" />
    <link rel="stylesheet" type="text/css" href="html\\somestyle.css" /> </head>

Если я включу стили непосредственно в HTML, используя тег <style>, они появятся в PDF. Но мне нужно использовать внешнюю таблицу стилей.

Структура папок выглядит следующим образом:

***Task_ABC (folder)
******Task.exe
******HTML (folder)
*********template.html
*********somestyle.css

Консольное приложение планируется через Windows Task Scheduler.

Если я запускаю приложение из командной строки вручную, синтаксис html\\sometyle.css работает и стили отображаются в PDF.

Но когда запускается планировщик задач, стили не отображаются в PDF .

Я пробовал somestyle.css, а также синтаксис html/somestyle.css, и они не работают.

1 Ответ

0 голосов
/ 20 февраля 2020

Если вы передадите HTML в виде потока файлов на HtmlConverter вместо передачи его в виде файла, ресурсы будут сопоставлены с текущим рабочим каталогом. Это может быть причиной проблемы при обработке вашего файла в другой среде.

Вы можете установить baseUri, т. Е. URI, с которым все ресурсы в HTML будут разрешены в ConverterProperties:

HtmlConverter.convertToPdf(fileInputStream, fileOutputStream, new ConverterProperties().setBaseUri(baseUri));

baseUri должен указывать на каталог, содержащий каталог html. Вы также можете свободно использовать html/somestyle.css синтаксис ссылки, необязательно использовать Windows стиль пути.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...