问题
So, I am writing some text into a PDF file using iTextSharp.
After having added a few paragraphs and phrases to the PDF document, I want to:
Draw the next piece of text on top of a rectangle that has a fill color, say, red.
I can compute the required width and height that the rectangle must have based on the text metrics of the text I am going to write on top of it. But how do I tell the Rectangle
API what is top and left coordinates are, as in where it must be drawn?
回答1:
Seems that you are looking for the Chunk.setBackground() method. This draws a colored background underneath some text. There's also a variation of the method that takes extra parameters if you need a larger or smaller rectangle.
Suppose that you don't want a colored rectangle, but a custom type of shape, then you'd use the page event onGenericTag(). See Chunk > Generic tag for more info.
The onGenericTag()
method is triggered every time a Chunk
that is marked as generic (using the setGenericTag() method) is rendered to a page. Your implementation of the page event can then use the Rectangle
value that is passed to the event method. It is important to understand that a single Chunk
marked as a generic tag can result in multiple invocations of this method: if the contents of a single Chunk
needs to be distributed over different lines, the event will be triggered as many times as there are lines (giving you a separate Rectangle
value for every separate line).
来源:https://stackoverflow.com/questions/24006925/draw-a-rectangle-at-the-current-position-and-then-get-its-position-coordinates