J'essaie de créer un PDF de PHP et, pour des raisons juridiques, nous devons inclure une partie de notre clause de non-responsabilité BOLD et cette dernière doit être décrite.
Mon code actuel utilise:
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');
}
J'utilise actuellement WriteHTML pour d'autres parties du document et je pourrais facilement l'utiliser à la place de MultiCell, mais comment puis-je créer la bordure?
Donc j'ai 2 options ..
Fonctions FPDF natives
Avantages: Donne une option pour une bordure
CONS: Pas de moyen facile de mettre du texte en gras en gras
Classe d'extension WriteHTML
PROS: me permet d'ajouter facilement du texte en gras en ligne
CONS: Pas sûr de savoir comment créer la bordure
Suggestions?
Vous pouvez réécrire une partie de l'extension, mais il peut être plus facile d'utiliser l'extension writeHTML, puis dessinez une cellule (texte vide) avec une bordure sur la cellule créée avec writeHTML. En ajustant correctement vos cellules, cela devrait fonctionner.
N'oubliez pas d'utiliser SetY then SetX pour positionner vos cellules.
Exemple:
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');
}
Utilisez Write () & Rect () .
Exemple:
$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();
Vous devez jouer avec la largeur et la hauteur des paramètres Rect (). Dans ce cas, je règle width = 2 et height à 0.1 User Units .
Je trouve une autre soluction.
http://fpdf.de/downloads/add-ons/tag-based-formatting.html
copier et coller le code de fragment write_tag dans le fichier fpdf.php, appelez la fonction write_tag lors de la création du fichier pdf;.
Voici comment je l'ai résolu:
$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');
Essentiellement, créez une cellule, changez la police, puis une autre cellule avec la largeur du texte que vous souhaitez mettre en gras, etc.
Il semble exister de meilleurs outils pour créer des PDF utilisant des modèles HTML/Blade, par exemple. Vous voudrez peut-être envisager de l'utiliser.
Sinon, TCPDF prend en charge l'écriture d'une cellule contenant du code HTML via writeHTMLCell () , syntaxe ici .
$pdf->writeHTMLCell($width, $height, $x, $y, "<b>bold</b> and <u>underlined</u> text.");