PDF 转换后不显示更改的值

Changed values do not show after PDF conversion

我创建了一个 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 到 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;
}

这确实有效,但正如我所说.. 不适用于我更改的值。

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

一种方法是让您的 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']
  • 将更改后的文档保存为临时文件
  • 运行 转换