PDA

Επιστροφή στο Forum : Εκτύπωση ελληνικών από πρόγραμμα DOS



kitinplus4
25-11-09, 17:02
Καλησπερα,
εχουμε στο μαγαζι ενα αρχαιο προγραμμα που τρεχει και τυπωνει σε DOS και πεθανε ο ενας εκτυπωτης που ειχαμε και τυπωναμε. Ο αλλος που βαλαμε στη θεση του ειναι ενας Epson Stylus Color 760, inkjet παλιος σχετικα για να υποστηριζει και DOS (έχει παράλληλη θύρα, αν και αυτό από μόνο του δε σημαίνει συμβατότητα με DOS). Το πρόγραμμα αυτό τρέχει σε 100% καθαρό DOS, δεν μπορεί να τρέξει στο command prompt των Win98 ή XP (και το μηχάνημα στο οποιο ειναι εγκατεστημενο δεν έχει άλλο σύστημα από... DOS).

Το προβλημα μου ειναι το εξης: Ενω καταφεραμε να τον δει και να τυπωσει, δεν τυπωνει καθολου ελληνικους χαρακτηρες, μονο λατινικους και αριθμους. http://www.taxheaven.gr/acforum/style_emoticons/default/huh.gif Δίπλα του έχουμε έναν dot matrix που τυπώνει κανονικά σε διπλότυπο οπότε το πρόβλημα υπέθεσα ότι έχει να κανει με τον νέο Εpson κι οχι με το PC.

Εχω κανει έρευνα παντου τον τελευταίο μήνα κι απ οτι διαβασα πρέπει να στείλω εντολές ESC/P στον εκτυπωτή αυτό για ν'αλλάξω την κωδικοσελίδα (character table) σε κάποια που έχει ελληνικούς χαρακτήρες. Ψαχνοντας κι άλλο βρηκα το πλήρες ESC/P Manual της Epson όπου είδα ότι σύμφωνα με τη σελίδα 80 του τεράστιου PDF (κατεβαστε το απο εδώ (http://www.rapidshare.com/files/308775020/EpsESCP.zip)) έχω τις παρακάτω κωδικοσελίδες και δίπλα σε bold έχω την ESC/P εντολή που αντιστοιχεί στην καθε μια:

