我用页眉和页脚创建了pdf.我想在pdf的第1页和第2页隐藏页眉和页脚.所以我写了下面的javascript代码:
<script>
/* page counter */
function subst() {
var vars={};
var x=document.location.search.substring(1).split('&');
for (var i in x) {var z=x[i].split('=',2);vars[z[0]] = unescape(z[1]);}
var x=['frompage','topage','page','webpage','section','subsection','subsubsection'];
for (var i in x) {
var y = document.getElementsByClassName(x[i]);
for (var j=0; j<y.length; ++j) y[j].textContent = vars[x[i]];
if(vars['page'] == 1 || vars['page'] == 2){
// document.getElementById("header_content").innerHTML = "";
document.getElementById("header_content").style.border = '1px solid';
var element = document.getElementById("header_content");
element.classList.add("hidden");
}
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
内容是隐藏的,但它涵盖了空白区域.那么如何从第1页和第2页删除该空白区域?
以下是我的PDF结果的样子(请参阅第二页上的重叠标题):
代码是一个简单的HTML表,在一个TD元素中包含大量内容.
<table>
<thead>
<tr>
<th>BESCHREIBUNG</th>
<th>PREIS</th>
</tr>
</thead>
<tbody>
<tr>
<td>Lots of TEST's</td>
<td>1,40 EUR</td>
<tr>
</tbody>
</table>
Run Code Online (Sandbox Code Playgroud)
我知道已经存在这个问题(以及其他一些问题):
那里的解决方案对我有用:
thead { display: table-header-group; }
tfoot { display: table-row-group; }
tr { page-break-inside: avoid; }
Run Code Online (Sandbox Code Playgroud)
但是它仅适用于具有多行(tr)的表.
在我的情况下,如上所示,我有一个TD,其描述可以包含很多内容,因此一行将跨越多个页面.
对于这种特殊情况,是否也有解决方案?
我已经阅读了几个类似的StackOverflow帖子,但没有一个能够解决我的问题.
我有一个由WkHTMLtoPDF生成的PDF,其中包含一个unicode RIGHT SINGLE QUOTATION MARK(U + 2019或者’)字符.在浏览器中呈现,输出如下所示:
当我通过WkHTMLtoPDF运行时,我得到以下内容:
我在CSS中使用以下内容:
@font-face {
font-family: localGeorgia;
src: url("file:///usr/share/fonts/truetype/georgia/GEORGIA.TTF");
}
body {
overflow: visible !important;
font-family: localGeorgia, Georgia, Times, "Times New Roman", serif;
font-size: 12px;
}
Run Code Online (Sandbox Code Playgroud)
我还将Georgia字体从我的本地计算机复制到服务器(/usr/share/fonts/truetype/georgia/目录中有几个文件),我已经运行fc-cache -fv清除字体缓存并运行fc-list以验证是否Georgia已正确安装.该localGeorgia字体系列中添加的形式,因为我还没有得到一个工作显示.
我已经通过在线文档和我的操作系统的字符映射验证了佐治亚字体确实支持RIGHT SINGLE QUOTATION MARK(见下文),虽然我不知道如何明确证明这个字形在TrueType文件中(我不熟悉)打开或解析TrueType文件)
在这一点上,我不清楚为什么WkHTMLtoPDF显示这些乱七八糟的字符而不是正确的unicode字形
我正在运行Ubuntu 16.04
Laravel版本5.3
我正在使用Laravel-Snappy版本0.3.3(使用KNP-Snappy版本0.4.3)
我对Snappy的配置很简单:
<?php
return array(
'pdf' => array(
'enabled' => true,
'binary' => base_path('vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64'),
'timeout' => false,
'options' => …Run Code Online (Sandbox Code Playgroud) 随着knp-snappy-bundle我无法生成的PDF头,而我实际上可以产生一个页脚。
这是一个错误,一个功能,还是我做错了什么?
我正在测试knp-snappy-bundle,我还wkhtmltopdf从h4cc. 这是我的一部分composer.json:
"h4cc/wkhtmltopdf-amd64": "^0.12.3",
"knplabs/knp-snappy-bundle": "^1.5",
Run Code Online (Sandbox Code Playgroud)
生成的二进制文件是这样wkhtmltopdf说的:
$ vendor/bin/wkhtmltopdf-amd64 --version
wkhtmltopdf 0.12.3 (with patched qt)
Run Code Online (Sandbox Code Playgroud)
我已经设置了一个使用 的控制器knp-snappy-bundle并且它可以工作:
这是我的PdfController:
public function downloadPdfAction( string $docName ) : Response
{
$pdf = $this->getPdf( $docName );
return new PdfResponse( $pdf, $this->getFilename( $docName ) );
}
private function getPdf( string $docName ) : string
{
$html = $this->renderView( 'AppBundle:documents:' …Run Code Online (Sandbox Code Playgroud) knp-snappy ×5
wkhtmltopdf ×5
pdf ×2
symfony ×2
css ×1
html ×1
javascript ×1
php ×1
rendering ×1
unicode ×1