获取字体时 iTextSharp 崩溃并出现 StackOverflowException

发布于 2024-08-11 23:13:29 字数 734 浏览 6 评论 0原文

当我尝试创建字体时,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。虽然一致性很好,但我更希望图书馆允许我选择字体。

我确信我只是在某个地方出现了一些配置错误;但我不知道它可能是什么。

iTextSharp really, really doesn't like it when I try to create Fonts:

FontFactory.GetFont(Font.HELVETICA, 12)

This gives me a user-friendly StackOverflowException. So I tried this:

new Font(Font.HELVETICA, 12)

which does the same thing. Tried Font.TIMES, and got the same thing, too. So I tried dropping a bit lower based on this answer, which suggests the following:

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

Once again, StackOverflowException. While the consistency is nice, I'd prefer that the library would let me select a font.

I'm sure I've just got some configuration wrong somewhere; but it escapes me as to what it could be.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

书间行客 2024-08-18 23:13:29

我在 nabble 上找到了这篇文章,建议在一个单独的线程,这样你就可以处理更大的堆栈。

FTA

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

在这里,RunSmartCopy 将完成您所描述的工作。

I found this article on nabble that suggests creating the font on a separate thread so you have a larger stack to deal with.

FTA

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

Here, RunSmartCopy would do the work you're describing.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文