Встраивание шрифтов PDF с помощью GroupDocs Conversion Java для Word

В этом подробном руководстве вы узнаете, как GroupDocs Conversion Java позволяет встраивать шрифты PDF при конвертации файла DOCX в PDF. Независимо от того, создаёте ли вы конвейер для юридических документов, публикуете электронные книги или генерируете корпоративные отчёты, приведённые ниже шаги гарантируют, что полученный PDF будет выглядеть точно так же, как оригинальный файл Word на любом устройстве.

Быстрые ответы

  • Какая библиотека обрабатывает конвертацию? GroupDocs Conversion for Java.
  • Можно ли заменить отсутствующие шрифты? Да — используйте настройки замены шрифтов.
  • Нужна ли лицензия для продакшн? Требуется коммерческая лицензия; доступна бесплатная пробная версия.
  • Какая версия Java поддерживается? JDK 8 или выше.
  • Возможна ли пакетная конвертация? Абсолютно — оберните конвертер в цикл или используйте пакетные возможности API.

Что такое GroupDocs Conversion Java?

GroupDocs Conversion Java — это высокопроизводительный API, который преобразует более 70+ форматов документов, включая DOCX, PPTX, XLSX и PDF, без необходимости установки Microsoft Office. Он предоставляет разработчикам детальный контроль над рендерингом, макетом и возможностями встраивания шрифтов PDF, обрабатывая 500‑страничный DOCX менее чем за 30 секунд на типичном сервере.

Почему использовать пользовательские шрифты при конвертации?

Встраивание правильных шрифтов гарантирует, что PDF будет выглядеть одинаково на любом устройстве, устраняет проблемы «замены шрифтов» и соответствует требованиям брендинга. Такой подход сокращает повторную работу до 40 % для команд, которым иначе пришлось бы вручную корректировать PDF после конвертации.

Предварительные требования

  • Java Development Kit (JDK) — версия 8 или новее.
  • Maven для управления зависимостями.
  • IDE (IntelliJ IDEA, Eclipse или VS Code).

Настройка GroupDocs.Conversion для Java

To start, add the GroupDocs repository and the conversion dependency to your Maven project.

<repositories>
   <repository>
      <id>repository.groupdocs.com</id>
      <name>GroupDocs Repository</name>
      <url>https://releases.groupdocs.com/conversion/java/</url>
   </repository>
</repositories>

<dependencies>
   <dependency>
      <groupId>com.groupdocs</groupId>
      <artifactId>groupdocs-conversion</artifactId>
      <version>25.2</version>
   </dependency>
</dependencies>

Приобретение лицензии

Вы можете начать с бесплатной пробной версии или получить временную лицензию для расширенного тестирования. Для коммерческого использования рассмотрите покупку полной лицензии. Посетите GroupDocs Licensing, чтобы изучить варианты.

Базовая инициализация и настройка

После добавления зависимости создайте экземпляр Converter, указывающий на ваш исходный файл DOCX. Converter — основной класс, управляющий операциями конвертации документов.

import com.groupdocs.conversion.Converter;

// Initialize with a document path
Converter converter = new Converter("YOUR_DOCUMENT_DIRECTORY/SampleDocx.docx");

Руководство по реализации

Ниже представлено пошаговое руководство, показывающее, как установить шрифт по умолчанию для PDF и определить пользовательские замены шрифтов.

Шаг 1: Определить путь конвертации и параметры загрузки

Сначала укажите, где будет сохранён PDF, и настройте параметры загрузки, контролирующие обработку шрифтов. setAutoFontSubstitution отключает автоматическое угадывание шрифтов во время конвертации. setDefaultFont задаёт шрифт‑замену, используемый, когда оригинальный шрифт отсутствует. setFontSubstitutes сопоставляет недоступные шрифты альтернативными, которые вы предоставляете.

import com.groupdocs.conversion.options.load.WordProcessingLoadOptions;
import com.groupdocs.conversion.contracts.FontSubstitute;

// Output PDF path
String convertedFile = "YOUR_OUTPUT_DIRECTORY/ConvertedWordToPdf.pdf";

// Configure load options for Word documents
double autoFontSubstitution(false);  // Disable automatic font substitution
defaultFont("resources/fonts/Helvetica.ttf");  // Set a default fallback font

// Prepare font substitutes list
List<FontSubstitute> fontSubstitutes = new ArrayList<>();
fontSubstitutes.add(FontSubstitute.create("Tahoma", "Arial")); // Substitute Tahoma with Arial
fontSubstitutes.add(FontSubstitute.create("Times New Roman", "Arial")); // Substitute Times New Roman with Arial

// Apply the substitutes to load options
setFontSubstitutes(fontSubstitutes);

Прямой ответ

Установите setAutoFontSubstitution(false), чтобы отключить автоматические догадки, затем задайте надёжный шрифт‑замену с помощью setDefaultFont("Helvetica.ttf"). Наконец, сопоставьте любые отсутствующие шрифты известным альтернативам, используя setFontSubstitutes(...). Это гарантирует, что каждый символ в исходном DOCX имеет соответствующий глиф в результирующем PDF.

Объяснение

  • setAutoFontSubstitution(false): Отключает автоматическое угадывание библиотеки, предоставляя вам полный контроль.
  • setDefaultFont("Helvetica.ttf"): Обеспечивает универсальный шрифт‑замену, когда запрашиваемый шрифт не найден.
  • setFontSubstitutes(...): Сопоставляет отсутствующие шрифты альтернативным, которые известны как доступные в целевой системе.

