Utilizamos cookies propias y de terceros. Al navegar entendemos que aceptas el uso de cookies. +Info.
Política de cookies
Proyecto AjpdSoft

· Inicio
· Buscar
· Contactar
· Cookies
· Descargas
· Foros
· Historia
· Nosotros
· Temas
· Top 10
· Trucos
· Tutoriales
· Usuario
· Wiki

Proyecto AjpdSoft: Foros

AjpdSoft :: Ver tema - Obtener metadatos título, asunto PDF C# con iTextSharp
Foros de discusión Buscar Perfil FAQ Iniciar sesión
Information Obtener metadatos título, asunto PDF C# con iTextSharp

Publicar nuevo tema Responder al tema
Foros de discusión » VB.Net, C# .Net, Visual Studio .Net   
Ver tema anterior :: Ver tema siguiente
AutorMensaje
varios
Magnífico usuario


Registrado: Oct 10, 2006
Mensajes: 2092

Asunto: Obtener metadatos título, asunto PDF C# con iTextSharp Responder citando

Estoy desarrollando una aplicación de tratamiento e indexación de ficheros PDF, quiero obtener los metadatos: título, autor, productor, palabras clave, fecha de creación, fecha de modificación, aplicación, etc. de los ficheros PDF seleccionados y guardar los datos en una base de datos.

Para ello estoy usando Microsoft Visual C# .Net de Visual Studio .Net 2010 y la librería gratuita iTextSharp. Uso el siguiente código para obtener los metadatos de los ficheros PDF:

Código:

  PdfReader ficheroPDF = new PdfReader(@"C:\pdf_prueba.pdf");   
  mTitulo = ficheroPDF.Info["Title"];
  mAutor = ficheroPDF.Info["Author"];
  mAsunto = ficheroPDF.Info["Subject"];
  mPalabrasClave = Convert.ToString(ficheroPDF.Info["Keywords"]);


Este código me funciona perfectamente cuando el fichero PDF tiene todos los metadatos anteriores, pero cuando encuentra algún PDF que no tiene alguno de los metadatos como el "Subject" me da este error:

KeyNotFoundException: La clave proporcionada no se encontró en el diccionario.

Una vez que da el error ya no obtiene el resto de los metadatos del fichero PDF ¿cómo puedo solucionar esto?
MensajePublicado:
Mar May 29, 2012 9:20 pm
Top of PageVer perfil de usuario
alonsojpd
Administrador/Moderador


Registrado: Sep 16, 2003
Mensajes: 2687

Asunto: Re: Obtener metadatos título, asunto PDF C# con iTextSharp Responder citando



Anuncios



varios escribió:
Estoy desarrollando una aplicación de tratamiento e indexación de ficheros PDF, quiero obtener los metadatos: título, autor, productor, palabras clave, fecha de creación, fecha de modificación, aplicación, etc. de los ficheros PDF seleccionados y guardar los datos en una base de datos.

Para ello estoy usando Microsoft Visual C# .Net de Visual Studio .Net 2010 y la librería gratuita iTextSharp. Uso el siguiente código para obtener los metadatos de los ficheros PDF:

Código:

  PdfReader ficheroPDF = new PdfReader(@"C:\pdf_prueba.pdf");   
  mTitulo = ficheroPDF.Info["Title"];
  mAutor = ficheroPDF.Info["Author"];
  mAsunto = ficheroPDF.Info["Subject"];
  mPalabrasClave = Convert.ToString(ficheroPDF.Info["Keywords"]);


Este código me funciona perfectamente cuando el fichero PDF tiene todos los metadatos anteriores, pero cuando encuentra algún PDF que no tiene alguno de los metadatos como el "Subject" me da este error:

KeyNotFoundException: La clave proporcionada no se encontró en el diccionario.

Una vez que da el error ya no obtiene el resto de los metadatos del fichero PDF ¿cómo puedo solucionar esto?


Puedes usar el siguiente código, está testeado en nuestro laboratorio y funciona perfectamente:

Código:

  PdfReader ficheroPDF = new PdfReader(@"C:\pdf_metadatos.pdf");
  Dictionary<string, string> metadatosPDF = ficheroPDF.Info;
  foreach (KeyValuePair<string, string> clavesMetadatosPDF in metadatosPDF)
  {
    txtResultadoIndexacionPDF.Text =
    txtResultadoIndexacionPDF.Text + Environment.NewLine +
         (clavesMetadatosPDF.Key + " ===> " + clavesMetadatosPDF.Value);
  }


Devolverá algo así:

Author ===> AjpdSoft
CreationDate ===> D:20120512205002+02'00'
Creator ===> AjpdSoft Separar Páginas PDF
Keywords ===> pdf;split;merge
ModDate ===> D:20120512205002+02'00'
Producer ===> PDFsharp 1.31.1789-g
Subject ===>
Title ===> Dividir páginas pdf


Como ves, en el ejemplo el metadato "Subject" no existe y el código no da error.

Con el código anterior recorrerás todos los metadatos y te obtendrá el nombre del metadato y el valor.
MensajePublicado:
Mar May 29, 2012 9:28 pm
Top of PageVer perfil de usuario
Mostrar mensajes de anteriores:   
Todas las horas son GMT - 1 Horas
Publicar nuevo tema Responder al tema
Foros de discusión » VB.Net, C# .Net, Visual Studio .Net  

Cambiar a:  
Key
  Puede publicar nuevos temas en este foro
No puede responder a temas en este foro
No puede editar sus mensajes en este foro
No puede borrar sus mensajes en este foro
No puede votar en encuestas en este foro
Este sitio web NO CONTIENE malware, todos los programas con código fuente aquí. Autor: Alonso Javier Pérez Díaz Google+ Síguenos en Google+