FPDF - Determining height of MultiCell before placing?

后端 未结 3 1560
不知归路
不知归路 2021-02-14 07:48

The basic question: Is it possible to determine the height of a MultiCell before placing it in the document?

The reason: I\'ve been tasked with creating a PDF version of

3条回答
  •  被撕碎了的回忆
    2021-02-14 08:10

    Earned the tumbleweed badge for this question. :( Anyway, in the off chance someone has the same issue, I figured I'd answer with what I did. I doubt this is the most efficient method, but it got the job done.

    First, I create two FPDF objects; a temporary one that never gets output and the final, complete pdf that the end user will see.

    I get my current Y coordinate in both objects. I then place the block of data using Cell() or MultiCell() (for this form, usually a combination of the two) into the temporary object, and then check the new Y coordinate. I can then do the math to determine the height of the block. -Note, the math can get a bit funky if the block breaks across pages. Remember to take your top and bottom margins into account.

    Now that I know the height of a block, I can take the current Y coordinate of the destination object, subtract it from the total height of a page(minus bottom margin) to get my available space. If the block fits, place it, if not, add a page and place it at the top.

    Repeat with each block.

    Only caveat I see is if any single block is longer then an entire page, but with this form, that never happens. (famous last words...)

提交回复
热议问题