← Back to articles

ENGLAND SOFTWARE / ARTICLE

I Love PDF - The Best Free PDF Tool

I Love PDF Is Amazing (in most cases)

I Love PDF is one of the best free web applications for dealing with PDFs. A few common scenarios are editing a PDF, converting a PDF to JPEG (or vice versa), or merging multiple PDFs into a single PDF file.

Nearly 90% of what you need can be covered without even needing a login.

Beyond I Love PDF

When I Love PDF is not enough, you can always check out pdfcpu or Ghostscript.

When generating our end-of-month reporting at Chick-fil-A, I used to use Ghostscript to iterate through each PDF, convert it to black and white (to save space, as I had a 50MB limit), and then compress the PDF into a smaller version.

This is the type of granular control these sorts of tools can offer.

And, to maybe add a layer of depth, these are the sorts of tools applications like I Love PDF can be built upon.

I am not 100% sure how I Love PDF completes its tasks of converting PDFs, but I know the programmers who constructed the site most likely did not design these features from scratch. They likely relied on existing tools or libraries which are hidden behind the scenes, installed on the server providing your browser with this webpage.

This is a common practice in software development. Rather than reinventing the wheel, we build upon the work of other programmers.

One other benefit worth mentioning is that tools like Ghostscript can run locally on your computer, meaning you don't have to upload sensitive documents to a website.

PDFs Are Not Friendly

When we discuss file formats such as the PDF file, we are really just discussing a particular way data is packaged.

Imagine you have a barcode reader which is designed to read bars in a vertical fashion, but you present it with a QR code. The data (the barcode) is not in the proper format (a series of vertical bars).

So is the same with a PDF.

A PDF file is a collection of structured data which is later interpreted by a PDF reader. Some of this data is human-readable, while other portions may be compressed or encoded.

A PDF reader is a program which knows how to take the data of a PDF file and present it on the screen in a consistent manner.

If you have found working with PDFs difficult, it is because the shape of their data is not easy to parse.

For example, here is a blank PDF:

%PDF-1.4
1 0 obj
<< /Type /Catalog /Pages 2 0 R >>
endobj
2 0 obj
<< /Type /Pages /Kids [3 0 R] /Count 1 >>
endobj
3 0 obj
<< /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Resources << >> /Contents 4 0 R >>
endobj
4 0 obj
<< /Length 0 >>
stream
endstream
endobj
xref
0 5
0000000000 65535 f
0000000009 00000 n
0000000058 00000 n
0000000115 00000 n
0000000219 00000 n
trailer
<< /Size 5 /Root 1 0 R >>
startxref
267
%%EOF

This illustrates the structure of a simple PDF. The byte offsets must be accurate for the file to work correctly.

The programmer who designs a PDF reader must design code which is capable of taking such input and converting it into a graphical representation.

To demonstrate the depth of such a task, imagine a blob of PDF data which is malformed, containing random jargon within. The program constructed must also catch these edge cases.

And remember, this is just a blank PDF. Imagine the complexity involved when you start adding images, fonts, and hundreds of pages.

All of this work is hidden behind something as simple as opening a file or clicking a button on a website.

Tis the work of a software developer to think about such things.

Thanks for reading, have a great day!

← More articles