Приветствую! Стоит задача увидеть в pdf документе кириллицу. Вот только документ не создаётся, а заполняются поля готовой pdf формы.
Если бы документ создавался самостоятельно, то решение проблемы с кодировкой я видел на форуме:
| Код | Document document = new Document(); ... String FONT_LOCATION = "tahoma.ttf"; BaseFont baseFont = BaseFont.createFont(FONT_LOCATION, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
Font font = new Font(baseFont, Font.DEFAULTSIZE, Font.NORMAL);
document.add(new Paragraph("Русский", font));
|
Может ли кто подсказать, как использовать кириллицу при заполнении готовой формы?
Выглядит это примерно так:
| Код | public void fillPdfTemplate(final byte[] pdfTemplate, final OutputStream os, final Map<String, String> fieldValuesMap) { ByteArrayInputStream is = null; PdfReader pdfReader = null; PdfStamper stamper = null; try { pdfReader = new PdfReader(new ByteArrayInputStream(template)); stamper = new PdfStamper(pdfReader, os); final BaseFont bf = BaseFont.createFont("c:/Windows/Fonts/arial.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED); // а что дальше со шрифтом делать?!
final AcroFields form = stamper.getAcroFields(); final Map< String, Item > fieldsMap = form.getFields(); String key; stamper.setFormFlattening(true); for (final Iterator<String> i = fieldsMap.keySet().iterator(); i.hasNext();) { // gets field key key = i.next(); final String value = fieldValuesMap.get(key); form.setField(key, value != null ? value : ""); stamper.partialFormFlattening(key); } } catch (final IOException ioe) { LOG.error(ioe.getMessage(), ioe); } catch (final DocumentException de) { LOG.error(de.getMessage(), de); } finally { try { if (pdfReader != null) { pdfReader.close(); } if (stamper != null) { stamper.close(); } } catch (final IOException ioe) { LOG.error(ioe.getMessage(), ioe); } catch (final DocumentException de) { LOG.error(de.getMessage(), de); } }
|
Как указать stamper'у какой шрифт использовать?
|