2015-09-19 75 views
0

我有一個控制器返回一個PDF文件,這是臨時保存在本地文件夾。直接打開一個打印對話框是可以打開使用JavaScript的PDF文件?打開打印對話框從控制器C接收pdf文件#

public ActionResult LoadDownloadAndPrint(string Download) 
{ return File(System.IO.File.ReadAllBytes(target);) 

的文件保存在C:\ WINDOWS \ TEMP \ 3ac416b7-7120-4169-bc4d-61e105ec197c \輸出.pdf

我已經在這個線程Print PDF directly from JavaScript試圖使用嵌入標籤狀但沒有工作,我猜是因爲是存儲文件的地方。

回答

0

經過大量的研究最終得到它使用iframe。此代碼非常有幫助http://www.sitepoint.com/load-pdf-iframe-call-print/ 我的視圖中有一個空的隱藏iframe。 這是鉻,FF,但不是在IE中工作

Search.openPrintDialog = function() { 
var printJobIds = $("input:checkbox[name='Print']:checked").map(function() { return this.value; }).get().join(','); 
if (printJobIds.length > 0) 
{ 
    JSUtil.BlockUI(); 
    print('/' + JSUtil.GetWebSiteName() + '/Search/LoadDownloadAndPrint?Print=' + printJobIds) 
} 
return false; 
} 
function print(url) { 
    var _this = this, 
    iframeId = 'iframeprint', 
    $iframe = $('iframe#iframeprint'); 
    $iframe.attr('src', url); 
    $iframe.load(function() { 
     _this.callPrint(iframeId); 
    }); 
} 

//initiates print once content has been loaded into iframe 
function callPrint(iframeId) { 
    var PDF = document.getElementById(iframeId); 
    PDF.focus(); 
    PDF.contentWindow.print(); 
    JSUtil.UnBlockUI(); 
}