русский язык при использовании Itext7

Рейтинг: 1Ответов: 1Опубликовано: 25.05.2023

Не отображается русский язык в файле Pdf, который был создан с помощью библиотеки Itext?

using iText.IO.Font.Constants;
using iText.Kernel.Font;
using iText.Kernel.Geom;
using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Element;
using iText.Layout.Properties;

var name = "pdf";
var path = $"D:\\{name}.pdf";
PdfWriter writer = new PdfWriter(path);
PdfDocument pdf = new PdfDocument(writer);
Document document = new Document(pdf, PageSize.A4);
document.SetMargins(20, 20, 20, 20);
var font = PdfFontFactory.CreateFont(StandardFonts.TIMES_ROMAN);
var bold = PdfFontFactory.CreateFont(StandardFonts.TIMES_BOLD);
Paragraph header = new Paragraph("Приложение к диплому А № 132123")
   .SetTextAlignment(TextAlignment.RIGHT)
   .SetFontSize(12);

document.Add(header);
document.Close();

при открытии файла есть только числа

Ответы

▲ 2

проблема была в том, что я не использовал шрифт, поддерживающий русский язык. Вот пример кода на C#, который использует шрифт Arial :

using iText.IO.Font.Constants;
using iText.Kernel.Font;
using iText.Kernel.Geom;
using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Element;
using iText.Layout.Properties;

var name = "pdf";
var path = $"D:\\{name}.pdf";
PdfWriter writer = new PdfWriter(path);
PdfDocument pdf = new PdfDocument(writer);
Document document = new Document(pdf, PageSize.A4);
// строчки кода где используется шрифт поддерживающий русский язык
var font = PdfFontFactory.CreateFont("C:\\Windows\\Fonts\\arial.ttf", "Identity-H");
document.SetFont(font);
//
Paragraph header = new Paragraph("Приложение к диплому А №132123");
document.Add(header);
document.Close();