PHP生成便于打印的网页

生成便于打印的网页是一个常见的需求,因为人们需要将网页内容以纸质形式保存、打印或分享。下面将详细讲解如何使用PHP生成便于打印的网页。

生成便于打印的网页是一个常见的需求,因为人们需要将网页内容以纸质形式保存、打印或分享。下面将详细讲解如何使用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生成便利贴模板。假设我们有一个便利贴网页应用,用户可以添加、编辑和打印便利贴。为了方便打印,我们需要生成一个便利贴打印模板。

  1. 创建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个便利贴的模板。每个便利贴包含一个标题和内容,并使用了上面提到的打印样式表。

  1. 创建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;
  }
}

该文件中定义了便利贴的打印样式。

  1. 运行print.php文件,即可打印出便利贴模板。

示例二:生成订单打印模板

以下是另一个示例,介绍如何生成订单打印模板。假设我们有一个电商网站,用户可以下单购买商品。为了方便打印订单信息,我们需要生成一个订单打印模板。

  1. 创建订单数据

在生成订单模板之前,我们需要先创建一些订单数据。假设我们有两条订单记录,数据如下所示:

$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、商品名称、单价、数量、总价、创建时间、更新时间以及顾客信息。

  1. 创建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、商品名称、单价、数量、总价、创建时间、更新时间以及顾客信息。

  1. 创建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;
  }
}

该文件中定义了订单的打印样式。

  1. 运行print.php文件,即可打印出订单模板。

以上两个示例演示了如何使用PHP生成便于打印的网页。通过添加打印样式表和打印按钮,我们可以方便地生成各种类型的打印模板。

本文标题为:PHP生成便于打印的网页

基础教程推荐