Сравнения

gPdf vs iText для транспортных этикеток

iText — отраслевой PDF SDK; gPdf — хостинговый сервис PDF-генерации. Для термоэтикеток 4×6 сравниваем стоимость, интеграцию, обслуживание и развертывание на edge.

Кратко

iText — зрелый PDF SDK с серьезной лицензионной моделью; платить за него нормально. Вопрос для логистических команд в том, за что именно они платят. iText продает SDK; сервис генерации этикеток вокруг него вы строите, разворачиваете, масштабируете и поддерживаете сами. gPdf продает сам сервис: отправляете JSON этикетки и примерно через 4 ms на edge получаете сканируемый PDF термоэтикетки, без JVM, пулов прогрева и ночных патчей под спецификации перевозчиков.

Бок о бок

Критерий gPdf iText Преимущество
Первая термоэтикетка 4×6, готовая к боевой печати Около 5 минут — скопировать JSON-пример, выполнить curl и отсканировать PDF на принтере Zebra. 2–5 инженерных дней — добавить зависимость Maven/NuGet, написать Java-класс, настроить Barcode128, подобрать шрифты, проверить считываемость и развернуть. gPdf
Форма интеграции HTTPS POST из любого языка (Node, Python, Go, .NET, Ruby, PHP, Java). Только Java или .NET; добавляет JVM/CLR в стек выполнения. gPdf
p50 рендера (одна этикетка 4×6)
Рендер iText внутри процесса быстрый; цена за это — хостинг JVM. gPdf рендерит в PoP на edge рядом со складом, поэтому сетевой переход становится меньшей частью бюджета.
Около 4 ms в ближайшем Cloudflare PoP (более 300 по миру). Около 2 ms в прогретом режиме внутри JVM, плюс 100–250 ms сети, если JVM находится в другом регионе, чем склад. gPdf
Месячная стоимость при 100 000 этикеток 5 USD (Basic; эффективно 0,050 USD за 1 000 страниц). Путь соблюдения AGPL или коммерческая лицензия по запросу + серверы + дежурство. gPdf
Месячная стоимость при 1 млн этикеток 50 USD по публичной формуле Basic за страницу; enterprise-предложения могут отличаться. Та же лицензия + более крупный отказоустойчивый контур + больше инженерных часов в месяц. gPdf
Месячная стоимость при 10 млн этикеток
Полное TCO-сравнение — лицензия, инфраструктура, инженерное время и обслуживание — разобрано в подробной статье ниже.
500 USD по публичной формуле Basic за страницу; enterprise-предложения могут отличаться. Отказоустойчивость в нескольких регионах + дежурная ротация + поддержка спецификаций перевозчиков растут вместе с объемом. gPdf
Когда перевозчик меняет спецификацию (UPS SSCC, FedEx tracking, SF Express check digit) Правите JSON-шаблон; среду выполнения не трогаете. Срок: часы. Правка Java → модульный тест → интеграционный тест → сборка JAR → развертывание в staging → выкатка в боевой контур по регионам. Срок: 2–10 инженерных дней. gPdf
GS1-128 с идентификаторами применения Один `barcode`-элемент с `format: "gs1_128"` и строкой идентификаторов применения в `content`. Примитив Barcode128 плюс ручное кодирование идентификаторов применения и FNC1 в Java. gPdf
Визуальный редактор шаблонов https://studio.gpdf.com — проектирует тот же JSON, который работает в боевой среде. Публичный, включен в продукт. iText DITO — часть коммерческой экосистемы iText. Поровну
Офлайн / изолированное от сети развертывание Доступно через частное enterprise-развертывание (отдельная договоренность). Нативно — iText работает в любой JVM, сеть не требуется. iText
Глубокая работа с PDF (подписи, формы, разделение, редактирование) Не входит в область продукта — gPdf рендерит новые PDF из JSON. Сильная сторона iText: именно здесь SDK действительно отрабатывает свою лицензию. iText
Зрелость Публично доступен с 2025 года. С 1998 года. iText

Когда что выбрать

