5

誰かがこの問題を解決したことを願っています。Googleでそれを持っている人を見たことがありません。

私は Python で xhtml2pdf を使用しており、ヘッダー、フッターを含む単純なドキュメントを生成しようとしています。コンテンツはタイトル付きのテキスト ブロックです。各コンテンツの周りに境界線を付けたいのですが、代わりに各子要素の周りに境界線を付けます。

ここに私のHTMLがあります

@page {
  size: letter;
  border: 0;
  @frame header_frame {
    -pdf-frame-content: header;
    border: 0pt solid white;
    left: .75in;
    width: 7in;
    top: .5in;
    height: 1.5in;
  }
  @frame content_frame {
    border: 0pt solid white;
    left: .75in;
    width: 7in;
    top: 1.5in;
    height: 7.5in;
  }
  @frame footer_frame {
    -pdf-frame-content: footer;
    border: 0pt solid white;
    left: .75in;
    width: 7in;
    top: 9.5in;
    height: 1in;
  }
}

h1 {
  padding-top: 5pt;
}

.desc {
  margin-top: 3px;
  margin-bottom: 3px;
  padding: 3px;
  border: 1px solid blue;
}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>

<head>
  <title>TEST TEST TEST</title>
</head>

<body>
  <div id="header">
    <h1>HEADER</h1>
  </div>
  <div id="footer">
    FOOTER
  </div>
  <div class="desc">
    <div class="title">TITLE OF ARTICLE</div>
    <span>TEST 2</span>
    <div>TEST 3</div>
    <table>
      <tr>
        <td>Test4</td>
        <td>Test 5</td>
      </tr>
    </table>
  </div>
</body>

</html>

xhtml2pdf現時点ではコマンド ライン ツールを実行しているだけなので、表示する Python はありません。デバッグ モードで実行すると、XHTML DTD があるにもかかわらず、「xhtml = false」と表示されることに気付きました。これが違いを生むかどうかはわかりません。

これがブラウザに表示されるもので、pdfがどのように見えるかを大まかに示しています(もちろんフッターの場所は無視します):

期待される出力

代わりに私は得る:

ここに画像の説明を入力

編集: xhtml は渡すオプションであることがわかりましたが、古いバージョンの html5lib がインストールされていない限り、渡すことはできません。私の質問に対する答えは、このライブラリが積極的に維持されておらず、新しい解決策を見つける必要があるということです:-/

4

0 に答える 0