从JavaScript将HTML页面转换为PDF

Manishearth

我正在用HTML / JS开发Windows 8笔记应用程序。

我可以使用画布覆盖图来获取可以导出到的图像,但是存在对齐问题。我希望有一种可靠的方法可以导出到PDF。需要导出的内容是在div中嵌入的一些HTML。

请注意,我可以保存字节流,但是我不知道如何将HTML转换为PDF字节流。必须使用JavaScript来完成,但是可以使用Windows 8 JS API。

该文档将包含MathJax和图像,因此应该不会有太多的对齐问题。

马丁·比比(Martin Beeby)

不确定PDF,但在Windows 8上,您可以使用Webview.capturePreviewToBlobAsync()函数创建图像。

它捕获了Webview中显示的所有内容,并且由于它是直接捕获,因此可以捕获IE11中可以显示的任何内容,包括MathJax。

我刚才写了一个简单的示例应用程序,能够捕获网站:图像。显然,您可以使用URL或插入自己的自定义HTML。

function printeWebViewToDiskThenDisplay() {
        var wc = document.getElementById("webview");
        Windows.Storage.ApplicationData.current.localFolder.createFileAsync("webview.png", Windows.Storage.CreationCollisionOption.replaceExisting).then(function (file) {
            file.openAsync(Windows.Storage.FileAccessMode.readWrite).then(function (stream) {
                var capturePreview = wc.capturePreviewToBlobAsync();
                capturePreview.oncomplete = function (completeEvent) {
                    var inputStream = completeEvent.target.result.msDetachStream();
                    Windows.Storage.Streams.RandomAccessStream.copyAsync(inputStream, stream).then(function () {
                        stream.flushAsync().done(function () {
                            inputStream.close();
                            stream.close();
                            var image = new Image();
                            image.src = URL.createObjectURL(file);
                            result.innerHTML = "";
                            result.appendChild(image);
                        });
                    });
                };
                capturePreview.start();
            });
        });
    }

HTML看起来像这样:

<button id="btnPrint">Print</button> 

<div style="transform:scale(1); transform-origin:0% 0%">
    <x-ms-webview id="webview" src="http://cdn.mathjax.org/mathjax/latest/test/sample.html"
                  style="width: 400px; height: 400px;">
    </x-ms-webview>
</div>
<div id="result"></div> 

结果如下:

Windows 8应用

您可以下载我在此处构建的粗略示例:

https://github.com/thebeebs/ASingleWebviewToImage

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用Django将HTML页面转换为PDF

来自分类Dev

如何使用PHP将HTML + Javascript转换为PDF

来自分类Dev

使用itextsharp将HTML转换为PDF

来自分类Dev

使用pdf.js将html转换为pdf

来自分类Dev

如何使用JavaScript将HTML转换为Docx和PDF

来自分类Dev

使用javascript将HTML表转换为pdf

来自分类Dev

如何使用Django将完全呈现的html页面转换为PDF

来自分类Dev

使用httr将HTML转换为PDF

来自分类Dev

将代码段转换为HTML页面

来自分类Dev

将HTML转换为Word然后转换为pdf

来自分类Dev

将pdf文件页面转换为图像-魔杖

来自分类Dev

如何将Vue JS HTML页面转换为PDF

来自分类Dev

使用html2canvas和jspdf将html页面截图转换为pdf

来自分类Dev

如何在Ubuntu中使用Python将HTML页面转换为Pdf?

来自分类Dev

将图像转换为pdf:如何使PDF页面大小相同

来自分类Dev

无法将php页面转换为PDF

来自分类Dev

使用pdf.js将html转换为pdf

来自分类Dev

使用pdfbox库将pdf转换为html页面

来自分类Dev

Rails wicked_pdf,将页面转换为pdf

来自分类Dev

将代码段转换为HTML页面

来自分类Dev

XMLWorkerHelper将html页面转换为pdf仅产生前2页

来自分类Dev

将pdf转换为图像时如何保持页面大小

来自分类Dev

使用php将html页面转换为pdf

来自分类Dev

使用 Django 将 HTML 转换为 PDF

来自分类Dev

Python 将 json/html 转换为 pdf

来自分类Dev

将html页面转换为jsp

来自分类Dev

无法将 Html 内容转换为 Pdf

来自分类Dev

页面文本:禁止将 HTML 链接转换为 HTML 实体

来自分类Dev

使用 GraphicsMagick 将 pdf 页面转换为图像