上周,我一直在为我支持的组织自动生成发票。该过程由3个步骤组成:
- 生成发票
- 将发票打印成pdf
- 发送附在电子邮件中的发票
我在第二步中遇到了麻烦,我需要从发票生成模块返回的 url 打印 pdf。我尝试了 2 个不同的 python 模块,但都没有正确打印文档:
I)当通过浏览器打印时:这是使用整页打印 html 的预期结果
II)使用 pdfkit:出于某种原因,pdfkit 正在考虑 html 有一个额外的页面(2 而不是 1)并在同一页面上打印。我不知道它的行为是这样的。在此处输入图像描述
III) 使用 WeasyPrint 打印:也不起作用,但与 pdfkit 的效果相反。发票不适合页面。
为了进一步澄清问题,发票是一个包含大量 colspan 和内联样式的大 html 表。我想要一些帮助来理解为什么 pdf 表现不佳以及我应该怎么做才能修复它。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
<style type="text/css"> a {text-decoration: none} </style>
</head>
<body text="#000000" link="#000000" alink="#000000" vlink="#000000">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tbody>
<tr>
<td width="50%"> </td>
<td align="center">
<a name="JR_PAGE_ANCHOR_0_1"></a>
<table style="width: 892.5px; border-collapse: collapse; empty-cells: show" cellpadding="0" cellspacing="0" border="0" bgcolor="white">
<tbody>
<tr>
<td style="width: 31.5px; height: 1.5px;"></td>
<td style="width: 1.5px; height: 1.5px;"></td>
<td style="width: 3px; height: 1.5px;"></td>
<td style="width: 114px; height: 1.5px;"></td>
<td style="width: 16.5px; height: 1.5px;"></td>
<td style="width: 10.5px; height: 1.5px;"></td>
<td style="width: 4.5px; height: 1.5px;"></td>
<td style="width: 16.5px; height: 1.5px;"></td>
<td style="width: 1.5px; height: 1.5px;"></td>
<td style="width: 67.5px; height: 1.5px;"></td>
<td style="width: 27px; height: 1.5px;"></td>
<td style="width: 7.5px; height: 1.5px;"></td>
<td style="width: 21px; height: 1.5px;"></td>
<td style="width: 69px; height: 1.5px;"></td>
<td style="width: 15px; height: 1.5px;"></td>
<td style="width: 25.5px; height: 1.5px;"></td>
<td style="width: 27px; height: 1.5px;"></td>
<td style="width: 6px; height: 1.5px;"></td>
<td style="width: 4.5px; height: 1.5px;"></td>
<td style="width: 10.5px; height: 1.5px;"></td>
<td style="width: 21px; height: 1.5px;"></td>
<td style="width: 40.5px; height: 1.5px;"></td>
<td style="width: 34.5px; height: 1.5px;"></td>
<td style="width: 37.5px; height: 1.5px;"></td>
<td style="width: 1.5px; height: 1.5px;"></td>
<td style="width: 1.5px; height: 1.5px;"></td>
<td style="width: 1.5px; height: 1.5px;"></td>
<td style="width: 51px; height: 1.5px;"></td>
<td style="width: 49.5px; height: 1.5px;"></td>
<td style="width: 15px; height: 1.5px;"></td>
<td style="width: 126px; height: 1.5px;"></td>
<td style="width: 1.5px; height: 1.5px;"></td>
<td style="width: 31.5px; height: 1.5px;"></td>
</tr>
<tr valign="top">
<td colspan="33" style="width: 892.5px; height: 30px;"></td>
</tr>
<tr valign="top">
<td colspan="33" style="width: 892.5px; height: 4.5px;"></td>
</tr>
<tr valign="top">
<td style="width: 31.5px; height: 1.5px;"></td>
<td colspan="31" style="border-top: 1.5px dashed #000000; "></td>
<td style="width: 31.5px; height: 1.5px;"></td>
</tr>
<tr valign="top">
<td colspan="33" style="width: 892.5px; height: 30px;"></td>
</tr>
.
.
.
非常感谢!