RTF в PDF на Java - PullRequest
       30

RTF в PDF на Java

4 голосов
/ 28 августа 2010

Мы создаем приложение, которое частично взаимодействует с другой системой. Мы извлекаем некоторые данные из другой системы, которая возвращается в виде документа RTF. Но мы должны запретить пользователям редактировать этот файл, поэтому мы подумали о преобразовании его с помощью iText в PDF. Фрагмент кода:

        // 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 создан, но размеры шрифта неправильные, стиль неправильный и кодировка неправильная. Может быть, у вас были похожие проблемы, и вы что-то решили? Может быть есть лучшие решения?

Ответы [ 2 ]

5 голосов
/ 28 августа 2010

Itext отказывается от RTF согласно этому сообщению . Одно хорошее решение, которое я использовал, это JODCoverter Library . Он использует OpenOffice, и в прошлом мне удалось преобразовать несколько тысяч документов RTF в PDF.

2 голосов
/ 28 августа 2010

Рассмотрите возможность использования реального текстового процессора для создания PDF.Одной из возможностей может быть OpenOffice, у которого есть API для таких проблем - http://api.openoffice.org/ - который я рассмотрю в вашей ситуации.

PDF-файлы могут быть защищены позже с помощью другого программного обеспечения с открытым исходным кодом.*

...