Генерация PDF из JSON с использованием Java - PullRequest
0 голосов
/ 03 мая 2018

У меня есть требование для создания PDF из JSON. Для этого я попробовал следующие шаги для генерации PDF,

Сначала я проанализировал JSON в XML, затем из XML в HTML и, наконец, сгенерировал PDF из HTML.

Пожалуйста, найдите мой код ниже., Он работает нормально.

Transformer transformer;
    try {
        transformer = TransformerFactory.newInstance().newTransformer(new StreamSource(new File(xslPath)));
    } catch (TransformerConfigurationException | TransformerFactoryConfigurationError e1) {
        throw ExceptionUtils.handle((Exception) e1);
    }

    DOMResult result = new DOMResult();

    try {
        transformer.transform(new StreamSource(new ByteArrayInputStream(xml.toString().getBytes("UTF-8"))), result);
    } catch (TransformerException e) {
        throw ExceptionUtils.handle(e);
    }

    ITextRenderer renderer = new ITextRenderer();
    try {
        renderer.getFontResolver().addFont("C:/WINDOWS/FONTS/ARIAL.TTF", true);
    } catch (DocumentException e) {
        throw ExceptionUtils.handle(e);
    }

    Document resultDoc = (Document) result.getNode();
    renderer.setDocument(resultDoc, "");
    renderer.layout();

Это генерирует PDF в Portrait, но я хочу, чтобы PDF генерировал в режиме Landscape. Для этого мне нужно изменить HTML кодовый бит.

Я должен интегрировать приведенный ниже фрагмент кода, чтобы сделать мой PDF в режиме Landscape

    XMLResource res = XMLResource
            .load(new StringReader("<html><head><style>@page { size : 29.7cm 21cm; }</style></head><body></body></html>"));

Но я не уверен, где я могу внедрить этот фрагмент кода в мой существующий код.

1 Ответ

0 голосов
/ 03 мая 2018

Добавьте эти стили в начало создаваемого вами Xhtml

1: для портрета: @page {размер: буквенный портрет;}

2: для пейзажа: @page {size: letter landscape;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...