如何修复itext basefont错误:线程“main”中的异常java.lang.NoSuchMethodError:com.lowagie.text.pdf.BaseFont.getCharBBox(I)[I

时间:2017-07-14 15:59:01

标签: java eclipse window itext

用itext解决基本字体错误的任何方法。

我已在互联网上搜索以解决此错误:

线程“main”中的异常java.lang.NoSuchMethodError:com.lowagie.text.pdf.BaseFont.getCharBBox(I)[I

它似乎是一个平台错误。我在窗口操作系统中使用eclipse,并且在我使用的每种渲染器中都需要使用itext,我会一直收到错误。

我知道并不是唯一遇到此错误的人。 我使用飞碟从xhtml创建pdf时遇到了同样的错误。 我也尝试使用docx4j for xhtml to docx convertion。

我想知道是否有解决此基本字体错误的方法

1 个答案:

答案 0 :(得分:0)

经过几个小时的挫折,我终于解决了我的问题。 我在此链接中找到了版本签名的解决方案: https://groups.google.com/forum/#!msg/flying-saucer-users/5yXdrIpNnSs/YwY-oETKXD8J

您只需使用包含getCharBBox(I)[I方法的itext版本。 您还可以使用itext5 XML Worker或itext7 pdfHTML来执行html到pdf的转换。

正如Bruno Lowagie建议的那样,但对于我的情况,我使用docx4j将xhtml转换为docx,我真的需要渲染器需要的itext版本。 Itext-2.1.x和飞碟9.0.2 解决了我的问题。两者都是可指定的趋势https://groups.google.com/forum/#!msg/flying-saucer-users/5yXdrIpNnSs/YwY-oETKXD8J

我仔细检查了9.0.2的发布版本是否使用了iText 2.1.x的正确签名(见下文)。

皮特

private void setMetricDefaults();   签名:()V   码:    0:aload_0    1:ldc#12; // float -50.0f    3:putfield#8; // Field _underlinePosition:F    6:aload_0    7:ldc#13; // float 50.0f    9:putfield#9; // Field _underlineThickness:F    12:aload_0    13:getfield#4; // Field _font:Lcom / lowagie / text / pdf / BaseFont;    16:bipush 120    18:invokevirtual#14; //方法com / lowagie / text / pdf / BaseFont.getCharBBox :( I)[I

希望这可以帮助遇到同样问题的其他人。