Задать вопрос
@Benchstyle

IText7 htmlpdf почему не отображается кириллица?

Всем здоровья. Возникла потребность в работе с iText, конвертирую таблицу из html документа в pdf. За основу взят пример от разработчиков, в целом все ок, только кириллица упрямо не отображается на странице. В html lang ="ru", charset="utf-8", в SetLang(new PdfString("ru-RU")) по дефолту стояло en-US, в описании сказано язык и локаль, но не взлетает. Буду благодарен за помощь.
using System.IO;
using iText.Html2pdf;
using iText.Html2pdf.Attach.Impl;
using iText.IO.Font;
using iText.Kernel.Font;
using iText.Kernel.Pdf;
using iText.Layout.Font;
using iText.Samples.Sandbox.Pdfhtml;

namespace iText.Samples.Sandbox.Pdfhtml
{
    public class CreateAccessiblePDF
    {
        public static readonly string SRC = @"C:\Templates\";
        public static readonly string DEST = @"C:\Templates\result.pdf";

        public static void Main(string[] args)
        {
            FileInfo file = new FileInfo(DEST);
            file.Directory.Create();
            string htmlSource = SRC + "1.html";

            new CreateAccessiblePDF().ManipulatePdf(htmlSource, DEST);
        }

        public void ManipulatePdf(string src, string dest)
        {
            WriterProperties writerProperties = new WriterProperties();
            writerProperties.AddXmpMetadata();
            PdfWriter pdfWriter = new PdfWriter(dest, writerProperties);
            PdfDocument pdfDoc = new PdfDocument(pdfWriter);
            pdfDoc.GetCatalog().SetLang(new PdfString("ru-RU"));
            pdfDoc.SetTagged();
            pdfDoc.GetCatalog().SetViewerPreferences(new PdfViewerPreferences().SetDisplayDocTitle(true));
            ConverterProperties props = new ConverterProperties();
            FontProvider fontProvider = new FontProvider();
            fontProvider.AddStandardPdfFonts();
            fontProvider.AddDirectory(SRC);
            props.SetFontProvider(fontProvider);
            props.SetBaseUri(SRC);
            HtmlConverter.ConvertToPdf(new FileStream(src, FileMode.Open), pdfDoc, props);
            
            pdfDoc.Close();
  • Вопрос задан
  • 1413 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
@Benchstyle Автор вопроса
Вместо:
fontProvider.AddStandardPdfFonts();
Указал:
fontProvider.AddFont(FONT_FILENAME, PdfEncodings.IDENTITY_H);

Тема закрыта
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы