#c# #itext #xmlworker
#c# #itext #xmlworker
Вопрос:
- Эта таблица имеет
table-layout: auto
иwidth: 100%
- Ни одна из ячеек не имеет определенной ширины
- Как вы можете видеть, ширина каждого столбца автоматически настраивается браузером для наилучшего соответствия
Когда я конвертирую его в PDF с помощью xmlworker 5.5.3 (iTextSharp 5.5.3), я получаю этот PDF:
Как вы можете видеть, iTextSharp очень плохо определил ширину столбцов (сравните это с тем, как Chrome рисует таблицу):
Это неэффективно:
- Большие столбцы отображаются слишком узкими (например, 4-й столбец)
- Короткие столбцы отображаются слишком широко
Я пробовал другие инструменты «html to pdf», и они хорошо справляются с шириной столбцов:
Но что мне нравится в iTextSharp, так это то, что я могу использовать его непосредственно в своем веб-приложении, размещенном в Azure.
- кукловод сделан в node.js и мое веб-приложение создано на C # / asp.net
- wkhtmltopdf должен выполняться на уровне B1 в Azure (дорого)
Итак … что я делаю не так с xmlworker? или это просто плохая библиотека?
ОБНОВЛЕНИЕ 1
Существует проект puppeteer для C # под названием «PuppeteerSharp». Я пытаюсь сейчас. По-видимому, его нужно запускать вместе с browserless.io потому что Azure не будет запускать Chrome в веб-приложении (по крайней мере, F1 …)
ОБНОВЛЕНИЕ 2
Нелегко запустить PuppeteerSharp в Azure.
На данный момент я развернул проект GitHub «url-to-pdf-api» в heroku, который использует Puppeteer, и я вызываю его из Azure. Не быстро, не просто…
ОБНОВЛЕНИЕ 3
Я попытался обновить с xmlworker 5.5.3 до xmlworker 5.5.13.2, и это еще хуже. Он не учитывает style="width: 25%"
on <td>
(что 5.5.3 делает НОРМАЛЬНО). Какая ужасная библиотека
Комментарии:
1. Вы пробовали использовать самые современные itextsharp и xmlworker?
2. Могу ли я получить это с помощью NuGet? @mkl
3. Я бы предположил, что это так; открывая менеджер NuGet в VS, я вижу
iTextSharp
itextsharp.pdfa
,itextsharp.xmlworker
, иitextsharp.xtra
все они доступны в версии 5.5.13.2 (т. Е. Второе обновление для системы безопасности для окончательной версии 5.5.13 этого проекта).4. Хм, я думаю, что сначала попробую iTextSharp 5.5.13.2 (я использую 5.5.3). Хотя они оба устарели. И тогда я попробую iText7.pdfHTML…..
5. Будьте осторожны, API iText 7 полностью переработан, iText 5 для iText 7 — это не простое выпадающее обновление, вам придется значительно изменить свой код. Тем не менее, во многих отношениях iText 7 является явным улучшением по сравнению с iText 5.