FPDF-встроенный полужирный текст
Я пытаюсь создать PDF из PHP, и по юридической причине нам нужно сделать часть нашего отказа от ответственности жирным шрифтом, и отказ от ответственности должен быть изложен.
мой текущий код использует:
if(isset($_POST['optout']) && $_POST['optout'] == "yes"){
$pdf->Ln(5);
$pdf->SetFont('Arial','I',12);
$pdf->SetTextColor(128);
$pdf->MultiCell(0,4,'This is my disclaimer. THESE WORDS NEED TO BE BOLD. These words do not need to be bold.',1,'C');
}
в настоящее время я использую WriteHTML для других частей документа, и я мог бы легко использовать это вместо MultiCell, но тогда как создать границу?
поэтому у меня есть 2 варианта..
собственные функции FPDF
плюсы: дайте опция для границы
минусы: нет простого способа сделать встроенный текст полужирным
класс расширения WriteHTML
PROS: позволяет мне легко добавлять полужирный текст inline
минусы: не уверен, как создать границу
предложения?
3 ответов
вы можете переписать часть расширения, но вам может быть проще использовать расширение writeHTML, а затем нарисовать ячейку (пустой текст) с границей над ячейкой, созданной с помощью writeHTML. При правильной настройке клеток он должен работать.
Не забудьте использовать SetY затем SetX для размещения ячеек.
пример:
if(isset($_POST['optout']) && $_POST['optout'] == "yes"){
$pdf->Ln(5);
$pdf->SetFont('Arial','I',12);
$pdf->SetTextColor(128);
//Your text cell
$pdf->SetY($pos_Y);
$pdf->SetX($pos_X);
$pdf->writeHTML('This is my disclaimer. <b>THESE WORDS NEED TO BE BOLD.</b> These words do not need to be bold.');
//Your bordered cell
$pdf->SetY($pos_Y);
$pdf->SetX($pos_X);
$pdf->Cell($width, $height, '', 1, 0, 'C');
}
использовать Write() & Rect ().
пример:
$pdf->Rect($pdf->GetX(),$pdf->GetY(),2,0.1);
$pdf->SetFont('Arial','',8);
$pdf->Write(0.1,"this is not bold, but this ");
$pdf->SetFont('Arial','B',8);
$pdf->Write(0.1,"is bold.");
$pdf->SetFont('Arial','',8);
$pdf->Ln();
вам нужно поиграть с шириной и высотой параметров Rect (). В этом случае я устанавливаю width = 2 и height в 0.1 Единицы Пользователей.
вот как я решил это:
$pdf->SetFont('Arial','',10);
$cell = 'This is my disclaimer.';
$pdf->Cell($pdf->GetStringWidth($cell),3,$cell, 0, 'L');
$pdf->SetFont('Arial','B',10);
$boldCell = "THESE WORDS NEED TO BE BOLD.";
$pdf->Cell($pdf->GetStringWidth($boldCell),3,$boldCell, 0, 'L');
$pdf->SetFont('Arial','',10);
$cell = 'These words do not need to be bold.';
$pdf->Cell($pdf->GetStringWidth($cell),3,$cell, 0, 'L');
по сути, сделайте одну ячейку, измените шрифт, затем другую ячейку с шириной текста, который вы хотите выделить жирным шрифтом, и так далее.
там, кажется, есть лучшие инструменты для создания PDF-файлов, которые используют шаблоны HTML / Blade и такие, хотя, поэтому вы можете рассмотреть возможность использования этого.