Oficjalne wyjaśnienie Microsoftu:
Microsoft Word 97
Problemy z drukowaniem przez Word 97
polskich znaków na niektórych drukarkach
OPIS PROBLEMU
Podczas drukowania
dokumentu zawierającego znaki z rozszerzonych czcionek
(tzw. UNICODE), takie jak np. symbole greckie czy polskie
znaki dialektyczne, niektóre drukarki używające
sterowników źle rozpoznających znaki UNICODE będą
drukowały puste kwadraty zamiast właściwych znaków.
Efekt ten występuje nawet wtedy, gdy na ekranie znaki
UNICODE są widoczne.
Dotyczy to następujących
drukarek i sterowników:
- Brother HL730, 760
- Brother WL-660
- Canon BubbleJet
BJ-C240, C600, 4000, 4100, 4200, 4500, 4550 -
sterownik wersja 3.40
- Canon Multipass 10,
C30, 2500 - sterownik wersja 3.40
- Epson Stylus Color
- sterownik wersja 2.x
- Epson Stylus Pro / XL
- sterownik wersja 2.11BE
- HP 550
- HP Color JaserJet 5
PCL - sterownik wersja F 1.300
- HP DeskJet 1600C -
sterownik wersja 4.20
- HP LaserJet 4 PCL -
sterownik wersja 3.78
- HP LaserJet 6P
- Lexmark 1020
- Okidata 4 laser, 4w
- Samsung MyJet SI-630A
ColorArt
- Star Win Type 4000
- Tally T 7070, 9208
- WinFax, Delrina
WinFax Lite 3.0
Powyższa lista nie jest
zamknięta.
PRZYCZYNY
Przyczyną opisanego
problemu są wymienione powyżej sterowniki drukarek,
które nie obsługują znaków UNICODE.
OKOLICZNOŚCI POWSTAWANIA
Znaki kodu ASCII są
reprezentowane w zakresie wartości od 0 do 127;
kodowanie ANSI zawiera wszystkie znaki ASCII oraz jeszcze
dodatkowy zakres od 128 do 255. We wszystkich językach
znaki kodu ASCII są reprezentowane przez dokładnie te
same wartości, natomiast znaki od 128 do 255 służą do
kodowania znaków specjalnych, między innymi znaków
specyficznych dla danego kraju - system ten bazuje na
tzw. Stronie Kodowej (ang. Code Page). W ten sposób
można zakodować większość znaków dla języków
używanych na całym świecie.
Jednak niektóre alfabety
(głównie z języków wschodnich, takich jak japońskie
Kanji, niektóre dialekty chińskie czy koreańskie), nie
mogą być reprezentowane tylko przez 256 znaków
dostępnych w ANSI. Sposób zapisu w tych językach
polega na zapisywaniu całych słów, co prowadzi do
tego, że specyficznych znaków może być 6000 lub
więcej.
UNICODE został
wprowadzony właśnie w celu obsługi tego typu
języków. UNICODE wykorzystuje 2 bity (zamiast jednego
tak jak to jest w ANSI) na zakodowanie jednego znaku, co
daje 64000 możliwych znaków do zapamiętania zamiast
256.
ROZWIĄZANIE
UWAGA: Używanie
Edytora Rejestrów (regedit.exe) w niewłaściwy sposób
może spowodować poważne problemy w systemie Windows
95, które w efekcie mogą doprowadzić do konieczności
przeinstalowania systemu. Microsoft nie gwarantuje, że
problemy spowodowanie niewłaściwym używaniem Edytora
Rejestrów dadzą się usunąć. Użytkownik korzysta z
Edytora Rejestrów na własne ryzyko. Przed wprowadzaniem
jakichkolwiek zmian przy pomocy Edytora Rejestrów
należy przeczytać pomoc, która zawarta jest w Edytorze
Rejestrów. Należy także wykonać kopię zapasową
plików zawierających zapisy rejestrów (System.dat i
User.dat).
Metoda 1. Zmiana parametru Print
Flag.
Jest możliwość
ustawienia flagi drukowania dla specyficznego typu
drukarki, wymuszając używanie kodu ANSI zamiast
Unicode, a w rezultacie do poprawnego drukowania czcionek
z rozszerzonej tablicy znaków. Aby przeprowadzić tą
zmianę, należy wykonać następujące kroki:
- Wybrać 'Uruchom'
z menu 'Start' systemu Windows
- Wpisać regedit i kliknąć OK
- Odnaleźć
następujący rejestr i go otworzyć:
- HKEY_CURRENT_USER\Software\Microsoft\Office\8.0\Word
- Wewnątrz rejestru Word otworzyć rejestr o nazwie
odpowiadającej nazwie używanej drukarki.
Uwaga: jeśli taki rejestr nie istnieje,
to należy:
- Zamknąć program regedit
- Uruchomić Word 97
- Wybrać 'Drukuj'
z menu 'Plik'
- W części
'Drukarka' wybrać z rozwijanego menu
drukarkę która sprawia kłopoty.
- Zamknąć okienko
przyciskiem 'x' w prawym górnym rogu, lub
przyciskiem 'Anuluj'
- Wybrać 'Opcje' z
menu 'Narzędzia'
- Wybrać zakładkę
'Drukowanie' i kliknąć OK.
- Zamknąć Worda i
rozpocząć ponownie od kroku 1.
Opisana tu
procedura działa dla drukarek lokalnych,
bezpośrednio podłączonych do komputera.
- Będąc wewnątrz
rejestru odpowiadającego nazwie drukarki wybierz
'Nowy' -> 'Wartość ciągu' z menu
'Edycja'
- Wpisz Flags i wciśnij Enter
- Kliknij prawym
klawiszem myszy na właśnie dodane Flags i wybierz 'Modyfikuj'
- Wpisz 8192 i kliknij OK
Drukarka powinna teraz
drukować polskie znaki poprawnie.
Uwaga: W przypadku
zmiany nazwy drukarki całą procedurę należy niestety
powtórzyć. Alternatywą jest przeprowadzenie wyżej
opisanej procedury dla drukarki o pewnej, przez nas
wybranej nazwie (n.p. 'MojaDrukarka') a następnie
upewnienie się, że drukarka której używamy do
drukowania dokumentów Word 97 tak właśnie się nazywa,
niezależnie od jej typu.
Automatyzacja
Opisany powyżej proces
można zautomatyzować używając odpowiedniego pliku .reg.
Poniżej pokazana jest zawartość takiego przykładowego
pliku, który dodałby odpowiednią opcję dla drukarki
nazywającej się 'MojaDrukarka'. Wprowadzenie zmian
sprowadza się wtedy do dwukrotnego kliknięcia myszką
na pliku .reg.
Dezaktywacja drukowania w
Unicode w Word 97 na lokalną drukarkę 'MojaDrukarka'
REGEDIT4
[HKEY_CURRENT_USER\Software\Microsoft\Office\8.0\Word\MojaDrukarka]
"Flags"="8192"
Dalsze informacje
Microsoft Knowledge Base,
artykuł http://www.microsoft.com/kb/articles/Q159/4/18.htm
Metoda 2. Obejścia dla
specyficznych typów drukarek.
Ta metoda nie będzie
skuteczna dla wszystkich typów drukarek, ponieważ
możliwość zmian opcji drukarki jest bezpośrednio
związana z rodzajem stosowanego sterownika.
HP DeskJet 1600C:
- Kliknij na przycisk
"START", następnie wybierz "Ustawienia"
i "Drukarki".
- Kliknij na ikonie
drukarki HP DeskJet 1600C ColorSmart.
- Wybierz
"Właściwości" drukarki.
- W oknie
"Właściwości" drukarki wybierz zakładkę
"Szczegóły" ("Details"), i wybierz
przycisk "Setup".
- W oknie "Setup"
wybierz przycisk "Zaawansowane"
("Advanced").
- W oknie
"Zaawansowane" wybierz "Use LaserJet III
font scaling" i kliknij na przycisku "OK".
HP LaserJet 4 Series
PCL:
- Kliknij na przycisk
"START", następnie wybierz "Ustawienia"
i "Drukarki".
- Kliknij na ikonie
drukarki HP LaserJet 4.
- Wybierz
"Właściwości" drukarki.
- We
"Właściwościach" drukarki wybierz
zakładkę "Fonty" ("Fonts").
- W oknie "Fonty",
w sekcji "True Type Fonts" wybierz opcję
"Print True Type as graphics" i kilknij na
przycisk "OK".
Brother HL 1050 (gdy pracuje jako drukarka sieciowa):
- Kliknij na przycisk
"START", następnie wybierz "Ustawienia"
i "Drukarki".
- Kliknij na ikonie
drukarki Brother HL 1050.
- Wybierz "Właściwości" drukarki.
- We "Właściwościach" drukarki wybierz
w sekcji "Print Setting" przycisk "Manual".
- W oknie "Manual",
w sekcji "True Type Mode" wybierz opcję
"Download as Bit Image" i kilknij na
przycisk "OK".
UWAGA: Metoda 3. Jeśli masz zainstalowany SR-1 do pakietu MSOffice
Możesz zainstalować SR-1 pobierając np. stąd.
W tym wypadku wpis FLAGS nie działa, ale można zastosować uniwersalny wpis do Rejestru dla niemal wszystkich drukarek, które nie akceptują UNICODE:
[HKEY_CURRENT_USER\Software\Microsoft\Office\8.0\Word\Options]
"NoWideTextPrinting"="1"
lub po prostu kliknąć 2X plik REG, który przygotowaliśmy. Kopiuj SR1.REG (1 kB).
Uwaga: Niestety omówione tu wpisy nie działają ze wszystkimi drukarkami. Np. w przypadku DeskJetow HP
(zwłaszcza nowej serii np. 850) nie pomogą wpisy do rejestru - ani Flags
ani NoWideTextPrinting - tylko nowe drivery, które sobie radzą z UNICODE.
DODATKOWE INFORMACJE
Dodatkowe informacje
można znaleźć w artykułach Knowledge Base - na stronie
Microsoft w internecie pod adresem http://www.microsoft.com/kb/default.asp:
- Q159471: "Word 97:
How to Install the Far East Support"
- Q99884: "UNICODE
and Microsoft Windows NT"
- Q130052: "Ideas to
Remember as You Convert from ASCII or ANSI to
Unicode"
|