【问题标题】:iTextSharp HTML to PDF - Handling imagesiTextSharp HTML to PDF - 处理图像
【发布时间】:2016-01-14 23:03:24
【问题描述】:

我正在使用 iTextSharp 获取一个 html 文件并将其转换为 PDF,但是我遇到了一个问题,我需要它来实现它何时命中和图像,并从 HTML 中获取图像并将其插入到正确的位置在 PDF 中。

所有的 HTML 文件都是基本的 HTML 文件,格式一般如下:

文字

图片

文字

图片。

【问题讨论】:

    标签: c# html pdf itextsharp


    【解决方案1】:

    可能 iTextSharp 的 XML Worker 无法检索图像文件。两种情况:

    1. 图像必须通过网络连接检索,例如您的img 标签的srchttp://...。在这种情况下,检索图像失败可能是因为运行 iTextSharp 进程的机器无法访问托管图像的服务器。服务器可能已关闭,机器可能位于网络代理或防火墙后面,机器未连接到互联网等。

    2. 必须从本地文件系统中检索图像。在这种情况下,您可能需要ImageProvider 来指向正确的位置。看看this example that demonstrates the issue。这是an example that fixes this using an ImageProvider

    【讨论】:

    • 抱歉回复晚了。图像和 HTML 文件在我的本地机器上,而不是在任何地方的服务器上。我正在使用 HTMLWorker 来解析 HTML,它可以在没有图像的情况下正常工作。但是,一旦涉及图像,它就无法通过 IMG 标签。我想知道是否有办法检测到它到达 IMG 标签。处理图像并将其插入到它应该去的 pdf 中,然后继续使用文本。
    • HTMLWorker 已弃用。请查看XMLWorker。我在答案中链接的示例显示了如何使用XMLWorker
    • 不幸的是,我继承了遗留代码,只需要让它与图像一起工作。它适用于文本,但我们现在需要它来处理图像。所以真的不想换成 XMLWorker。
    • 有用的答案!我的堆栈包括逻辑:Spring Controller -> ServiceImpl(生成逻辑)-> Velocity(生成模板)-> iText 使用模板生成包含图像的 PDF。我在 Velocity 模板中指定了 http://,而 iText 无法访问 http:// 服务器。我为 iText 编写了 ImageProvider 来为 Velocity 模板中存在的图像指定根路径,最后它开始工作了。
    猜你喜欢
    • 2017-09-30
    • 1970-01-01
    • 2015-05-30
    • 1970-01-01
    • 1970-01-01
    • 2017-04-23
    • 2011-02-18
    • 1970-01-01
    • 2014-01-19
    相关资源
    最近更新 更多