Используйте как iText7, так и iText 2.17

Наш проект уже давно использует iText 2.17. Теперь мы хотели бы добавить цифровую подпись к нашим PDF-файлам, и мы предпочитаем использовать iText7. Можно ли использовать обе библиотеки iText ‹ 5.3 и 5.3+ вместе? Будет ли проблема в загрузчике классов или все пакеты будут отличаться от предшественника?


person Cybermonk    schedule 13.05.2016    source источник


Ответы (1)


Ваш вопрос начинается хорошо, но затем становится запутанным.

  • Вы можете использовать iText 2 в сочетании с iText 5.
  • Вы можете использовать iText 2 в сочетании с iText 7.
  • Вы можете использовать iText 5 в сочетании с iText 7.

Нельзя утверждать, что вы можете использовать версии ‹ 5.3 и версии >= 5.3 вместе. Например: вы не можете использовать 5.0.0 и 5.5.9 вместе, потому что у них один и тот же основной номер версии. У вас будут конфликты в именах пакетов.

Подводя итог: все основные версии имеют разные имена пакетов, так что вы можете использовать основные версии рядом друг с другом без конфликтов.

person Bruno Lowagie    schedule 13.05.2016
comment
@Cybermonk Имейте в виду, однако, что вы должны использовать материалы, связанные с безопасностью (цифровая подпись, ...) только с одной из этих версий, потому что разные версии iText основаны на разных версиях BouncyCastle (в частности, версии iText 2.x полагаются на старые), которые не могут сосуществовать в одном пути к классам. - person mkl; 13.05.2016
comment
У меня есть вопрос, который может быть связан с тем, что вы сказали. Дайджест ExternalDigest = new BouncyCastleDigest(); выдает исключение class not found. У меня есть bouncycastle bcprov-ext-jdk15on-154 в моем classPath, и я использую iText 5.5. Совместимы ли они? - person Cybermonk; 13.05.2016
comment
iText 5 использует BouncyCastle 1.49, как вы можете видеть в iText POM. github.com/itext/itextpdf/blob/develop/itext/pom. XML - person Amedee Van Gasse; 13.05.2016