4

wkhtmltopdf を使用して、html ページから pdf を生成しています。

私の質問は、目次ページの位置を設定する方法ですか? 1ページ目の冒頭で自動生成されたようです。また、コンテンツのコンテンツのcssを設定するにはどうすればよいですか?

4

2 に答える 2

7

--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 を定義し、それを渡します。問題ありません。

于 2011-05-10T18:08:38.507 に答える
3

必要に応じて、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 に他の多くの情報を追加できます。

お役に立てれば。

于 2012-03-01T11:53:27.987 に答える