我看到了所有内容,没有看到使用方式的内容' - 替换'。 如何使用" - 替换"在wkhtmltopdf。 请举个例子,谢谢。:)
答案 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>