TCPDF - 如何在使用 tcpdf 创建的 pdf 中显示具有绝对位置的 div?
TCPDF - How can I show a div with absolute position in a pdf created with tcpdf?
我有以下 tcpdf 代码:
<?php
require_once('config/lang/eng.php');
require_once('tcpdf.php');
// Extend the TCPDF class to create custom Header and Footer
class MYPDF extends TCPDF {
//Page header
public function Header() {
}
// Page footer
public function Footer() {
}
}
// 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('Stimart');
$pdf->SetTitle('test');
$pdf->SetSubject('test');
$pdf->SetKeywords('test');
// set default header data
$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE, PDF_HEADER_STRING);
// set header and footer fonts
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
// set default monospaced font
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
//set margins
$pdf->SetMargins(40, 40, PDF_MARGIN_RIGHT);
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
//set auto page breaks
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
//set image scale factor
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
//set some language-dependent strings
$pdf->setLanguageArray($l);
// ---------------------------------------------------------
// set font
$pdf->SetFont('times', '', 12);
// add a page
$pdf->AddPage();
// set some text to print
$html = '<div style="position: absolute; top:200px; left:300px;">Hi, I am an ABSOLUTE div.</div>';
$pdf->writeHTML($html, true, false, false, false, '');
// ---------------------------------------------------------
$pdf->lastPage();
//Close and output PDF document
$pdf->Output('test.pdf', 'I');
//============================================================+
// END OF FILE
//============================================================+
在“// set some text to print”这一行之后,我设置了 html 代码来显示,但它没有按预期工作。
在这种情况下,我需要传递具有绝对位置的 div,但是当代码运行时,它会创建 pdf 页面,显示相对位置的 div。
如何解决这个恼人的问题?
TCPDF 的 CSS 支持非常有限。它不支持所有属性。
目前,仅支持以下 CSS 个属性:
- 字体家族
- 字体大小
- 字体粗细
- 字体样式
- 颜色
- 背景色
- 文字装饰
- 宽度
- 身高
- 文本对齐
因此请尝试删除其他属性,并判断是否可行。
我有以下 tcpdf 代码:
<?php
require_once('config/lang/eng.php');
require_once('tcpdf.php');
// Extend the TCPDF class to create custom Header and Footer
class MYPDF extends TCPDF {
//Page header
public function Header() {
}
// Page footer
public function Footer() {
}
}
// 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('Stimart');
$pdf->SetTitle('test');
$pdf->SetSubject('test');
$pdf->SetKeywords('test');
// set default header data
$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE, PDF_HEADER_STRING);
// set header and footer fonts
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
// set default monospaced font
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
//set margins
$pdf->SetMargins(40, 40, PDF_MARGIN_RIGHT);
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
//set auto page breaks
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
//set image scale factor
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
//set some language-dependent strings
$pdf->setLanguageArray($l);
// ---------------------------------------------------------
// set font
$pdf->SetFont('times', '', 12);
// add a page
$pdf->AddPage();
// set some text to print
$html = '<div style="position: absolute; top:200px; left:300px;">Hi, I am an ABSOLUTE div.</div>';
$pdf->writeHTML($html, true, false, false, false, '');
// ---------------------------------------------------------
$pdf->lastPage();
//Close and output PDF document
$pdf->Output('test.pdf', 'I');
//============================================================+
// END OF FILE
//============================================================+
在“// set some text to print”这一行之后,我设置了 html 代码来显示,但它没有按预期工作。 在这种情况下,我需要传递具有绝对位置的 div,但是当代码运行时,它会创建 pdf 页面,显示相对位置的 div。
如何解决这个恼人的问题?
TCPDF 的 CSS 支持非常有限。它不支持所有属性。
目前,仅支持以下 CSS 个属性:
- 字体家族
- 字体大小
- 字体粗细
- 字体样式
- 颜色
- 背景色
- 文字装饰
- 宽度
- 身高
- 文本对齐
因此请尝试删除其他属性,并判断是否可行。