2015-10-06 209 views
0

我試圖從打印代碼的asp.net web表單應用程序創建的PDF,但實際打印之前,我想說明,例如,當我使用JavaScript的window.print()打印預覽

出現在打印預覽彈出

基本上,我需要完全相同的彈出窗口才能顯示,而不必更改我正在使用的頁面,但不是在彈出窗口中顯示我正在使用的頁面,而是要顯示創建的PDF。

問題是我找不到任何能讓我得到這個結果的東西。也許我不知道要尋找什麼,所以提前感謝任何建議。

回答

0

window.open("path to pdf");window.location.href = "path to pdf";

這將在新窗口中打開您的PDF。我不知道打印預覽,但它可以讓他們查看生成的PDF。

0

簡短的回答,不,Print Preview是一種常見但可選的客戶端功能和首選項,在不受控制的環境(Internet)中,您不具有編程訪問權限。

如果你有有一個受控環境,那麼你可以安裝自定義軟件,你可以編程。但是,既然你首先要問,我認爲這不適合你。

正如@ jaredlee.exe說,你最好的最好的是彈出打開一個新的窗口,但不是直接鏈接到你可以嘗試鏈接到有一個整版的一個簡單的頁面的PDF iframeobject(或可能embed )指向您的PDF。然後,您可以綁定一個onload(或onreadystatechangedomcontentloaded或其他任何事件)事件,該事件觸發該特定對象的print()方法。

大家都說,理解這點非常重要,那就是能夠原生呈現PDF的Web瀏覽器是一個相對較新的事物。 Adobe在90年代爲IE(也許是Netscape)提供了一個插件,並且多年來新增了Chrome和Firefox等瀏覽器。然而,加班,但是,這些程序開始添加他們自己的PDF渲染器,一旦他們這樣做,他們實際上已禁用 Adob​​e的。最重要的是,操作系統供應商(通常也是瀏覽器供應商)開始將本機PDF渲染器直接添加到他們的操作系統中。有些人(包括我自己)認爲,所有這些渲染器與Adobe的參考渲染器相比都是蒼白的,所以我們隨後禁用內置的渲染器,無論我們找到它們。所以對我來說(我知道我很奇怪),所有這些選項仍然會導致一個空白窗口,試圖打印空白頁面和下載的PDF。

爲了重申上述內容,Web瀏覽器最常用於查看網頁。當你切換到PDF文件時,你不再處於「網絡世界」,而是「PDF世界」,你不是在控制「網絡瀏覽器」,而是在「PDF渲染器」。不幸的是,沒有與「PDF渲染器」進行對話的規範,因爲該領域還太新。

要重申我的重述,這一切可能會在一些或大部分時間都有效,但如果存在完全失敗的邊緣案例,也不要感到驚訝。