用图像缓慢渲染| MigraDoc

时间:2013-11-13 10:26:02

标签: asp.net vb.net pdf migradoc

我正在使用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个这样的时间,这可能需要很长时间才能达到目前的速度。

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

1 个答案:

答案 0 :(得分:2)

使用JPEG文件时可能会更快(如果这是一个选项)。

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

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

MigraDoc有两个版本:一个使用GDI +,一个使用WPF。您可以尝试两者,看看是否有所作为。

BTW:图像可以像TextFrames一样定位,因此无需将图像放入TextFrame。