2016-03-21 11 views
0

Ich versuche, aus einer PDF-Datei mit Dateiströmen zu lesen, und ich möchte es in einem Schreibgerät im codierten cp1252-Format schreiben. Folgendes ist der Code:Lesen von UTF-8-formatierten PDF-Datei und Schreiben auf einen Schreiber im cp1252-Format

byte buf[] = new byte[8192]; 
InputStream is = new FileInputStream(f); 
ByteArrayOutputStream oos = new ByteArrayOutputStream(); 
int c=0; 
while ((c = is.read(buf)) != -1) { 
    oos.write(buf, 0, c); 
} 
byte out[] = oos.toByteArray(); 
String str = oos.toString(out,"UTF-8"); 
char[] ch = str.toCharArray(); 
writer.write(ch); 
is.close(); 
oos.close(); 

Aber die Ausgabe ist fehlerhaft, da der Text nicht lesbar ist (nicht richtig konvertiert). Wie behebe ich das?

+1

Was enthält "f"? Ist das eine tatsächliche PDF-Datei? –

+0

* UTF-8-formatierte PDF-Datei * - was ist das? PDF ist ein Binärformat. Punkt. – mkl

+0

Es ist eine pdf-Datei: Datei f = neue Datei ("C: \ Users \ myfile.pdf"); Ich habe die Eigenschaften der Datei ausgecheckt und in Eclipse heißt es, es ist standardmäßig UTF-8 codiert –

Antwort

0

Beim Lesen der PDF-Datei tritt wahrscheinlich ein Fehler auf. Verwenden Sie PDFBox zum Extrahieren von Text aus der PDF-Datei. Es ist wahrscheinlich eine der besten Möglichkeiten, dies zu tun. Sobald Sie den erforderlichen Text haben, können Sie ihn mit der Codierung cp1252 speichern.

Sie können

Bezüglich Umstellung auf cp1252 von here mit PDFBox Beispiele für Textextraktion Check-out, wenn Sie einen Windows-Computer verwenden, dann ist die Standard-Kodierung cp1252. So einfach versuchen, den Text zu speichern sollte hoffentlich speichern Sie es in cp1252 Codierung.