Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
用CSS樣式實現分頁打印,其主要應用thead標記、tfoot標記和page-break-after屬性。
(1)thead標記
thead用于設置表格的表頭。
(2)tfoot標記
tfoot用于設置表格的表尾。
(3)page-break-after屬性
page-break-after屬性在打印文檔時發生作用,用于進行分頁打印。但是對于<br>和<hr>對象不起作用。其語法格式如下:
page-break-after:auto | always | avoid | left | right | null
參數說明:
page-break:打印時在樣式控制的對象前后換頁。
after:設置對象后出現頁分隔符。設置為always時,始終在對象之后插入頁分隔符。
auto:需要在對象之后插入頁分隔符時插入。
always:始終在對象之后插入頁分隔符。
avoid:未支持。避免在對象后面插入分隔符。
left:未支持。在對象后面插入頁分隔符,直到它到達一個空白的左頁邊。
right:未支持。在對象后面插入頁分隔符,直到它到達一個空白的右頁邊。
null:空白字符串。取消了分隔符設置。
WebBrowser.ExecWB的完整說明
<OBJECT classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 id=WebBrowser width=0></OBJECT>
<input name=Button .Click=document.all.WebBrowser.ExecWB(1,1) type=button value=打開>
<input name=Button .Click=document.all.WebBrowser.ExecWB(2,1) type=button value=關閉所有>
<input name=Button .Click=document.all.WebBrowser.ExecWB(4,1) type=button value=另存為>
<input name=Button .Click=document.all.WebBrowser.ExecWB(6,1) type=button value=打印>
<input name=Button .Click=document.all.WebBrowser.ExecWB(6,6) type=button value=直接打印>
<input name=Button .Click=document.all.WebBrowser.ExecWB(7,1) type=button value=打印預覽>
<input name=Button .Click=document.all.WebBrowser.ExecWB(8,1) type=button value=頁面設置>
<input name=Button .Click=document.all.WebBrowser.ExecWB(10,1) type=button value=屬性>
<input name=Button .Click=document.all.WebBrowser.ExecWB(17,1) type=button value=全選>
<input name=Button .Click=document.all.WebBrowser.ExecWB(22,1) type=button value=刷新>
<input name=Button .Click=document.all.WebBrowser.ExecWB(45,1) type=button value=關閉>
運用CSS樣式實現分頁打印。其具體步驟如下:
(1)編寫用于控制指定內容不打印的CSS樣式,代碼如下。
@media print{
.bgnoprint{
background:display:none;
}
.noprint{
display:none
}
}
(2)應用include命令連接數據源文件,并應用do…while循環語句輸出圖書信息到瀏覽器,并設置好表頭、表尾及打印分頁,關鍵代碼如下:
<?php include "conn/conn.php"; ?>
<table width="99%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="27" align="center" style=" font-size:14px;"><b>圖書信息查詢</b></td>
</tr>
</table>
<table width="98%" border="0" cellpadding="0" cellspacing="1" bgcolor="#000000" bordercolor="#FFFFFF" bordercolordark="#000000" bordercolorlight="#FFFFFF" >
<thead style="display:table-header-group;"> <!--設置表頭-->
<tr bgcolor="#EFEFEF">
<td width="6%" height="20" align="center">編號</td>
<td width="27%" align="center">圖書名稱</td>
<td width="23%" align="center">內容簡介</td>
<td width="8%" align="center">定價</td>
<td width="10%" align="center">作者</td>
<td width="15%" align="center">出版社</td>
<td width="11%" align="center">發行時間</td>
</tr>
</thead>
<!--控制分頁-->
<?php
$sql=mysql_query("select * from tb_book");
$info=mysql_fetch_array($sql);
$row=1;
do{
?>
<tr align="center" <?php if($row==2){ ?>style="page-break-after:always"<?php } ?>>
<td bgcolor="#FFFFFF"><?php echo $info[id];?></td>
<td height="25" align="left" bgcolor="#FFFFFF"> <?php echo $info[bookname];?></td>
<td align="left" bgcolor="#FFFFFF"> <?php echo $info[synopsis];?></td>
<td bgcolor="#FFFFFF"><?php echo $info[price];?></td>
<td bgcolor="#FFFFFF"><?php echo $info[maker];?></td>
<td bgcolor="#FFFFFF"><?php echo $info[publisher];?></td>
<td bgcolor="#FFFFFF"><?php echo $info[issuDate];?></td>
</tr>
<?php
$row++;
}while($info=mysql_fetch_array($sql))
?>
<!--設置表尾-->
<tfoot style="display:table-footer-group; border:none;"><tr><td></td></tr></tfoot>
</table>
(3)建立HTML的object標簽,調用WebBrowser控件,代碼如下:
<object id="Wb" classid="ClSID:8856F961-340A-11D0-A96B-00C04Fd705A2" width="0" height="0">
</object>
(4)建立相關的打印超級鏈接,并調用WebBrowser控件的相應參數實現打印預覽及打印功能,代碼如下:
**office-print:網頁打印Office文件的救星**
**開篇導語:**
在日常工作中,我們常常遇到需要在線預覽和打印Word、Excel、PowerPoint等Office文檔的需求。然而,直接在瀏覽器中打印Office文檔往往面臨格式錯亂、排版混亂等問題。今天,我們將聚焦一種名為"office-print"的解決方案,它能幫助我們輕松實現網頁環境下Office文檔的完美打印。本文將通過詳盡的說明和代碼實例,揭開"office-print"如何成為網頁打印Office文件的救星。
## **一、問題痛點:在線打印Office文檔的挑戰**
傳統的網頁打印Office文檔方法存在諸多不便,如:
- 文檔格式難以保持原始樣式;
- 復雜的表格、圖表難以完整呈現;
- 特殊字體和樣式丟失;
- 大量空白頁和布局錯亂。
## **二、救星登場:office-print介紹**
**office-print** 是一款專為解決在線打印Office文檔而生的解決方案,它可以將Word、Excel、PowerPoint等文檔以接近原生軟件的樣式在網頁上展示,并提供完善的打印功能,確保打印輸出效果與原文件高度一致。
## **三、office-print的工作原理與實現**
**1. 文檔轉換**
首先,通過后臺服務將上傳的Office文檔轉換為HTML格式,同時盡可能保持原文件的所有樣式和格式信息。
```javascript
// 示例:使用Office轉HTML工具(如 mammoth.js)
const mammoth = require("mammoth");
mammoth.convertToHtml({ path: "document.docx" })
.then(result => {
const html = result.value;
// 將轉換后的HTML插入到網頁中展示
document.getElementById("preview").innerHTML = html;
})
.catch(error => {
console.error(error);
});
```
**2. HTML頁面打印優化**
將轉換后的HTML嵌入到網頁中,并利用CSS進行打印樣式優化,確保打印時與屏幕預覽效果一致。
```css
@media print {
/* 打印樣式優化,例如去除網頁無關元素、調整頁眉頁腳等 */
body {
font-size: 10pt;
background: white !important;
}
nav, footer, aside {
display: none;
}
/* 更多打印樣式優化... */
}
```
**3. office-print庫的集成**
有些情況下,我們可以直接利用現有的第三方庫,如`jspdf`、`docxtemplater`等,結合`office-print`庫進行更精細的打印控制。
```javascript
import OfficePrint from 'office-print';
OfficePrint.printDocument(document.getElementById('preview'), {
paperSize: 'A4',
margins: '1cm',
landscape: false,
fitToPage: true,
header: '這是頁眉',
footer: '這是頁腳',
beforePrint: () => {
// 打印前的準備工作
},
afterPrint: () => {
// 打印后的清理工作
},
});
```
## **四、實戰案例與注意事項**
- **案例一:Word文檔在線預覽與打印**
- 使用`mammoth.js`將Word文檔轉換為HTML,并通過`office-print`實現打印。
- **案例二:Excel表格的打印優化**
- 對于表格數據,確保打印時行列寬度自適應,防止數據溢出。
- **案例三:PowerPoint幻燈片打印**
- 將每一頁幻燈片單獨轉換為HTML,并按順序排列打印。
**注意事項:**
- 轉換過程中可能會出現特殊字體丟失的問題,需要在CSS中引用相應的Web字體。
- 對于復雜的文檔,可能需要多次嘗試和調整CSS樣式以達到最優打印效果。
- 注意版權問題,確保使用的文檔可以合法公開打印和展示。
## **五、結語**
通過office-print,我們找到了一種有效解決網頁打印Office文件問題的途徑,大大提升了工作效率和用戶體驗。隨著技術的不斷發展和完善,我們期待更多類似解決方案的出現,讓在線預覽和打印Office文檔變得越來越簡單和可靠。在實際項目中,根據具體需求靈活應用這些技術和工具,無疑將成為Web前端開發的一大利器。
擇性頁面打印乃是節約紙張與墨水的實用方法,本文將詳細講解其操作步驟。
1.打開打印設置
首要步驟是,開啟待打印文檔或網頁,點選菜單欄中的"文件"圖標;于下拉列表內,輕松尋得"打印"按鈕,進而迅速開啟打印設定面板。
2.選擇要打印的頁面
在設置打印頁面時可看見預覽視窗,它展示了整體文檔或網頁的內容。接著需選取所需打印頁面。
若僅需打印個別頁面,可于預覽窗口內點選所需頁面;若是連續多頁,可按住Shift鍵并選取首尾兩頁間的頁面;若為非連續多頁,則可按住Ctrl鍵逐個單擊以選定。
3.設置打印范圍
首先確定需打印頁面,隨后進行打印范圍設定。在打印設置界面內尋找“頁面范圍”等相應選項,可點選“選定頁面”或“自定義范圍”實施操作。
當您選擇“選定的頁面”選項時,系統會自動識別并默認當前預覽窗口中的所選頁面為打印區域。而若您選用“自定義范圍”選項,就需自行輸入欲打印頁面的具體頁碼。
4.完成設置并開始打印
最后,請調整好所有打印設置,然后單擊"打印"按鈕進行打印。在此之前,不妨先行預覽,確認所有設置均無誤,同時確認所選頁面與所需打印范圍亦相符。
尊敬的用戶,當您按下"打印"按鍵時,系統將會立即啟動編輯過程以輸出您選擇的頁面。過程結束前請稍作等候,我們將竭誠為您提供滿意的服務。
遵循上述四步操作,可便捷實現頁面選擇性打印。既省資源又增效,期待對各位讀者帶來助力。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。