【问题标题】:Slow rendering with image | MigraDoc图像渲染缓慢 |迁移文档
【发布时间】:2013-11-25 21:45:26
【问题描述】:

我正在使用 MigraDoc 创建 PDF,但现在遇到了一个小问题。我使用 A4 大小的图像(2480px x 3508px / 96KB 大小)作为我的 PDF 的背景,使用以下代码:

Dim frame = Section.Headers.FirstPage.AddTextFrame
frame.AddImage("background.png")
frame.WrapFormat.Style = WrapStyle.Through
frame.RelativeHorizontal = RelativeHorizontal.Page

使用此选项会使 PDF 的渲染时间(例如 10 秒)比没有或较小的文件(例如 1 秒)长约 10 倍。有没有办法加快这个速度?

我试图不使用框架,认为这可能是显示图像的问题:

Dim backing As Image = Section.Headers.FirstPage.AddImage("background.png")

但仍然是相同的结果,我想要缩短时间的原因是我创建了多达 1000 个这样的结果,而在当前速度下这可能需要很长时间。

我无法再缩小图像尺寸,但我不明白为什么它应该是尺寸问题。如果这是问题所在并且无法解决,请告诉我。

【问题讨论】:

    标签: asp.net vb.net pdf migradoc


    【解决方案1】:

    如果您使用 JPEG 文件(如果可以的话),可能会更快。

    JPEG 文件按原样复制到 PDF 中。 PNG 和其他格式必须转换为“PDF 图像”。

    您可以像使用图像一样使用 PDF 文件中的页面。这是您可以尝试的另一种选择:使用您的背景图像创建一个 PDF,然后使用该 PDF 而不是 PNG 创建所有其他文件(如果 JPEG 不适合您的图像)。

    有两种版本的 MigraDoc:一种使用 GDI+,一种使用 WPF。您可以尝试两者,看看是否有区别。

    顺便说一句:图像可以像 TextFrames 一样定位,因此无需将 Image 放入 TextFrame。

    【讨论】:

    • 我只是将它作为 JPEG 格式进行了尝试,结果仍然相同。我该怎么做你的第二个选择?如果您可以扩展它,那就太好了。
    • 忽略我的最后一个,你是对的。我只是在测试时链接了错误的图像。 JPEG 确实解决了这个问题。谢谢!
    • 我用一个两页的文档测试了这个理论,即使 JPG 版本比 PNG 小 3 倍。还是太慢了。
    • @ajeh 最初的问题是关于大图像,您使用小图像进行了测试。并不能证明这个理论是错误的——尤其是因为它帮助了 Ruddy。也许您应该开始一个新问题并包含一个 MCVE。
    猜你喜欢
    • 2018-01-22
    • 2021-05-19
    • 2017-08-27
    • 1970-01-01
    • 2022-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多