IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Documents Java Discussion :

PDF/A Validation à l'aide de pdfbox


Sujet :

Documents Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    325
    Détails du profil
    Informations personnelles :
    Localisation : France, Morbihan (Bretagne)

    Informations forums :
    Inscription : Mars 2008
    Messages : 325
    Points : 150
    Points
    150
    Par défaut PDF/A Validation à l'aide de pdfbox
    Bonjour

    Je cherche à contrôler les pdfs pour savoir s'ils ont de type A1-b

    j'ai trouvé cette exemple sur le site : https://pdfbox.apache.org/1.8/cookbo...alidation.html

    Pour information, je ne développe jamais sous eclipse.

    1 - je crée un projet
    2 - je crée une classe : ValidePdf.java
    voici le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    import java.io.IOException;
    import org.apache.pdfbox.preflight.parser.PreflightParser;
    import org.apache.pdfbox.preflight.PreflightDocument;
    import org.apache.pdfbox.preflight.ValidationResult;
    import org.apache.pdfbox.preflight.ValidationResult.ValidationError;
    import org.apache.pdfbox.preflight.exception.SyntaxValidationException;
     
    public class validepdf {
     
    	public static void main(String[] args) throws IOException
    	{
     
     
    		ValidationResult result = null;
     
    		PreflightParser parser = new PreflightParser(args[0]);
    		try
    		{
     
    		    /* Parse the PDF file with PreflightParser that inherits from the NonSequentialParser.
    		     * Some additional controls are present to check a set of PDF/A requirements. 
    		     * (Stream length consistency, EOL after some Keyword...)
    		     */
    		    parser.parse();
     
    		    /* Once the syntax validation is done, 
    		     * the parser can provide a PreflightDocument 
    		     * (that inherits from PDDocument) 
    		     * This document process the end of PDF/A validation.
    		     */
    		    PreflightDocument document = parser.getPreflightDocument();
    		    document.validate();
     
    		    // Get validation result
    		    result = document.getResult();
    		    document.close();
     
    		}
    		catch (SyntaxValidationException e)
    		{
    		    /* the parse method can throw a SyntaxValidationException 
    		     * if the PDF file can't be parsed.
    		     * In this case, the exception contains an instance of ValidationResult  
    		     */
    		    result = e.getResult();
    		}
     
    		// display validation result
    		if (result.isValid())
    		{
    		    System.out.println("The file " + args[0] + " is a valid PDF/A-1b file");
    		}
    		else
    		{
    		    System.out.println("The file" + args[0] + " is not valid, error(s) :");
    		    for (ValidationError error : result.getErrorsList())
    		    {
    		        System.out.println(error.getErrorCode() + " : " + error.getDetails());
    		    }
    		}
    	}
    }
    3 - j'ajoute la librairie preflight-1.8.0.jar
    4 - j'ajoute la librairie pdfbox-1.8.12.jar

    Dela je run => l'erreur suivante :
    Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
    at org.apache.pdfbox.pdfparser.BaseParser.<clinit>(BaseParser.java:70)
    at validepdf.main(validepdf.java:17)
    Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 2 more
    5 - j'ajoute la librairiecommons-logging-1.3-.jar

    Puis je run => l'erreur suivante

    Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Logger
    at org.apache.pdfbox.preflight.utils.COSUtils.<clinit>(COSUtils.java:43)
    at org.apache.pdfbox.preflight.process.reflect.ResourcesValidationProcess.validateExtGStates(ResourcesValidationProcess.java:104)
    at org.apache.pdfbox.preflight.process.reflect.ResourcesValidationProcess.validate(ResourcesValidationProcess.java:69)
    at org.apache.pdfbox.preflight.utils.ContextHelper.callValidation(ContextHelper.java:74)
    at org.apache.pdfbox.preflight.utils.ContextHelper.validateElement(ContextHelper.java:49)
    at org.apache.pdfbox.preflight.process.reflect.SinglePageValidationProcess.validateResources(SinglePageValidationProcess.java:158)
    at org.apache.pdfbox.preflight.process.reflect.SinglePageValidationProcess.validate(SinglePageValidationProcess.java:77)
    at org.apache.pdfbox.preflight.utils.ContextHelper.callValidation(ContextHelper.java:74)
    at org.apache.pdfbox.preflight.utils.ContextHelper.validateElement(ContextHelper.java:49)
    at org.apache.pdfbox.preflight.process.PageTreeValidationProcess.validatePage(PageTreeValidationProcess.java:56)
    at org.apache.pdfbox.preflight.process.PageTreeValidationProcess.validate(PageTreeValidationProcess.java:45)
    at org.apache.pdfbox.preflight.utils.ContextHelper.callValidation(ContextHelper.java:74)
    at org.apache.pdfbox.preflight.utils.ContextHelper.validateElement(ContextHelper.java:88)
    at org.apache.pdfbox.preflight.PreflightDocument.validate(PreflightDocument.java:168)
    at validepdf.main(validepdf.java:33)
    Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Logger
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 15 more
    6 - ajoute la librairie : logaj-1.2.17.jar

    run => l'erreur suivante

    log4j:WARN No appenders could be found for logger (org.apache.pdfbox.util.PDFStreamEngine).
    log4j:WARN Please initialize the log4j system properly.
    log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
    Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/xmpbox/xml/XmpParsingException
    at java.lang.Class.getDeclaredConstructors0(Native Method)
    at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
    at java.lang.Class.getConstructor0(Unknown Source)
    at java.lang.Class.newInstance(Unknown Source)
    at org.apache.pdfbox.preflight.PreflightConfiguration.getInstanceOfProcess(PreflightConfiguration.java:181)
    at org.apache.pdfbox.preflight.utils.ContextHelper.callValidation(ContextHelper.java:73)
    at org.apache.pdfbox.preflight.utils.ContextHelper.validateElement(ContextHelper.java:88)
    at org.apache.pdfbox.preflight.PreflightDocument.validate(PreflightDocument.java:168)
    at validepdf.main(validepdf.java:33)
    Caused by: java.lang.ClassNotFoundException: org.apache.xmpbox.xml.XmpParsingException
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 9 more
    Est ce que c'est normal que je dois faire tout cela?

    J'ai regardé sur internet, j'ai trouvé plusieurs explications mais je n'arrive pas a tout comprendre.
    Si je comprend bien je dois réaliser un fichier log4j.properties, et dans le fichier je mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    log4j.rootLogger=DEBUG, stdout
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%d [%-5p] (%F:%M:%L) %m%n
    je ne sais pas ce que cela veut dire. Et après j'en fait quoi?

    je ne sais pas comment faire marcher ce code.

    Cordialement Law

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    325
    Détails du profil
    Informations personnelles :
    Localisation : France, Morbihan (Bretagne)

    Informations forums :
    Inscription : Mars 2008
    Messages : 325
    Points : 150
    Points
    150
    Par défaut
    j'ai créé un fichier log4j.xml, je l'ai glissé sur le dossier src de mon projet sous eclipse.
    Nom : projetEclipse.png
