首页 文章

导出为PDF时,Phantomjs正在复制内容

提问于
浏览
0

在将html文件转换为pdf时,我遇到了Phantomjs的一个奇怪问题 . 我的html,生成的pdf和rasterize.js文件如下:

您会注意到,在PDF文件中,在第6页,内容被截断,然后在第7页,内容被重复,然后一直到文档的末尾 .

html文件包含一系列 **** 标记,其 src 属性设置为 data:image/png;base64...

对幻像库的应用程序调用如下:

phantomJS.Run("C:\path\to\directory\rasterize.js"),
                new[] { webpath, outFilePdf, "A4", "1", "portrait"}, null, null);

请注意,有时渲染的pdf文件将在文档中的不同位置展示中断/重复行为,例如:第7页而不是6)但始终会出现相同的问题 .

此外,我在我的应用程序中使用phantomjs(使用相同的rasterize.js脚本),没有其他问题 . 这仅在此导出时发生,并且仅在存在多个图像时才会发生 .

我的理论是image.onload事件正在发生,特别是base64数据,但我不知道如何解决这个问题 .

这都在.Net MVC应用程序中 . 我正在使用此处找到的PhantomJS nuget包:https://www.nuget.org/packages/PhantomJS/

非常感谢帮助 .

1 回答

  • 0

    更新:当通过命令行在本地运行phantomjs时,我收到以下错误:

    [CRITICAL] QNetworkReplyImpl: backend error: caching was enabled after some bytes had been written
    libpng error: Read Error
    

    我通过将html文件中的cdn引用替换为本地托管版本的font-awesome.css和weather-icons.css文件解决了这个问题(虽然我不知道如何/为什么) . 之后,没有更多错误,也没有更多重复的内容 .

相关问题