使用aspose.html将html转换到pdf,如何最大化还原格式?

我使用aspose.html想将一些html网页转换为pdf,这个html里面有一些网络加载的js和css文件,当我用官方文档的例子转换后,发现效果和原来的网页完全不一样,html里面的内容基本都丢失了。

这是我用来转换的文件附件,里面有html,你们可以帮忙转换一下看看吗?是我的代码部分有什么错误吗?感谢你们。

11个html页面.zip (1.2 MB)

转换代码:

Aspose.Html.Configuration TempConfig= new Aspose.Html.Configuration();
            Aspose.Html.Rendering.Pdf.PdfRenderingOptions TempPdfRenderOption = new Aspose.Html.Rendering.Pdf.PdfRenderingOptions();
            TempPdfRenderOption.Css.MediaType = Aspose.Html.Rendering.MediaType.Screen;
            TempPdfRenderOption.PageSetup.AdjustToWidestPage = true;

            //using (Aspose.Html.HTMLDocument TempDocument = new Aspose.Html.HTMLDocument(DocumentFileName))
            //{

            //    using Aspose.Html.Rendering.Pdf.PdfDevice TempPdfDevice = new Aspose.Html.Rendering.Pdf.PdfDevice(TempPdfRenderOption, SavedFileName);
            //    TempDocument.RenderTo(TempPdfDevice);
            //};

            INetworkService networkService = TempConfig.GetService<INetworkService>();

            networkService.MessageHandlers.Insert(0, new TimeoutMessageHandler());

            Aspose.Html.Saving.PdfSaveOptions TempOption = new Aspose.Html.Saving.PdfSaveOptions()
            {
                JpegQuality = 100,
            };

            TempOption.PageSetup.AdjustToWidestPage = true;

            Aspose.Html.Converters.Converter.ConvertHTML(DocumentFileName, TempConfig, TempOption, SavedFileName);

刚才我从你们的网站上面尝试了一下,使用html转pdf的转换器页面,转换出来的pdf文件也是缺少内容的,从文件来看,会是因为在内部的JavaScript还没有渲染完毕后就转换完毕的原因吗?还是有其他原因?

@jidesheng

您共享的存档中有许多文件。您能否指出其中的一两个文件供我们进行调查?另外,如果可以的话,您能分享一下您这边生成的输出PDF吗?我们将记录调查单并与您分享 ID。

任何一个HTML文件都可以,因为他们都是从网络上面直接保存下来的,里面内容都是通过网络获取的,你们随机选一个HTML转换就可以了,如果需要pdf,我稍后可以提供。

@jidesheng

我们正在检查,并会尽快回复您。

不好意思,在周末咨询你们问题。

我想请问一下,目前有查出来是什么问题吗?

@jidesheng

我们担心我们无法初步测试和调查此案。尽管如此,我们今天仍会对此进行调查,并在此向您更新最新情况。请给我们一点时间。

我已经找到原因了,用了另一个库解决了。

aspose.html应该是只能将本地的,静态的资源进行转换。

网络上动态加载的资源无法处理,我使用了另一个库,用webdriver来将页面打开,然后把等待html页面加载完毕后,转换为pdf。谢谢你们关注这个问题。

@jidesheng

我们对不便表示抱歉。我们在我们的环境中测试了该案例,并将其在我们的问题跟踪系统中注册为 HTMLNET-4838。 Aspose.HTML确实支持加载外部资源。然而,我们需要对如何更改代码进行一些调查才能产生预期的结果。票证解决后,我们会立即通知您。对于造成的麻烦,我们深表歉意。

The issues you have found earlier (filed as HTMLNET-4838) have been fixed in this update. This message was posted using Bugs notification tool by avpavlysh