该页面包含下拉列表,文本输入,日期。当我运行wkhtmltopdf
时,它会保存空白。这将是什么工作。它怎么能像下载一样保存。我在哪里可以看到调试结果?感谢。
testpdf.php
echo shell_exec("C:\wkhtmltopdf\wkhtmltopdf.exe http://localhost/bigkpo/po/select.php --debug-javascript C:\Taopix\MediaAlbumWeb\webroot\bigkpo\PO\pdf\PO.pdf");
jquery on submit
$(document).ready(function(){
//disable not 1st select
$("#description").attr("disabled","disabled");
$("#orientation").attr("disabled","disabled");
$("#page").attr("disabled","disabled");
//start----------------------compny
$("select#company").change(function()
{
$("#description").empty();
$("#description").html("<option>wait...</option>");
var id = $("#company option:selected").attr('value');
$.post("./includes/select_type.php", {id:id},
function(data0){
$("#description").removeAttr("disabled");
$("#description").html(data0);
});
});
//start----------------------page
$("#description").change(function()
{
$("#page").empty();
$("#page").html("<option>wait...</option>");
var id2 = $("#description option:selected").attr('value');
$.post("./includes/select_producprice_n_showpage.php", {id2:id2},
function(data1){
$("#page").removeAttr("disabled");
$("#page").html(data1);
//show price---------------------------
$("#productPrice").html(data1);
$("#productPrice2").html(data1);
});
});
//start----------------------orientation
$("#page").change(function()
{
$("#orientation").empty();
$("#orientation").html("<option>wait...</option>");
var id3 = $("#page option:selected").attr('value');
$.post("./includes/select_pageprice_n_showrientation.php", {id3:id3},
function(data2){
$("#orientation").removeAttr("disabled");
$("#orientation").html(data2);
//show insidepagePrice-----------------
$("#insidepagePrice").html(data2);
$("#insidepagePrice2").html(data2);
});
var quantity = $("#qty").val();
var id2 = $("#description option:selected").attr('value');
$.post("./includes/select_total.php", {id2: id2, id3: id3, quantity:quantity},
function(data3){
//computation------------------------------
$("#total").html(data3);
var vat = Math.round(data3 / 1.12 * 0.12).toFixed(2);
$("#vat").html(vat);
$("#sub").html(data3 - vat);
});
});
$("form#select_form").submit(function(){
var side = $("#select_form").html();
console.log(side);
});
});
php表单
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<link rel="stylesheet" type="text/css" href="css/styles.css">
</head>
<body>
<?php include "./includes/select.class.php"; ?>
<div id="wraper">
<div id="header">
</div>
<div id="content">
<div class="contenthead">
<img src="css/img/kdi.jpg" align="left" />
<h1> PURCHASE <br> ORDER </h1>
<table align="right">
<tr>
<td><b> Date: </b> </td> <td> <?php echo date('jS \of F Y'); ?></td>
</tr>
<tr>
<td><b> Ref Number: </b> </td> <td> 271 </td>
</tr>
</table>
</div>
<div class="contentbody">
<form id="select_form" action="testpdf.php" method="post">
<table width="900px">
<thead>
<tr align="left">
<th class="boldlabel" colspan="3"> Company Name:<br>
<select id="company">
<?php echo $opt->ShowCategory(); ?>
</select>
</th>
<th class="boldlabel" colspan="2"> <b> Ship to: </b>
</tr>
<tr>
<td width="110" align="center" class="boldlabel"> QTY </td>
<td width="110" align="center" class="boldlabel"> UOM </td>
<td width="456" align="center" class="boldlabel"> Description </td>
<td width="100" align="center" class="boldlabel"> UNIT PRICE </td>
<td width="100" align="center" class="boldlabel"> TOTAL </td>
</tr>
</thead>
<tbody>
<tr class="top row">
<td width="100" align="center"> <input id="qty" type="text" name="qty" style="width: 50px; text-align:center" align="middle"> </td>
<td align="center"> <select>
<option> PC </option>
<option> BOX</option>
<option> PACK</option>
</select>
</td>
<td align="left"> <select id="description"></select> </td>
<td align="center"> <label id="productPrice"></label> </td>
<td align="center"> <label id="productPrice2"></label> </td>
</tr>
<tr class="side">
<td align="center"> </td>
<td align="center"> </td>
<td align="left"> <select id="page"></select>
</td>
<td align="center"> <label id="insidepagePrice"></label> </td>
<td align="center"> <label id="insidepagePrice2"></label> </td>
</tr>
<tr class="side">
<td align="center"> </td>
<td align="center"> </td>
<td align="left"> <select id="orientation"></select> </td>
<td align="center"> </td>
<td align="center"> </td>
</tr>
<tr class="bottom row">
<td align="center"> </td>
<td align="center"> </td>
<td align="center"> </td>
<td align="center"> </td>
<td align="center"> </td>
</tr>
<tfoot>
<tr>
<td colspan="3"> </td>
<td class="leftfoot" align="left"> <b> subtotal </b></td>
<td class="rightfoot" align="center"> <label id="sub"></label></td>
</tr>
<tr>
<td colspan="3"> </td>
<td class="leftfoot" align="left"><b> 12% VAT </b></td><br />
<td class="rightfoot" align="center"> <label id="vat"> </label> </td>
</tr>
<tr>
<td colspan="3"> </td>
<td class="buttomleftfoot" align="left"> <b> Total Amount </b></td>
<td class="buttomrightfoot" align="center"> <label id="total"> </label> </td>
</tr>
</tfoot>
</tbody>
</table>
<div class="contentfoot">
<table width="900px">
<tr>
<td width="194"> Requested by: <br> <input type="text" name="qty" style="width: 200px; text-decoration:underline" align="middle"> </td>
<td width="476"> </td>
<td width="214"> Noted by: <br> _____________________ </td>
</tr>
<tr>
<td colspan="1"> </td>
<td>
<input type="button" value=" Print ">
<br>
<input type="submit" value=" Submit " name="submit"/>
</td>
</tr>
</table>
</form>
</div>
</div>
<script type="text/javascript" src="./scripts/jquery-1.8.2.js"></script>
<script type="text/javascript" src="scripts/process.js"> </script>
</div>
</body>
</html>
答案 0 :(得分:0)
您可以使用以下设置来允许呈现JavaScript内容。
--enable-javascript
--javascript-delay
有关更多选项,请参阅文档
https://code.google.com/p/wkhtmltopdf/wiki/Usage
您应该能够像这样将参数添加到shell_exec命令中 还可以尝试将所有参数放在一行并添加扩展名
echo shell_exec("C:\Taopix\MediaAlbumWeb\webroot\wkhtmltopdf\wkhtmltopdf.exe http://localhost/bigkpo/po/select.php C:\Taopix\MediaAlbumWeb\webroot\pdf\google.pdf --enable-javascript --javascript-delay 500");
这将启用javascript并在创建屏幕捕获之前等待500毫秒。
您可以添加--debug-javascript
以获取有关页面上可能出错的调试输出。
<强>更新强>
从我可以从您的代码中推断出,您想要创建一个打印屏幕,以便从用户创建当前选定值的某种收据。
您将无法在用户显示的浏览器中从页面创建屏幕截图,这不是wkhtmltopdf的工作方式。
您需要存储用户选择的值,然后完全重建服务器端的页面,或者在客户端提供自动化以填充字段,以便wkhtmltopdf可以创建正确的屏幕截图,这需要一些重要的重新分解。我无法再帮助你了。
答案 1 :(得分:0)
要确保您可以使用表单中的内容转换整个页面,这是一项相当大的努力。你实际上必须做一些服务器端处理来重新生成包含内容的页面,然后传递给wkhtmltopdf。
使用网络服务并让访问者点击返回PDF的链接可能要少得多。看看pdfmyform
答案 2 :(得分:0)
当谈到DOM文档和select语句时,你通常必须自己调整数据。
我的最终解决方案是将预期值与所有可用的<option>
值进行比较,然后将setAttribute(&#34; selected&#34;,true)进行比较......
这是我能够解决这个问题的唯一方法(在PHP中)。