iTextSharp Сбой с StackOverflowException при получении шрифта - PullRequest
1 голос
/ 13 ноября 2009

iTextSharp действительно, очень не нравится, когда я пытаюсь создать шрифты:

FontFactory.GetFont(Font.HELVETICA, 12)

Это дает мне дружественный StackOverflowException. Итак, я попробовал это:

new Font(Font.HELVETICA, 12)

, который делает то же самое. Пробовал Font.TIMES, и тоже самое получил. Поэтому я попытался опустить немного ниже на основе этого ответа , что предполагает следующее:

BaseFont bf = BaseFont.CreateFont(
            HttpContext.Current.Server.MapPath("/path/to/times.ttf"), 
            BaseFont.IDENTITY_H, 
            BaseFont.EMBEDDED);
new Font(bf, 12);

Еще раз, StackOverflowException. Хотя согласованность хорошая, я бы предпочел, чтобы библиотека позволяла мне выбирать шрифт.

Я уверен, что я где-то где-то неправильно настроил конфигурацию; но это ускользает от меня относительно того, что это может быть.

1 Ответ

1 голос
/ 13 ноября 2009

Я нашел эту статью на nabble , в которой предлагается создать шрифт в отдельном потоке, чтобы у вас был большой стек для работы.

FTA

Thread smartCopyThread = new Thread(new ThreadStart(RunSmartCopy),
0x800000);
smartCopyThread.Start();
smartCopyThread.Join(); 

Здесь RunSmartCopy будет выполнять ту работу, которую вы описываете.

...