Extraer y Guardar un Adjunto

Obtener Adjuntos de un Documento PDF

Con Aspose.PDF, es posible obtener todos los adjuntos de un documento PDF. Esto es útil cuando desea guardar los documentos por separado del PDF o si necesita eliminar los adjuntos de un PDF.

Los siguientes fragmentos de código muestran cómo obtener todos los adjuntos de un documento PDF.

   public static void GetAttachmentsFromPDFDocument() {
// Abrir documento
Document pdfDocument = new Document(_dataDir+"input.pdf");
  // Obtener archivo incrustado particular
  FileSpecification fileSpecification = pdfDocument.getEmbeddedFiles().get_Item(1);
  // Obtener las propiedades del archivo
  System.out.printf("Nombre: - " + fileSpecification.getName());
  System.out.printf("\nDescripción: - " + fileSpecification.getDescription());
  System.out.printf("\nTipo MIME: - " + fileSpecification.getMIMEType());
  // Obtener adjunto del archivo PDF
  try {
   InputStream input = fileSpecification.getContents();
   File file = new File(fileSpecification.getName());
   // Crear ruta para el archivo desde el PDF
   file.getParentFile().mkdirs();
   // Crear y extraer archivo desde el PDF
   java.io.FileOutputStream output = new java.io.FileOutputStream(fileSpecification.getName(), true);
   byte[] buffer = new byte[4096];
   int n = 0;
   while (-1 != (n = input.read(buffer)))
    output.write(buffer, 0, n);
   // Cerrar objeto InputStream
   input.close();
   output.close();
  } catch (IOException e) {
   e.printStackTrace();
  }
  // Cerrar objeto Document
  pdfDocument.dispose();
        
    }

Obtener Información del Adjunto

Como se menciona en Obtener Adjuntos de un Documento PDF, la información del adjunto se mantiene en el objeto FileSpecification, recopilado con otros adjuntos en la colección EmbeddedFiles del objeto Document.

El objeto FileSpecification proporciona métodos que obtienen información sobre el adjunto, por ejemplo:

  • getName() – obtiene el nombre del archivo.
  • getDescription() – obtiene la descripción del archivo.
  • getMIMEType() – obtiene el tipo MIME del archivo.
  • getParams() – información sobre los parámetros del archivo, por ejemplo, CheckSum, CreationDate, ModDate y Size.

Para obtener estos parámetros, primero asegúrese de que el método getParams() no devuelva nulo.

Puede iterar a través de todos los adjuntos en la colección EmbeddedFiles utilizando un bucle for, o obtener un adjunto individual especificando su valor de índice. El siguiente fragmento de código muestra cómo obtener información sobre un archivo adjunto específico.

    public static void GetAttachmentInformation() {
  // Abrir documento
  Document pdfDocument = new Document(_dataDir+"input.pdf");
  // Obtener un archivo incrustado en particular
  FileSpecification fileSpecification = pdfDocument.getEmbeddedFiles().get_Item(1);
  // Obtener las propiedades del archivo
  System.out.println("Nombre:-" + fileSpecification.getName());
  System.out.println("Descripción:- " + fileSpecification.getDescription());
  System.out.println("Tipo Mime:-" + fileSpecification.getMIMEType());
  // Verificar si el objeto parámetro contiene los parámetros
  if (fileSpecification.getParams() != null) {
   System.out.println("Suma de verificación:- " + fileSpecification.getParams().getCheckSum());
   System.out.println("Fecha de creación:- " + fileSpecification.getParams().getCreationDate());
   System.out.println("Fecha de modificación:- " + fileSpecification.getParams().getModDate());
   System.out.println("Tamaño:- " + fileSpecification.getParams().getSize());
  }