title: RTF to PDF in Java
body: <p>We are building an application which partially interacts with other system. We are pulling some data from the other system which is returned as RTF document. But we have to prevent users from editing this file, so we thought about converting it with iText into PDF. Code snippet:</p>
  
  <pre><code>        // moving the rtf data into input stream to be used in RTF parser
          ByteArrayInputStream rtfInputStream = new ByteArrayInputStream(rtfStream.toByteArray());
  
          // set headers
          resp.setHeader("Cache-Control", "no-store");
          resp.addHeader("Content-Type", "application/pdf");
          resp.addHeader("Content-Disposition", "inline; filename=Karta.pdf");
          resp.setStatus(HttpServletResponse.SC_OK);
  
  
          // pdf output stream
          ByteArrayOutputStream pdfStream = new ByteArrayOutputStream();
  
          Document pdfDoc = new Document();
  
          PdfWriter pdfWriter = PdfWriter.getInstance(pdfDoc, pdfStream);
  
          pdfDoc.open();
  
          RtfParser rtfParser = new RtfParser(null);
  
          rtfParser.convertRtfDocument(rtfInputStream, pdfDoc);
          pdfDoc.close();
  
          pdfWriter.close();
  
          resp.getOutputStream().write(pdfStream.toByteArray());
  
          rtfInputStream.close();
          pdfStream.close();
          is.close();
  </code></pre>
  
  <p>Pdf is created but font sizes are wrong, styling is wrong and encoding is wrong. Maybe You had similar problems and You worked something out? Maybe there are better solutions?</p>