Проблемы с кодировкой (Spring-MVC PDF)

119
05 ноября 2019, 17:30

Нужно было вывести PDF файл в Spring MVC.Сейчас при выводе кириллица не отображается,просто исчезает а цифры остаются.Делал по одной статье в рунете. Вот конфиги

dispatcher-servlet.xml
<bean class="org.springframework.web.servlet.view.XmlViewResolver">
        <property name="order" value="0" />
        <property name="location">
            <value>/WEB-INF/config/excel-pdf-config.xml</value>
        </property>
    </bean>
    <bean id="JSPViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="order" value="1"/>
        <property name="prefix" value="/WEB-INF/pages/"/>
        <property name="suffix" value=".jsp"/>
    </bean>


excel-pdf-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
                           http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="pdfDocument"  class="com.springapp.mvc.model_for_users.PDFDocument">
    </bean>
</beans>


Контроллер 
    @RequestMapping(value = "/pdf", method= RequestMethod.GET)
    public ModelAndView pdf() {
     List<MyOrderToHistory> myOrderToHistories = createCats();
     return new ModelAndView("pdfDocument", "modelObject", myOrderToHistories);
    }

И сам Pdf документ

package com.springapp.mvc.model_for_users;

import com.lowagie.text.Document;
import com.lowagie.text.Element;
import com.lowagie.text.Phrase;
import com.lowagie.text.pdf.PdfPCell;
import com.lowagie.text.pdf.PdfPTable;
import com.lowagie.text.pdf.PdfWriter;
import com.springapp.mvc.models2.MyOrder4;
import org.springframework.web.servlet.view.document.AbstractPdfView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Date;
import java.util.List;
import java.util.Map;
public class PDFDocument extends AbstractPdfView {
    @Override
    protected void buildPdfDocument(
            Map<String, Object> model,
            Document document,
            PdfWriter writer,
            HttpServletRequest request,
            HttpServletResponse response) throws Exception {

        PdfPTable table = new PdfPTable(3);
        PdfPCell header1 = new PdfPCell(new Phrase("Дата"));
        PdfPCell header2 = new PdfPCell(new Phrase("Сумма"));
        PdfPCell header3 = new PdfPCell(new Phrase("Заказчик"));
        header1.setHorizontalAlignment(Element.ALIGN_LEFT);
        header2.setHorizontalAlignment(Element.ALIGN_LEFT);
        header3.setHorizontalAlignment(Element.ALIGN_LEFT);
        table.addCell(header1);
        table.addCell(header2);
        table.addCell(header3);
        List<MyOrderToHistory> myOrderToHistories = (List<MyOrderToHistory>) model.get("modelObject");
        for (MyOrderToHistory myOrderToHistory : myOrderToHistories) {
            table.addCell(myOrderToHistory.getName());
            table.addCell(String.valueOf(myOrderToHistory.getWeight()));
            table.addCell(myOrderToHistory.getColor());
        }
        document.add(table);
    }
}

Где можно проставить charset=UTF-8? помогите пожалуйста..

Answer 1

В конструкторе кириллического шрифта. А потом ещё нужно явно указывать его использование при создании параграфов, фраз и других контейнеров текста.

Font font = FontFactory.getFont("DejaVuSans.ttf", "utf-8", BaseFont.EMBEDDED, 10);
PdfPCell header1 = new PdfPCell(new Phrase("Дата", font));
READ ALSO
Как настроить notepad++ для компиляции кода java

Как настроить notepad++ для компиляции кода java

Решил покодить по хардкору использовав обычный текстовый редактор, но возникла загвоздка в его настройке, кто может описать шаги для настройки...

151
Изменение цвета svg изображения по маске, загруженного в HTML с помощью &lt;img&gt;

Изменение цвета svg изображения по маске, загруженного в HTML с помощью <img>

Пытаюсь обтравить прямоугольник по маске SVGпроблема в том, что высота прямоугольника динамическая (от 0px до 32px), а SVG-изображение подгружается...

141
Почему в JavaScript keyDown не отлавливает больше 4-х одновременных нажатий?

Почему в JavaScript keyDown не отлавливает больше 4-х одновременных нажатий?

Есть виртуальная клавиатура https://codepenio/CitizenOne/pen/rReYqj

132