【发布时间】:2023-03-30 17:40:01
【问题描述】:
我正在使用 wkhtmltopdf 从 html 页面生成 pdf。
我的问题是如何设置目录页面的位置?它似乎在第一页的开头自动生成。另外,如何设置content的css?
【问题讨论】:
标签: pdf-generation wkhtmltopdf
我正在使用 wkhtmltopdf 从 html 页面生成 pdf。
我的问题是如何设置目录页面的位置?它似乎在第一页的开头自动生成。另外,如何设置content的css?
【问题讨论】:
标签: pdf-generation wkhtmltopdf
wkhtmltopdf 有一个--xsl-style-sheet (file) 参数,详细说明在扩展命令行 --help(或 -H)中。
所以您定义自己的 XSLT,可能基于它们的默认值,然后将其传入。没问题。
【讨论】:
如果您愿意,您甚至可以使用 html 文件制作自定义目录。例如。;如果您想在创建 PDF 时使用的 html 文件名的名称上创建 TOC(请注意,为此您应该事先知道名称),那么您可以通过传递一个 HTML 文件来执行此操作,例如 user_toc.html。在此文件中,您可以放置所有字幕/css 等,并为文件名创建一个占位符。该文件需要使用服务器端代码进行解析,该代码应在占位符中填充文件名。现在修改后的文件可用于 TOC。
Perl 中的示例代码:
my $TOCPage = "user_toc.html";
my $file1 = "Testfile1.html";
my $file2 = "Testfile2.html";
my $toc_file_lines;
# Open the user TOC for parsing and write in a buffer
open(FILE, $TOCPage);
read(FILE, $toc_file_lines, -s $TOCPage);
close(FILE);
# Substitute the placeholder with actual file name
$toc_file_lines =~ s/$file_name_placeholder/$file1/;
# Open the same file again and write back the buffer
open(FILE, ">".$TOCPage);
print FILE $toc_file_lines;
close(FILE);
# Linux path for wkhtmltopdf installation
my $wkhtmltopdf_path = '/usr/bin/wkhtmltopdf-i386';
my $command = "$wkhtmltopdf_path --margin-top 20mm --margin-bottom 15mm
--margin-left 15mm --margin-right 15mm
$TOCPage $file1 $file2 $pdf_manual_name";
`$command 2>&1`;
此外,您还可以在 TOC 中添加许多其他信息,例如章节编号/章节总页数等。
希望这会有所帮助。
【讨论】: