Нужно было вывести 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? помогите пожалуйста..
В конструкторе кириллического шрифта. А потом ещё нужно явно указывать его использование при создании параграфов, фраз и других контейнеров текста.
Font font = FontFactory.getFont("DejaVuSans.ttf", "utf-8", BaseFont.EMBEDDED, 10);
PdfPCell header1 = new PdfPCell(new Phrase("Дата", font));
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Решил покодить по хардкору использовав обычный текстовый редактор, но возникла загвоздка в его настройке, кто может описать шаги для настройки...
Пытаюсь обтравить прямоугольник по маске SVGпроблема в том, что высота прямоугольника динамическая (от 0px до 32px), а SVG-изображение подгружается...
Есть виртуальная клавиатура https://codepenio/CitizenOne/pen/rReYqj