Is it possible to dynamically merge one PDF with another using dompdf? - php

I am trying to take the raw data from a previously made PDF, and append it to a new PDF using DOMPDF. Is this possible?
Thanks for any help,Metropolis

Are you talking about overlaying one PDF on top of another or appending the pages of one document to another? DOMPDF doesn't currently support either type of functionality because it is focused on HTML to PDF conversion. Due to this focus by the project you're not likely to see any work put in to support the handling of existing PDFs anytime soon.
This doesn't help for your current project, but you might post a feature request to add support for a library that is capable of performing a merge (I think FPDI may work). DOMPDF relies on third-party PDF rendering engines for creation of the actual PDF. A modified version of the CPDF library is included with DOMPDF, but there's no reason other rendering engines couldn't be supported.

if it helps someone else,
what I did, I concatenated the HTML string in a loop and then made a pdf file after the loop.
And ofcourse using page-break-after: always; which creates a new page.

Related

php - generate pdf with html table and save it on file server

I am working with a tool which lets user upload a .csv file.
That csv file contains an address column. I have to use the address from each row in another HTML template. That HTML template is like this
. After creating that template I then need to convert it into a PDF, store the PDF on a file server and give the user a link to the PDF.
I've finished the first two steps - csv upload and created complete template with address, but I'm stuck on how I can convert a template into a PDF.
I have looked into a few php-pdf libraries like fpdf mpdf. I'm facing a problem in creating pdf with html template.
A link to a library wich convert HTML to PDF and works pretty well.
First the link to the library
HTML2PDF
Then some code* to create your PDF using your own generated HTML, where $content is your HTML string.
$html2pdf = new HTML2PDF('P','A4','fr');
$html2pdf->WriteHTML($content);
$html2pdf->Output('exemple.pdf');
*Code taken from the "example page" of the site.
I have used tcpdf in many cases, https://tcpdf.org/
Works well with tables, I have made receipts and accounting related stuff with it. Handle UTF-8 without problems, why it's my way to go.
Only downside is that code is bit long and complicated and it doesn't keep tables as tables in pdf and turns them to divs, so paddings and other styles might be bit trickier to do.
One way is to use webkit based HTML to PDF converter.
Pros are that it is easy to customize and style and to see in the browser how it will look and then you can be sure that it will look as same in PDF as well. You could use CSS and JavaScript as well to style and modify.
Cons are that it is hard to install it on the production server sometimes. But there are web services and APIs that get you covered.
For example one service is https://pdfapi.io. It is free to use. Only when your amounts get bigger, then it will charge like a cup of coffee.
Hope that helps.

PHP PDF conversion

I am using PHP 5.0 pdf library to convert files dynamically into PDF.
I am using this reference from the official PHP website using PDF_new(), creating its object and using PDF_set_info and PDF_get_buffer functions.
This works fine, but when I want to create PDF pages and writing the content inside of it, there is no reference given anywhere on how to convert an already existing page to PDF. Say a page in my folder bill.php with CSS too needs to be converted to PDF on the fly.
Well converting HTML to PDF is not that easy, there are several libraries out there that might fit your needs. But none has full html/css capabilities, especially not css3.
FPDF
http://www.fpdf.org
TCPDF
http://www.tcpdf.org
DOMPDF
http://code.google.com/p/dompdf/ (this class allows you to easily convert simple layouted websites to pdf. i used this class quite often with almost no problems. sadly this library does not support converting of forms to usable input fields.)
WKHTMLTOPDF
http://code.google.com/p/wkhtmltopdf/ (actually a linux package but php wrappers are existing. this gives almost full html capabilities and awesome results)
html2PDF is a nice library to use. Make sure you change the default language to English though. I've used it many times to create dynamic invoices with tables and divs. Works really well.
Refer some of the articles, which may help to improve your knowledge as well as clear some of doubt of you.
Getting started
Convert HTML To PDF in PHP The Easy Way
How to Generate a PDF With PHP
Convert HTML to PDF
This HTML to PDF SDK may also help you.
Hope, it will help you.

Converting PDF and adding a Front Page, footer and watermark

