Различные организации используют файлы PDF для безопасного и организованного обмена информацией. Однако иногда файлы PDF становятся огромными из-за встроенного содержимого, такого как изображения, видео, рисунки и т. д. Вы можете легко оптимизировать или сжать такой размер файла PDF без какого-либо ущерба для качества. Давайте рассмотрим следующие сценарии сжатия и оптимизации размера PDF, которые вы можете использовать в своих Java-приложениях:

Оптимизация размера PDF и API сжатия — установка

Вы можете использовать эффективные и надежные процедуры API Aspose.PDF for Java для оптимизации или сжатия PDF-файлов большого размера с сохранением того же качества. Вы можете загрузить файлы JAR из Загрузки или с помощью конфигураций Maven в своем проекте.

Оптимизируйте PDF-документы для Интернета с помощью Java

PDF-документ можно оптимизировать, когда вам нужно использовать его на своих веб-страницах. Эта оптимизация полезна для максимально быстрого отображения первой страницы PDF-документа. Вы можете получить оптимизированный PDF-файл, выполнив следующие действия:

  1. PDF-файл с открытым исходным кодом
  2. Вызовите метод оптимизации для оптимизации PDF
  3. Сохраните выходной PDF-файл

Приведенный ниже фрагмент кода является примером того, как оптимизировать PDF-документы для Интернета в вашей среде Java:

// Открыть документ
Document pdfDocument = new Document("Original.pdf");

// Оптимизировать для Интернета
pdfDocument.optimize();

// Сохранить выходной документ
pdfDocument.save("Optimized_output.pdf");

Сжатие или оптимизация размера PDF-файла, содержащего изображения, с помощью Java

Здесь мы в основном будем обсуждать сценарии, в которых PDF-файлы содержат много изображений и поэтому имеют огромный размер. Например, файл PDF, содержащий чертежи различных моделей самолетов и информацию о каждой детали, второстепенной или основной, включенной в виде изображений или изображений всех компонентов. Более того, многие профессиональные документы могут содержать изображения в качестве основных артефактов файла. В таких сценариях мы можем сжимать файлы PDF следующими способами:

Уменьшение, сжатие и изменение размера всех изображений с помощью Java

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

  1. Загрузить исходный PDF-файл
  2. Инициализировать объект OptimizationOptions
  3. Установите качество изображения и разрешение
  4. Вызвать метод optimizeResources
  5. Сохраните выходной PDF-документ

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

// Загрузить входной документ
Document doc = new Document(dataDir + "Test.pdf");

// Инициализировать объект OptimizationOptions
OptimizationOptions opt = new OptimizationOptions();

// Включить сжатие изображений
// Установите качество и разрешение изображений в файле PDF
opt.getImageCompressionOptions().setCompressImages(true);
opt.getImageCompressionOptions().setImageQuality(10);
opt.getImageCompressionOptions().setMaxResolution(150);
opt.getImageCompressionOptions().setResizeImages(true);
doc.optimizeResources(opt);

// Сохраните обновленный файл
doc.save(dataDir + "compressingPDFWithImages_out.pdf");

Удаление встроенных шрифтов, неиспользуемых потоков и связывание повторяющихся потоков с помощью Java

Когда вам нужно уменьшить размер файла PDF, важен каждый байт. Встроенные шрифты могут помочь уменьшить размер файла с помощью различных подходов. Например, вы можете либо отключить все шрифты, либо оставить только подмножество символов шрифта, которые используются в файле PDF. Это было бы частичное извлечение шрифтов, которое все равно помогло бы минимизировать размер файла. Кроме того, вы можете удалить неиспользуемые потоки или связать повторяющиеся потоки, чтобы сэкономить место. Эти оптимизации PDF значительно уменьшат размер файла. Вам необходимо выполнить следующие шаги, чтобы оптимизировать и уменьшить размер файла PDF:

  1. Загрузить входной PDF-документ
  2. Инициализировать объект класса OptimizationOptions
  3. Либо отключите все шрифты, либо подмножество шрифтов.
  4. Связать повторяющиеся потоки
  5. Удалить неиспользуемые потоки

В следующем коде показано, как сжимать PDF-файлы для оптимизации, уменьшения и минимизации размера PDF-документов:

Document doc = new Document(dataDir + "Test.pdf");
OptimizationOptions opt = new OptimizationOptions();

// Либо
// Отключить все шрифты в PDF
opt.setUnembedFonts(true);

//ИЛИ ЖЕ
// сохраняйте встроенные шрифты только для используемых символов
opt.setSubsetFonts(true);

// связать повторяющиеся потоки
opt.setLinkDuplcateStreams(false);

// Удалить неиспользуемые потоки
opt.setRemoveUnusedStreams(false);

// Удалить неиспользуемые объекты
opt.setRemoveUnusedObjects(false);

