亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > WEB開發 > 正文

WEB中前臺JS控制打印PDF文件

2024-04-27 15:19:15
字體:
來源:轉載
供稿:網友

最近遇到項目中需要在瀏覽器中一鍵打印 遠程PDF文件,經過網上搜集資料最終選擇了在客戶端安裝adobe reader后,實現上從服務器端下載一個pdf文件流,在IE中用adobe插件打開(在前臺頁面中隱藏Object標簽),然后用adobe的打印菜單通過PRintWithDialog()打印。 源碼如下:

function bulkpdfPrint(srcFile){ var pdf = document.getElementById("createPDF"); if (pdf != undefined && pdf != null) {//判斷pdf對象是否存在,如果存在就刪除該對象 var parentNode = pdf.parentNode; parentNode.removeChild(pdf); } var p = document.createElement("object"); p.id = "createPDF"; p.classid = "CLSID:CA8A9780-280D-11CF-A24D-444553540000"; p.width = 1; p.height = 1;//若為0,在IE8中出錯 p.src = encodeURI(encodeURI(srcFile));//解決中文pdf無法打開 document.body.appendChild(p); p.printAll();}打開瀏覽器窗口,頁面中進行打印,開始點擊打印時,彈出一個新的窗口window.open(url,”_blank”);//url為生成PDF的url,在這個新的頁面中有PDF文件的內容,而且網頁上也剛剛有打印的功能,這種看起來是最簡單的,但是對用戶而言,需要點擊二次按鈕才能真正打印。所以,用戶體驗不會太好。adobe reader插件的方法,獲取遠程PDF文件URL,如果用戶安裝了PDF的瀏覽器支持,打開后用戶的瀏覽器可以直接在瀏覽器中運行adobe reader加載項。然后由用戶選擇是否打印(一鍵打印PrintAll()或者PrintwithDialog())。實現簡單,但需安裝Adobe,在安裝中一定程度上相當影響用戶體驗。本文最終選擇這種方法。百度文庫的方法,使用Flash制作一個PDF閱讀器,在flash上面加上打印按鈕,不用用戶安裝了adobe reader閱讀器,實現的技術卻很高,而且用戶要求不進行預覽。瀏覽器window.print()的方法,利用iframe,將PDF文件的內容包含其中,這個時候調用window.print()來彈出打印窗口。瀏覽器打印功能菜單的一種程序調用。與點擊打印功能菜單一樣,不能精確分頁,不能設置紙型,可以讓用戶不用去點菜單,直接點擊網頁中的一個按鈕,或一個鏈接里面調用。 代碼如下://創建一個空的iframe,因為如果每次請求都生成PDF,那么是不必要的。<iframe style="display:none" id="printIframe"></iframe>$(document).ready(function(){ .... $("#printIframe").load(function(){//等待iframe加載完成后再執行doPrint.每次iframe設置src之后都會重新執行這部分代碼。 doPrint(); }); ....});//點擊打印按鈕,觸發事件function printPDF(){ var src = $("#printIframe").attr("src"); if(!src){//當src為空,即第一次加載時才賦值,如果是需要動態生成的話,那么條件要稍稍變化一下 $("#printIframe").attr("src","./attachment/Images.pdf");//暫時靜態PDF文件 }else $("#printIframe")[0].contentWindow.print();//不知為什么在IE中一直無法打印文件}

不知為什么我在IE中一直無法打印PDF文件,此外要使用瀏覽器自帶的打印功能,還需要去掉那些頁眉頁腳信息。 一、通過javaScript 程序來設置,其實主要是用ActiveX控件來實現,出于安全方面的考慮,現在大多數瀏覽器已經禁用了“對未標記為可安全執行腳本的ActiveX控件初始化并執行腳本”這一功能。如下圖所示, 這個是以IE 8為例說明的,具體位置在:工具->Internet 選項->安全(最上面一排標簽的第二個)->選中“Internet”圖標時,單擊“自定義級別”

因為這一功能是禁用的,所以通常Javascript或者其他腳本都無法生效,即無法通過程序直接實現,需要先解除這一禁止項,程序才能起作用,但解除禁止項后會帶來安全方面的隱患。

相關JavaScript代碼:

<script language="javascript"><!--var HKEY_Path = "HKEY_CURRENT_USER//Software//Microsoft//Internet Explorer//PageSetup//"; // 定義注冊表位置// name的值可為header(頁眉),footer(頁腳),margin_bottom(下邊距margin_left(左邊距),margin_right(右邊距),margin_top(上邊距)。function PageSetup(name,value) {try { var Wsh = new ActiveXObject("WScript.Shell"); Wsh.RegWrite(HKEY_Path+name,value); // 修改注冊表值}catch(e) { //alert(e.name+" "+e.message); //alert('需要運行ActiveX對象后,才能進行打印設置。');}}function setit() {PageSetup("footer","");PageSetup("header","");window.print();}//--></script>

二、直接修改瀏覽器的設置,還是以IE8為例來進行說明

打開要打印的網頁后,單擊“文件”->“打印預覽”->頁面設置(圖標,如下圖所示)->頁眉和頁腳都設置為空,這樣設置后,打印的時候就不會出現頁眉頁腳信息了。

三、直接修改注冊表

打開記事本,復制下面的程序

Windows Registry Editor Version 5.00[HKEY_CURRENT_USER/Software/Microsoft/Internet Explorer/PageSetup]"footer"="""header"=""

另存為“去掉頁眉頁腳.reg”,然后雙擊運行,確認即可。 收藏一個JS 實現簡單的頁面局部打印的方法 :

function preview(oper) ...{ if (oper < 10)...{ bDHTML=window.document.body.innerHTML;//獲取當前頁的html代碼 sprnstr="<!--startprint"+oper+"-->";//設置打印開始區域 eprnstr="<!--endprint"+oper+"-->";//設置打印結束區域 prnhtml=bdhtml.substring(bdhtml.indexOf(sprnstr)+18); //從開始代碼向后取html prnhtml=prnhtml.substring(0,prnhtml.indexOf(eprnstr));//從結束代碼向前取html window.document.body.innerHTML=prnhtml; window.print(); window.document.body.innerHTML=bdhtml; } else ...{ window.print(); } }

使用很簡單 將頁面內要打印的內容加入中間XXXXX 再加個打印按紐 onclick=preview(1)

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Test.aspx.cs" Inherits="Webapplication2.Test" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> <title></title> <script type="text/javascript" language="javascript"> function printdiv() { var newstr = document.getElementById("PrintContentDiv").innerHTML; //獲得需要打印的內容 // alert(newstr); var oldstr = document.body.innerHTML; //保存原先網頁的代碼 document.body.innerHTML = newstr; //將網頁內容更改成需要打印 window.print(); document.body.innerHTML = oldstr; //將網頁還原 return false; } //打印頁面預覽 function printpreview() { var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>'; document.getElementById("divButton").style.display = "none";//隱藏打印及其打印預覽頁面 document.body.insertAdjacentHTML('beforeEnd', WebBrowser); //在body標簽內加入html(WebBrowser activeX控件) WebBrowser1.ExecWB(7, 1); //打印預覽 }
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91国产美女在线观看| 欧美在线视频一区| 国产精品69久久久久| 欧美精品久久久久久久免费观看| 欧美极品少妇与黑人| 欧美丝袜一区二区| 国产精品成久久久久三级| 久久91精品国产| 欧美成人三级视频网站| 黄色一区二区在线观看| 成人午夜一级二级三级| 国产精品三级久久久久久电影| 国产精品69av| 俺去啦;欧美日韩| 91在线|亚洲| 成人中文字幕+乱码+中文字幕| 国产成人在线精品| 亚洲一区999| 精品国产乱码久久久久酒店| 亚洲免费成人av电影| 91wwwcom在线观看| 国产精品美女免费| 欧美日韩亚洲天堂| 美女扒开尿口让男人操亚洲视频网站| 亚洲精品视频播放| 国产精品成av人在线视午夜片| 久久久在线观看| 日韩欧美在线视频| 国模叶桐国产精品一区| 2019中文在线观看| 日韩欧美国产网站| 国产成一区二区| 精品亚洲男同gayvideo网站| 国产精品高潮呻吟视频| 国产亚洲欧美日韩精品| 久久久国产精品亚洲一区| 国产精品美女www爽爽爽视频| 亚洲精品电影网在线观看| 亚洲护士老师的毛茸茸最新章节| 色妞久久福利网| 亚洲在线一区二区| 91国语精品自产拍在线观看性色| 欧美成人h版在线观看| 久久久999成人| 日本精品久久久久影院| 国产亚洲人成a一在线v站| 欧美日韩国产区| 97免费中文视频在线观看| 国产精品99久久久久久久久| 国产成人综合一区二区三区| 在线观看欧美日韩国产| 91在线观看免费高清| 中文字幕日韩精品有码视频| 国产精品视频最多的网站| 欧美高清不卡在线| 不卡av在线网站| 97不卡在线视频| 久久97久久97精品免视看| 中文字幕少妇一区二区三区| 亚洲自拍偷拍在线| 亚洲国产精彩中文乱码av| 久久久在线视频| 亚洲人成毛片在线播放| 粉嫩av一区二区三区免费野| 日本午夜在线亚洲.国产| 欧美成人精品h版在线观看| 伊人青青综合网站| 97色在线播放视频| 国产精品视频网站| 亚洲最新av在线网站| 日韩亚洲欧美成人| 欧美多人乱p欧美4p久久| 国产精品久久久一区| 亚洲精品国产成人| 日本久久91av| 国产成人精品视| 国产一区二区三区在线| 亚洲一区二区三区乱码aⅴ蜜桃女| 久久影院免费观看| 亚洲国产精品资源| 久久亚洲精品视频| www.日韩免费| 国产美女精品视频| 久久av红桃一区二区小说| 久久91亚洲精品中文字幕| 国产精品夫妻激情| 日韩成人激情在线| 精品久久久久久久久久ntr影视| 国产成人97精品免费看片| 国产一区二区三区在线观看网站| 亚洲国产成人91精品| 久久中文精品视频| 国产精品高清在线| 日韩电影中文字幕一区| 九九视频直播综合网| 青草成人免费视频| 久久婷婷国产麻豆91天堂| 欧美激情亚洲视频| 国产欧美精品在线播放| 亚洲三级黄色在线观看| 欧美午夜精品久久久久久人妖| 亚洲一区二区三区在线视频| 自拍偷拍亚洲欧美| 国产精品高潮呻吟久久av野狼| 国产综合在线看| 成人淫片在线看| 日韩动漫免费观看电视剧高清| 久久久在线免费观看| 成人欧美一区二区三区黑人孕妇| 欧美日产国产成人免费图片| 亚洲国产精品久久久久秋霞蜜臀| 中文字幕亚洲精品| 91精品国产综合久久久久久蜜臀| 最新亚洲国产精品| 欧美激情va永久在线播放| 国产精品美乳一区二区免费| 91久久精品国产| 欧美日韩第一页| 国产精品视频久久久| 亚洲精品美女视频| 国产精品wwww| 亚洲欧美日韩国产成人| 国产精品久久久久久久久久ktv| 成人午夜黄色影院| 中国china体内裑精亚洲片| 久久久久久综合网天天| 国产日本欧美一区二区三区| 欧美理论电影在线观看| 国产69久久精品成人| 国产成人精品一区二区| 亚洲国产精品字幕| 久久影院资源站| 97香蕉久久夜色精品国产| 国产成人精品久久久| 亚洲第五色综合网| 成人午夜在线视频一区| 精品久久久久久久久久国产| 欧美激情在线有限公司| 欧美精品情趣视频| 日韩欧美在线视频| 中文字幕日韩欧美| 久久久久久久色| 亚洲全黄一级网站| 亲子乱一区二区三区电影| 欧美激情视频一区| 6080yy精品一区二区三区| 国内精品久久久| 国产精品日韩欧美| 97视频在线观看免费高清完整版在线观看| 国产在线精品自拍| 伊人精品在线观看| 欧美在线观看日本一区| 91av在线播放| 成人综合网网址| 国产一区欧美二区三区| …久久精品99久久香蕉国产| 精品网站999www| 欧美影院久久久| 成人黄色免费看| 国产盗摄xxxx视频xxx69| 久久激情视频久久| 久久久av免费| 国产综合久久久久久| 亚洲欧美精品一区二区|