我文件中的一些文字在PPDF中被切断了。我可以看到这些词在那里,但没有正确包装。
我的输出如下:
以下是我的代码的信息:
<table>
<tr align=''>
<td colspan='5' class='heading'>Corporate URC Use Only</td>
</tr>
<tr>
<td>Consult Determination<span class='required'></span>:</td>
<td><strong>";
if(isset($updated_history) && !is_null($updated_history)){
$html .= $data['original_decision'];
}
else{
$html .= $data['final_decision'];
}
$html .="</strong></td>
</tr>
</table>
<table>
<tr>
<td>Notes:</td>
<td><strong>" . $data['notes'] . "</strong></td>
</tr>
</table>
我的html2pdf实现很简单:
require_once("../include/html2pdf/html2pdf.class.php");
$html2pdf = new HTML2PDF('P','A4','en');
$html2pdf->pdf->SetDisplayMode('real');
$html2pdf->WriteHTML($html);
$html2pdf->Output($c_file, "F");
编辑:以下是展示此行为的示例pdf的链接。 https://www.dropbox.com/s/h91g40bo4b2cmlw/Test_T_2312321.pdf?dl=0
答案 0 :(得分:2)
看起来像......
/MediaBox
比A4(595分)更窄,/Contents
代码的绘图/书写不符合A4宽度,而是在其之外绘制/写入。您应该检查您的代码是否使用(可能是隐藏的)设置将页面宽度(或完整页面大小)设置为字母(这将是612x792点)。
要测试我的假设,您可以用A4
或letter
替换html2pdf实现中的Letter
...
(如果你提供了一个由你的代码创建的[链接到] PDF,那么调试就会容易得多。我上面写的是[几乎]纯粹的推测。)
在查看OP更新链接中提供的PDF源代码后,我可以这样说:
我解压缩了文件的/Content
个流,以便使用以下命令将PDF页面绘制操作符视为ASCII:
qpdf --qdf --object-streams=disable document.pdf q.pdf
现在可以在一个好的文本编辑器(如VIm,Emacs或Notepad ++)中轻松打开新生成的q.pdf
。
以下行在页面上打印一些文字:
BT \
/F2 10.00 Tf \
ET \
[....] \
q \
0.000 0.000 0.000 rg \
BT \
0 Tr \
0.00 w \
ET \
BT \
50.00 359.19 Td \
[(Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore)] TJ \
ET \
Q
此代码段打印了很长的文本行,其中的字体内部命名为/F2
(后者又映射到文件中其他位置的/Helvetica-Bold
),大小为10
个点,从坐标x=50, y=359.19
开始。
但是,这条长文本行不适合/MediaBox
给出的页面宽度,定义为[0 0 595 842]
(在PostScript点中,代表A4)。
它的宽度为635
(即使在右边缘留下一些小的边距)。
(您还可以通过缩小文本大小来使文本适合当前页面宽度,例如。/F2 9.00 Tf
。但这仍然会使绘制框的长水平线溢出右页边框...)
这个PDF的整体源代码是,BTW,在某些地方非常低效(例如它包含BT /F1 10.00 Tf ET 1.000 g
超过1000次,但这段代码确实......没有!它只定义字体用作内部名称/F1
,字体大小为10分。)
您可以轻松地使用文本编辑器编辑原始PDF:
搜索字符串/MediaBox
。它在PDF中出现两次,每页一次。
将其[0 0 595.28 841.89]
的当前值替换为新值[0 0 635.00 841.89]
。
保存已编辑的文件。
在您喜欢的PDF查看器中打开它。
现在您将看到页面内容也适合页面的宽度(现在为635
点(== 22.4
cm; 595
点的原始值相当于到21.0
cm)。
您还会看到,不仅是一些长文本行不适合页面宽度 - 对于为框绘制的某些水平线也是如此。
以下是已编辑PDF文件的屏幕截图,显示了新/MediaBox
现在如何能够在其边界内保存所有页面内容: