如何使用" - 替换"在wkhtmltopdf

时间:2014-11-18 01:54:49

标签: replace wkhtmltopdf

我看到了所有内容,没有看到使用方式的内容' - 替换'。 如何使用" - 替换"在wkhtmltopdf。 请举个例子,谢谢。:)

3 个答案:

答案 0 :(得分:0)

假设您有一个页脚my_footer.html,其中包含以下内容:

<!DOCTYPE html>
<html>
  <head>
  <meta charset="utf-8">
  <script>
      function substitutePdfVariables() {

          function getParameterByName(name) {
              var match = RegExp('[?&]' + name + '=([^&]*)').exec(window.location.search);
              return match && decodeURIComponent(match[1].replace(/\+/g, ' '));
          }

          function substitute(name) {
              var value = getParameterByName(name);
              var elements = document.getElementsByClassName(name);

              for (var i = 0; elements && i < elements.length; i++) {
                  elements[i].textContent = value;
              }
          }

          ['username'/*, 'topage', 'page',.. etc and any variable you would want to replace */]
              .forEach(function(param) {
                  substitute(param);
              });
      }
  </script>
  </head>
  <body onload="substitutePdfVariables()">
    <span class="username"></span>
  </body>
</html>

您可以替换&#34;用户名&#34;有一些价值:

wkhtmltopdf my_super_html.html --footer-html my_footer.html --replace "username" "Veaer"

请注意,我使用javascript将我的值替换为命名变量。

答案 1 :(得分:0)

我对@viniciux答案做了一些调整,该答案实际上是有效的,因此这里是footer.html中的改进

s = "[text](link)"
re.match(r'\[.*?\]\((.*?)\)', s).group(1) # -> 'link'

然后您可以添加多个参数以动态替换

    re.match(r'\[.*?\]\((.*?)\)|\[(.*?)\]', s)

请注意,该页面将是当前的pdf页面,默认情况下将包含在参数列表中

答案 2 :(得分:0)

来自@dpineda 和@viniciux 的混合解决方案。此解决方案不会破坏样式表

<!DOCTYPE html>
<html>
  <head>
  <meta charset="utf-8">
        <script charset="utf-8"> 
            // For WKHTMLTOPDF Substitutions
            window.onload = function()
            {
                function substitute(key, value)
                {
                    var elements = document.getElementsByClassName(key);
                    for (var i = 0; elements && i < elements.length; i++)
                    {
                        elements[i].textContent = value;
                    }
                }

                var url = window.location.href.replace(/#$/, ""); // Remove last # if exist
                // default params
                //['page', 'section','sitepage','title','subsection','frompage','subsubsection','isodate','topage','doctitle','sitepages','webpage','time','date'];
                var params = (url.split("?")[1] || "").split("&");
                for (var i = 0; i < params.length; i++)
                {
                    var param = params[i].split("=");
                    var key = param[0];
                    var value = param[1] || '';
                    var regex = new RegExp('{' + key + '}', 'g');
                    substitute(key, value);
                }
            }
        </script>
  </head>
  <body onload="substitutePdfVariables()">
    <span class="username"></span>
  </body>
</html>