itext HTML в PDF без вложения шрифтов - PullRequest
0 голосов
/ 27 августа 2018

Я следую этому руководству в Глава 6 из iText 7: Преобразование HTML в PDF с pdfHTML при добавлении дополнительных шрифтов:

public static final String FONT = "src/main/resources/fonts/cardo/Cardo-Regular.ttf";
public void createPdf(String src, String font, String dest) throws IOException {
    ConverterProperties properties = new ConverterProperties();
    FontProvider fontProvider = new DefaultFontProvider(false, false, false);
    FontProgram fontProgram = FontProgramFactory.createFont(font);
    fontProvider.addFont(fontProgram, "Winansi");
    properties.setFontProvider(fontProvider);
    HtmlConverter.convertToPdf(new File(src), new File(dest), properties);
}

Несмотря на то, что он работает должным образом и встраивает подмножества используемых шрифтов, мне интересно, есть ли способ, чтобы итоговый PDF-документ мог не встраивать шрифты вообще. Это возможно при создании BaseFont экземпляров и установке свойства embedded на false и использовании их для создания различных строительных блоков PDF. То, что я ищу, это то же самое поведение при использовании HtmlConverter.convertToPdf().

1 Ответ

0 голосов
/ 28 августа 2018

Обычно вы должны переопределить FontProvider:

FontProvider fontProvider = new DefaultFontProvider(false, false, false) {
    @Override
    public boolean getDefaultEmbeddingFlag() {
        return false;
    }
};

Однако проблема в том, что в данный момент этот поставщик шрифтов будет перезаписан pdfHTML дальше в конвейер в ProcessorContext#reset.

Хотя эта проблема не устранена в iText, вы можете создать собственную версию pdfHTML для ваших нужд. Репо находится на https://github.com/itext/i7j-pdfhtml, и вы заинтересованы в этой линии. Просто замените его перегрузкой, как указано выше, и постройте банку.

UPD Исправление доступно начиная с pdfHTML 2.1.3 . С этой версии вы можете свободно использовать собственные поставщики шрифтов.

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