PDF, созданный DynamicPDF, отображает корейский текст как пустой

Я использую DynamicPDF для создания файла PDF с текстом на корейском языке. Я использую системные шрифты PDF для символов CJK и не получаю ужасных квадратов, я просто получаю... пустоту.

Символы занимают место, и после добавления латинских символов они появляются в том положении, в котором вы их ожидаете. Выбор пустого места и щелчок правой кнопкой мыши или копирование показывает правильные ожидаемые символы, чтобы они существовали.

Моя система отображает корейский текст, показывая его на HTML-странице в Chrome, а PDF в Chrome — нет.

Вот минимальный образец с (рабочим) японским текстом для сравнения.

Плохой корейский текст :(

ceTe.DynamicPDF.Document document = new ceTe.DynamicPDF.Document();
ceTe.DynamicPDF.Page page = new ceTe.DynamicPDF.Page(PageSize.Letter, PageOrientation.Portrait, 54.0f);

// Create a Label to add to the page
var testString = "Korean: 안녕하세요 세계 </korean>";
page.Elements.Add(new Label(testString, 0, 0, 504, 100, Font.SinoTypeSongLight, 18, TextAlign.Center));
page.Elements.Add(new Label(testString, 0, 100, 504, 100, Font.HanyangSystemsGothicMedium, 18, TextAlign.Center));
page.Elements.Add(new Label(testString, 0, 200, 504, 100, Font.HanyangSystemsShinMyeongJoMedium, 18, TextAlign.Center));

testString = "Japan: こんにちは世界 </japan>";
page.Elements.Add(new Label(testString, 0, 300, 504, 100, Font.SinoTypeSongLight, 18, TextAlign.Center));

// Add page to document
document.Pages.Add(page);

// Outputs the document to the current web page
document.Draw("D:/HelloWorld.pdf");

person Elva    schedule 07.10.2016    source источник


Ответы (1)


См. документацию DynamicPDF по шрифтам CJK.

Шрифт SinoTypeSongLight, который вы используете для добавления корейских символов, на самом деле поддерживает упрощенные символы китайского языка. В этом шрифте нет поддержки корейских символов, поэтому в первой строке PDF-файла ожидается пустое место.

Во второй и третьей строках вы используете правильные шрифты (HanyangSystemsGothicMedium и HanyangSystemsShinMyeongJoMedium), которые поддерживают корейские символы. Однако, согласно приведенной выше ссылке на документацию, на машине, на которой вы просматриваете этот PDF-файл, должен быть установлен пакет азиатских шрифтов. Я не уверен, какой плагин для просмотра PDF использует ваш браузер Chrome, но такие программы для просмотра PDF, как Adobe Reader, предоставляют пакет азиатских шрифтов в качестве надстройки. См. снимок экрана, на котором показан PDF-файл, сгенерированный с помощью вашего кода в Adobe Reader DC с пакетом азиатских шрифтов.

введите здесь описание изображения

Отказ от ответственности: я работаю в ceTe Software, компании, которая разрабатывает библиотеки DynamicPDF.

person DynamicPDF    schedule 07.10.2016