I worked on one project with many different reports that had to be created. And in addition to html reports, client wanted to have pdf options, so his customers could download pdf version of report.
PHP build-in libraries for PDF creation, haven’t satisfy our needs, because we had much tabular data, and many different tables, so it would take too much time to setup all these width/heights with block elements that those libraries offer.
I checked some additional libraries too, and even some popular libraries like fpdf haven’t had support for tables.
Then I found one excellent library called tcpdf, which have great support for tables, different fonts. You can use html tags to create layouts, tables, blocks, define fonts, add images, so if you need really good tool, I greatly recommend this library. It is free library, and you can find many examples on their website.
However, I had to use fpdf library in same project, because we need to create Avery labels in pdf file, so user can print on sticker paper for example. This, of course could be done with TcPdf off course, but because it would take maybe whole day, so setup layout, we decided to use fpdf. It is not good idea to use two different libraries for same thing, but this was client request.