\Wracaj  \Strona główna  

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:

  1. Wybrać 'Uruchom' z menu 'Start' systemu Windows
  2. Wpisać regedit i kliknąć OK
  3. Odnaleźć następujący rejestr i go otworzyć:
  4. HKEY_CURRENT_USER\Software\Microsoft\Office\8.0\Word
  5. 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.

  1. Będąc wewnątrz rejestru odpowiadającego nazwie drukarki wybierz 'Nowy' -> 'Wartość ciągu' z menu 'Edycja'
  2. Wpisz Flags i wciśnij Enter
  3. Kliknij prawym klawiszem myszy na właśnie dodane Flags i wybierz 'Modyfikuj'
  4. Wpisz 8192 i kliknij OK

Regedit

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"