生成便于打印的网页是一个常见的需求,因为人们需要将网页内容以纸质形式保存、打印或分享。下面将详细讲解如何使用PHP生成便于打印的网页。
1. 添加打印样式表
为了生成便于打印的网页,我们需要添加一个专门用于打印的样式表。打印样式表可以控制打印时网页的样式和布局,以便适应纸质打印。以下是一个示例的打印样式表:
@media print {
/* 隐藏网页顶部和底部,不打印导航栏和页脚 */
header, footer {
display: none;
}
/* 修改文本颜色为黑色 */
body {
color: black;
}
/* 调整字体大小 */
p {
font-size: 14px;
}
}
在生成网页时,将样式表放在html文档的head标签内,如下所示:
<!DOCTYPE html>
<html>
<head>
<title>My Page</title>
<link rel="stylesheet" type="text/css" href="print.css" media="print">
</head>
<body>
<!-- 网页内容 -->
</body>
</html>
2. 添加打印按钮
为了让用户更方便地打印网页,我们可以添加一个打印按钮,点击后会自动弹出打印对话框。以下是一个示例的打印按钮:
<button onclick="window.print()">打印</button>
当用户点击该按钮时,将自动触发window.print()方法,弹出打印对话框。
示例一:生成便利贴模板
以下是一个示例,介绍如何使用PHP生成便利贴模板。假设我们有一个便利贴网页应用,用户可以添加、编辑和打印便利贴。为了方便打印,我们需要生成一个便利贴打印模板。
- 创建print.php文件,代码如下所示:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Print Template</title>
<link rel="stylesheet" type="text/css" href="print.css">
</head>
<body>
<?php for ($i=0; $i<10; $i++): ?>
<div class="note">
<h2>Note <?php echo $i+1; ?></h2>
<p><?php echo 'Note content #'.$i; ?></p>
</div>
<?php endfor; ?>
<button onclick="window.print()">Print</button>
</body>
</html>
该文件中包含了一个循环语句,生成了10个便利贴的模板。每个便利贴包含一个标题和内容,并使用了上面提到的打印样式表。
- 创建print.css文件,代码如下所示:
@media print {
/* 隐藏网页顶部和底部 */
header, footer {
display: none;
}
/* 调整便利贴样式 */
.note {
width: 100%;
height: 200px;
border: 1px solid #ccc;
margin-bottom: 10px;
padding: 10px;
}
.note h2 {
margin: 0;
font-size: 18px;
font-weight: bold;
}
.note p {
font-size: 14px;
line-height: 1.5;
}
/* 调整字体大小 */
p {
font-size: 16px;
}
}
该文件中定义了便利贴的打印样式。
- 运行print.php文件,即可打印出便利贴模板。
示例二:生成订单打印模板
以下是另一个示例,介绍如何生成订单打印模板。假设我们有一个电商网站,用户可以下单购买商品。为了方便打印订单信息,我们需要生成一个订单打印模板。
- 创建订单数据
在生成订单模板之前,我们需要先创建一些订单数据。假设我们有两条订单记录,数据如下所示:
$orders = [
[
'id' => 1,
'name' => 'T-Shirt',
'price' => 20,
'quantity' => 2,
'total' => 40,
'created_at' => '2021-08-01',
'updated_at' => '2021-08-02',
'customer_name' => 'John Doe',
'customer_email' => 'john@example.com',
'customer_address' => '123 Main St, Anytown USA'
],
[
'id' => 2,
'name' => 'Hoodie',
'price' => 30,
'quantity' => 1,
'total' => 30,
'created_at' => '2021-08-03',
'updated_at' => '2021-08-04',
'customer_name' => 'Jane Doe',
'customer_email' => 'jane@example.com',
'customer_address' => '456 Main St, Anytown USA'
]
];
该数据包含了订单id、商品名称、单价、数量、总价、创建时间、更新时间以及顾客信息。
- 创建print.php文件,代码如下所示:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Order Print Template</title>
<link rel="stylesheet" type="text/css" href="print.css">
</head>
<body>
<?php foreach ($orders as $order): ?>
<div class="order">
<h2>Order #<?php echo $order['id']; ?></h2>
<div class="item">
<span class="name"><?php echo $order['name']; ?></span>
<span class="quantity"><?php echo $order['quantity']; ?></span>
<span class="price"><?php echo $order['price']; ?></span>
<span class="total"><?php echo $order['total']; ?></span>
</div>
<div class="info">
<span class="label">Order date:</span>
<span class="value"><?php echo $order['created_at']; ?></span>
</div>
<div class="info">
<span class="label">Last updated:</span>
<span class="value"><?php echo $order['updated_at']; ?></span>
</div>
<div class="info">
<span class="label">Customer name:</span>
<span class="value"><?php echo $order['customer_name']; ?></span>
</div>
<div class="info">
<span class="label">Customer email:</span>
<span class="value"><?php echo $order['customer_email']; ?></span>
</div>
<div class="info">
<span class="label">Customer address:</span>
<span class="value"><?php echo $order['customer_address']; ?></span>
</div>
</div>
<?php endforeach; ?>
<button onclick="window.print()">Print</button>
</body>
</html>
该文件中使用了循环语句遍历每个订单记录,生成了订单打印模板。每个订单包含订单id、商品名称、单价、数量、总价、创建时间、更新时间以及顾客信息。
- 创建print.css文件,代码如下所示:
@media print {
/* 隐藏网页顶部和底部 */
header, footer {
display: none;
}
/* 调整订单样式 */
.order {
width: 100%;
border: 1px solid #ccc;
margin-bottom: 20px;
padding: 10px;
}
.order h2 {
margin: 0;
font-size: 18px;
font-weight: bold;
}
.item {
display: flex;
justify-content: space-between;
margin-bottom: 10px;
}
.item .name {
flex: 1;
}
.item .quantity, .item .price, .item .total {
width: 100px;
text-align: right;
}
.item .quantity:before {
content: 'x';
}
.item .price:before {
content: '$';
}
.item .total:before {
content: '$';
}
.info {
display: flex;
margin-bottom: 5px;
}
.info .label {
font-weight: bold;
margin-right: 10px;
}
.info .value {
flex: 1;
}
/* 调整字体大小 */
p {
font-size: 16px;
line-height: 1.5;
}
}
该文件中定义了订单的打印样式。
- 运行print.php文件,即可打印出订单模板。
以上两个示例演示了如何使用PHP生成便于打印的网页。通过添加打印样式表和打印按钮,我们可以方便地生成各种类型的打印模板。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PHP生成便于打印的网页 - Python技术站