/* Sample servlet to demonstrate the usage of iText for generation pdf documents. * * For more in-depth look at the API docs or the book "iText in action" * * How to add page header/footer via PdfPageEventHelper : * http://faq.javaranch.com/java/ItextExample */ import java.io.ByteArrayOutputStream; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.itextpdf.text.Document; import com.itextpdf.text.Image; import com.itextpdf.text.PageSize; import com.itextpdf.text.Paragraph; import com.itextpdf.text.pdf.PdfWriter; /** * Servlet implementation class PdfServlet */ public class PdfServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Custom size Rectangle pageSize = new Rectangle(200f, 200f); // PageSize.A4.rotate(); //A4 in landscape mode Document document = new Document(PageSize.A4); ByteArrayOutputStream out = new ByteArrayOutputStream(32000); try { PdfWriter writer = PdfWriter.getInstance(document,out); document.open(); document.add(new Paragraph("Hello World")); document.add(new Paragraph("Lorem ipsum")); Image img = Image.getInstance("http://app.t-hoerup.dk/Test3/ImageServlet"); img.scaleAbsolute(100, 100); img.setRotationDegrees(45); document.add(img); } catch (Exception e) { // handle exception } document.close(); byte rawDocument[] = out.toByteArray(); response.setContentType("application/pdf"); response.setHeader("Cache-Control", "no-cache"); response.setDateHeader("Expires", 0); //You will probably like to add this header in production, with some proper filename //response.setHeader("Content-disposition", "attachment; filename=pdfname.pdf"); response.setContentLength(rawDocument.length); response.getOutputStream().write( rawDocument ); } }