Java ITextPDF例外-对于HR标记,不使用HR

Java ITextPDF例外-对于HR标记,不使用HR,java,itext,html-to-pdf,Java,Itext,Html To Pdf,我在尝试生成PDF时收到以下错误消息:“com.itextpdf.tool.xml.exceptions.RuntimeWorkerException:找到无效的嵌套标记体,预期为关闭ag hr。” 我使用的是Tomcat5.5/Java1.7/itextpdf 5.4.5/使用5.5.7进行了尝试-结果相同 奇怪的是,这在我本地的tomcat上可以正常工作(即看不到上面的错误)-完全相同的版本,但在AWS ubuntu box上却不行,在那里我可以看到这个错误。关于什么是不同的想法已经没有了,

我在尝试生成PDF时收到以下错误消息:“com.itextpdf.tool.xml.exceptions.RuntimeWorkerException:找到无效的嵌套标记体,预期为关闭ag hr。”

我使用的是Tomcat5.5/Java1.7/itextpdf 5.4.5/使用5.5.7进行了尝试-结果相同

奇怪的是,这在我本地的tomcat上可以正常工作(即看不到上面的错误)-完全相同的版本,但在AWS ubuntu box上却不行,在那里我可以看到这个错误。关于什么是不同的想法已经没有了,所以这个问题就出现了

试图查看iTextPDF代码,似乎他们在试图查找结束标记时显示了此消息(从语句中可以明显看出),并且没有任何棘手的地方

有趣的是,我没有在HTML中使用-HR-tag。甚至用一个简单的
这是一个示例项目
,但仍然出现相同的错误。 定义此HTML字符串后,我要做的唯一其他事情是-以下代码行:

// Add Company Logo
            String logoLink = getServletContext().getRealPath("/resources/images/tenant/" + commonUtils.TENANT_CURRENT + "/logo.png");
            java.io.File logo = new java.io.File(logoLink);
            if(logo.exists()){
                Image img = Image.getInstance(logoLink);
                img.scaleToFit(150, 150);
                //img.setAbsolutePosition(200f,0);  
                document.add(img);
            }
这将使徽标在PDF中保持动态。 在此之后,完成并关闭

            XMLWorkerHelper worker = XMLWorkerHelper.getInstance();
            worker.parseXHtml(pdfWriter, document, fis);
            logger.debug("==>> Invoice PDF generated. Uploading to Google Drive. File Name = " + fname);
            document.close();                                                                       

            if (pdfWriter != null){
                pdfWriter.close();
            }

有什么线索可以帮我解决这个问题吗


请帮忙。

只有在有开场白
hr
标签的情况下才会出现错误消息。因此,我假设您的
fis
不包含您认为它所包含的内容……同意,我在查看iTextpdf源代码后得出了相同的推论。然而,我非常确定html中没有hr标记,通过将inputstream打印到日志来证明这一点。此外,还尝试了一个示例字符串。我还在挠头呢。。。。还有其他想法吗?禁用img,因为这是添加到文档中的唯一附加内容。作为一种不同的方法,是否有一种方法可以禁用/忽略结束标记错误并继续执行它所得到的结果?有趣的观察:我的产品(出现问题的地方)和开发环境(没有出现问题的地方)之间的关键区别是,在Prod中,路径是-Browser>Apache>Tomcat,而在开发环境中是Browser>Tomcat在生产中直接访问Tomcat,结果与DEV相同,即没有错误。换句话说,由于Apache HTTPD在中间,这个问题发生了。从邮递员访问同一个URL,有和没有Apache HTTPD服务器,Apache似乎增加了更多的页眉,否则,其他所有的东西看起来都一样(响应正文)。正如预期的那样。通过执行-
sudo a2dismod deflate
,禁用了这个标题,这可能会导致iTextPdf产生不同的解释。但是没有运气。知道我还可以用apache尝试什么使iTextPdf产生此错误吗?apache添加了以下额外的标题要直接访问tomcat-
Vary=Accept Encoding;Content Encoding=gzip;Keep-Alive=timeout=5,max=100;Connection=Keep-Alive