HatakeKaKaShi Ответов: 1

Itextsharp китайский иероглиф не показан в формате PDF


Привет,

Мне так нужна помощь с моим кодированием. Я пытаюсь преобразовать HTML с китайским иероглифом в PDF. Мне удается конвертировать но мои китайские иероглифы исчезли

Это мой HTML файл который я конвертирую в строку и установил шрифт с Arial Unicode MS в td

строка HTMLTemplate = "<
table border=0 cellspacing='0' cellpadding='3'><tr><td style='width:100%;font: 10px/1.5em Verdana, Arial Unicode MS, Helvetica, sans-serif;'>GIGI无合约 F&B‎</td></tr></table>
"

Это мой код.

XMLWorkerFontProvider fontProvider = новый XMLWorkerFontProvider(XMLWorkerFontProvider.DONTLOOKFORFONTS);
fontProvider.Регистрация("C:\\fonts\\ARIALUNI.TTF");

CssAppliers cssAppliers = новый CssAppliersImpl(fontProvider);

iTextSharp.text.Document doc = new iTextSharp.text.Документ(iTextSharp.text.PageSize.Письмо, 7, 7, 7, 7);

iTextSharp.текст.формат PDF.PdfWriter писатель = iTextSharp.текст.формат PDF.PdfWriter.GetInstance(doc, new FileStream(FilePath, FileMode.Создавать));

iTextSharp.tool.xml.pipeline.html.HtmlPipelineContext htmlContext = новый iTextSharp.tool.xml.pipeline.html-да.HtmlPipelineContext(cssAppliers);

htmlContext.SetTagFactory(iTextSharp.инструмент.в формате XML.HTML-код.Теги.GetHtmlTagProcessorFactory());

//создайте cssresolver для применения css
iTextSharp.инструмент.в формате XML.производство.экране.ICSSResolver cssResolver = iTextSharp.tool.xml.XMLWorkerHelper.Деыпзьапсе().GetDefaultCssResolver(ложь);

//Создать и прикрепить pipline, без pipline парсер не будет работать на css
iTextSharp.tool.xml.IPipeline pipeline = new iTextSharp.tool.xml.pipeline.css.CssResolverPipeline(cssResolver, new iTextSharp.tool.xml.pipeline.html-да.HtmlPipeline(htmlContext, новый iTextSharp.инструмент.в формате XML.производство.конец.PdfWriterPipeline(доктор, писатель)));

//Создайте XMLWorker и прикрепите к нему парсер
iTextSharp.инструмент.в формате XML.Работник XMLWorker = новый iTextSharp.инструмент.в формате XML.XMLWorker(производство, правда);
iTextSharp.инструмент.в формате XML.парсер.XML-парсер XML-парсер = новый iTextSharp.инструмент.в формате XML.парсер.XML-парсер(работник);


//Все хорошо открываем documnet и начинаем писать.
док.Открыть();

XML-парсер.Parse(new StringReader(AP_TEMPLATE_HTML));
док.Ньюпейдж();

док.Закрывать();

Что я уже пробовал:

Я попробовал добавить Arial Unicode MS в HTML а также добавить шрифт
fontProvider.Регистрация("C:\\fonts\\ARIALUNI.TTF");

1 Ответов

Рейтинг:
0

Vincent Maverick Durano

Цитата:
Я попробовал добавить Arial Unicode MS в HTML а также добавить шрифт
fontProvider.Регистрация("C:\\fonts\\ARIALUNI.TTF");


Вы ссылаетесь на файл с вашего диска C, в котором ваше веб-приложение не имеет к нему доступа. Попробуйте переместить файл в корневой каталог веб-приложения и ссылаться на него оттуда.