Desativar Compressão de Arquivos ao Adicionar como Recursos Incorporados
A classe FileSpecification permite que os desenvolvedores adicionem anexos a documentos PDF. Por padrão, os anexos são comprimidos. Atualizamos a API para permitir que os desenvolvedores desativem a compressão ao adicionar arquivos como recurso incorporado. Isso dá aos desenvolvedores mais controle sobre como os arquivos são processados.
Para permitir que os desenvolvedores controlem a compressão de arquivos, o método setEncoding(..) foi adicionado à classe FileSpecification. Esta propriedade determina qual codificação será usada para a compressão de arquivos. O método aceita um valor do enumerador FileEncoding. Os valores possíveis são FileEncoding.None e FileEncoding.Zip.
Se a Codificação estiver definida como FileEncoding.None, o anexo não será comprimido. A codificação padrão é FileEncoding.Zip.
O trecho de código a seguir mostra como adicionar um anexo a um documento PDF.
public static void DisableFilesCompressionWhenAddingAsEmbeddedResources() throws IOException{
// obter referência do arquivo de origem/entrada
java.nio.file.Path path = java.nio.file.Paths.get(_dataDir+"input.pdf");
// ler todo o conteúdo do arquivo de origem em ByteArray
byte[] data = java.nio.file.Files.readAllBytes(path);
// criar uma instância do objeto Stream a partir do conteúdo do ByteArray
InputStream is = new ByteArrayInputStream(data);
// Instanciar objeto Document a partir da instância do stream
Document pdfDocument = new Document(is);
// configurar novo arquivo a ser adicionado como anexo
FileSpecification fileSpecification = new FileSpecification("test.txt", "Arquivo de texto de exemplo");
// Especificar a propriedade Encoding definindo-a como FileEncoding.None
fileSpecification.setEncoding(FileEncoding.None);
// adicionar anexo à coleção de anexos do documento
pdfDocument.getEmbeddedFiles().add(fileSpecification);
// salvar nova saída
pdfDocument.save("output.pdf");
}