我需要使用php / MySQL打印一个大公司的组织图。组织结构图将是其中带有人民名字的盒子,刚好有200多个。页面将非常宽且很长。我希望能够将页面大小设置为90英寸高乘300英寸宽(PDF将打印在通常用于打印建筑图的生态绘图仪上,但可用于制作巨大的黑白图像)墙海报。我已经使用PageMaker / InDesign做了很多次,但是从来没有使用php)。是否可以使用TCPDF进行此操作,如果可以,如何进行?如果没有,关于如何在php中执行此操作的任何建议?
答案 0 :(得分:0)
是的,TCPDF完全能够生成非常大的PDF文档。如果您要渲染很多元素,那么最好确保您具有较高的内存限制。
我在这里创建了一个示例:Example large format PDF
关键部分是提供您自己的自定义页面大小。这是我在生成此示例的脚本中使用的内容:
// create new PDF document, I set landscape,
// inches for units, 300 wide and 90 deep
$pdf = new TCPDF('L', 'in', array(300,90), true, 'UTF-8', false);
当然,渲染部分完全取决于您。我只是对一些贝塞尔曲线和带有边框的单元格感到了乐趣。
//Line from Dot to Tiny
$pdf->Curve(50, 30, 50 + $offsetx, 30, 50 + $offsetx + 1 , 20 + $offsety_down,
60, 20, null, $style);
$pdf->SetXY(60, 20);
$pdf->Cell(20, 10, 'Tiny', 1, 1, 'TLRB', 0, '', 1, 'C', 'C');
如果您想使用点来处理文档(我建议以英寸为单位-意外地制作1英寸粗的线等确实很容易),将类似以下内容传递给构造函数:
注意:点是等于1/72英寸的物理度量单位。这不是指定渲染分辨率,而是文档的实际物理尺寸。对于线定义,可以将部分数字用于物理单位。例如:0.75以指定3/4点。
// create new PDF document, I set landscape,
// pt for units, 300 wide and 90 deep, 72 points per inch.
$pdf = new TCPDF('L', 'pt', array(300*72,90*72), true, 'UTF-8', false);
TCPDF将与几种不同类型的单元一起使用。例如,另一种选择是毫米。 SetXY
和Curve
之类的方法将使用您在此处设置的任何页面单位。