当前位置: 首页 > 知识库问答 >
问题:

如何在使用iText解析HTML内容生成Pdf文件时避免java.net.UnknownHostException

蓝苗宣
2023-03-14

我想把一些HTML内容转换成PDF文件。我面临的问题是HTML内容有一些标记,这些标记带有绝对图像URL。因此

HTMLWorker.parse()
ExceptionConverter: java.net.UnknownHostException: xyz.com

是否有一种方法可以避免这种情况下的例外,并生成一个没有任何图像的pdf?

我使用的是IText-5.0.5库。

共有1个答案

舒斯伯
2023-03-14

您应该实现您的ImageProvider,当检索图像出现问题时,只返回null,如

public static class MyImageProvider implements ImageProvider {
    public Image getImage(String src, Map<String, String> h, ChainedProperties cprops, DocListener doc) {
        try {
            return Image.getInstance(IMAGE_URL); //create IMAGE_URL from src parameter
        } catch (IOException e) {
            return null;
        }
    }    
}

然后您应该将HTMLWorker与此提供程序一起使用

 HashMap<String,Object> map = new HashMap<String, Object>();
 map.put(HTMLWorker.IMG_PROVIDER, new MyImageProvider());
 HTMLWorker.parseToList(new FileReader(HTML), null, map);
 类似资料:
  • 这段代码第一次可以运行得很好,但是当我第二次运行app时,它不会立即生成PDF文件。

  • 问题内容: 我正在使用以下代码将Spark DataFrame保存到JSON文件 输出结果是: 如何生成单个JSON文件而不是每行一个文件? 如何避免* crc文件? 如何避免SUCCESS文件? 问题答案: 如果要单个文件,则需要在调用write之前对单个分区执行a操作,因此: 就个人而言,我觉得很烦人,输出文件的数量取决于你打电话之前有分区的数量-特别是如果你做了-但据我所知,目前没有其他办法

  • 我知道如何生成单个超文本标记语言页面。我想知道如何从多个超文本标记语言页面生成的pdf生成单个pdf页面。 例如,有和另一个文件我可以生成单独的pdf文件和分别来自html。我可以将它们写入文件系统,然后像iTextConcatenate示例中那样连接它们。 我只是想知道我是否可以在不将它们写入文件系统的情况下动态地组合此操作。我无法识别丢失的链接

  • 我想从HTML模板中提取一部分,并将其转换为PDF文件,以便用户可以选择下载。(例如,单击按钮后)。 我找到了一个名为jsPDF的库,我将如何在Angular2应用程序(RC4)中使用jsPDF? 谢谢你

  • 问题内容: 这是我的HTML来源 这是我获取内容的Java程序,它过滤HTML标记 是否有使用Jsoup而不是使用Java而不是Regex解析HTML内容的简便方法 有没有办法只获取所需的内容。所以在这里我只需要内容“项目2-222” 问题答案: 尝试使用jsoup轻松解析: 要了解更多信息,请访问Jsoup Docs

  • 我们计划通过传递html文本作为输入,在横向模式下生成一个pdf。此外,pdf是在横向模式下生成的,而内容是在纵向模式下。以下是我们用来执行上述要求的步骤。 1)从源系统接收xml内容。 2) 使用xsl从xml生成html输出。 3)将html输出作为输入传递给pdf java类,然后该类将以横向模式生成pdf。 示例 xml 文件:.com/重置样本 样本xsl文件:.com/重置复制 jav