RTF zu PDF in Java
Wir bauen eine Anwendung, die teilweise mit anderen Systemen interagiert. Wir ziehen einige Daten aus dem anderen System, das als RTF-Dokument zurückgegeben wird. Wir müssen jedoch verhindern, dass Benutzer diese Datei bearbeiten. Deshalb haben wir uns überlegt, sie mit iText in PDF umzuwandeln. Code-Auszug
// 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();
Pdf wird erstellt, aber die Schriftgrößen sind falsch, das Styling ist falsch und die Kodierung ist falsch. Vielleicht hattest du ähnliche Probleme und hast etwas herausgefunden? Vielleicht gibt es bessere Lösungen?