PC437 Greek - ESC ( t 3 0 1 1 16 (αυτή φαντάζομαι είναι και η πιο πιθανή)
PC851 Greek - ESC ( t 3 0 1 4 0
PC869 Greek - ESC ( t 3 0 1 15 0
ISO8859-7 Latin/Greek - ESC ( t 3 0 1 29 7
ISO Latin 7 Greek - ESC ( t 3 0 1 127 7

...και τώρα τι; Πουθενά δεν λέει πως στέλνω αυτές τις εντολές στον εκτυπωτή. Έτσι σκέτα γράφω στο DOS prompt πχ. ESC ( t 3 0 1 1 16 > LPT1 και πατάω enter; Δεν έχω ιδέα αν αυτή είναι η σωστή syntax, αν πρέπει ν'αφήνω κενά κλπ. Και, χρειάζεται να περνάω αυτή την εντολή σε κάθε startup του PC ή του εκτυπωτή; Αν ναι, μπορώ να την περάσω στο autoexec.bat να τρέχει σε κάθε εκκίνηση; Χρειάζεται κάποιο πρόγραμμα στο οποίο γράφω την εντολή αυτή κι εκείνο την στέλνει στον εκτυπωτή; http://www.taxheaven.gr/acforum/style_emoticons/default/wacko.gif

Δυστυχώς η εταιρία που έφτιαξε το πρόγραμμα έχει κλείσει απ το 2000 κι εχουμε περασμένα μέσα την Άρτα με τα Γιάννενα και δε μπορουμε έτσι εύκολα να κάνουμε migrate σε νέο... http://www.taxheaven.gr/acforum/style_emoticons/default/sad.gif

Οποιαδήποτε πρόταση ευπρόσδεκτη κι ευχαριστώ

vamvakoolas
25-11-09, 18:08
και που ασχοληθηκες τοσο πολυ μου κανει εντυπωση. Απο την εμπειρια μου τοσο καιρο με τις αρχαιολογιες (dosωιδες) αν δε θες σε διατρητο (γιατι?) δοκιμασε σε hp (καμια αρχαιολογια) epson εμενα ποτε δε δουλεψε.
Αλλη λυση ειναι στο διατρυτο αλλαξε τυπο χαρτιου

kitinplus4
25-11-09, 19:03
εχουμε διπλα dot matrix για τα διπλοτυπα σε διατρητο αλλα χρειαζεται και καποιες Α4 για να τυπωνει αναφορες... Ο προηγουμενος που ειχα epson ηταν και δουλευε μια χαρα μεχρι που εσκασε η κεφαλή και πήγε για φούντο. Το θεμα ειναι να βρω καποιον απ τα παλια που θυμαται πως στελνονται αυτα τα ESC commands και τελος η ιστορια.

bazzil
27-11-09, 14:53
ο εκτυπωτής δεν έχει μενού; Λέγοντας μενού εννοώ αυτό που σου εκτυπώνει κάθε φορά στο χαρτί σε πια επιλογή βρίσκεσαι. Αν μπεις στις ρυθμίσεις του εκτυπωτή εκεί θα έχει την επιλογή για να αλλάξεις κωδικοσελίδα.

kitinplus4
30-11-09, 19:26
Δυστυχως αυτο το menu το εχουν αλλοι (πχ ο 740) αλλα δεν εχω δει πουθενα να λεει με ποιο συνδυασμο buttons μπορω να τυπωσω τη σελίδα αυτη με τις ρυθμισεις. Δοκιμασα την ιδια διαδικασια με τον 740 αλλα δεν δουλεψε...

mirtiano
30-11-09, 19:57
Δοκιμασε αυτο αφαιροντας το κενο μετα την ανω κατω τελεια στο ονομα αρχειου

copy con: printer.bat
cls
echo off
\ ( t 3 0 1 1 16 και πατα Ctrl Z

θα δημιουργηθει το αρχειο printer bat και θα το τρεξεις ως εξης
με ανοιχτο τον εκτυπωτη
type printer.bat>prn
δεν ειμαι σιγουρος αν κατω απο την λεξη echo η αριστερη καθετος πρεπει να αντικατασταθει με τα γραμματα esc ή esc ''space bar'' δηλ. με ή χωρις κενο μετα το esk ή την \

Αν πετυχει η κεφαλη του εκτυπωτη θα κινηθει ελαχιστα αλλα φανερα με μικρο θορυβο αλλα δεν θα εκτυπωθει τιποτα.Αν κανει εκτυπωση τοτε δεν επιασε το κολπο.

Συγνωμη που δεν τα θυμαμαι φιλε μου αλλα με πας 20 χρονια πισω...

kitinplus4
30-11-09, 23:41
Να το δοκιμασω, καπου ειδα οτι για το ESC χρειαζεται ενας χαρακτηρας που λεει μοιαζει με βελακι (καπως τον καλεις με Alt P + Alt [ ή καπως ετσι). Θα τα δοκιμασω και βλεπουμε. Ευχαριστω.

sivadws2
01-12-09, 00:34
Δοκίμασε να το κάνεις μέσω basic.
Κατεβάζεις το παρακάτω (http://download.microsoft.com/download/win95upg/tool_s/1.0/w95/en-us/olddos.exe) το ξεζιπάρεις και τρέχεις την qbasic.exe που θα βρεις μέσα (αν δεν την έχεις ήδη).
Γράψε και τον παρακάτω κώδικα


Open "lpt1" For Output As #1
Print #1, Chr$(27); Chr$(40); Chr$(116); Chr$(51); Chr$(48); Chr$(49);Chr$(49);Chr$(49);Chr$(54);
Print #1, Chr$(27); Chr$(116) ; Chr$(0)
Print #1, "I am printing!!!"
Close #1
Αν ο εκτυπωτής έχει την ελληνική ROM θα μπορέσει (μάλλον) να του φορτώσει την σωστή κωδικοσελίδα για να τυπώσει ελληνικά και θα τυπώσει και το "I am printing!!!"....

kitinplus4
02-12-09, 12:31
ενδιαφέρον κι αυτό!
Δεν θα έπρεπε όμως να βάζω και τα κενά (ASCII: Chr$(32); ) αναμεσα στους characters της εντολής; Αλλιώς πως θα καταλάβει τη διαφορα μεταξυ 16 και 1, 6 (τελευταίο parameter του command);


Print #1, Chr$(27); Chr$(32); Chr$(40); Chr$(32); Chr$(116); Chr$(32); Chr$(51); Chr$(32); Chr$(48); Chr$(32); Chr$(49); Chr$(32); Chr$(49); Chr$(32); Chr$(49); Chr$(54);

θα τα δοκιμάσω και τα δύο και θα σας πω.

Giorgos_71
04-12-09, 12:38
Καλημέρα Φιλε μου..

Μάλλον έχω την λύση στο προβλημά σου

http://www.ms-office.gr/forum/access-erotiseis-apantiseis/238-ektiposi-pinaka-me-visual-basic-applications-2.html

Μπες εδώ.. και θα βρεις τον κώδικα που εβαλα εγώ προκειμένου τα ελληνικά να τυπώνωντε ελληνικά

φιλικα Γιώργος..

kitinplus4
04-12-09, 17:48
ευχαριστω για την απαντηση, αλλα πως τον εκτελω αυτον τον κωδικα


Function StrTrans(str As String) As String

Dim i As Integer
Dim outStr As String, S As Byte
For i = 1 To Len(str)
S = Asc(Mid(str, i, 1))
Select Case S
Case 193: outStr = outStr & Chr(128) '"Α"
Case 162: outStr = outStr & Chr(128) '"Ά"
Case 194: outStr = outStr & Chr(129) '"Β"
Case 195: outStr = outStr & Chr(130) '"Γ"
Case 196: outStr = outStr & Chr(131) '"Δ"
Case 197: outStr = outStr & Chr(132) '"Ε"
Case 184: outStr = outStr & Chr(132) '"Έ"
Case 198: outStr = outStr & Chr(133) '"Ζ"
Case 199: outStr = outStr & Chr(134) '"Η"
Case 185: outStr = outStr & Chr(134) '"Ή"
Case 200: outStr = outStr & Chr(135) '"Θ"
Case 201: outStr = outStr & Chr(136) '"Ι"
Case 186: outStr = outStr & Chr(136) '"Ί"
Case 202: outStr = outStr & Chr(137) '"Κ"
Case 203: outStr = outStr & Chr(138) '"Λ"
Case 204: outStr = outStr & Chr(139) '"Μ"
Case 205: outStr = outStr & Chr(140) '"Ν"
Case 206: outStr = outStr & Chr(141) '"Ξ"
Case 207: outStr = outStr & Chr(142) '"Ο"
Case 188: outStr = outStr & Chr(142) '"Ό"
Case 208: outStr = outStr & Chr(143) '"Π"
Case 209: outStr = outStr & Chr(144) '"Ρ"
Case 211: outStr = outStr & Chr(145) '"Σ"
Case 212: outStr = outStr & Chr(146) '"Τ"
Case 213: outStr = outStr & Chr(147) '"Υ"
Case 190: outStr = outStr & Chr(147) '"Ύ"
Case 214: outStr = outStr & Chr(148) '"Φ"
Case 215: outStr = outStr & Chr(149) '"Χ"
Case 216: outStr = outStr & Chr(150) '"Ψ"
Case 217: outStr = outStr & Chr(151) '"Ω"
Case 191: outStr = outStr & Chr(151) '"Ώ"
Case 225: outStr = outStr & Chr(152) '"α"
Case 226: outStr = outStr & Chr(153) '"β"
Case 227: outStr = outStr & Chr(154) '"γ"
Case 228: outStr = outStr & Chr(155) '"δ"
Case 229: outStr = outStr & Chr(156) '"ε"
Case 230: outStr = outStr & Chr(157) '"ζ"
Case 231: outStr = outStr & Chr(158) '"η"
Case 232: outStr = outStr & Chr(159) '"θ"
Case 233: outStr = outStr & Chr(160) '"ι"
Case 234: outStr = outStr & Chr(161) '"κ"
Case 235: outStr = outStr & Chr(162) '"λ"
Case 236: outStr = outStr & Chr(163) '"μ"
Case 237: outStr = outStr & Chr(164) '"ν"
Case 238: outStr = outStr & Chr(165) '"ξ"
Case 239: outStr = outStr & Chr(166) '"ο"
Case 240: outStr = outStr & Chr(167) '"π"
Case 241: outStr = outStr & Chr(168) '"ρ"
Case 243: outStr = outStr & Chr(169) '"σ"
Case 242: outStr = outStr & Chr(170) '"ς"
Case 244: outStr = outStr & Chr(171) '"τ"
Case 245: outStr = outStr & Chr(172) '"υ"
Case 246: outStr = outStr & Chr(173) '"φ"
Case 247: outStr = outStr & Chr(174) '"χ"
Case 248: outStr = outStr & Chr(175) '"ψ"
Case 249: outStr = outStr & Chr(224) '"ω"
Case 220: outStr = outStr & Chr(225) '"ά"
Case 221: outStr = outStr & Chr(226) '"έ"
Case 222: outStr = outStr & Chr(227) '"ή"
Case 250: outStr = outStr & Chr(228) '"ϊ"
Case 223: outStr = outStr & Chr(229) '"ί"
Case 252: outStr = outStr & Chr(230) '"ό"
Case 253: outStr = outStr & Chr(231) '"ύ"
Case 251: outStr = outStr & Chr(232) '"ϋ"
Case 254: outStr = outStr & Chr(233) '"ώ"
Case 128: outStr = outStr & Chr(238) '"€"
Case 218: outStr = outStr & Chr(136) '"Ϊ"
Case 219: outStr = outStr & Chr(147) '"Ϋ"
Case Else: outStr = outStr & Chr(S)
End Select
Next i
StrTrans = outStr
End Function

σε περιβαλλον DOS???

Edit: βρήκα την VBasic για DOS και θα κοιταξω εκει μπας και βγαλω ακρη.

kitinplus4
08-12-09, 00:35
Τελικα τα δοκιμασα ολα εκτος του τελευταίου που ηθελε vbasic και κανενα δεν δουλευει... Το μονο που πετυχα σε καποιες περιπτωσεις ειναι να τυπωσει την εντολη αντι να την εκτελεσει. Τις υπολοιπες φορές... τίποτα, σκετη ησυχια.

@ ADSLgr.com All rights reserved.