Отключение сжатия файлов при добавлении в качестве встроенных ресурсов
Класс 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");
}