Supportnet / Forum / WindowsXP
Umlaute drucken aus Dos Box
Frage
hallo,
ich habe ein altes dos programm und einen Drucker der nur USB hat.
so nach einer weile habe ich rausbekommen das man mit dem befehl
net use lpt2:\\computer\freigabenname /persisten:yes
die druck befehle vom dos programm auf usb umleiten kann
so aber er druck wies schein ohne formatierung also kein Fett use. und leide auch keine umlaute (ä, ö, ü...)
ich habe gelese das es wohl etwas mit der codierung zu tun hat codepage irgendwas
hat jemand eine idee wie ich umlaute bekomme oder gibt es eine andere möglichkeit für das drucken aus dos
mfg
robert
Antwort 1 von Solo
Hi,
ich weiss zwar nicht, ob es ein Druckbefehl für dein problem gibt. Als Alternative kannst du die Datei nach dem Druck in ANSI z.B. mit dem folgenden VBScript konvertieren. Diesen Code in Notepad kopieren und als Ansi2Ascii.VBS abspeichern.
´ Dieses Script wandelt Textdateien (*.txt) von ANSI nach ASCII um und
´ umgekehrt.
Set myfiles = CreateObject("Scripting.FileSystemObject")
Set myshell = Wscript.CreateObject("Wscript.Shell")
Set Appshell = CreateObject("Shell.Application")
Set Sendenan=Wscript.arguments
Erweiterung = "txt"
Titel = "..., welcher die *.txt-Datei(en) enthält:"
On error resume next
if Sendenan.Count=0 then
Set AppFolder = Appshell.BrowseForFolder(0, Titel, &H0001, 17)
Ordner = AppFolder.ParentFolder.ParseName(AppFolder.Title).Path
If err.number > 0 then
i=instr(AppFolder, ":")
Ordner = mid(AppFolder, i - 1, 1) & ":\"
end if
else
Ordner = Sendenan(0)
if not (myfiles.FolderExists(Ordner)) then
g = msgbox("Wählen Sie bitte einen gültigen Ordner aus")
wscript.quit
end if
end if
Do
Wahl = Inputbox("Möchten Sie von:" +VBCR + VBCR & " 1 = ASCII (DOS) zu ANSI (Win)" +VBCR +VBCR & " 2 = ANSI (Win) zu ASCII (DOS)" +VBCR +VBCR & "konvertieren?", " Konvertierung", "1")
Set Ord = myfiles.GetFolder(Ordner)
If Wahl = "" then
wscript.quit
elseif Wahl = "2" then SubSearch2 Ord
elseif Wahl = "1" then SubSearch1 Ord
else
d = Msgbox("Geben Sie bitte entweder 1 oder 2 ein")
end if
loop until wahl = 2 or wahl = 1
Sub SubSearch2(Byval Ord)
filesearch2 Ord
Set Weitere = Ord.SubFolders
For Each AktuellerOrdner In Weitere
check = mid(AktuellerOrdner, len(AktuellerOrdner)-4, 5)
if not check = "ascii" then
SubSearch2 AktuellerOrdner
end if
Next
End Sub
ich weiss zwar nicht, ob es ein Druckbefehl für dein problem gibt. Als Alternative kannst du die Datei nach dem Druck in ANSI z.B. mit dem folgenden VBScript konvertieren. Diesen Code in Notepad kopieren und als Ansi2Ascii.VBS abspeichern.
´ Dieses Script wandelt Textdateien (*.txt) von ANSI nach ASCII um und
´ umgekehrt.
Set myfiles = CreateObject("Scripting.FileSystemObject")
Set myshell = Wscript.CreateObject("Wscript.Shell")
Set Appshell = CreateObject("Shell.Application")
Set Sendenan=Wscript.arguments
Erweiterung = "txt"
Titel = "..., welcher die *.txt-Datei(en) enthält:"
On error resume next
if Sendenan.Count=0 then
Set AppFolder = Appshell.BrowseForFolder(0, Titel, &H0001, 17)
Ordner = AppFolder.ParentFolder.ParseName(AppFolder.Title).Path
If err.number > 0 then
i=instr(AppFolder, ":")
Ordner = mid(AppFolder, i - 1, 1) & ":\"
end if
else
Ordner = Sendenan(0)
if not (myfiles.FolderExists(Ordner)) then
g = msgbox("Wählen Sie bitte einen gültigen Ordner aus")
wscript.quit
end if
end if
Do
Wahl = Inputbox("Möchten Sie von:" +VBCR + VBCR & " 1 = ASCII (DOS) zu ANSI (Win)" +VBCR +VBCR & " 2 = ANSI (Win) zu ASCII (DOS)" +VBCR +VBCR & "konvertieren?", " Konvertierung", "1")
Set Ord = myfiles.GetFolder(Ordner)
If Wahl = "" then
wscript.quit
elseif Wahl = "2" then SubSearch2 Ord
elseif Wahl = "1" then SubSearch1 Ord
else
d = Msgbox("Geben Sie bitte entweder 1 oder 2 ein")
end if
loop until wahl = 2 or wahl = 1
Sub SubSearch2(Byval Ord)
filesearch2 Ord
Set Weitere = Ord.SubFolders
For Each AktuellerOrdner In Weitere
check = mid(AktuellerOrdner, len(AktuellerOrdner)-4, 5)
if not check = "ascii" then
SubSearch2 AktuellerOrdner
end if
Next
End Sub
Antwort 2 von Solo
Sub Filesearch2(Byval AktuellerOrdner)
If not (myfiles.FolderExists(AktuellerOrdner & "\ascii")) then
Set ascii = myfiles.CreateFolder(AktuellerOrdner & "\ascii")
end if
Set Texte = AktuellerOrdner.Files
For Each txt in Texte
Set x = myfiles.GetFile(txt)
groesse = x.Size
basis = myfiles.GetBaseName(txt)
Erw = myfiles.GetExtensionName(txt.name)
Erw2 = Lcase(Erw)
if Erw2 = Erweiterung and groesse > 0 then
Set dat = myfiles.OpenTextFile(txt)
t = dat.readall
dat.close
t = replace(t, chr(228), chr(132))
t = replace(t, chr(246), chr(148))
t = replace(t, chr(252), chr(129))
t = replace(t, chr(196), chr(142))
t = replace(t, chr(214), chr(153))
t = replace(t, chr(220), chr(154))
t = replace(t, chr(223), chr(225))
Set dat = myfiles.OpenTextFile(AktuellerOrdner & "\ascii\" & basis & ".asc", 2, true)
dat.Write t
dat.close
end if
next
Set ascjj = myfiles.GetFolder(AktuellerOrdner & "\ascii")
leer = ascjj.size
if leer = 0 then
myfiles.DeleteFolder(ascjj)
end if
End Sub
Sub SubSearch1(Byval Ord)
filesearch1 Ord
Set Weitere = Ord.SubFolders
For Each AktuellerOrdner In Weitere
check = mid(AktuellerOrdner, len(AktuellerOrdner)-3, 4)
if not check = "ansi" then
SubSearch1 AktuellerOrdner
end if
Next
End Sub
Sub Filesearch1(Byval AktuellerOrdner)
If not (myfiles.FolderExists(AktuellerOrdner & "\ansi")) then
Set ansi = myfiles.CreateFolder(AktuellerOrdner & "\ansi")
end if
Set Texte = AktuellerOrdner.Files
For Each txt in Texte
Set x = myfiles.GetFile(txt)
groesse = x.Size
basis = myfiles.GetBaseName(txt)
Erw = myfiles.GetExtensionName(txt.name)
Erw1 = LCase(Erw)
if Erw1 = Erweiterung and groesse > 0 then
Set dat = myfiles.OpenTextFile(txt)
t = dat.readall
dat.close
t = replace(t, chr(132), chr(228))
t = replace(t, chr(148), chr(246))
t = replace(t, chr(129), chr(252))
t = replace(t, chr(142), chr(196))
t = replace(t, chr(153), chr(214))
t = replace(t, chr(154), chr(220))
t = replace(t, chr(225), chr(223))
Set dat = myfiles.OpenTextFile(AktuellerOrdner & "\ansi\" & basis & ".ans", 2, true)
dat.Write t
dat.close
end if
next
Set ansj = myfiles.GetFolder(AktuellerOrdner & "\ansi")
leer = ansj.size
if leer = 0 then
myfiles.DeleteFolder(ansj)
end if
End Sub
msgbox Space(11) & "Fertig!",," Information"
wscript.quit
MfG, Solo
If not (myfiles.FolderExists(AktuellerOrdner & "\ascii")) then
Set ascii = myfiles.CreateFolder(AktuellerOrdner & "\ascii")
end if
Set Texte = AktuellerOrdner.Files
For Each txt in Texte
Set x = myfiles.GetFile(txt)
groesse = x.Size
basis = myfiles.GetBaseName(txt)
Erw = myfiles.GetExtensionName(txt.name)
Erw2 = Lcase(Erw)
if Erw2 = Erweiterung and groesse > 0 then
Set dat = myfiles.OpenTextFile(txt)
t = dat.readall
dat.close
t = replace(t, chr(228), chr(132))
t = replace(t, chr(246), chr(148))
t = replace(t, chr(252), chr(129))
t = replace(t, chr(196), chr(142))
t = replace(t, chr(214), chr(153))
t = replace(t, chr(220), chr(154))
t = replace(t, chr(223), chr(225))
Set dat = myfiles.OpenTextFile(AktuellerOrdner & "\ascii\" & basis & ".asc", 2, true)
dat.Write t
dat.close
end if
next
Set ascjj = myfiles.GetFolder(AktuellerOrdner & "\ascii")
leer = ascjj.size
if leer = 0 then
myfiles.DeleteFolder(ascjj)
end if
End Sub
Sub SubSearch1(Byval Ord)
filesearch1 Ord
Set Weitere = Ord.SubFolders
For Each AktuellerOrdner In Weitere
check = mid(AktuellerOrdner, len(AktuellerOrdner)-3, 4)
if not check = "ansi" then
SubSearch1 AktuellerOrdner
end if
Next
End Sub
Sub Filesearch1(Byval AktuellerOrdner)
If not (myfiles.FolderExists(AktuellerOrdner & "\ansi")) then
Set ansi = myfiles.CreateFolder(AktuellerOrdner & "\ansi")
end if
Set Texte = AktuellerOrdner.Files
For Each txt in Texte
Set x = myfiles.GetFile(txt)
groesse = x.Size
basis = myfiles.GetBaseName(txt)
Erw = myfiles.GetExtensionName(txt.name)
Erw1 = LCase(Erw)
if Erw1 = Erweiterung and groesse > 0 then
Set dat = myfiles.OpenTextFile(txt)
t = dat.readall
dat.close
t = replace(t, chr(132), chr(228))
t = replace(t, chr(148), chr(246))
t = replace(t, chr(129), chr(252))
t = replace(t, chr(142), chr(196))
t = replace(t, chr(153), chr(214))
t = replace(t, chr(154), chr(220))
t = replace(t, chr(225), chr(223))
Set dat = myfiles.OpenTextFile(AktuellerOrdner & "\ansi\" & basis & ".ans", 2, true)
dat.Write t
dat.close
end if
next
Set ansj = myfiles.GetFolder(AktuellerOrdner & "\ansi")
leer = ansj.size
if leer = 0 then
myfiles.DeleteFolder(ansj)
end if
End Sub
msgbox Space(11) & "Fertig!",," Information"
wscript.quit
MfG, Solo