My current application requires me to convert a document (doc, excel, ppt, image, etc) to PDF. It also requires to add a front page with several information (variable) and add footer to converted document. It may also require to add a text or a logo image as an watermark.
I have been able to convert document to PDF using LibreOffice. I generated a static pdf and I could merge it with converted document using PDFtk
But I need to generate front page dynamically because for each document, some information will change. I thought of using FPDF to generate front page, convert with libreoffice and merge it using PDFtk. But again, it will require adding footer and possibly a watermark. I think watermark can be done by PDFtk. And footer can be generated by FPDF.
So whole process will look like this:
Created Front page with FPDF and save pdf
Convert Doc to PDF with LibreOffice
Add footer to converted PDF and store with FPDF
Generate PDF with watermark using FPDF (possibly)
Combine above three pdf using PDFtk
I guess I am doing too much of processing. Is there a simpler way to achieve this? Are there any alternatives to achieve this with lesser resources / third party apps/lib ?
If you're open to commercially licenced software, PDFLib+PDI will handle all the tasks you require (after conversion to PDF). It runs natively on most server environments with generally very good performance.
The Library I have used to handle PDFs with PHP is TCPDF. It's open source, you can use HTML to style the PDF (a subset of HTML anyway), handle things like pages. I believe you should be able to perform the functions you require all in TCPDF.
To handle manipulations to images, which you may need for watermarking etc, I used GD which provides numerous functions for manipulating images. If you require some more complex image manipulations, you may also want to look at imagemagick.
All of this should simplify your workflow, and allow you to do most of what you require directly in PHP and HTML.
To decrease the number of different things that I need to do, I will simply use the FPDI library.
So what I am going to now is,
Convert the document into PDF format
Create Front Page using FPDI (which extends TCPDF and uses it's function)
Then I will import the converted document using FPDI ' s import feature
I will also add watermark and footer same time
So I will ultimately eliminate the use of PDFtk and reduce the number of libraries used and different activities required to be done separately.
These thing will be done in two activities only :
Convert to PDF with LibreOffice and
Add a front page, import and add footer and watermark with FPDI
I haven't tested it yet, but DomPDF looks like a nice project.
I was using HTML2PDF before, but it's not updated anymore so moving on.
If you're using such libraries, just make HTML templates (moreover, DomPDF supports PHP execution inside html templates) and have fun ;)

Generate PDF from HTML PHP

I want to generate PDF from a PHP file that includes HTML controls like textbox, and textarea. I attached CSS in the same. I tried FPDF, DOMPDF and TCPDF, but still I don't get exactly what I want. How do I pass HTML controls with PHP variables and CSS to these libraries?
mpdf is another option that you could try.
EDIT :
Found another solution for it, TCPDF is a FLOSS PHP class for generating PDF documents. Looks more dominating library.
"PRINCEXML" is a good library (not completely free now).
Others:
If your meaning is to create a PDF file from PHP, pdflib will help you (as some other suggested).
Else, if you want to convert an HTML page in PDF via PHP, you'll find
a little trouble outta here.. For three years I have been trying to do it as best as I
can.
So, the options I know are:
HTML2PS: same of DOMPDF, but this one convert first in .ps
(Ghostscript), then, in whatever format you need (PDF, JPEG, PNG). For
me it is a little better than dompdf, but I have the same speed problem.. Oh,
it has better compatibility with CSS.
Those two are PHP classes, but if you can install some software on the
server, and access it through passthru() or system(), have a look at
these too:
wkhtmltopdf: based on webkit (safari's wrapper), is really fast and
powerful... It seem like it is the best one (atm) for converting HTML pages to PDF on the fly, taking only two seconds for a three pages XHTML document
with CSS 2. It is a recent project. Anyway, the Google Code page is often
updated.
htmldoc: this one is a tank, it really never stops orcrashes... The project
seems to have died in 2007, but anyway if you don't need CSS compatibility
this can be nice for you.
** Thumbs Up For Strae.
If I understand your needs correctly I don't think any PHP-PDF class would do that.
Mostly you could insert only text and images to a PDF file, so if you would want something that looks like an HTML element you would need to insert it as an image.
Usually just putting HTML doesn't mean all your elements would stay intact in the PDF . (Different world, after all)
http://www.fpdf.org/ is the site having a great HTML-to-PDF class which work well. I am using it, but you have to first study its functionality and then start.

How do I replace outbound link URLs in a PDF document, using PHP

I have a PDF document with some external links.
I'd like to parse the document, replace the destination of the links then close (and serve) the PDF document, all using PHP
I know I can do this with PDFLib but I don't want to incur this cost.
I could re-write the document with FPDF or DomPDF, but some of these PDFs are quite complex so this would be a major time investment.
Surely there must be a way to do this directly to PDF docs, using native PHP?
TIA
I don't think there is a text/hyperlink changer class for PHP. The closest products, like pdftk, only does higher-level stuff like merging, splitting and applying watermarks.
Changing a pdf is much more difficult than generating it, so you need to use a pdf editor like Nitro PDF (untested), or why not Acrobat/Illustrator/InDesign.
If you must use PHP, regenerating the PDF:s with one of the free classes seems to be your best choice. I like FPDF very much, it gets my recommendation. If you decide to use it, check out FPDI as well, it can use existing PDF files as a template, maybe it will help you. Good luck!

Categories