TCPDF问题:如何对齐文本和图像?

时间:2019-01-03 07:05:47

标签: php tcpdf

我想通过PHP生成PDF格式的简历。 TCPDF看起来像是一个灵活的库。假设这是预期的结果:

enter image description here

我刚刚开始学习TCPDF,到目前为止,我已经完成了公司名称,名称和名称,但是它们并没有完全相同。 enter image description here

这是我的代码:

<?php

require_once('tcpdf/config/lang/eng.php');
require_once('tcpdf/tcpdf.php');

class MYPDF extends TCPDF {

    //Page header
    public function Header() {
        // Logo
        $image_file = 'umbrella_logo.jpg';
        $this->Image($image_file, 10, 10, 45, '', 'JPG', '', 'T', false, 300, '', false, false, 0, false, false, false);
        // Set font
        $this->SetFont('helvetica', 'B', 20);
    }
}


// create new PDF document
$pdf = new MYPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

// set document information
$pdf->SetCreator(PDF_CREATOR);    
$pdf->SetAuthor('Umbrella Corporation'); 
$pdf->SetTitle('Employee Resume');       

// set default header data
$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' My PDF', PDF_HEADER_STRING, array(0,64,255), array(0,64,100));

$pdf->AddPage();

$pdf->SetXY(15, 30);
$pdf->Cell(25, 10, 'Tobias Rieper', 0, $ln=0, 'C', 0, '', 0, false, 'B', 'B');

$pdf->SetXY(15, 35);
$pdf->Cell(20, 10, 'Senior Biochemist', 0, $ln=0, 'C', 0, '', 0, false, 'B', 'B');

$pdf->setFooterData(array(0,64,0), array(0,64,128));
$pdf->Output('example_001.pdf', 'I');

?>

该如何解决?

1 个答案:

答案 0 :(得分:0)

首先,您对单元格使用的是中心对齐方式,而不是向左对齐,因此您的单元格分别被对齐为25毫米和20毫米的宽度。

相反,将'C'调用的参数6从'L'更改为Cell,这会将它们更改为左对齐。这样可以使您的单元格按照预期的方式排列。

下一步,用于标题图像和文本对齐。由于您尝试将单元格与图像(或图像中的某些内容)的边界对齐,因此您可能希望使用$pdf->setCellPadding(0);

删除默认的单元格填充

然后,您可以根据需要调整图像或单元格的位置。在这里,我将它们对齐为10mm的横坐标。

Screen capture of generated PDF

<?php

//Note that my paths are different, use your project's appropriate paths.
require_once('TCPDF-6.2.17/tcpdf.php');

class MYPDF extends TCPDF {

    //Page header
    public function Header() {
        // Logo
        // Set font
        $image_file = 'lymle.jpg';

        $this->Image($image_file, 10, 10, 45, '', 'JPG', '', 'T', false, 300, '', false, false, 0, false, false, false);
        $this->SetFont('helvetica', 'B', 20);
    }
}

// create new PDF document
$pdf = new MYPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

// set document information
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('Umbrella Corporation');
$pdf->SetTitle('Employee Resume');


// set default header data
$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' My PDF', PDF_HEADER_STRING, array(0,64,255), array(0,64,100));

$pdf->AddPage();

$pdf->setCellPadding(0);

$pdf->SetXY(10, 30);
$pdf->Cell(25, 10, 'Tobias Rieper', 0, $ln=0, 'L', 0, '', 0, false, 'B', 'B');

$pdf->SetXY(10, 35);
$pdf->Cell(20, 10, 'Senior Biochemist', 0, $ln=0, 'L', 0, '', 0, false, 'B', 'B');

$pdf->setFooterData(array(0,64,0), array(0,64,128));
$pdf->Output('example_001.pdf', 'I');