Выбирайте gPdf, если
  • Вы генерируете логистические этикетки на любом объеме (от 5 000 в день до 5 млн в день), и PDF-генерация для вас инфраструктура бизнеса, а не сам продукт.
  • Ваш стек использует несколько языков программирования (Node, Python, Go, .NET, Ruby), и вы не хотите держать Java-сервис только ради рендера этикеток.
  • Вы хотите принимать изменения спецификаций перевозчиков как обновления JSON-шаблона, а не как новое развертывание JVM.
  • Ваши склады распределены по миру, и вы не хотите обслуживать рендер этикеток в четырех AWS-регионах.
  • Вам нужна предсказуемая цена за страницу с опубликованной начальной ценой, а не годовая лицензия плюс инфраструктурный проект.
Выбирайте iText, если
  • Вы работаете с существующими PDF: подписи, заполнение форм, разделение, глубокое редактирование — а не только рендер новых файлов.
  • Ваш стек уже прежде всего Java/.NET, и исходящая HTTP-зависимость воспринимается как шаг назад.
  • Вы работаете в изолированных от сети или строго офлайн-средах, где исходящий HTTP запрещен.
  • PDF-инструментарий — ядро вашего продукта: вы PDF-вендор, платформа электронной подписи или legal-tech-архив, и владеть SDK — правильный уровень контроля.
  • Вам нужна нишевая поддержка PDF-спецификаций, которую gPdf не поставляет: XFA-формы, продвинутые обработчики цифровых подписей, профили аттестации.
Возможности

gPdf — это edge-native API преобразования JSON в PDF для больших объёмов счетов, документов, транспортных этикеток, штрихкодов, PDF/A и электронных счетов. PDF-рендеринг миллисекундного класса в глобальной edge-сети — оптимизирован для предсказуемой генерации документов промышленного уровня. Цены уровня инфраструктуры, достаточно низкие, чтобы заменить создание и эксплуатацию собственной PDF-инфраструктуры.

Возможности

iText отлично подходит, когда продукту нужен PDF SDK

iText — зрелый PDF SDK. Это важно. Если ваш продукт редактирует существующие PDF, подписывает документы, заполняет формы, объединяет файлы, реализует нишевые PDF-процессы или требует глубокого Java/.NET-контроля над низкоуровневыми PDF-объектами, iText часто дает правильный уровень владения.

Для логистических команд вопрос другой: вам нужен PDF SDK или вам нужно, чтобы каждый день надежно генерировались этикетки, счета, квитанции и операционные документы? Для генерации структурированных документов покупка или внедрение библиотеки — только первая строка счета. Сервис вокруг нее все равно придется построить.

Та же семья документов, другая продуктовая граница

С iText приложение владеет интеграцией SDK. Обычно это Java- или .NET-сервисы, настройка шрифтов, настройка штрихкодов, параметры PDF/A, развертывание, мониторинг, планирование емкости и дежурная реакция на ошибки рендера.

С gPdf приложение отправляет JSON или template_id + data по HTTPS. Рендерер, развертывание на edge, встроенные шрифты, примитивы штрихкодов, вывод с паролем, управление метаданными, PDF/A-профили, упаковка Factur-X/ZUGFeRD и визуальный процесс проектирования входят в границу сервиса.

Соответствие продукта: низкоуровневый контроль PDF против генерируемых бизнес-документов

Выбирайте iText, когда PDF-слой — ядро продукта: legal-tech-архивы, платформы электронной подписи, системы управления документами, инструменты восстановления или изменения PDF либо встроенные Java/.NET-системы, которые не могут вызывать внешний API.

Выбирайте gPdf, когда продукт не является PDF-редактором. Логистика, ecommerce, ERP, fintech, ticketing и back-office-системы обычно нуждаются в предсказуемых PDF из структурированных данных. В таких случаях лучший продукт часто не самый программируемый SDK, а самый короткий надежный путь от данных к готовому документу.

Время разработки: внедрение SDK против API-шаблона

Типичная оценка “с нуля до термоэтикетки, которая реально сканируется на Zebra ZT411”:

Путь iText — Java; упрощенно, в реальном коде добавятся настройка сборки, регистрация шрифтов, тест считываемости и CI-пайплайн:

PdfWriter writer = new PdfWriter("label.pdf");
PdfDocument pdf = new PdfDocument(writer);
PageSize labelSize = new PageSize(288, 432);     // 4×6 in @ 72 dpi
Document doc = new Document(pdf, labelSize);
// Address block, sender block, carton ID, service code…
// (15–25 more lines positioning text and configuring Barcode128 with
// GS1 Application Identifiers, fonts, FNC1 framing, then a JUnit test
// that loads the PDF and validates the barcode renders at 203 dpi)
Barcode128 code = new Barcode128(pdf);
code.setCode("(01)00012345678905(21)SN12345");
code.setCodeType(Barcode128.CODE128);
// … position, sizing, human-readable interpretation line …
doc.close();

