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 :
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 :
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; }
" 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.
Partager