Increase table row height in existing pdf

909 Views Asked by At

I would like to modify the height of a table row in an existing pdf document. I would like the content below the table to be automatically moved down when the row height is increased. I have tried with hummuspdf, but there doesn't seem to be en explicit way to do this. Is there a way to accomplish my requirement programatically?

1

There are 1 best solutions below

1
On BEST ANSWER

I would like to modify the height of a table row in an existing PDF document.

You're not going to like the answer to this: It's technically possible, but a lot harder than you think it is.

There's 2 major roadblocks here: 1) PDF is not designed to be an editable format. 2) A PDF document has no concept of a table.

To expand on 2), a PDF in essence contains a series of drawing and text instructions referencing absolute positions. A table is nothing more than a set of text instructions and line drawing instructions that happen to visually represent a table.

These instructions don't even have to be close to each other in the file. It's entirely possible the line strokes for the borders are found at the top of the file and all but one text instruction near the end of the file, with a final instruction lazing around somewhere in the middle.

Unless structure has been explicitly added during creation (see Tagged PDFs), there's no guarantee you programmatically identify the set of instructions that visually resemble a table to you.

Now, suppose you are in luck and you have managed to do just that, and you now you want to increase table height, and probably have the rest of the contents adapt to the new height. Now 1) comes into play. Because PDF instructions reference absolute coordinates, you have to recalculate everything that would be affected: the lines that make up the borders, text inside the table, all contents below the table etc..

And remember, all contents below the table in the document aren't necessarily below the table instructions in the file.

If you do succeed at all this, I imagine a lot of people would be very interested in your solution.

tl;dr:

There's a reason why this seemingly trivial functionality is not present in commonly used PDF libraries, and that's because the PDF format makes it a hard problem.