将 HTML 表单导出为 PDF


export html form to pdf

我创建了一个包含许多字段的html表单,我想将页面导出为pdf。html代码如下:

<!DOCTYPE html>
<html>
<body>
<form name="htmlform" method="post" action="html_form_send.php">
<table width="450px">
</tr>
<tr>
 <td valign="top">
  <label for="first_name">First Name *</label>
 </td>
 <td valign="top">
  <input  type="text" name="first_name" maxlength="50" size="30">
 </td>
</tr>
<tr>
 <td valign="top"">
  <label for="last_name">Last Name *</label>
 </td>
 <td valign="top">
  <input  type="text" name="last_name" maxlength="50" size="30">
 </td>
</tr>
<tr>
 <td valign="top">
  <label for="email">Email Address *</label>
 </td>
 <td valign="top">
  <input  type="text" name="email" maxlength="80" size="30">
 </td>
</tr>
<tr>
 <td valign="top">
  <label for="telephone">Telephone Number</label>
 </td>
 <td valign="top">
  <input  type="text" name="telephone" maxlength="30" size="30">
 </td>
</tr>
<tr>
 <td valign="top">
  <label for="comments">Comments *</label>
 </td>
 <td valign="top">
  <textarea  name="comments" maxlength="1000" cols="25" rows="6"></textarea>
 </td>
</tr>
<tr>
 <td colspan="2" style="text-align:center">
  <input type="submit" value="Submit">  
 </td>
</tr>
</table>
</form>
<form action="myphpfile.php" method="post">
  <input type="submit" value="Download as pdf!">
</form>
</body>
</html>

我有 php 代码将表单从 http://freehtmltopdf.com/导出为 pdf,但每当我单击"下载为 pdf"按钮时,它只会向我显示文件中的 php 代码。我的网络服务器在 XAMP 上运行,html 文件在 htdocs 中。我需要进一步的帮助来将此 html 转换为 pdf。

我从网站上得到的php代码是:

<?php
    $url = 'http://freehtmltopdf.com';
    $data = array(  'convert' => '', 
            'html' => '<html><head><title>My Title</title><link rel="stylesheet" type="text/css" href="relativepath.css"></head><body><h1>Web Page</h1><p>This is my content.</p></body></html>',
            'baseurl' => 'http://www.myhost.com');
    // use key 'http' even if you send the request to https://...
    $options = array(
        'http' => array(
            'header'  => "Content-type: application/x-www-form-urlencoded'r'n",
            'method'  => 'POST',
            'content' => http_build_query($data),
        ),
    );
    $context  = stream_context_create($options);
    $result = file_get_contents($url, false, $context);
    // set the pdf data as download content:
    header('Content-type: application/pdf');
    header('Content-Disposition: attachment; filename="webpage.pdf"');
    echo($result);
?>

尝试使用 FPDF 来解决您的问题。

示例如下:

索引.php

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>How to create Contact Form</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" type="text/css" href="bootstrap/css/bootstrap.min.css" />
<link rel="stylesheet" type="text/css" href="font-awesome/css/font-awesome.min.css" />
<script type="text/javascript" src="js/jquery-1.10.2.min.js"></script>
<script type="text/javascript" src="bootstrap/js/bootstrap.min.js"></script>
<style>
    .header {
        color: #36A0FF;
        font-size: 27px;
        padding: 10px;
    }
</style>
</head>
<body>
<div class="container">
<div class="page-header">
    <h1>Convert HTML to PDF in PHP with fpdf</h1>
</div>
<!-- Contact Form - START -->
<div class="container">
    <div class="row">
        <div class="col-md-12">
            <div class="well well-sm">
//action page where pdf will be create and shown into the browser
                <form class="form-horizontal" method="post" action="createpdf.php">
                    <fieldset>
                        <legend class="text-center header" style="width:70%;">Contact us<span><img src="images/logo.png"></span></legend>
                        <div class="form-group">
                            <div class="col-md-8">
                               <input id="name" name="name" type="text" placeholder="Name" class="form-control">
                            </div>
                        </div>
                        <div class="form-group">
                            <div class="col-md-8">
                                <input id="email" name="email" type="text" placeholder="Email Address" class="form-control">
                            </div>
                        </div>
                        <div class="form-group">
                            <div class="col-md-8">
                                <input id="phone" name="phone" type="text" placeholder="Phone" class="form-control">
                            </div>
                        </div>
                        <div class="form-group">
                            <div class="col-md-12 text-center">
                                <button type="submit" class="btn btn-primary btn-lg">Submit</button>
                            </div>
                        </div>
                    </fieldset>
                </form>
            </div>
        </div>
    </div>
</div>
<!-- Contact Form - END -->
</div>
</body>
</html>

我的PHP是。

创建pdf.php

<?php
require('WriteHTML.php');
$pdf=new PDF_HTML();
$pdf->AliasNbPages();
////add page page automatically for its true parameter
$pdf->SetAutoPageBreak(true, 15);
$pdf->AddPage();
//add images or logo which you want
$pdf->Image('images/logo.png',18,13,33);
//set font style
$pdf->SetFont('Arial','B',14);
$pdf->WriteHTML('<para><h1>Click4Knowledge Web Programming Blog, Tutorials, jQuery, Ajax, PHP, MySQL and Demos</h1><br>
Website: <u>www.click4knowledge.com</u></para><br><br>How to Convert HTML to PDF with fpdf example');
//set the form of pdf
$pdf->SetFont('Arial','B',7);
//assign the form post value in a variable and pass it.
$htmlTable='<TABLE>
<TR>
<TD>Name:</TD>
<TD>'.$_POST['name'].'</TD>
</TR>
<TR>
<TD>Email:</TD>
<TD>'.$_POST['email'].'</TD>
</TR>
<TR>
<TD>Phone:</TD>
<TD>'.$_POST['phone'].'</TD>
</TR>
</TABLE>';
//Write HTML to pdf file and output that file on the web browser.
$pdf->WriteHTML2("<br><br><br>$htmlTable");
$pdf->SetFont('Arial','B',6);
$pdf->Output();
?>

修改此示例,以便能够生成所需的输出。