Affichages : 1174
Taille : 12,7 Ko

    et j'ai mis différent exemple trouvé sur le net et à chaque fois j'ai l'erreur suivante

    log4j:WARN Fatal parsing error 1 and column 1
    log4j:WARN Fin prématurée du fichier.
    log4j:ERROR Could not parse url [file:/C:/eclipse/workspace/Valide_PDF/bin/log4j.xml].
    org.xml.sax.SAXParseException; systemId: file:/C:/eclipse/workspace/Valide_PDF/bin/log4j.xml; lineNumber: 1; columnNumber: 1; Fin prématurée du fichier.
    at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown Source)
    at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown Source)
    at org.apache.log4j.xml.DOMConfigurator$2.parse(DOMConfigurator.java:769)
    at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:871)
    at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:778)
    at org.apache.log4j.helpers.OptionConverter.selectAndConfigure(OptionConverter.java:526)
    at org.apache.log4j.LogManager.<clinit>(LogManager.java:127)
    at org.apache.log4j.Logger.getLogger(Logger.java:104)
    at org.apache.commons.logging.impl.Log4JLogger.<init>(Log4JLogger.java:102)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:525)
    at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:272)
    at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:246)
    at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:395)
    at org.apache.pdfbox.pdfparser.BaseParser.<clinit>(BaseParser.java:70)
    at validepdf.main(validepdf.java:17)
    log4j:WARN No appenders could be found for logger (org.apache.pdfbox.util.PDFStreamEngine).
    log4j:WARN Please initialize the log4j system properly.
    log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
    Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/xmpbox/xml/XmpParsingException
    at java.lang.Class.getDeclaredConstructors0(Native Method)
    at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
    at java.lang.Class.getConstructor0(Unknown Source)
    at java.lang.Class.newInstance(Unknown Source)
    at org.apache.pdfbox.preflight.PreflightConfiguration.getInstanceOfProcess(PreflightConfiguration.java:181)
    at org.apache.pdfbox.preflight.utils.ContextHelper.callValidation(ContextHelper.java:73)
    at org.apache.pdfbox.preflight.utils.ContextHelper.validateElement(ContextHelper.java:88)
    at org.apache.pdfbox.preflight.PreflightDocument.validate(PreflightDocument.java:168)
    at validepdf.main(validepdf.java:33)
    Caused by: java.lang.ClassNotFoundException: org.apache.xmpbox.xml.XmpParsingException
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 9 more
    j'ai aussi testé le tuto de developpez : http://beuss.developpez.com/tutoriel...jakarta/log4j/
    Mais j'ai la même erreur

    Voici .classpath
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?xml version="1.0" encoding="UTF-8"?>
    <classpath>
    	<classpathentry kind="src" path="src"/>
    	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
    	<classpathentry kind="lib" path="C:/eclipse/workspace/Valide_PDF/commons-logging-1.3.jar"/>
    	<classpathentry kind="lib" path="C:/eclipse/workspace/Valide_PDF/log4j-1.2.17.jar"/>
    	<classpathentry kind="lib" path="C:/eclipse/workspace/Valide_PDF/pdfbox-1.8.12.jar"/>
    	<classpathentry kind="lib" path="C:/eclipse/workspace/Valide_PDF/preflight-1.8.0.jar"/>
    	<classpathentry kind="output" path="bin"/>
    </classpath>
    je poursuis mes recherche

    Cordialement Law

  3. #3
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Tu mets simplement le fichier de configuration dans le classpath.

    Dans ton dernier message, le problème indiqué vient du fichier xml : il est probablement vide, ou, en tout cas, mal syntaxé. Il devrait avoir cette forme (ici c'est un de mes fichiers) :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
     
    <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
      <appender name="console" class="org.apache.log4j.ConsoleAppender"> 
        <param name="Target" value="System.out"/> 
        <layout class="org.apache.log4j.PatternLayout"> 
          <!-- <param name="ConversionPattern" value="%d{yyyy/MM/dd HH:mm:ss,SSS} %-5p - %c{1} - %m%n"/> -->
          <param name="ConversionPattern" value="%d{yyyy/MM/dd HH:mm:ss,SSS} %-5p - %m%n"/> 
        </layout> 
      </appender> 
     
      <logger name="xeus.jcl">
      	<level value="INFO"/> 
      </logger>
     
      <root> 
        <priority value ="DEBUG" />
        <appender-ref ref="console" /> 
      </root>
     
    </log4j:configuration>
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    325
    Détails du profil
    Informations personnelles :
    Localisation : France, Morbihan (Bretagne)

    Informations forums :
    Inscription : Mars 2008
    Messages : 325
    Points : 150
    Points
    150
    Par défaut
    Tu mets simplement le fichier de configuration dans le classpath.
    J'ai lu plusieurs tuto sur log4j et classpath, et ils disent de faire ce que tu dis. Maintenant comment je le fais?

    Le fichier de configuration? c'est quoi? J'en ai déduis qu'il faut que je crée un fichier log4j.xml.

    Nom : ListeFichierEclipse.png
Affichages : 1171
Taille : 53,7 Ko

    Alors le classpath c'est bien le fichier .classpath. Comment mettre un fichier dans un fichier?
    Lorsque je regarde le fichier .classpath

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?xml version="1.0" encoding="UTF-8"?>
    <classpath>
    	<classpathentry kind="src" path="src"/>
    	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
    	<classpathentry kind="lib" path="C:/eclipse/workspace/Valide_PDF/commons-logging-1.3.jar"/>
    	<classpathentry kind="lib" path="C:/eclipse/workspace/Valide_PDF/log4j-1.2.17.jar"/>
    	<classpathentry kind="lib" path="C:/eclipse/workspace/Valide_PDF/pdfbox-1.8.12.jar"/>
    	<classpathentry kind="lib" path="C:/eclipse/workspace/Valide_PDF/preflight-1.8.0.jar"/>
    	<classpathentry kind="output" path="bin"/>
    </classpath>
    Je dois le renseigné au niveau du classpath? je mes quoi comme information.
    J'ai mis le fichier dans src qui est définit dans le classpath.

    il y a 30minutes, je ne connaissais pas le classpath, ni le log4j, je ne programme pas en java, la dernière fois que j'ai utilisé éclipse c'est quand j'étais étudiant il y a 10ans. Ce que je veux dire ta phrase est simple mais veut rien dire pour moi.

    Cordialement Law

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    325
    Détails du profil
    Informations personnelles :
    Localisation : France, Morbihan (Bretagne)

    Informations forums :
    Inscription : Mars 2008
    Messages : 325
    Points : 150
    Points
    150
    Par défaut
    J'ai mis dans le fichier log4j.xml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
     
    <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
      <appender name="console" class="org.apache.log4j.ConsoleAppender"> 
        <param name="Target" value="System.out"/> 
        <layout class="org.apache.log4j.PatternLayout"> 
          <!-- <param name="ConversionPattern" value="%d{yyyy/MM/dd HH:mm:ss,SSS} %-5p - %c{1} - %m%n"/> -->
          <param name="ConversionPattern" value="%d{yyyy/MM/dd HH:mm:ss,SSS} %-5p - %m%n"/> 
        </layout> 
      </appender> 
     
      <logger name="xeus.jcl">
      	<level value="INFO"/> 
      </logger>
     
      <root> 
        <priority value ="DEBUG" />
        <appender-ref ref="console" /> 
      </root>
     
    </log4j:configuration>
    Et j'obtiens l'erreur suivante

    log4j:WARN Fatal parsing error 1 and column 1
    log4j:WARN Fin prématurée du fichier.
    log4j:ERROR Could not parse url [file:/C:/eclipse/workspace/Valide_PDF/bin/log4j.xml].
    org.xml.sax.SAXParseException; systemId: file:/C:/eclipse/workspace/Valide_PDF/bin/log4j.xml; lineNumber: 1; columnNumber: 1; Fin prématurée du fichier.
    at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown Source)
    at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown Source)
    at org.apache.log4j.xml.DOMConfigurator$2.parse(DOMConfigurator.java:769)
    at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:871)
    at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:778)
    at org.apache.log4j.helpers.OptionConverter.selectAndConfigure(OptionConverter.java:526)
    at org.apache.log4j.LogManager.<clinit>(LogManager.java:127)
    at org.apache.log4j.Logger.getLogger(Logger.java:104)
    at org.apache.commons.logging.impl.Log4JLogger.<init>(Log4JLogger.java:102)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:525)
    at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:272)
    at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:246)
    at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:395)
    at org.apache.pdfbox.pdfparser.BaseParser.<clinit>(BaseParser.java:70)
    at validepdf.main(validepdf.java:17)
    log4j:WARN No appenders could be found for logger (org.apache.pdfbox.util.PDFStreamEngine).
    log4j:WARN Please initialize the log4j system properly.
    log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
    Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/xmpbox/xml/XmpParsingException
    at java.lang.Class.getDeclaredConstructors0(Native Method)
    at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
    at java.lang.Class.getConstructor0(Unknown Source)
    at java.lang.Class.newInstance(Unknown Source)
    at org.apache.pdfbox.preflight.PreflightConfiguration.getInstanceOfProcess(PreflightConfiguration.java:181)
    at org.apache.pdfbox.preflight.utils.ContextHelper.callValidation(ContextHelper.java:73)
    at org.apache.pdfbox.preflight.utils.ContextHelper.validateElement(ContextHelper.java:88)
    at org.apache.pdfbox.preflight.PreflightDocument.validate(PreflightDocument.java:168)
    at validepdf.main(validepdf.java:33)
    Caused by: java.lang.ClassNotFoundException: org.apache.xmpbox.xml.XmpParsingException
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 9 more

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par law56100 Voir le message
    Alors le classpath c'est bien le fichier .classpath. Comment mettre un fichier dans un fichier?
    Non le classpath, en Java, c'est l'endroit où Java va chercher les classes et les ressources. Il est défini dans la ligne de commande par le switch -cp. Comme tu travailles manifestement dans Eclipse, la gestion du classpath est prise en charge par Eclipse, qui permet par le menu build path d'ajouter par exemple des jars au classpath. Le fichier .classpath, c'est simplement le fichier qu'Eclipse utilise pour stocker ces informations et tu ne dois pas y toucher.
    Les sources étant automatiquement compilées et diffusées vers un dossier de classes (le dossier bin par défaut), ce dossier de classes fait partie par défaut du classpath sous Eclipse : il te suffit donc de mettre un fichier dans le dossier src (ce que tu as fait) pour qu'il soit automatiquement copié vers bin et donc fait partie du classpath, mais tu pourrais tout aussi bien le mettre dans n'importe quel dossier et ajouter ce dossier au classpath.
    Si tu as bien repris le fichier que je t'ai donné (tu aurais pu tout aussi bien utiliser le log4j.properties de ton premier message), alors je ne vois qu'une seule raison pour laquelle ça plante : tu as dû utiliser un éditeur qui ajoute un BOM (une séquence d'octets qui indique que le fichier est UTF-8) au début du fichier, BOM qui fait planter Xerces. Ouvre par exemple le fichier sous Eclipse, tu devrais voir des caractères devant le < : supprime-les et sauvegarde.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    325
    Détails du profil
    Informations personnelles :
    Localisation : France, Morbihan (Bretagne)

    Informations forums :
    Inscription : Mars 2008
    Messages : 325
    Points : 150
    Points
    150
    Par défaut
    Merci pour les informations. je comprends un peu mieux. J'ai passé la journée a lire des tutos, des docs, et je trouve cela compliqué. Et pourtant c'est pas si compliqué que cela si ça aurait été expliqué autrement.
    C'est vrai que je ne commence pas par un projet du type afficher "Bonjour".

    voici ce que j'ai sur éclipse lorsque j'ouvre log4j.xml
    Nom : VisionDuProjet.png
Affichages : 1253
Taille : 79,5 Ko

    je n'ai pas de caractère avant <?xml...

    Cordialement Law

  8. #8
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Mince, je pensais que l'éditeur Eclipse te montrerait le BOM : tu as Notepad++ ? Il a une option sauvegarde UTF-8 sans BOM
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    325
    Détails du profil
    Informations personnelles :
    Localisation : France, Morbihan (Bretagne)

    Informations forums :
    Inscription : Mars 2008
    Messages : 325
    Points : 150
    Points
    150
    Par défaut
    Bonjour

    J'utilise notepad++, et je suis déjà en UTF8-sans Bom
    Nom : UTF8_sansBom.png
Affichages : 1127
Taille : 61,3 Ko

    Cordialement Law

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    325
    Détails du profil
    Informations personnelles :
    Localisation : France, Morbihan (Bretagne)

    Informations forums :
    Inscription : Mars 2008
    Messages : 325
    Points : 150
    Points
    150
    Par défaut
    Ce matin, j'ai ré-essayé de tester le projet et j'ai l'erreur suivante :

    2016/12/07 09:44:30,022 DEBUG - processing substream token: COSInt{2}
    2016/12/07 09:44:30,022 DEBUG - processing substream token: PDFOperator{J}
    2016/12/07 09:44:30,022 DEBUG - processing substream token: COSFloat{0.00}
    2016/12/07 09:44:30,022 DEBUG - processing substream token: PDFOperator{w}
    2016/12/07 09:44:30,022 DEBUG - processing substream token: COSInt{0}
    2016/12/07 09:44:30,022 DEBUG - processing substream token: PDFOperator{G}
    2016/12/07 09:44:30,022 DEBUG - processing substream token: COSInt{0}
    2016/12/07 09:44:30,022 DEBUG - processing substream token: PDFOperator{g}
    2016/12/07 09:44:30,022 DEBUG - processing substream token: PDFOperator{q}
    2016/12/07 09:44:30,022 DEBUG - processing substream token: COSFloat{1.000}
    2016/12/07 09:44:30,022 DEBUG - processing substream token: COSFloat{0.000}
    2016/12/07 09:44:30,022 DEBUG - processing substream token: COSFloat{0.000}
    2016/12/07 09:44:30,022 DEBUG - processing substream token: COSFloat{-1.000}
    2016/12/07 09:44:30,022 DEBUG - processing substream token: COSFloat{4.799}
    2016/12/07 09:44:30,022 DEBUG - processing substream token: COSFloat{1108.083}
    2016/12/07 09:44:30,022 DEBUG - processing substream token: PDFOperator{cm}
    2016/12/07 09:44:30,022 DEBUG - processing substream token: PDFOperator{q}
    2016/12/07 09:44:30,022 DEBUG - processing substream token: PDFOperator{q}
    Exception in thread "main" 2016/12/07 09:44:30,037 DEBUG - processing substream token: COSFloat{776.63906}
    2016/12/07 09:44:30,037 DEBUG - processing substream token: COSFloat{0.00000}
    2016/12/07 09:44:30,037 DEBUG - processing substream token: COSFloat{0.00000}
    2016/12/07 09:44:30,037 DEBUG - processing substream token: COSFloat{-1099.52504}
    2016/12/07 09:44:30,037 DEBUG - processing substream token: COSFloat{0.00000}
    2016/12/07 09:44:30,037 DEBUG - processing substream token: COSFloat{1101.52063}
    2016/12/07 09:44:30,037 DEBUG - processing substream token: PDFOperator{cm}
    2016/12/07 09:44:30,037 DEBUG - processing substream token: COSName{Img1}
    2016/12/07 09:44:30,037 DEBUG - processing substream token: PDFOperator{Do}
    2016/12/07 09:44:30,037 DEBUG - processing substream token: PDFOperator{Q}
    2016/12/07 09:44:30,037 DEBUG - processing substream token: PDFOperator{Q}
    2016/12/07 09:44:30,037 DEBUG - processing substream token: PDFOperator{Q}
    java.lang.NoClassDefFoundError: org/apache/xmpbox/xml/XmpParsingException
    at java.lang.Class.getDeclaredConstructors0(Native Method)
    at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
    at java.lang.Class.getConstructor0(Unknown Source)
    at java.lang.Class.newInstance(Unknown Source)
    at org.apache.pdfbox.preflight.PreflightConfiguration.getInstanceOfProcess(PreflightConfiguration.java:181)
    at org.apache.pdfbox.preflight.utils.ContextHelper.callValidation(ContextHelper.java:73)
    at org.apache.pdfbox.preflight.utils.ContextHelper.validateElement(ContextHelper.java:88)
    at org.apache.pdfbox.preflight.PreflightDocument.validate(PreflightDocument.java:168)
    at validepdf.main(validepdf.java:33)
    Caused by: java.lang.ClassNotFoundException: org.apache.xmpbox.xml.XmpParsingException
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 9 more
    Je rajoute xmpBox-2.0.3.jar
    La j'ai une nouvellle erreur qui me fait rajouter commons-iio-2.5.jar

    et la quand je simule j'ai la réponse suivante :

    2016/12/07 10:08:03,234 DEBUG - processing substream token: COSInt{2}
    2016/12/07 10:08:03,235 DEBUG - processing substream token: PDFOperator{J}
    2016/12/07 10:08:03,235 DEBUG - processing substream token: COSFloat{0.00}
    2016/12/07 10:08:03,235 DEBUG - processing substream token: PDFOperator{w}
    2016/12/07 10:08:03,235 DEBUG - processing substream token: COSInt{0}
    2016/12/07 10:08:03,235 DEBUG - processing substream token: PDFOperator{G}
    2016/12/07 10:08:03,237 DEBUG - processing substream token: COSInt{0}
    2016/12/07 10:08:03,237 DEBUG - processing substream token: PDFOperator{g}
    2016/12/07 10:08:03,237 DEBUG - processing substream token: PDFOperator{q}
    2016/12/07 10:08:03,237 DEBUG - processing substream token: COSFloat{1.000}
    2016/12/07 10:08:03,237 DEBUG - processing substream token: COSFloat{0.000}
    2016/12/07 10:08:03,238 DEBUG - processing substream token: COSFloat{0.000}
    2016/12/07 10:08:03,238 DEBUG - processing substream token: COSFloat{-1.000}
    2016/12/07 10:08:03,238 DEBUG - processing substream token: COSFloat{4.799}
    2016/12/07 10:08:03,238 DEBUG - processing substream token: COSFloat{1108.083}
    2016/12/07 10:08:03,238 DEBUG - processing substream token: PDFOperator{cm}
    2016/12/07 10:08:03,238 DEBUG - processing substream token: PDFOperator{q}
    2016/12/07 10:08:03,238 DEBUG - processing substream token: PDFOperator{q}
    2016/12/07 10:08:03,239 DEBUG - processing substream token: COSFloat{776.63906}
    2016/12/07 10:08:03,239 DEBUG - processing substream token: COSFloat{0.00000}
    2016/12/07 10:08:03,239 DEBUG - processing substream token: COSFloat{0.00000}
    2016/12/07 10:08:03,239 DEBUG - processing substream token: COSFloat{-1099.52504}
    2016/12/07 10:08:03,239 DEBUG - processing substream token: COSFloat{0.00000}
    2016/12/07 10:08:03,239 DEBUG - processing substream token: COSFloat{1101.52063}
    2016/12/07 10:08:03,239 DEBUG - processing substream token: PDFOperator{cm}
    2016/12/07 10:08:03,240 DEBUG - processing substream token: COSName{Img1}
    2016/12/07 10:08:03,240 DEBUG - processing substream token: PDFOperator{Do}
    2016/12/07 10:08:03,241 DEBUG - processing substream token: PDFOperator{Q}
    2016/12/07 10:08:03,241 DEBUG - processing substream token: PDFOperator{Q}
    2016/12/07 10:08:03,241 DEBUG - processing substream token: PDFOperator{Q}
    The fileTampon20162411100218_A1_21.pdf is not valid, error(s) :
    2.4.3 : Invalid Color space, The operator "G" can't be used without Color Profile
    2.4.3 : Invalid Color space, The operator "g" can't be used without Color Profile

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    325
    Détails du profil
    Informations personnelles :
    Localisation : France, Morbihan (Bretagne)

    Informations forums :
    Inscription : Mars 2008
    Messages : 325
    Points : 150
    Points
    150
    Par défaut
    J'ai simulé avec un pdf de type A1 et j'ai la réponse
    2016/12/07 10:17:19,289 DEBUG - processing substream token: PDFOperator{q}
    2016/12/07 10:17:19,289 DEBUG - processing substream token: COSFloat{0.1}
    2016/12/07 10:17:19,289 DEBUG - processing substream token: COSInt{0}
    2016/12/07 10:17:19,289 DEBUG - processing substream token: COSInt{0}
    2016/12/07 10:17:19,289 DEBUG - processing substream token: COSFloat{0.1}
    2016/12/07 10:17:19,289 DEBUG - processing substream token: COSInt{0}
    2016/12/07 10:17:19,289 DEBUG - processing substream token: COSInt{0}
    2016/12/07 10:17:19,289 DEBUG - processing substream token: PDFOperator{cm}
    2016/12/07 10:17:19,289 DEBUG - processing substream token: COSName{R7}
    2016/12/07 10:17:19,289 DEBUG - processing substream token: PDFOperator{gs}
    2016/12/07 10:17:19,289 DEBUG - processing substream token: PDFOperator{q}
    2016/12/07 10:17:19,289 DEBUG - processing substream token: COSFloat{5949.58}
    2016/12/07 10:17:19,289 DEBUG - processing substream token: COSInt{0}
    2016/12/07 10:17:19,289 DEBUG - processing substream token: COSInt{0}
    2016/12/07 10:17:19,289 DEBUG - processing substream token: COSFloat{8413.97}
    2016/12/07 10:17:19,289 DEBUG - processing substream token: COSInt{0}
    2016/12/07 10:17:19,289 DEBUG - processing substream token: COSFloat{4.72979}
    2016/12/07 10:17:19,289 DEBUG - processing substream token: PDFOperator{cm}
    2016/12/07 10:17:19,289 DEBUG - processing substream token: COSName{R10}
    2016/12/07 10:17:19,289 DEBUG - processing substream token: PDFOperator{Do}
    2016/12/07 10:17:19,289 DEBUG - processing substream token: PDFOperator{Q}
    2016/12/07 10:17:19,289 DEBUG - processing substream token: PDFOperator{Q}
    The file cerfaSCOR_PDFA-1.pdf is a valid PDF/A-1b file
    un grand merci à joel.drigo

    Cordialement Law

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Imprimer PDF avec code barre en utilisant PDFBox
    Par titi42 dans le forum Documents
    Réponses: 2
    Dernier message: 11/02/2014, 13h25
  2. Directx ne valide pas.. Aide SVP
    Par Namyar dans le forum DirectX
    Réponses: 3
    Dernier message: 19/10/2010, 00h22
  3. Réponses: 1
    Dernier message: 08/06/2009, 14h14
  4. Réponses: 2
    Dernier message: 18/03/2006, 14h54
  5. [Tomcat5] Insertion photo ds pdf. Chemin non valide?
    Par osmoze dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 21/09/2004, 11h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo