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

C# Discussion :

Fusion de document pdf


Sujet :

C#

  1. #1
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2013
    Messages
    933
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 933
    Points : 348
    Points
    348
    Par défaut Fusion de document pdf
    Bonjour,
    j'ai un petit soucis en programmation, j'ai un programme qui a pour but de traiter des des fichiers d'un dossier, et pour une question d'optimisation , j'ai modifié ma procédure que j'appel quand je clique sur un bouton.

    Je vous explique , sans trop entrer dans les détails :
    j'ai ma page et une zone de texte pour indiquer le nombre de document à traiter, voici un extrait de ma procédure de traitement :
    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
     
    //je creer mon fichier pdf qui va contenir les pdf fusionné
            string FichierUnique = appSettings["UriDocument"] + "ListePDF_" + dateIndexationFichierUnique + ".pdf"; //chemin du fichier qui contiendra les pdf concatener 
            FileStream fichier = File.Create(FichierUnique);  //creation du fichier
            fichier.Close();//Libère les ressources du fichier 
     
    //j'ouvre mon fichier
        FileStream FSvehicuUnique= File.Open(FichierUnique, FileMode.Open);
                PdfCopyFields copy = new PdfCopyFields(FSvehicuUnique);
     
     for (compteurDocument = 0; compteurDocument < nbDocs; compteurDocument++)
    {
    //nbdocs etant le nombre de document saisie par l'utilisateur
     
    //............ code sans interet
      //creation du PDF concaténé
                    try
                    {
                        //documents[actualDocument] contient l'url du fichier
     
                        if (IsValidPdf(documents[actualDocument]))
                        {
                            PdfReader reader1 = new PdfReader(documents[actualDocument]);
                            copy.AddDocument(reader1); 
                           //j'ajoute un document pdf au fichier qui contient les pdf fusionnés
     
                        }
                        log.Info("<><> => SUccès de la contatenation des pdf !!! <= <><>");
                    }
                    catch (Exception erreurpdf)
                    {
                        log.Error("<><> => Erreur de la contatenation des pdf !!! <= <><>" + erreurpdf.ToString());
     
                        veriftraitement = false;
     
                    }
     
     
    }//fin for
     
    ....
         copy.Close();
                fichier.Close();
     
    //procedure pour verifié si mon pdf est correct 
        private bool IsValidPdf(string filepath)
        {
            bool Ret = true;
            PdfReader reader = null;
            try
            {
                //en gros je verifie si tout se passe bien 
                reader = new PdfReader(filepath, new System.Text.ASCIIEncoding().GetBytes(""));
            }
            catch(Exception erreurpdf)
            {
                log.Error("Erreur pdf" + erreurpdf.ToString());
                Ret = false;
            }
            return Ret;
        }
    le principe est que si dans la zone de texte je saisie 5 par ex, les 5 fichiers suivants seront fusionnés en un seul pdf. Le problème étant que sur ma vm, j'ai fais pas mal de test et les 3/4 du temps tout va bien, mais lorsque je test sur le serveur de recette, j'obtiens parfois ce type de message d'erreur :
    " iTextSharp.text.exceptions.InvalidPdfException: PDF header signature not found. "
    et recemment j'ai obtenue ce message suivant :
    "
    iTextSharp.text.pdf.BadPasswordException: PdfReader not opened with owner password
    at iTextSharp.text.pdf.PdfCopyFieldsImp.AddDocument(PdfReader reader)
    "
    J'ai fais pas mal de recherche mais j'ai pas très bien compris pourquoi j'ai ces erreurs, est une erreur dans ma façon de crée mon pdf ??
    A quoi correspond cette erreur ( pdf header signature not found " et savez vous pourquoi maintenant il me renvoie "bad password " ?
    Pourtant sur ma vm tout va bien , on m'a dit d'utiliser cette procedure "isvalidpdf" en attendant, mais y a til un moyen de créer ma fusion des pdf plus proprement et éviter ce genre de bug ?

    Je vous remercie par avance pour tous les conseils que vous pourrez m'apporter sur le sujet.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2002
    Messages : 332
    Points : 502
    Points
    502
    Par défaut
    Premièrement, est-ce que les dépendances sont les mêmes dans tous les environnements? Est-ce qu'il y a une dépendance sur un exécutable local dont la version pourrait être différente?

    Est-ce qu'il pourrait y avoir des conflits entre des threads parallèles? Peut-être que la librairie ou exécutable qui fait le merge n'est pas thread safe...

  3. #3
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2013
    Messages
    933
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 933
    Points : 348
    Points
    348
    Par défaut
    C'est à dire ?
    Selon moi, logiquement oui. J'utilise Itextsharp dans une autre application et que se soir sur ma vm ou recette /prod, tout marche bien, j'ai aucun soucis, seulement c'est une application windows Form.
    L'application pour laquelle j'ai mon souci c'est un intranet en fait, je suis en .NET

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

Discussions similaires

  1. Fusion document PDF
    Par cabistos dans le forum Général Java
    Réponses: 2
    Dernier message: 26/09/2014, 15h32
  2. [FPDF] Générer de larges documents PDF
    Par LEK dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 28/10/2005, 20h32
  3. Générer un document PDF
    Par link39001 dans le forum ASP
    Réponses: 5
    Dernier message: 11/05/2005, 20h39
  4. chargement et impression d'un document pdf
    Par waldo2188 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 15/02/2005, 11h28
  5. Affichage de documents PDF
    Par Dajon dans le forum C++Builder
    Réponses: 5
    Dernier message: 10/10/2002, 11h36

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