Я использую 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");