Отключение сжатия файлов при добавлении в качестве встроенных ресурсов

Contents
[ ]

Класс FileSpecification позволяет разработчикам добавлять вложения к PDF-документам. По умолчанию вложения сжаты. Мы обновили API, чтобы позволить разработчикам отключать сжатие при добавлении файлов в качестве встроенного ресурса. Это дает разработчикам больше контроля над обработкой файлов.

Для того чтобы разработчики могли управлять сжатием файлов, в класс FileSpecification был добавлен метод setEncoding(..). Это свойство определяет, какое кодирование будет использоваться для сжатия файла. Метод принимает значение из перечисления FileEncoding. Возможные значения - это FileEncoding.None и FileEncoding.Zip.

Если кодирование установлено на FileEncoding.None, то вложение не сжимается. Кодирование по умолчанию - FileEncoding.Zip.

Следующий фрагмент кода показывает, как добавить вложение в PDF-документ.

    public static void DisableFilesCompressionWhenAddingAsEmbeddedResources() throws IOException{
  // получить ссылку на исходный/входной файл
  java.nio.file.Path path = java.nio.file.Paths.get(_dataDir+"input.pdf");
  // прочитать все содержимое из исходного файла в ByteArray
  byte[] data = java.nio.file.Files.readAllBytes(path);
  // создать экземпляр объекта Stream из содержимого ByteArray
  InputStream is = new ByteArrayInputStream(data);
  // создать экземпляр объекта Document из экземпляра потока
  Document pdfDocument = new Document(is);
  // настроить новый файл для добавления в качестве вложения
  FileSpecification fileSpecification = new FileSpecification("test.txt", "Пример текстового файла");
  // указать свойство Encoding, установив его в FileEncoding.None
  fileSpecification.setEncoding(FileEncoding.None);
  // добавить вложение в коллекцию вложений документа
  pdfDocument.getEmbeddedFiles().add(fileSpecification);
  // сохранить новый вывод
  pdfDocument.save("output.pdf");
    }