PDF转换后未显示更改的值

时间:2017-06-01 12:11:19

标签: javascript php html pdf wkhtmltopdf

我创建了一个html页面,其中包含一些可以通过文本字段更改的值。这是如何工作的一个例子:

Voornaam: <h3 class="title1">Test</h3>
      <input type="text" id="myTextField1"/>
      <input type="submit" id="byBtn" value="Change" onclick="change1()"/><br/>

与功能相关联:

function change1(){
   var myNewTitle = document.getElementById('myTextField1').value;
   if( myNewTitle.length==0 ){
       alert('Write Some real Text please.');
   return;
   }
   var titles = document.getElementsByClassName('title1');
   Array.prototype.forEach.call(titles,title => {
    title.innerHTML = myNewTitle;
   });
}

它应该改变的是:

<p class="title1">Test.</p><p class="title2">Achternaam</p>

它确实改变了这个值,但是我使用wkhtmltopdf创建了一个html to PDF方法。转换后,返回第一个值。我的新值不在PDF版本中。

我可以提供一个将html转换为PDF的方法示例,但我觉得这是不必要的,因为它是一个使用wkhtmltopdf的简单命令。

有人可以向我解释如何制作它,以便我的新价值将被转换并在PDF中看到。

编辑: 关于转换如何运作的一些解释。

在我的html页面底部有:

  <?php
         $link_address = 'convert.php';
          echo "<a href='".$link_address."'>converten naar pdf.</a>";
          ?>

哪个运行:

$command = '/usr/local/bin/wkhtmltopdf [my link here] '.$path;

if($status = 1){
shell_exec($command);
echo 'De offerte is omgezet naar pdf en opgeslagen in: '. $path;
}

这确实有效,但正如我所说的那样..而不是我改变的价值。

1 个答案:

答案 0 :(得分:1)

您需要将更改发送到服务器。完全像提交表单一样。

这样做的一种方法是让你的JS代码也设置隐藏的输入字段:

<form id="changes" action="convert.php" method="post">
  <input type="hidden" name="title">
  <!-- more inputs here -->
  <input type="submit" value="converten naar pdf.">
</form>

当用户提交该表单时,您的convert.php现在可以

  • 阅读HTML文档
  • $_POST['title']
  • 替换原始标题
  • 将更改的文档另存为临时文件
  • 运行转化