0

我正在使用 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 倍(例如 10 秒),然后是没有或较小的文件(例如 1 秒)。有没有办法加快这个速度?

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

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

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

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

4

1 回答 1

2

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

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

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

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

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

于 2013-11-13T22:51:43.427 回答