Типичное время до первого успешного результата — от mvn init до чисто сканируемой этикетки: 2–5 инженерных дней.

Путь gPdf — любой язык; ниже пример curl:

curl -X POST https://api.gpdf.com/api/v1/pdf/render \
  -H "Authorization: Bearer $GPDF_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "pages": [{
      "size": "label_4_6_in",
      "elements": [
        { "type": "text", "x": 4, "y": 12,
          "content": "Acme Distribution Centre\n1200 Logistics Pkwy\nMemphis TN 38116" },
        { "type": "barcode", "format": "gs1_128",
          "content": "(01)00012345678905(21)SN12345",
          "x": 4, "y": 60, "width": 92, "height": 22,
          "barcode_text": { "enabled": true, "position": "bottom" }
        }
      ]
    }]
  }' -o label.pdf

Типичное время до первого успешного результата: около 5 минут, включая чтение JSON-примера и печать PDF на той же Zebra ZT411.

Разница не в инженерном таланте. Она в том, где проходит продуктовая граница. С iText ваша команда строит сервис этикеток. С gPdf сервис этикеток уже является продуктом, который вы вызываете.

Studio и изменения шаблонов

Логистика — редкая область, где спецификация документа меняется извне вашей команды. UPS меняет правило SSCC. SF Express добавляет контрольную цифру. FedEx публикует новый блок HAZMAT. Какой бы стек рендера вы ни выбрали, он должен принять это изменение.

С iText: разработчик читает бюллетень перевозчика, меняет Java/.NET-код, запускает модульные и интеграционные тесты, собирает сервис, разворачивает в staging, затем в боевом контуре и выкатывает изменение по регионам. Во время выкатки склады еще могут печатать старый формат.

С gPdf: редактируете JSON-шаблон в коде или используете gPdf Studio, чтобы визуально поправить макет, добавляя и перетаскивая элементы. Сам рендерер не двигается; меняется только шаблон. Если изменение перевозчика касается формата штрихкода, который gPdf уже поддерживает, боевая интеграция может остаться template_id + data.

Ценовая модель: лицензионный путь против инфраструктурной цены за страницу

Решение о цене iText — не только “стоимость библиотеки”. iText публикует путь AGPL и коммерческие лицензионные варианты. Путь AGPL может быть бесплатным для совместимого open-source использования, но несет обязательства по раскрытию исходного кода. Коммерческие лицензии освобождают команды от этих AGPL-ограничений, а подписку и OEM-варианты iText описывает как зависящие от запроса или объема.

gPdf оценивает сам сервис генерации. Публичная цена начинается с 5 USD/мес. за 100 000 страниц на Basic, с той же опубликованной формулой за страницу на странице цен и в машиночитаемых ценовых эндпоинтах.

Для объемов, о которых чаще всего спрашивают логистические команды:

Месячный объем Публичная цена gPdf Эффективно за 1 000 этикеток
100 000 этикеток 5 USD 0,050 USD
1 млн этикеток 50 USD по публичной цене за страницу 0,050 USD
10 млн этикеток 500 USD по публичной цене за страницу 0,050 USD
Более 100 млн этикеток Обсуждается индивидуально для enterprise

Колонка публичной цены — простая часть. Сложнее остальной счет: лицензия и путь соблюдения требований, среда выполнения сервиса, отказоустойчивый контур, инженерные часы, региональное развертывание, поддержка спецификаций перевозчиков и поддержка.

Полная TCO-разбивка — с оценками инженерных месяцев по уровням объема, диапазонами инфраструктурных расходов и кривой, по которой SDK-сервис поглощает операционные расходы при росте объема — находится в подробном анализе:

TCO транспортных этикеток: iText vs gPdf при 100 000 → 100 млн страниц в месяц

Edge-генерация и операционные расходы

iText может быть очень быстрым внутри процесса. Операционные расходы зависят от того, где живет рендерер. Если склад в Европе вызывает сервис этикеток в одном американском регионе, сама этикетка может быстро отрендериться внутри JVM, но для пользователя все равно ощущаться медленной. Развертывание в нескольких регионах решает это, но тогда команда владеет развертыванием, мониторингом, емкостью и выкаткой в каждом регионе.

