majcho
Goto Top

Ghostscript pdfwrite zu txt wird in UCS-2 Little Endian konvertiert

Habe mit dem neuen Ghostscript 9.04 sehr gute resultate in der Umwandlung von Textbasierten .pdf-Dateien in .txt erzielen können. Wenn ich allerdings diese Textdateien mit Notepad++ öffne liegen

Habe mit dem neuen Ghostscript 9.04 sehr gute resultate in der Umwandlung von Textbasierten .pdf-Dateien in .txt erzielen können. Wenn ich allerdings diese Textdateien mit Notepad++ öffne, liegen diese in UCS-2 Little Endian vor. Jetzt würde ich gerne auf der Commandozeilenebene diese in UTF-8 oder ANSI umwandeln. Gibt es ein einfaches dos-script das dies erledigt?

Content-Key: 176298

Url: https://administrator.de/contentid/176298

Printed on: April 19, 2024 at 22:04 o'clock

Mitglied: 60730
60730 Nov 15, 2011 at 14:31:46 (UTC)
Goto Top
ja
Member: manni04
manni04 Nov 15, 2011 at 21:14:02 (UTC)
Goto Top
Ist zwar kein dos-skript aber vielleicht hilft dir das ja auch weiter:

Const Path = "file.txt"  

Const adTypeBinary = 1
Const adTypeText = 2
Const adSaveCreateOverWrite = 2
 
Dim BinaryStream, Text
    
Set BinaryStream = CreateObject("ADODB.Stream")  
        
With BinaryStream
    .Type = adTypeText
    .Charset = "UTF-16"  
    .Open
    .LoadFromFile Path
     Text = .ReadText
    .Close
End With
        
With BinaryStream
    .Type = adTypeText
    .Charset = "x-Ansi"  
    .Open
    .WriteText Text
    .SaveToFile Path, adSaveCreateOverWrite
    .Close
End With

Das einfach als .vbs-Datei abspeichern.

Grüße manni
Member: majcho
majcho Nov 16, 2011 at 09:40:05 (UTC)
Goto Top
Hallo Manni04,

danke für deine Antwort. Leider hatte ich erfolglose und fehlerhafte Versuche mit Jodconverter und libiconv. Ich bin ein script-rookie so wie TimoBeil, der mit seiner Antwort einen Profi in mir vermutet. Dein Script habe ich auch erfolgreich umsetzen können, jedoch stieß ich an meine Grenzen mit einer Routine. Deshalb habe ich mir aus mehreren Beiträgen dieses Forums eine eigene Konstruktion zusammengebastelt, die sicher verbesserungswürdig ist.

:: derzeitige Codepage speichern
for /f "tokens=2 delims=:" %%i in ('chcp') do set /a oemcp=%%~ni  
:: auf ANSI wechseln
>nul chcp 1252

FOR /F "delims=" %%i in ('dir /a-d /b /s "*.txt"') do (  
type %%i > %%ia )
ren *.txta *.rtf
del *.txt
ren *.rtf *.txt

:: zurück nach ASCII
>nul chcp %oemcp%