Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why does TCPDF ignore my inline CSS?

Tags:

I am trying to create a PDF file using TCPDF. But When I tried to insert inline CSS into the HTML, it's displaying a blank page! Here are a few lines of my HTML:

pdf->AddPage();

// set font
$pdf->SetFont('helvetica', 'B', 20);

$pdf->Write(0, 'Example of HTML Justification', '', 0, 'L', true, 0, false, false, 0);

// create some HTML content
$html = '
<div id="wrapper" style="width:900px;height:auto;margin:0 auto;">
<div id="header" style="width:900px;height:180px;border-bottom:2px solid #5a5a5a;">
<div id="img" style="width:174px;height:87px;position:relative;top:10px;left:350px;"><img src="Untitled Document_files/logoticket.png" /></div>
<div id="text" style="width:250px;position:relative;left:315px;top:20px;font-family:Arial, Helvetica, sans-serif;font-weight:bold;font-size:14px;">E-TICKET/RESERVATION VOUCHER</div>
<div id="text2" style="width:200px;position:relative;left:345px;top:40px;font-family:Arial, Helvetica, sans-serif;
font-weight:bold;font-size:12px;">Visit - www.bookings.7sisters.in</div>
</div>
<div id="mainContent">
<div id="icon" style="width:600px;
height:37px;
position:relative;
left:190px;
top:20px;">
<img src="Untitled D.....

etc.

I am inserting the code in TCPDF example 39. But the output is only the TCPDF logo and the line "Example of HTML Justification". What's the reason? Or it does not support inline CSS?

like image 699
AssamGuy Avatar asked Jul 09 '12 12:07

AssamGuy


People also ask

Is inline CSS OK?

It is a good standard to keep all styling separate to maintain clean, maintainable code. That said, we can acknowledge that it is "ok" to use inline styles, as you asked in your question. However, best practice is often something more than "ok" and should serve as a guide as often as possible.

What is Inlined CSS?

An inline CSS is used to apply a unique style to a single HTML element. An inline CSS uses the style attribute of an HTML element.


1 Answers

TCPDF has a very limited CSS support. It doesn't support all attributes.

Currently, only the following CSS attributes are supported:

  • font-family
  • font-size
  • font-weight
  • font-style
  • color
  • background-color
  • text-decoration
  • width
  • height
  • text-align

So try removing the other attributes, and tell if it works.

Also, this is an active forum for TCPDF related discussion.

TCPDF Documentation

Alternatives to TCPDF that are definitely worth trying:

domPDF

Key Features

  • handles most CSS 2.1 and a few CSS3 properties, including @import, @media & @page rules
  • supports external stylesheets, either local or through http/ftp (via fopen-wrappers)
  • supports complex tables, including row & column spans, separate & collapsed border models, individual cell styling

domPDF Documentation

Helpful tutorial: http://kyokasuigetsu25.wordpress.com/2011/07/14/how-to-use-dompdf-with-css/

mPDF

Examples (both PHP and generated PDF) can be found here and here.

mPDF Documentation

Hope it helps :)

like image 200
abhshkdz Avatar answered Sep 27 '22 22:09

abhshkdz