Шаг 2: Настроить параметры конвертации PDF

Теперь создайте объект параметров, специфичный для PDF. PdfConvertOptions определяет параметры вывода PDF, такие как встраивание шрифтов и сжатие. setEmbedFonts включает встраивание выбранных шрифтов в генерируемый PDF.

import com.groupdocs.conversion.options.convert.PdfConvertOptions;

// Initialize PDF conversion options
double options = new PdfConvertOptions();

Прямой ответ

Создайте экземпляр PdfConvertOptions, при необходимости включите встраивание шрифтов с помощью setEmbedFonts(true) и настройте параметры сжатия для баланса между размером файла и качеством. Эти параметры позволяют точно настроить итоговый PDF, чтобы он соответствовал как визуальному соответствию, так и ограничениям по хранению.

Позже вы можете расширить PdfConvertOptions, чтобы изменить размер страницы, поля или настройки сжатия.

Шаг 3: Выполнить конвертацию

Наконец, запустите конвертацию с ранее определёнными параметрами загрузки и конвертации. convert(source, target, loadOptions, pdfOptions) выполняет конвертацию с указанными настройками.

// Convert Word document to PDF with specified font settings
converter.convert(convertedFile, () -> loadOptions, options);

Прямой ответ

Вызовите converter.convert(sourcePath, targetPath, loadOptions, pdfOptions). API читает DOCX, применяет ваши правила шрифтов, встраивает выбранные шрифты и записывает PDF, который точно сохраняет оригинальную типографику.

API читает DOCX, применяет ваши правила шрифтов и записывает PDF, встраивая выбранные шрифты.

Практические применения

  1. Управление юридическими документами — Сохранение точной типографии для PDF, готовых к суду.
  2. Издательская индустрия — Сохранение согласованности фирменных шрифтов в электронных книгах и каталогах.
  3. Корпоративные отчёты — Обеспечение соответствия PDF, предназначенных для заинтересованных сторон, корпоративным руководствам по стилю.
  4. Образовательные материалы — Конвертация лекционных записей с сохранением пользовательских академических шрифтов.

Соображения по производительности

  • Управление памятью — Большие файлы DOCX могут потреблять значительный объём кучи; контролируйте память JVM и рассматривайте корректировки -Xmx.
  • Пакетная обработка — Оберните логику конвертации в цикл или используйте пакетный API GroupDocs для эффективной обработки нескольких файлов.
  • Распределение ресурсов — Выделяйте достаточное количество ядер CPU при параллельной конвертации множества документов.
  • Пропускная способность — На 4‑ядерной ВМ библиотека может обрабатывать до 12 300‑страничных документов в минуту при встраивании шрифтов.

Распространённые проблемы и решения

ПроблемаРешение
Шрифты не заменяютсяУбедитесь, что файлы шрифтов существуют по указанным вами путям и что имена FontSubstitute точно соответствуют названиям семейств шрифтов в исходном DOCX.
Ошибки нехватки памятиУвеличьте размер кучи JVM (-Xmx2g или больше) или обрабатывайте файлы небольшими партиями.
В PDF отсутствуют встроенные шрифтыУбедитесь, что setDefaultFont указывает на файл TrueType (.ttf) или OpenType (.otf) и что лицензия позволяет встраивание шрифтов.
Неправильный макет страницы после конвертацииИспользуйте PdfConvertOptions.setPageSize(...), чтобы соответствовать оригинальным размерам страницы Word.
Медленная конвертация очень больших файловВключите режим потоковой передачи с помощью PdfConvertOptions.setStream(true), чтобы снизить нагрузку на память.

Часто задаваемые вопросы

Q: Можно ли использовать GroupDocs.Conversion без покупки лицензии?
A: Да, вы можете начать с бесплатной пробной версии или получить временную лицензию для оценки.

Q: Что делать, если шрифты не заменяются корректно?
A: Убедитесь, что файлы шрифтов доступны и правильно указаны в setFontSubstitutes. Дважды проверьте точные названия семейств шрифтов.

Q: Как улучшить производительность конвертации больших документов?
A: Обрабатывайте документы пакетами, контролируйте системные ресурсы, увеличьте размер кучи JVM и включите режим потоковой передачи.

Q: Можно ли конвертировать другие типы документов, кроме Word?
A: Абсолютно. GroupDocs Conversion поддерживает изображения, таблицы, презентации и многие другие форматы.

Q: Где можно найти дополнительную документацию по GroupDocs.Conversion?
A: Посетите официальные руководства по адресу GroupDocs Java Conversion Docs для подробных ссылок на API.

Заключение

Теперь у вас есть полное, готовое к продакшн решение для встраивания шрифтов PDF при конвертации DOCX в PDF с помощью GroupDocs Conversion Java. Настраивая замену шрифтов и шрифты по умолчанию, вы гарантируете, что каждый PDF точно повторяет внешний вид оригинального документа Word, независимо от просмотрщика или платформы.

Следующие шаги

  • Поэкспериментируйте с дополнительными PdfConvertOptions, такими как соответствие PDF/A или сжатие изображений.
  • Исследуйте пакетную конвертацию для автоматизации масштабных конвейеров документов.
  • Ознакомьтесь с полным набором API в официальной документации, чтобы открыть продвинутые функции, такие как водяные знаки или цифровые подписи.

Последнее обновление: 2026-07-14
Тестировано с: GroupDocs.Conversion 25.2
Автор: GroupDocs

Ресурсы

Связанные руководства