doc.optimizeResources(opt);

// Сохраните обновленный файл
doc.save(dataDir + "compressingPDF.pdf");

До сих пор мы обсуждали подходы к оптимизации в основном для файлов PDF с изображениями. Теперь давайте рассмотрим еще несколько способов оптимизации PDF.

Сжатие или уменьшение размера PDF-документа с помощью Java

Файлы PDF часто содержат аннотации, редактируемые поля формы и цветовые артефакты, которые в совокупности занимают место. Давайте рассмотрим следующие процедуры для сжатия размера файла PDF.

Удаление или сведение аннотаций для уменьшения размера с помощью Java

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

  1. PDF-документ с открытым исходным кодом
  2. Итерация по каждой странице
  3. Свести или удалить аннотации
  4. Сохраните выходной PDF-документ

Фрагмент кода ниже является примером того, как удалить или сгладить аннотации в документах PDF с помощью Java:

// Открыть документ
Document pdfDocument = new Document(dataDir + "OptimizeDocument.pdf");

// Итерация по каждой странице и аннотации
for (Page page : pdfDocument.getPages())
{
    for (Annotation annotation : page.getAnnotations())
    {
        // Либо сгладить аннотацию
        annotation.flatten();
        
        // ИЛИ удалить аннотацию
        // page.getAnnotations().delete(аннотация);        
    }
}
// Сохранить оптимизированный PDF-документ
pdfDocument.save(dataDir + "OptimizeDocument_out.pdf");

Удаление полей формы для уменьшения размера файла PDF с помощью Java

Заполняемые PDF-формы распространены там, где вам нужно предоставить данные в больших масштабах. После отправки данных заполняемые поля формы можно удалить, чтобы оптимизировать и минимизировать размер файла PDF. Вам необходимо выполнить следующие шаги для удаления полей формы:

  1. Загрузить входной PDF-документ
  2. Проверка полей формы в документе PDF
  3. Перебрать каждое поле и сгладить его
  4. Сохраните обновленный сжатый PDF-файл.
// Загрузить исходную PDF-форму
Document doc = new Document(dataDir + "input.pdf");

// Свести поля формы
if (doc.getForm().getFields().length > 0)
{
    for (Field item : doc.getForm().getFields())
    {
        item.flatten();
    }
}

dataDir = dataDir + "FlattenForms_out.pdf";
// Сохраните обновленный документ
doc.save(dataDir);

Преобразование цветового пространства RGB в оттенки серого для сжатия и оптимизации PDF с помощью Java

Большинство файлов PDF содержат текстовое содержимое, которое также может быть хорошо представлено в цветовом пространстве «Оттенки серого». Более того, когда целью и приоритетом является сохранение каждого байта, даже изображения могут быть преобразованы в оттенки серого, поскольку основное внимание уделяется архивированию данных. Вы можете выполнить следующие шаги для сжатия и оптимизации размера PDF-файла путем преобразования цветового пространства RGB в оттенки серого:

  1. Доступ к исходному PDF-документу
  2. Инициализировать экземпляр RgbToDeviceGrayConversionStrategy
  3. Преобразование цветового пространства каждого цвета в оттенки серого
  4. Сохранить выходной оптимизированный PDF-файл

В следующем фрагменте кода показано, как сжать и оптимизировать размер PDF путем изменения цветового пространства в среде Java:

// Загрузить входной PDF-документ
Document document = new Document("input.pdf");

// Инициализировать экземпляр RgbToDeviceGrayConversionStrategy.
RgbToDeviceGrayConversionStrategy strategy = new RgbToDeviceGrayConversionStrategy();
for (int idxPage = 1; idxPage <= document.getPages().size(); idxPage++) {
	Page page = document.getPages().get_Item(idxPage);
        
        // Преобразование цветового пространства каждой страницы в оттенки серого
	strategy.convert(page);
}
// Сохранить выходной PDF-документ
document.save("output.pdf");

Вывод

В этой статье мы рассмотрели различные способы и подходы к оптимизации и сжатию PDF-файлов для уменьшения их размера. Прежде всего, мы оптимизировали размер файла PDF для Интернета с помощью Java. Затем мы научились сжимать, сжимать и изменять размер изображений в файле PDF, содержащем несколько изображений. Кроме того, мы также изучили работу со шрифтами, потоками, аннотациями, полями форм, а также преобразование цветового пространства документа PDF в оттенки серого, чтобы с помощью Java можно было создать файл PDF меньшего размера, но того же качества. Кроме того, в случае любого вопроса, связанного с этой темой, вы можете связаться с нами через Форум бесплатной поддержки.

Смотрите также

Информация: с помощью нового онлайн-приложения от Aspose вы можете преобразовать набор изображений в видео. Вы также можете попробовать другой сервис, который извлекает звуки из видео.