Bonjour tout le monde,

je travaille sur un programme Java qui lit un fichier PDF et copie le contenu dans un fichier txt(selon une structure bien précise) !

tout marche à merveille ! mais le problème avec l'arabe ??

je vous montre un exemple :

voici le contenu du PDF(c'est juste une partie) :


Pratique de l'activité bancaire : gestion comptable, commerciale, informatique et financière -gestion des risques /François Desmicht.- Paris: Dunod, 2004

ISBN : 2-10-048881-3

/BANQUE, GESTION COURANTE/ /COMPTE/ /CLIENTELE/ /BANQUE DE DETAIL/ /MARCHES SPECIALISES/ /PRODUITS DE COLLECTE/ /PRODUITS D'EMPLOI/ /
GESTION INFORMATIQUE/ /SYSTEME D'INFORMATION BANCAIRE/ /SIB/ /ECHANGES INTERBANCAIRES/ /EIB/ /GESTION FINANCIERE/ /MODELISATION FINANCIERE DE L'ACTIVITE/ /

Cote: BQE186

L'Intermédiation financière des banques et des assurances /Jamel Eddine Chichti;.- Tunis : Imprimerie officielle de la République Tunisienne, 2000

ISBN : 9973-946-25-1

/SYSTEME FINANCIER TUNISIEN/ /INTERMEDIATION FINANCIERE DE L'ASSUREUR/ /CONTRAT D'ASSURANCE/ /EQUILIBRE FINANCIER DES ENTREPRISES D'ASSURANCE/ /INTERMEDIATION FINANCIERE/ /BANQUE, INTERMEDIATION FINANCIERE DE / /MODELISATION DE L'ACTIVITE DE LA BANQUE/ /ASYMETRIE D'INFORMATION/ /

Cote: BQE187

----------------------------------------------

voici le code(il faut le jar "itextpdf-5.2.1") :

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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
 
 
package fichier;
 
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.parser.PdfTextExtractor;
import com.itextpdf.text.xml.xmp.LangAlt;
 
public class ParsingPDF {
 
 
	static String RECID = "REC-ID UPDATENEW";
	static String titre = "TITRE";
	static String LIEU_EDITION = "LIEU_EDITION";
	static String EDITEUR = "EDITEUR";
	static String DATE_EDITION = "DATE_EDITION";
	static String ISBN = "ISBN";
	static String DESCRIPTEUR = "DESCRIPTEUR";
	static String cote="Cote";
	static String output= "";
	static String output3= "";
 
	//static int i=799;
 
 
	public static void Convert(String fileName, String str){
		try {
 
			//
			FileOutputStream out = new FileOutputStream(fileName);
			String text = str.trim();
			int c=1;
				System.err.println("text.length()= "+text.length());
 
			while(c>0){
 
 
 
				c=writeTiFile( c,text);
 
					output= RECID + "\n"  + titre + "\n" + LIEU_EDITION
							+ "\n" + EDITEUR + "\n" + DATE_EDITION 
							+ "\n" + ISBN + "\n" + DESCRIPTEUR+"\n"+cote;
					 RECID = "REC-ID UPDATENEW";
					  titre = "TITRE";
					  LIEU_EDITION = "LIEU_EDITION";
					  EDITEUR = "EDITEUR";
					  DATE_EDITION = "DATE_EDITION";
					  ISBN = "ISBN";
					  DESCRIPTEUR = "DESCRIPTEUR";
					  cote="Cote";
 
			output3+=output+"\n"+"\n";
 
 
 
				}
 
			out.write(output3.getBytes("UTF-8"));
 
			////////////////////////////////////////////////////////////////////////////
 
				//////////////////////////////
 
 
 
		} catch (Exception e) {
 
			e.printStackTrace();
		}
 
	}
	public static int writeTiFile( int i,String text) {
 
		try {
 
			//text = contenu du fichier
 
				int fin0=text.trim().indexOf(".-",i);
 
 
			titre = titre + " "+text.trim().substring(i+13,fin0).trim();
			System.err.println(titre);
			int debut1=text.indexOf("-",fin0);
			int fin1=text.indexOf(":",fin0);
			LIEU_EDITION = LIEU_EDITION + " "+text.trim().substring(debut1+1,fin1).trim();
 
			int debut2=text.indexOf(":",fin1);
			int fin2=text.indexOf(",",fin1);
			EDITEUR = EDITEUR + " "+text.trim().substring(debut2+1,fin2).trim();
 
			int debut3=text.indexOf(",",fin2);
			int fin3=text.indexOf("ISBN",fin2);
		DATE_EDITION = DATE_EDITION + " "+text.trim().substring(debut3+1,fin3).trim();
 
			int debut4=text.indexOf(":",fin3);
			int fin4=text.indexOf("/",fin3);
		ISBN = ISBN + " "+text.trim().substring(debut4+1,fin4).trim();
 
			int debut5=text.indexOf("/",fin4-1);
			int fin5=text.indexOf("Cote:",fin4);
			 System.out.println(debut5+1+" j "+fin5);
		DESCRIPTEUR = DESCRIPTEUR + " "+text.trim().substring(debut5+1,fin5).trim();
 
 
 
 
			int len = "Cote :".length();
			RECID = RECID + " "+text.trim().substring(fin5 + len, fin5 +12).trim();
		cote=cote + " "+text.trim().substring(fin5 + len, fin5 + 12).trim();
		i=fin5;
				} catch (Exception ex) {
					i=0;
			ex.printStackTrace();
		}
		return i;
 
	}
 
	public static String LirePDF(String fileIn) {
		String contenu = "";
		try {
 
			PdfReader reader = new PdfReader(fileIn);
 
 
			int n=reader.getNumberOfPages();
			for (int i = 1; i < n; i++) {
				String conten = PdfTextExtractor.getTextFromPage(reader, i);
 
				contenu+=conten;
			}
 
			System.err.println("contenu==>"+contenu);
		} catch (Exception e) {
 
			e.printStackTrace();
 
		}
		return contenu;
	}
 
	public static void main(String[] args) {
		Convert("out.txt", LirePDF("c:\\2005.pdf"));
 
	}
}
-------------------------------------

voici le résultat sur un .txt :


REC-ID UPDATENEW BQE186
TITRE Pratique de l'activité bancaire : gestion comptable, commerciale, informatique et financière -gestion des risques /François Desmicht
LIEU_EDITION Paris
EDITEUR Dunod
DATE_EDITION 2004
ISBN 2-10-048881-3
DESCRIPTEURS BANQUE, GESTION COURANTE/ /COMPTE/ /CLIENTELE/ /BANQUE DE DETAIL/ /MARCHES SPECIALISES/ /PRODUITS DE COLLECTE/ /PRODUITS D'EMPLOI/ /
GESTION INFORMATIQUE/ /SYSTEME D'INFORMATION BANCAIRE/ /SIB/ /ECHANGES INTERBANCAIRES/ /EIB/ /GESTION FINANCIERE/ /MODELISATION FINANCIERE DE L'ACTIVITE/ /
COTE BQE186

REC-ID UPDATENEW BQE187
TITRE L'Intermédiation financière des banques et des assurances /Jamel Eddine Chichti
LIEU_EDITION Tunis
EDITEUR Imprimerie officielle de la République Tunisienne
DATE_EDITION 2000
ISBN 9973-946-25-1
DESCRIPTEURS SYSTEME FINANCIER TUNISIEN/ /INTERMEDIATION FINANCIERE DE L'ASSUREUR/ /CONTRAT D'ASSURANCE/ /EQUILIBRE FINANCIER DES ENTREPRISES D'ASSURANCE/ /INTERMEDIATION FINANCIERE/ /BANQUE, INTERMEDIATION FINANCIERE DE / /MODELISATION DE L'ACTIVITE DE LA BANQUE/ /ASYMETRIE D'INFORMATION/ /
COTE BQE187
et donc c'est bon !

"MAIS" quand il y a de l'arabe

exp :


Code électoral = المجلة الالانتخابية .- Tunis : Imprimerie officielle de la République Tunisienne, 2005

ISBN : 9973-39-024-5

/CODE ELECTORAL/ /ELECTEUR, CONDITIONS REQUISES/ /LISTES ELECTORALES/ /ELECTION DU PRESIDENT DE LA REPUBLIQUE/ /ELECTION DES MEMBRES DE LA CHAMBRE DES DEPUTES/ /ELECTION DES MEMBRES DE LA CHAMBRE DES CONSEILLERS // قائمات الالانتخابية/ /ناخب، الشروط المطلوب توفرها/ /بطاقات الالانتخابية/ /انتخاب رئيس الجمهورية/ /انتخاب أعضاء مجلس النواب/
/ انتخاب أعضاء مجلس المستشارين/ /انتخاب أعضاء المجالس البلدية/ /استفتاء، أحكام خاصة ب/

Cote: JUR754
ça donne :


REC-ID UPDATENEW JUR754
TITRE Code électoral = ﺔﻴﺏﺎﺨﺘ ﺔﻴﺏﺎﺨﺘ ﻧﻻا ﻧﻻا ﺔﻠﺠﻤﻟا ﺔﻠﺠﻤﻟا
LIEU_EDITION Tunis
EDITEUR Imprimerie officielle de la République Tunisienne
DATE_EDITION 2005
ISBN 9973-39-024-5
DESCRIPTEURs CODE ELECTORAL/ /ELECTEUR, CONDITIONS REQUISES/ /LISTES ELECTORALES/ /ELECTION DU PRESIDENT DE LA REPUBLIQUE/ /ELECTION DES MEMBRES DE LA CHAMBRE DES DEPUTES/ /ELECTION DES MEMBRES DE LA CHAMBRE DES CONSEILLERS / /باﻮﻨﻟا باﻮﻨﻟا ﺲﻠﺠ ﺲﻠﺠ ﻡ ﻡ ءﺎﻀﻋأ ءﺎﻀﻋأ ب ب ﺎ ﺎ ﺨﺘﻧا ﺨﺘﻧا/ / ﺔﻳ ﺔﻳ رﻮﻬﻤﺠﻟا رﻮﻬﻤﺠﻟا ﺲﻴﺋر ﺲﻴﺋر بﺎﺨ بﺎﺨ ﺘﻧا ﺘﻧا/ / ﺔﻴﺏ ﺔﻴﺏ ﺎ ﺎ ﺨﺘﻧﻻ ﺨﺘﻧﻻ ا ا تﺎﻗﺎ تﺎﻗﺎ ﻄﺏ ﻄﺏ/ / ﺎهﺮﻓ ﺎهﺮﻓ ﻮﺕ ﻮﺕ بﻮﻠﻄﻤﻟا بﻮﻠﻄﻤﻟا طوﺮﺸﻟا طوﺮﺸﻟا ،ﺐ ،ﺐ ﺥﺎﻧ ﺥﺎﻧ/ / ﺔﻴﺏ ﺔﻴﺏ ﺎ ﺎ ﺨﺘﻧﻻ ﺨﺘﻧﻻ ا ا تﺎﻤﺋﺎﻗ تﺎﻤﺋﺎﻗ /
/ــﺏ ــﺏ ﺔﺹ ﺔﺹ ﺎ ﺎ ﺥ ﺥ م م ﺎ ﺎ ﻜﺡ ﻜﺡ أ أ ،ءﺎﺘﻔ ،ءﺎﺘﻔ ﺘ ﺘ ﺳا ﺳا/ /ﺔﻳﺪ ﺔﻳﺪ ﻠ ﻠﺒﻟا ﺒﻟا ﺲﻟﺎﺠ ﺲﻟﺎﺠ ﻤﻟا ﻤﻟا ءﺎﻀﻋأ ءﺎﻀﻋأ ب ب ﺎ ﺎ ﺨﺘﻧا ﺨﺘﻧا/ / ﻦﻳرﺎﺸﺘﺴﻤﻟا ﻦﻳرﺎﺸﺘﺴﻤﻟا ﺲﻠﺠﻡ ﺲﻠﺠﻡ ءﺎﻀﻋأ ءﺎﻀﻋأ بﺎﺨﺘﻧا بﺎﺨﺘﻧا /
COTE JUR754
vous voyez comment l'écriture arabe devient ! incompréhensible ! c'est des lettres arabes oui mais qui n'ont aucun sens ! des mots renversés !

j'espère trouver une solution à ce problème !