I'm just curious. Are you using Spring ? If so, you should not use the response to write anything to it. The iText document will be output to the response automatically by Spring (which causes an IllegalStateException). Just write to the document. The response should only be used to set cookies or http headers.