gPdf переносит сервис генерации на Cloudflare edge. Для транспортных этикеток и счетов продуктовая ценность не только во времени рендера p50; она в том, что не нужно запускать PDF-сервис рядом с каждым складом, каждой интеграцией перевозчика или каждым региональным бэкендом.

Требования соответствия и стоимость качества документа

iText имеет глубокие PDF-возможности, включая процессы, которые gPdf не пытается заменить. Именно поэтому iText силен для команд, которым нужен низкоуровневый контроль.

Для генерации бизнес-документов gPdf упаковывает типовые требования к выводу как продуктовые возможности: CJK-шрифты, векторные штрихкоды, PDF/A-профили, упаковку Factur-X/ZUGFeRD, метаданные, вывод с паролем и генерацию по шаблонам. Сравнение стоимости должно учитывать, сколько из этого ваша команда хочет собирать и тестировать внутри собственного сервиса.

Когда iText все еще правильный ответ

Сравнение, будто конкурент никогда не выигрывает, — маркетинговый шум. iText остается лучшим выбором, когда:

  • Вы редактируете PDF, а не только рендерите новые. Подписи, заполнение форм, разделение, правки страниц — gPdf рендерит новые PDF из JSON и не входит в эти процессы.
  • Ваш стек Java/.NET-first. Если остальные сервисы работают на JVM, а исходящий HTTP кажется шагом назад, iText держит все внутри процесса.
  • Вы работаете в изолированной от сети или строго офлайн-среде. Исходящий HTTPS имеет неправильную форму для некоторых складских или государственных внедрений. iText работает везде, где есть JVM.
  • PDF-инструментарий — ваш продукт. Если вы PDF-вендор, платформа электронной подписи или legal-tech-архив, владеть SDK — правильный уровень контроля. gPdf создан для команд, чей продукт — логистика, выставление счетов или коммерция, а не сами PDF.
  • Вам нужна нишевая поддержка PDF-спецификаций (XFA-формы, продвинутые обработчики цифровых подписей, профили аттестации), которую gPdf не поставляет.

Для “мне нужна сканируемая этикетка на посылке и миллион посылок в месяц” gPdf дает путь с меньшим трением. Для “мне нужно изменить существующий юридический PDF внутри Java-бэкенда” правильнее iText.

Связанные сценарии PDF-генерации

Команды, которые сравнивают iText и gPdf, обычно разделяют два вопроса: нужно ли владеть PDF SDK или нужно надежно генерировать новые документы из данных. Для этикеток лучше начать с API транспортных этикеток и GS1-128 в JSON. Для счетов и требований соответствия полезны API для PDF счетов, API PDF/A и API Factur-X. Если команда ищет более легкую замену SDK-сервису, отправная точка — API JSON в PDF.

FAQ

iText бесплатен?

iText имеет AGPL-путь для совместимого open-source использования и коммерческие лицензии для команд, которые не могут или не хотят выполнять AGPL-обязательства.

gPdf заменяет iText?

Нет. gPdf — сервис PDF-генерации для новых структурированных документов. iText остается сильнее для глубокой работы с PDF: редактирования, подписей, заполнения форм, разделения и низкоуровневого SDK-контроля.

Зачем сравнивать цену, если iText работает по индивидуальным предложениям?

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

Форма миграции

Для команд, которые переносят рендер этикеток с iText на gPdf, diff выглядит примерно так:

- // Before: a Java label-rendering service
- PdfWriter writer = new PdfWriter(out);
- PdfDocument pdf = new PdfDocument(writer);
- Document doc = new Document(pdf, new PageSize(288, 432));
- // 20–40 lines wiring fonts, positions, Barcode128 with GS1 AIs
- doc.close();
+ // After: HTTPS POST the structured DocumentRequest from any language
+ const res = await fetch('https://api.gpdf.com/api/v1/pdf/render', {
+   method: 'POST',
+   headers: { Authorization: `Bearer ${KEY}`, 'Content-Type': 'application/json' },
+   body: JSON.stringify(labelDocumentRequest),
+ });
+ const pdf = Buffer.from(await res.arrayBuffer());

После перехода Java-сервис этикеток сжимается до одного fetch-вызова из языка, который уже оркестрирует заказы. JVM исчезает из пути этикетки; изменения спецификаций перевозчиков перестают быть событием развертывания; дежурная ротация перестает получать алерты из-за OOM при рендере этикеток.

См. также