2014-07-01 47 views
0

我正在開發HTML/JS中的Windows 8筆記記錄應用程序。將HTML頁面轉換成PDF格式的JavaScript

我可以使用畫布覆蓋圖來獲取我可以導出的圖像,但存在對齊問題。我更喜歡是否有可靠的方式導出爲PDF。需要導出的東西是嵌入在div中的一些HTML。

請注意,我有能力保存一個字節流,但我不知道如何將此HTML轉換爲PDF字節流。它必須用JavaScript來完成,但可以使用Windows 8 JS API。

該文件將包含MathJax和圖像,所以不應該有太多的對齊問題。

回答

2

不知道關於PDF但在Windows 8中,您可以創建使用Webview.capturePreviewToBlobAsync()函數的圖像。

它捕獲顯示在Web視圖中的所有內容,因爲它是直接捕獲可以在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 App

您也可以下載粗糙的樣品我建在這裏:

https://github.com/thebeebs/ASingleWebviewToImage

2

好的HTML - > PDF這並不容易,我的意思是你可以在打印對話框中手動保存爲.pdf,並由此支持@media print .css文件。

不過我想,你希望它自動進行變化,通過我設法找到以下價位荒謬的商業軟件篩選...

https://github.com/MrRio/jsPDF

到的是,看起來,它應該執行你正在尋找的東西。

+0

您是否知道將HTML頁面可靠地轉換爲圖像(或圖像集)的任何方式,以便可以輕鬆地將其插入到pdf中? – Manishearth

+0

我剛剛發現了一個非常有趣的插件@ http://wkhtmltopdf.org/,它可以輕鬆轉換爲.pdf和其他圖像格式,可能值得研究。 – Raptus

+0

謝謝,但它在C :)我不能使用,除非我emscripten它或什麼 – Manishearth