Sortir les meta-données d'un fichier pdf

Contenu du snippet

Ce code sert à extraire les meta-données d'un fichier PDF(nom de l'auteur, date de création et meta-donnée personnalisées).
/!\ Cette source utilise la librairie IText en licence GNU.
Fonctionnement :
lancer la class avec deux argument : 0:chemin complet du fichier pdf; 1 : chemin complet du fichier texte de sortie.

Source / Exemple :


import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;

import com.lowagie.text.pdf.PdfReader;

public class mapping_meta_donne {

	/**

  • @param args
  • /
public static void main(String[] args) { // TODO Auto-generated method stub /**
  • Parametres : args0 = fichier pdf à traiter args1 = fichier de sortie
  • /
File pdf = null;// Fichier pdf File sortie = null;// fichier text PdfReader pdfr = null; // outil itext pour lire les pdf int mod = 1; pdf = new File(args[0]); sortie = new File(args[1]); // System.out.println(pdf.toString()); if (args.length != 2) { System.out.println("Nombre d'argument incorrect!"); System.out.println("La class demande deux argument :"); System.out.println("0 : Le chemin complet du pdf à analyser"); System.out .println("1 : Le chemin complet du fichier texte à remplire ou 0 si on ne veut pas remplire de fichier."); } else { if (java.util.regex.Pattern.matches(".*" + args[1] + ".*", "0")) { System.out.println("de ; " + args[1]); mod = 0; File fil = new File("c:\rien");// ce fichier n'existe pas il // sert à utiliser la même // fonction d'ecriture avec // creation de fichier ou pas ecrire(fil, "pas de création de fichier", mod); } if (sortie.isFile()) { sortie.delete(); } if (!sortie.isFile()) { try { sortie.createNewFile(); } catch (IOException e) { // TODO Auto-generated catch block ecrire(sortie, e.toString(), mod); } } if (pdf.isFile()) { try { pdfr = new PdfReader(pdf.getAbsolutePath()); } catch (IOException e) { // TODO Auto-generated catch block ecrire(sortie, "impossible de lire le fichier pdf; erreur : " + e.toString(), mod); } HashMap infos = pdfr.getInfo(); ecrire(sortie, "nb meta=" + infos.size(), mod); ecrire(sortie, "nb page=" + pdfr.getNumberOfPages(), mod); // System.out.println(infos.size()+" taille"); // ecrire(sortie,infos.toString()); String result = infos.toString(); String[] result2 = result.split(","); int i; for (i = 0; i < result2.length; i++) { ecrire(sortie, result2[i], mod); } } else { ecrire(sortie, "le fichier pdf n'existe pas", mod); } } } public static void ecrire(File f, String m, int mode) { PrintWriter fic = null; System.out.println(m); FileWriter n = null; if (mode == 1) { try { n = new FileWriter(f, true); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } fic = new PrintWriter(n, true); fic.println(m); fic.flush(); fic.close(); } } }

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.