wkhtmltopdf を使用して、html ページから pdf を生成しています。
私の質問は、目次ページの位置を設定する方法ですか? 1ページ目の冒頭で自動生成されたようです。また、コンテンツのコンテンツのcssを設定するにはどうすればよいですか?
wkhtmltopdf を使用して、html ページから pdf を生成しています。
私の質問は、目次ページの位置を設定する方法ですか? 1ページ目の冒頭で自動生成されたようです。また、コンテンツのコンテンツのcssを設定するにはどうすればよいですか?
--xsl-style-sheet (file)
wkhtmltopdf へのパラメーターがあり、拡張コマンド ライン --help (または -H) で詳しく説明されています。
toc オブジェクトを追加することで、ドキュメントに目次を追加できます。 コマンドライン。例えば: wkhtmltopdf toc http://doc.trolltech.com/4.6/qstring.html qstring.pdf 目次は、入力の H タグに基づいて生成されます ドキュメント。最初に XML 文書が生成され、次に XML 文書に変換されます。 XSLT を使用した HTML。 生成された XML ドキュメントは、次を使用してファイルにダンプすることで表示できます。 --dump-outline スイッチ。例えば: wkhtmltopdf --dump-outline toc.xml http://doc.trolltech.com/4.6/qstring.html qstring.pdf --xsl-style-sheet スイッチを使用して XSLT ドキュメントを指定できます。 例えば: wkhtmltopdf toc --xsl-style-sheet my.xsl http://doc.trolltech.com/4.6/qstring.html qstring.pdf --dump-default-toc-xsl スイッチを使用して、デフォルトをダンプできます XSLT スタイル シートを標準出力に。これは、あなたの文章を書くための良い出発点です 独自のスタイルシート wkhtmltopdf --dump-default-toc-xsl XML ドキュメントは名前空間にあります http://code.google.com/p/wkhtmltopdf/outline 「outline」と呼ばれるルート ノードがあり、多数の 「アイテム」ノード。アイテムには、任意の数のアイテムを含めることができます。これらは、 アイテムが表すセクションへのサブセクションのアウトライン。項目ノード 次の属性があります。 - "title" セクションの名前 - "page" セクションが発生するページ番号 - セクションにリンクする URL を「リンク」します。 - "backLink" セクションがリンクするアンカーの名前。 残りの目次オプションは、デフォルトのスタイル シートにのみ影響します そのため、カスタム スタイル シートを指定するときには機能しません。
したがって、おそらくデフォルトに基づいて独自の XSLT を定義し、それを渡します。問題ありません。
必要に応じて、html ファイルを使用してカスタマイズした TOC を作成することもできます。例えば; 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 に他の多くの情報を追加できます。
お役に立てれば。