This file is indexed.

/usr/share/doc/HOWTO/pl-html/Printing-HOWTO.pl.html is in doc-linux-pl-html 2002.06.14-2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

   1
   2
   3
   4
   5
   6
   7
   8
   9
  10
  11
  12
  13
  14
  15
  16
  17
  18
  19
  20
  21
  22
  23
  24
  25
  26
  27
  28
  29
  30
  31
  32
  33
  34
  35
  36
  37
  38
  39
  40
  41
  42
  43
  44
  45
  46
  47
  48
  49
  50
  51
  52
  53
  54
  55
  56
  57
  58
  59
  60
  61
  62
  63
  64
  65
  66
  67
  68
  69
  70
  71
  72
  73
  74
  75
  76
  77
  78
  79
  80
  81
  82
  83
  84
  85
  86
  87
  88
  89
  90
  91
  92
  93
  94
  95
  96
  97
  98
  99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 129
 130
 131
 132
 133
 134
 135
 136
 137
 138
 139
 140
 141
 142
 143
 144
 145
 146
 147
 148
 149
 150
 151
 152
 153
 154
 155
 156
 157
 158
 159
 160
 161
 162
 163
 164
 165
 166
 167
 168
 169
 170
 171
 172
 173
 174
 175
 176
 177
 178
 179
 180
 181
 182
 183
 184
 185
 186
 187
 188
 189
 190
 191
 192
 193
 194
 195
 196
 197
 198
 199
 200
 201
 202
 203
 204
 205
 206
 207
 208
 209
 210
 211
 212
 213
 214
 215
 216
 217
 218
 219
 220
 221
 222
 223
 224
 225
 226
 227
 228
 229
 230
 231
 232
 233
 234
 235
 236
 237
 238
 239
 240
 241
 242
 243
 244
 245
 246
 247
 248
 249
 250
 251
 252
 253
 254
 255
 256
 257
 258
 259
 260
 261
 262
 263
 264
 265
 266
 267
 268
 269
 270
 271
 272
 273
 274
 275
 276
 277
 278
 279
 280
 281
 282
 283
 284
 285
 286
 287
 288
 289
 290
 291
 292
 293
 294
 295
 296
 297
 298
 299
 300
 301
 302
 303
 304
 305
 306
 307
 308
 309
 310
 311
 312
 313
 314
 315
 316
 317
 318
 319
 320
 321
 322
 323
 324
 325
 326
 327
 328
 329
 330
 331
 332
 333
 334
 335
 336
 337
 338
 339
 340
 341
 342
 343
 344
 345
 346
 347
 348
 349
 350
 351
 352
 353
 354
 355
 356
 357
 358
 359
 360
 361
 362
 363
 364
 365
 366
 367
 368
 369
 370
 371
 372
 373
 374
 375
 376
 377
 378
 379
 380
 381
 382
 383
 384
 385
 386
 387
 388
 389
 390
 391
 392
 393
 394
 395
 396
 397
 398
 399
 400
 401
 402
 403
 404
 405
 406
 407
 408
 409
 410
 411
 412
 413
 414
 415
 416
 417
 418
 419
 420
 421
 422
 423
 424
 425
 426
 427
 428
 429
 430
 431
 432
 433
 434
 435
 436
 437
 438
 439
 440
 441
 442
 443
 444
 445
 446
 447
 448
 449
 450
 451
 452
 453
 454
 455
 456
 457
 458
 459
 460
 461
 462
 463
 464
 465
 466
 467
 468
 469
 470
 471
 472
 473
 474
 475
 476
 477
 478
 479
 480
 481
 482
 483
 484
 485
 486
 487
 488
 489
 490
 491
 492
 493
 494
 495
 496
 497
 498
 499
 500
 501
 502
 503
 504
 505
 506
 507
 508
 509
 510
 511
 512
 513
 514
 515
 516
 517
 518
 519
 520
 521
 522
 523
 524
 525
 526
 527
 528
 529
 530
 531
 532
 533
 534
 535
 536
 537
 538
 539
 540
 541
 542
 543
 544
 545
 546
 547
 548
 549
 550
 551
 552
 553
 554
 555
 556
 557
 558
 559
 560
 561
 562
 563
 564
 565
 566
 567
 568
 569
 570
 571
 572
 573
 574
 575
 576
 577
 578
 579
 580
 581
 582
 583
 584
 585
 586
 587
 588
 589
 590
 591
 592
 593
 594
 595
 596
 597
 598
 599
 600
 601
 602
 603
 604
 605
 606
 607
 608
 609
 610
 611
 612
 613
 614
 615
 616
 617
 618
 619
 620
 621
 622
 623
 624
 625
 626
 627
 628
 629
 630
 631
 632
 633
 634
 635
 636
 637
 638
 639
 640
 641
 642
 643
 644
 645
 646
 647
 648
 649
 650
 651
 652
 653
 654
 655
 656
 657
 658
 659
 660
 661
 662
 663
 664
 665
 666
 667
 668
 669
 670
 671
 672
 673
 674
 675
 676
 677
 678
 679
 680
 681
 682
 683
 684
 685
 686
 687
 688
 689
 690
 691
 692
 693
 694
 695
 696
 697
 698
 699
 700
 701
 702
 703
 704
 705
 706
 707
 708
 709
 710
 711
 712
 713
 714
 715
 716
 717
 718
 719
 720
 721
 722
 723
 724
 725
 726
 727
 728
 729
 730
 731
 732
 733
 734
 735
 736
 737
 738
 739
 740
 741
 742
 743
 744
 745
 746
 747
 748
 749
 750
 751
 752
 753
 754
 755
 756
 757
 758
 759
 760
 761
 762
 763
 764
 765
 766
 767
 768
 769
 770
 771
 772
 773
 774
 775
 776
 777
 778
 779
 780
 781
 782
 783
 784
 785
 786
 787
 788
 789
 790
 791
 792
 793
 794
 795
 796
 797
 798
 799
 800
 801
 802
 803
 804
 805
 806
 807
 808
 809
 810
 811
 812
 813
 814
 815
 816
 817
 818
 819
 820
 821
 822
 823
 824
 825
 826
 827
 828
 829
 830
 831
 832
 833
 834
 835
 836
 837
 838
 839
 840
 841
 842
 843
 844
 845
 846
 847
 848
 849
 850
 851
 852
 853
 854
 855
 856
 857
 858
 859
 860
 861
 862
 863
 864
 865
 866
 867
 868
 869
 870
 871
 872
 873
 874
 875
 876
 877
 878
 879
 880
 881
 882
 883
 884
 885
 886
 887
 888
 889
 890
 891
 892
 893
 894
 895
 896
 897
 898
 899
 900
 901
 902
 903
 904
 905
 906
 907
 908
 909
 910
 911
 912
 913
 914
 915
 916
 917
 918
 919
 920
 921
 922
 923
 924
 925
 926
 927
 928
 929
 930
 931
 932
 933
 934
 935
 936
 937
 938
 939
 940
 941
 942
 943
 944
 945
 946
 947
 948
 949
 950
 951
 952
 953
 954
 955
 956
 957
 958
 959
 960
 961
 962
 963
 964
 965
 966
 967
 968
 969
 970
 971
 972
 973
 974
 975
 976
 977
 978
 979
 980
 981
 982
 983
 984
 985
 986
 987
 988
 989
 990
 991
 992
 993
 994
 995
 996
 997
 998
 999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
 <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
<META HTTP-EQUIV="content-type" content="text/html; charset=iso-8859-2">
<TITLE>Drukowanie w Linux-ie</TITLE>


</HEAD>
<BODY>
<H1>Drukowanie w Linux-ie<BR></H1>

<H2>Autor: Grant Taylor,
<A HREF="mailto:gtaylor+pht@picante.com">gtaylor+pht@picante.com</A><BR>
v3.14, 23 Wrze¶nia 1997<BR>
<B>Wersja polska: Bartosz Maruszewski
<A HREF="mailto:B.Maruszewski@jtz.org.pl">B.Maruszewski@jtz.org.pl</A><BR></B>
v1.3, 12 Lutego 1998</H2>
<P><HR>
<EM>Jest to dokument zawieraj±cy informacje na takie tematy jak:
generowanie wydruku, podgl±dniêcie go przed drukowaniem, wydrukowanie go
oraz przefaxowanie czego¶ pod Linux-em (i innymi Unix-ami w ogólno¶ci).
Dokument ten zosta³ napisany w standardzie ISO-8859-2.
Orygina³ mo¿na znale¼æ pod adresem 
<A HREF="ftp://ftp.icm.edu.pl:/pub/Linux/sunsite/docs/HOWTO">ftp.icm.edu.pl</A> w katalogu /pub/Linux/sunsite/docs/HOWTO.</EM>
<HR>
<H2><A NAME="s1">1. Wprowadzenie.</A></H2>

<P>
<P>Printing HOWTO powinno zawieraæ wszystko co powiniene¶ wiedzieæ,
aby ustawiæ drukarkê na swoim Linux-ie. Jest to trochê bardziej
skomplikowane ni¿ w ¶wiecie poka¿-i-kliknij Microsoft-u i Apple'a,
ale za to bardziej elastyczne i z pewno¶ci± prostsze je¶li chodzi
o administrowanie w du¿ych sieciach lokalnych.
<P>Dokument ten jest tak u³o¿ony, ¿e wiêkszo¶æ bêdzie musia³a
przeczytaæ tylko pierwsz± po³owê czy co¶ ko³o tego. Wiêkszo¶æ
nieciekawych informacji i takich, które s± zale¿ne od sytuacji
znajduje siê w drugiej po³owie i ³atwo je znale¼æ w spisie tre¶ci,
podczas gdy informacje zawarte w sekcjach 9 i 10 bêd± potrzebne
wiêkszo¶ci.
<P>Wiêkszo¶æ informacji z poprzedniej wersji zosta³o usuniêtych,
poniewa¿ zdecydowa³em siê na napisanie tego dokumentu ca³kowicie od
nowa. Zrobi³em tak, bo poprzednie wersje by³y takie wielkie - oko³o
60 stron A4, i narracja by³a do kitu. Je¶li nie znalaz³e¶ tutaj
odpowiedzi to powiniene¶ a) przeszukaæ poprzedni± wersjê 
<A HREF="http://www.picante.com/~gtaylor/pht/">na stronie domowej    tego HOWTO</A>, b) podrzuciæ mi informacjê co powinno tu byæ, a nie
ma tego.
<P>
<A HREF="http://www.picante.com/~gtaylor/pht/">Strona domowa tego HOWTO</A> jest dobrym miejscem na szukanie
nowszych wersji tego dokumentu; jest ona oczywi¶cie tak¿e
dystrybuowana przez Projekt Dokumentacji Linux-a; archiwum zawieraj±ce
dokumenty HOWTO mo¿esz znale¼æ w Polsce pod adresem 
<A HREF="ftp://ftp.icm.edu.pl:/pub/Linux/sunsite/docs/HOWTO">ftp.icm.edu.pl</A> w katalogu
<CODE>/pub/Linux/sunsite/docs/HOWTO</CODE>.
<P>
<H2>1.1 Historia</H2>

<P>
<P>To jest trzecia generacja, a szczerze mówi±c, to trzecia edycja
zrobiona od nowa, dokumentu Printing-HOWTO. Historia PHT mo¿e w
ujêciu chronologicznym wygl±daæ tak:
<P>
<OL>
<LI>Napisa³em Printing-HOWTO w 1992 w odpowiedzi na wiele pytañ
pojawiaj±cych siê na grupie comp.os.linux dotycz±cych drukowania
napisa³em PHT i wys³a³em go tam. Dokument ten wyprzedzi³ Projekt
Dokumentacji Linux-a o kilka miesiêcy i by³ pierwszym dokumentem
a'la FAQ zwanym HOWTO. Edycja ta by³a w czystym ASCII.</LI>
<LI>Po do³±czeniu do PDL, PHT zosta³o wcielone do tego¿ projektu
przez Briana McCauley <EM>&lt;B.A.McCauley@bham.ac.uk></EM>; przez
kolejne dwa lata wspó³tworzyli¶my PHT. Po jakim¶ czasie
do³±czyli¶my pracê Karla Auera<EM>&lt;Karl.Auer@anu.edu.au></EM>. Ta
generacja PHT by³a w TeXinfo oraz tak¿e w PS, HTML, ASCII i Info.</LI>
<LI>Po tym jak pozwolili¶my PHT ¿eby trochê "podgni³o" przez rok i
po nieskutecznych poszukiwaniach jakiej¶ osoby, która zajê³aby siê
PHT, mia³o miejsce powstanie tej wersji. Ta generacja PHT jest w Linuxdoc-SGML.</LI>
</OL>
<P>
<H2>1.2 Prawa autorskie.</H2>

<P>
<P>Prawa autorskie nale¿± do Granta Taylora (c) 1997. Proszê kopiowaæ i
dystrybuowaæ ten dokument do woli, ale nie modyfikoewaæ ani nie
zapomnieæ mojego nazwiska.
<P>
<H2><A NAME="s2">2. Jak drukowaæ.</A></H2>

<P>
<P>Je¶li masz ju¿ zainstalowany program lpd i jest on ustawiony dla
twojej drukarki przez kogokolwiek, to wszystko czego potrzebujesz,
to nauczyæ siê pos³ugiwaæ poleceniem <I>lpr</I>. Dokument 
<A HREF="http://www.jtz.org.pl/~bart/Tlumaczenie/Html/Printing-Usage-HOWTO.pl.html">Printing-Usage-HOWTO</A> zawiera opis tego polecenia i kilku
innych u¿ywanych do manipulowania kolejk± wydruku.
<P>Jednak je¶li masz nowy system albo now± drukarkê, to bêdziesz
musia³ ustawiæ serwis drukowania w ten lub inny sposób zanim
bêdziesz móg³ drukowaæ. Czytaj dalej!
<P>
<H2><A NAME="s3">3. Urz±dzenia dotycz±ce drukarki w j±drze.</A></H2>

<P>
<P>
<H2>3.1 Urz±dzenie lp.</H2>

<P>
<P>J±dro Linux-a (&lt;=2.1.32), zak³adaj±c, ¿e wkompilowa³e¶ lub za³adowa³e¶
urz±dzenie <I>lp</I> (polecenie <CODE>cat /proc/devices</CODE> powinno
pokazaæ urz±dzenie <I>lp</I>), dostarcza jedno lub wiêcej urz±dzeñ
<I>/dev/lp0</I>, <I>/dev/lp1</I> i <I>/dev/lp2</I>. <B>Nie s±</B>
one kojarzone dynamicznie, ale s± one na sta³e przypisane
konkretnym adresom I/O. Oznacza to, ¿e twoja pierwsza drukarka mo¿e
byæ na <I>lp0</I>, albo <I>lp1</I> w zale¿no¶ci od sprzêtu. Spróbuj
obu. ;)
<P>Kilku u¿ytkowników zg³osi³o, ¿e ich dwukierunkowe porty lp nie
zostaj± wykryte je¶li u¿ywaj± starszego, jednokierunkowego kabla.
Sprawd¼ czy masz przyzwoity kabel.
<P>Na danym porcie nie mo¿na mieæ na raz sterowników <I>plip</I> oraz
<I>lp</I>. Ale mo¿na za³adowaæ jeden albo drugi sterownik w ka¿dej
chwili; rêcznie albo przez <I>kerneld</I> przy j±drze w wersji 2.x.x
(lub pó¼niejsze 1.3.x). Je¶li dok³adnie ustawisz przerwania itp., to
mo¿esz przypuszczalnie mieæ <I>plip</I> na jednym porcie, a <I>lp</I>
na drugim. Jedna osoba zrobi³a tak, przez edycjê sterowników; z
niecierpliwo¶ci± oczekujê osoby, która zrobi³aby to tylko przy
u¿yciu argumentów z linii poleceñ.
<P>Jest takie narzêdzie zwane <I>
<A HREF="http://www.picante.com/~gtaylor/pht/man/tunelp.html">tunelp</A></I>, przy pomocy którego "root" mo¿e ustawiaæ
przerwania i inne opcje na urz±dzeniu <I>lp</I>.
<P>Je¶li urz±dzenie <I>lp</I> jest wbudowane w j±dro w wersji 1.3.x lub
wy¿szej, to mo¿esz przekazaæ parametr <CODE>lp=</CODE> do j±dra, w którym
mo¿esz ustawiæ przerwanie, adres itp.
<P>
<PRE>
Je¶li sterownik lp jest wbudowany w j±dro, to mo¿esz u¿yæ parametru
LILO/LOADLIN, aby ustawiæ adres portu i przerwanie, których sterownik
bêdzie u¿ywa³.

Sk³adnia:        lp=port0[,irq0[,port1[,irq1[,port2[,irq2]]]]]

Na przyk³ad:     lp=0x378,0   lub   lp=0x278,5,0x378,7 **

Zauwa¿, ¿e je¶li u¿ywasz tego parametru, to musisz podaæ *wszystkie*
porty, których bêdziesz u¿ywaæ - nie ma warto¶ci domy¶lnych. Mo¿esz
wy³±czyæ wbudowany sterownik parametrem lp=0.
</PRE>
<P>Je¶li ³adujesz sterownik drukarki jako modu³ w wersji j±dra 2.x.x
lub pó¼nej 1.3.x, to mo¿esz podaæ przerwanie i port jako parametr w
linii poleceñ przy <I>insmod</I> (albo w pliku
<CODE>/etc/conf.modules</CODE>, ¿eby dzia³a³o tak¿e dla
kerneld). Parametry to: <I>io=port0,port1,port2</I> i
<I>irq=irq0,irq1,irq2</I>. Wiêcej informacji znajdziesz w podrêczniku
systemowym <I>man</I> na stronie dotycz±cej <I>insmod</I>.
<P>**Dla tych, którzy (jak ja) nigdy nie mog± znale¼æ standardowego
portu kiedy go potrzeba, to s± one takie jak w podanym wy¿ej drugim
przyk³adzie. Drugi port (<I>lp0</I>) jest pod adresem 0x3bc. Nie mam
pojêcia jakiego przerwania zwykle u¿ywa.
<P>Kod ¼ród³owy linux-owego sterownika portu równoleg³ego jest w
pliku /usr/src/linux/drivers/char/lp.c
<P>
<H2>3.2 Urz±dzenie parport (j±dra &gt;= 2.1.33)</H2>

<P>
<P>Pocz±wszy od j±dra w wersji 2.1.33 (dostêpne tak¿e jako ³ata dla
j±dra 2.0.30), urz±dzenie lp jest po prostu klientem nowego
urz±dzenia parport. Dodanie urz±dzenia parport naprawia pewn±
ilo¶æ b³êdów, które drêczy³y poprzedni sterownik urz±dzenia lp -
mo¿e ono wpó³dzieliæ port z innym urz±dzeniem, przypisuje 
dynamicznie dostêpne porty równoleg³e numerom urz±dzeñ zamiast
wymuszaæ z góry narzucon± komunikacjê pomiêdzy adresami I/O a
numerami portów i tak dalej.
<P>Wiêcej szczegó³ów na temat parport podam kiedy sam znajdê siê w
sytuacji kiedy bêdê tego u¿ywa³. A w miêdzyczasie mo¿esz
przeczytaæ plik Documentation/parport.txt w drzewie ze ¼ród³ami
j±dra albo zajrzyj 
<A HREF="http://www.cyberelk.demon.co.uk/parport.html">na stronê parport</A>.
<P>
<H2>3.3 Urz±dzenia szeregowe.</H2>

<P>
<P>Urz±dzenia szeregowe pod Linux-em zwykle nazywaj± siê
<CODE>/dev/ttyS1</CODE> lub podobnie. Narzêdzie <I>
<A HREF="http://www.picante.com/~gtaylor/pht/man/stty.html">stty</A></I> pozwala na interaktywne przegl±danie lub okre¶lanie
ustawieñ dla portu szeregowego; <I>
<A HREF="http://www.picante.com/~gtaylor/pht/man/setserial.html">setserial</A></I>
pozwoli ci na kontrolowanie kilku rozszerzonych w³a¶ciwo¶ci oraz na
skonfigurowanie IRQ i adresów I/O dla niestandardowych
portów. Wiêcej na temat portów szeregowych znajdziesz w 
<A HREF="http://www.jtz.org.pl/Html/Serial-HOWTO.pl.html">Serial-HOWTO</A> dostêpnym tak¿e w jêzyku polskim.
<P>Je¶li u¿ywasz wolnej drukarki szeregowej z kontrol± przep³ywu (flow
control), mo¿e siê okazaæ, ¿e niektóre z twoich wydruków s±
obcinane. Mo¿e byæ to spowodowane zachowaniem portu szeregowego,
który wyrzuca wszystkie znaki ze swojego bufora po 30 sekundach od
momentu zamkniêcia portu. W buforze mo¿e siê znajdowaæ do 4096
znaków a je¶li twoja drukarka u¿ywa kontroli przep³ywu i jest
wystarczaj±co wolna, tak ¿e nie mo¿e przyj±æ wszystkich 4096 znaków
z portu w ci±gu 30 sekund, po tym jak oprogramowanie drukuj±ce
zakmnê³o port, to koñcowa zawarto¶æ bufora zostanie utracona. Je¶li
w wyniku polecenia <I>cat plik &gt; /dev/ttyS2</I> pojawia siê
ca³y wydruk dla krótkich plików, a d³u¿sze s± obcinane, to to mo¿e
byæ twój problem.
<P>Okres 30 sekund mo¿e zostaæ zmieniony poprzez opcjê "closing_wait"
programu setserial (wersja 2.12 i pó¼niejsze). Porty szeregowe
maszyny s± z regu³y inicjowane poprzez odwo³anie do setserial w
pliku startowym rc.serial. Odwo³anie do portu szeregowego drukarki
mo¿e byæ zmodyfikowane, tak aby ustawiæ closing_wait w tym samym
czasie kiedy ustawia inne parametry tego portu.
<P>
<H2><A NAME="s4">4. Obs³ugiwane drukarki.</A></H2>

<P>
<P>J±dro Linux-a obs³uguje raczej ka¿d± drukarkê, któr± mo¿esz
pod³±czyæ do szeregowego albo równoleg³ego portu, ale s± rzeczy na
które trzeba spojrzeæ oraz drukarki których nie bêdziesz w stanie
u¿yæ nawet pomimo, ¿e (elektrycznie mówi±c) mog± one komunikowaæ
siê z Linux-em. W grupie tych niekompatybilnych drukarek przewa¿aj±
te, które polegaj± na "Windows Printing System". (Czêsto s± one
oznaczone "for Windows".) Te drukarki <I>nie</I> wspó³pracuj± z
Linux-em. Nie maj± ¿adnych inteligentnych czê¶ci i polegaj± na
procesorze komputera, który musi zrobiæ wiêkszo¶æ tego co kiedy¶
robi³y procesory w drukarce. Niestety te zadania mog± byæ wykonane
tylko przez sterowniki dostarczone przez producenta, które
dzia³aj± tylko pod Windows. Wiêc nie kupuj takiej drukarki do
Linux-a.
<P>Je¶li chodzi o drukarki, które <I>dzia³aj±</I> z Linux-em,
to najlepszym wyborem jest kupienie drukarki z interpreterem
PostScript-u. Prawie ka¿de oprogramowanie pod Unix-a, które
tworzy jaki¶ drukowalny wynik tworzy go w PostScripcie, wiêc
oczywistym jest, ¿e najlepiej kupiæ drukarkê obs³uguj±c±
PostScript. Niestety, ale obs³uga tego jêzyka poza drukarkami
laserowymi jest bardzo rzadko spotykana.
<P>Je¶li nie uda ci siê wydobyæ (raczej wiêkszego) bud¿etu
potrzebnego na kupno drukarki PostScript-owej, mo¿esz u¿yæ
jakiejkolwiek drukarki obs³ugiwanej przez Ghostcript, darmowy
interpreter PostScript-u u¿ywanego do druku PostScript-owego. Na
<A HREF="http://www.cs.wisc.edu/~ghost/">domowej stronie    Ghostscript-u</A> znajdziesz obs³ugiwane drukarki i informacje na
temat nowych i ekpserymentalnych sterowników. Pomó¿ proszê w
ulepszaniu Ghostscript-u poprzez zg³aszanie sukcesów b±d¼ pora¿ek
jak o to prosz±.
<P>
<H2><A NAME="s5">5. Jakie oprogramowanie do kolejkowania ?</A></H2>

<P>
<P>Do niedawna wybór dla u¿ytkowników Linux-a by³ prosty - wszyscy
u¿ywali tego samego, starego lpd wziêtego bezpo¶rdnio z kodu
Net-2 BSD. Nawet dzisiaj wiêkszo¶æ sprzedawców dostarcza ten
w³a¶nie program. Ale to siê zaczyna zmieniaæ. Systemy SVR4
w³±czaj±c w to Solaris Sun-a dostarczaj± ca³kiem inny pakiet do
kolejkowania oparty na <I>lpsched</I>. Pojawiaj± siê tak¿e oznaki, i¿
niektórzy sprzedawcy Linux-a przejd± na dostarczanie LPRng, o wiele
mniej zabytkowej implementacji, która jest dostêpna za darmo. LPRng
jest o wiele prostszy w administrowaniu dla wiêkszych instalacji i
ma o wiele przyja¼niejsz± bazê danych ani¿eli lpd.
<P>Na dzieñ dzisiejszym nawet w ¶wietle nowych opcji, lpd jest
przypuszczalnie dobry dla wiêkszo¶ci u¿ytkowników Linux-a. Raz
ustawiony dzia³a dobrze i jest ³atwy w zrozumieniu oraz szeroko
udokumentowany w ksi±¿kach o Unix-ie.
<P>Je¶li chcesz wiêcej informacji na temat LPRng to zobacz 
<A HREF="http://ltpwww.gsfc.nasa.gov/ltpcf/about/unix/Depotdoc/LPRng/">LPRng - An Enhanced Printer Spooler</A>.
Przysz³e wersje tego dokumentu bêd± zawiera³y informacje o zwyk³ym
lpd oraz o LPRng.
<P>
<H2><A NAME="s6">6. Jak to dzia³a - podstawy.</A></H2>

<P>
<P>¯eby drukowanie dzia³a³o, musisz zrozumieæ jak dzia³a system lpd.
<P>LPD to skrót od Line Printer Daemon i odnosi siê w ró¿nych
kontekstach do demona i do ca³ej kolekcji programów, które
drukuj±. S± to:
<P>
<DL>
<DT><B><CODE>
<A HREF="http://www.picante.com/~gtaylor/pht/man/lpd.html">lpd</A></CODE></B><DD><P>Demon
kolejkowania. Jeden z nich jest uruchomiony, aby kontrolowaæ
wszystko na maszynie, I jeden jest uruchamiany dla drukarki podczas
drukowania.
<DT><B><CODE>
<A HREF="http://www.picante.com/~gtaylor/pht/man/lpr.html">lpr</A></CODE></B><DD><P>Polecenie
dla u¿ytkowników do kolejkowania wydruków. Lpr kontaktuje siê z
lpd i umieszcza nowe zadanie w katalogu kolejkowania.
<DT><B><CODE>
<A HREF="http://www.picante.com/~gtaylor/pht/man/lpq.html">lpq</A></CODE></B><DD><P>Wy¶wietla
wydruki umieszczone w kolejce.
<DT><B><CODE>
<A HREF="http://www.picante.com/~gtaylor/pht/man/lpc.html">lpc</A></CODE></B><DD><P>Polecenie
do kontrolowania systemu lpd. Poleceniem tym mo¿esz wystartowaæ,
zatrzymaæ, zmieniæ porz±dek w kolejce drukowania.
<DT><B><CODE>
<A HREF="http://www.picante.com/~gtaylor/pht/man/lprm.html">lprm</A></CODE></B><DD><P>Usuwa wydruk z kolejki.
</DL>
<P>
<P>To jak to wszystko dzia³a ? No... kiedy system startuje, uruchamiany
jest lpd. Czyta on plik <CODE>/etc/printcap</CODE>, aby siê dowiedzieæ
dla jakich drukarek bêdzie obs³ugiwa³ kolejki. Za ka¿dym razem
kiedy kto¶ uruchomi <I>lpr</I>, lpr kontaktuje siê z lpd poprzez
gniazdko <CODE>/dev/printer</CODE> i podaje mu wydruk oraz kilka
informacji o tym kto drukuje i jak ma to byæ wydrukowane. Potem lpd
drukuje otrzymany plik na odpowiedniej drukarce.
<P>System lp powsta³ w czasach kiedy wiêkszo¶æ drukarek by³a
drukarkami liniowymi - tzn. ludzie drukowali w wiêkszo¶æi teksty w
ASCII. Jak siê okaza³o, nie trzeba du¿o pracy, aby lpd dzia³a³
dobrze dla dzisiejszych wydruków takich jak PostScript, czy text,
czy dvi, czy ...
<P>
<H2><A NAME="s7">7. Jak poustawiaæ to wszystko - podstawy.</A></H2>

<P>
<P>
<H2>7.1 Tradycyjna konfiguracja lpd.</H2>

<P>
<P>Minimalne ustawienia objawiaj± siê tym, ¿e system mo¿e kolejkowaæ
pliki i je drukowaæ. Nie bêdzie zwraca³ uwagi na to, czy twoja
drukarka je zrozumie czy nie i przypuszczalnie nie pozwoli ci na
zrobienie atrakcyjnego wydruku. Jednak jest to pierwszy krok do
zrozumienia, wiêc czytaj dalej !
<P>Ogólnie mówi±c, ¿eby dodaæ kolejkê dla drukarki musisz dodaæ
pozycjê do <CODE>/etc/printcap</CODE> i utworzyæ katalog do
kolejkowania w <CODE>/var/spool/lpd/</CODE>.
<P>Pojedyncza pozycja w <CODE>/etc/printcap</CODE> wygl±da tak:
<P>
<PRE>
# LOCAL djet500
lp|dj|deskjet:\
        :sd=/var/spool/lpd/dj:\
        :mx#0:\
        :lp=/dev/lp0:\
        :sh:
</PRE>
<P>Definiuje ona drukarkê o nazwach <I>lp</I>, <I>dj</I> i <I>deskjet</I>, z
katalogiem kolejkowania <CODE>/var/spool/lpd/dj/</CODE>, bez limitu na
ka¿dy wydruk, która drukuje na urz±dzeniu <CODE>/dev/lp0</CODE> i która
nie ma strony tytu³owej (z danymi o osobie, która drukowa³a itp.)
na pocz±tku wydruku.
<P>Teraz poczytaj stronê w podrêczniku systemowym na temat <I>
<A HREF="http://www.picante.com/~gtaylor/pht/man/printcap.html">printcap</A></I>.
<P>Powy¿szy przyk³ad wygl±da bardzo prosto, ale jest tam jeden kruczek
- drukarka bêdzie tak d³ugo dobrze drukowa³a, dopóki bêdê wysy³a³
pliki, które ona rozumie. Na przyk³ad wys³anie na drukarkê zwyk³ego
unix-owego pliku tekstowego spowoduje, ¿e na papierze pojawi siê
co¶ takiego:
<P>
<PRE>
To jest pierwsza linia.
                       To jest druga linia.
                                           To jest trzecia linia.
</PRE>
<P>Wys³anie na tê drukarkê pliku w PostScripcie spowodowa³oby
wydrukowanie piêknej listy poleceñ PostScript z dodatkowym efektem
schodków :) - be¿ ¿adnego po¿ytecznego efektu.
<P>Wynika z tego jasno, ¿e czego¶ tu jeszcze brakuje - i to jest
w³a¶nie celem filtrowania. Ci, którzy czytali stronê podrêcznika
systemowego o pliku "printcap" mogli zuwa¿yæ atrybuty kolejki -
<I>if</I> i <I>of</I>. <I>if</I> - czyli input filter - to w³a¶nie to
czego potrzebujemy.
<P>Je¶li napiszemy krótki skrypt o nazwie "filter", który doda przed
koñcem linii znak CR (cariage return - powrót karetki), to efekt
schodów mo¿e byæ wyeliminowany. Tak wiêc musimy dodaæ do naszej
pozycji w <CODE>/etc/printcap</CODE> jeszcze jedn± liniê informuj±c± o
istniej±cym filtrze:
<P>
<PRE>
lp|dj|deskjet:\
        :sd=/var/spool/lpd/dj:\
        :mx#0:\
        :lp=/dev/lp0:\
        :if=/var/spool/lpd/dj/filter:\
        :sh:
</PRE>
<P>Przyk³adem prostego skryptu mo¿e byæ:
<P>
<PRE>
#!perl
# Powy¿sza linia tak na prawdê powinna zawieraæ pe³n± ¶cie¿kê do perl-a
# Skrypt ten musi byæ wykonywalny: chmod 755 filter
while(&lt;STDIN>){chop $_; print "$_\r\n";};
# Mo¿esz te¿ zakoñczyæ znacznikiem "form feed": print "\f";
</PRE>
<P>Je¶li zrobimy powy¿sze, to otrzymamy drukarkê, na któr± bêdziemy
mogli wysy³aæ pliki tekstowe z Unix-a i otrzymamy sensowny
wydruk. (Tak, s± 4 miliony lepszych sposobów na napisanie tego
skryptu, ale tylko kilka jest tak bardzo ilustracyjnych. Ty masz to
napisaæ bardziej wydajnie.)
<P>Jedynym problemem jest to, ¿e drukowanie plików tekstowych nie jest
takie znowu fajne - by³oby o wiele lepiej, je¶li moglibysmy
drukowaæ pliki PostScriptowe czy graficzne. No... tak, by³oby i jest
to ³atwe do zrobienia. Metoda jest rozszerzeniem tego co
zrobili¶my, ¿eby siê pozbyæ schodków. Je¶li napiszesz program,
który mo¿e przyjmowaæ ró¿ne formaty i t³umaczyæ je na jêzyk
zrozumia³y dla drukarki, to masz naprawdê dobry filtr.
<P>Taki filtr nazywany jest filtrem magicznym. Nie mêcz siê nad
pisaniem w³asnego - o ile nie drukujesz jakichs cudów - na sieci
jest ju¿ pe³no filtrów, które mo¿esz ¶mia³o u¿ywaæ.
<P>
<H2>7.2 Prawa dostêpu do plików.</H2>

<P>
<P>Poniewa¿ otrzyma³em wiele pró¶b, za³±czam listê plików wraz z
prawami dostêpu jakie maj± one w moim systemie. Jest wiele lepszych
sposobów na zrobienie tego - idealnym sposobem jest u¿ywanie
programów tylko z atrybutami SGID, a nie robienie wszystkiego SUID
dla "root-a", ale mój system tak ju¿ mia³ i dla mnie to dzia³a.
<P>
<PRE>
-r-sr-sr-x   1 root     lp    /usr/bin/lpr*
-r-sr-sr-x   1 root     lp    /usr/bin/lprm*
-rwxr--r--   1 root     root  /usr/sbin/lpd*
-r-xr-sr-x   1 root     lp    /usr/sbin/lpc*
drwxrwxr-x   4 root     lp    /var/spool/lpd/
drwxr-xr-x   2 root     lp    /var/spool/lpd/lp/
</PRE>
<P>W chwili obecnej lpd musi byæ uruchamiany z prawami "root-a",
poniewa¿ u¿ywa on numerów portów zastrze¿onych dla
systemu (poni¿ej 1024). Po tym jak ju¿ siê podczepi pod ten port
powinien siê zmieniæ na lp.lp, ale raczej tego nie robi...
<P>
<H2><A NAME="s8">8. Zdobywanie oprogramowania do drukowania.</A></H2>

<P>
<P>Wiele napisanych pakietów filtruj±cych (i innych programów
zwi±zanych z drukowaniem) dostêpnych jest na 
<A HREF="ftp://ftp.icm.edu.pl:/pub/Linux/sunsite/system/printing/">SunSite    Polska</A>.
Mo¿na tam znale¼æ takie programy jak: psutils, a2ps, mpage,
dvitodvi, flpr.
<P>
<H2>8.1 Magicfilter.</H2>

<P>
<P>"Magic filter" jest jednym z najlepszych pakietów filtruj±cych;
zaprojektowany jest do instalacji w 10 minut. Powiedziano mi te¿,
¿e zawiera specjaln± obs³ugê LPRng.
<P>
<PRE>
Title:          magicfilter
Version:        1.1b
Entered-date:   04APR95
Description:    A customizable, extensible automatic printer filter.
                Lets you automatically detect and print just about any
                data type you can find a conversion utility for.  This
                filter is written in C and is controlled completely
                from an external printer configuration file.
                This version adds automagic creation of configuration
                files based on the installed software on your system,
                courtesy of GNU Autoconf.
                This version is a bug fix from 1.1/1.1a; filters for
                non-ASCII capable PostScript printers have been added.
Author:         H. Peter Anvin &lt;hpa@zytor.com>
Primary-site:   sunsite.unc.edu
                53000 /pub/Linux/system/printing/magicfilter-1.1b.tar.gz
Copying-policy: GPL
</PRE>
<P>
<H2>8.2 Filtr APS.</H2>

<P>
<P>Innym z wielu magicznych filtrów jest APS zrobiony przez Andreasa
Klemma. Linux Software Map wygl±da tak:
<P>
<PRE>
Begin3
Title:          apsfilter
Version:        4.9.1
Entered-date:   Montag, 10. Juli 1995, 21:22:35 Uhr MET DST
Description:    magicfilter for lpd with auto filetype detection
Keywords:       lpd magicfilter aps apsfilter
Original-site:  ftp-i2.informatik.rwth-aachen.de
                /pub/Linux/pak/APSfilter/aps-491.tgz
                211KB aps-491.tgz
Platforms:      C-Compiler, gs Postscript emulator, pbmutils
Copying-policy: GPL
End
</PRE>
<P>Filtr APS instaluje siê jako filtr <I>if</I> dla kolejki drukowania,
i t³umaczy z wielu popularnych typów plików na polecenia twojej
drukarki.. Rozumie np. tekst, PostScript, dvi, gif i inne.
<P>
<P>
<H2>8.3 EZ-Magic.</H2>

<P>
<P>EZ-Magic to kolejny pakiet filtruj±cy, napisany w bash-u, dostepny
na sunsite.
<P>
<PRE>
Title:          ez-magic printer filter
Version:        1.0.5
Entered-date:   January 26, 1997
Description:    ez-magic is a printer filter that supports 8 common file
                formats (txt,ps,gif,bmp,pcx,png,jpg,tif) for printing.
                It can print over a network (SMB), or to a local printer.
                Reads from a file, STDIN, or lpd. Simple to use and
                configure. Just one script file, no huge manuals and
                multibillion drivers. The only catch is that you need a
                few common helper programs like netpbm and ghostscript.
                Written in bash. Easy to add formats and code. Still more
                bugs than I have appendages, but less than the number of
                grams of fat in a hot dog. Pre-configured for HP DeskJet
                870Cse over network. Comparable to apsfilter and others.
Keywords:       magic filter, print, graphics, samba, network, smb,
                ghostscript, postscript, gif, jpg, simple
Author:         toby@eskimo.com (Toby Reed)
Maintained-by:  toby@eskimo.com (Toby Reed)
Primary-site:   http://www.eskimo.com/~toby/ez-magic-1.0.5.tar.gz
                         38 kb ez-magic-1.0.5.tar.gz
Alternate-site: sunsite.unc.edu /pub/Linux/system/printing
                         38 kb ez-magic-1.0.5.tar.gz
Copying-policy: Copyrighted, full manipulation rights, with one or two
                restrictions.
</PRE>
<P>
<H2><A NAME="s9">9. Rozwi±zania sprzedawców.</A></H2>

<P>
<P>[ Sekcja ta, jest z definicji niekompletna. Przysy³aj szczegó³y
twojej ulubionej dystrybucji. ]
<P>
<H2>9.1 RedHat.</H2>

<P>
<P>W RedHacie znajduje siê graficzne narzêdzie do admiistracji, przy
pomocy którego mo¿na dodawaæ drukarki odleg³e oraz lokalne. Pozwala
ono na wybór drukarki z obs³ug± "ghostscript" oraz pliku
urz±dzenia, do którego kierowany jest wydruk; potem dana drukarka
instalowana jest w <CODE>/etc/printcap</CODE>. Nastêpnie tworzony jest
krótki filtr magiczny PostScript-ASCII na podstawie <I>gs</I> i
<I>
<A HREF="http://www.picante.com/~gtaylor/pht/man/nenscript.html">nenscript</A></I>.
Rozwi±zanie to dzia³a ca³kiem dobrze i jest ³atwe do ustawienia dla
popularnych przypadków.
<P>
<H2>9.2 Inne dystrybucje.</H2>

<P>
<P>Proszê o informacje jakie s± rozwi±zania w innych dystrybucjach.
<P>
<H2><A NAME="s10">10. Ghostscript.</A></H2>

<P>
<P>
<A HREF="http://www.cs.wisc.edu/~ghost/">Ghostscript</A> jest
najbardziej znacz±cym programem do drukowania dla Linux-a.  Wiêkszo¶æ
oprogramowania do drukowania pod Unix-a generuje PostScript, który
jest opcj± dla drukarki wart± ok. $100. Jednak
ghostscript jest za darmo i wygeneruje jêzyk dla twojej drukarki z
PostScriptu. Je¶li jest on podczepiony pod filtr wej¶ciowy dla
lpd, to daje wirtualn± drukarkê PostScriptow± i bardzo u³atwia
¿ycie.
<P>Ghostscript jest dostêpny w dwóch postaciach. Komercyjna wersja
Ghostscript-u pod nazw± Alladin Ghostscript mo¿e byæ u¿ywana dla
celów osobistych, ale nie mo¿e byæ rozprowadzana w komercyjnych
dystrybucjach Linux-a. Jest on z regu³y o jaki¶ rok do przodu
wzglêdem darmowej wersji; w tym momencie na przyk³ad, obs³uguje on
Adobe Acrobat's Portable Document Format, podczas gdy starsze
wersje tego nie maj±.
<P>Wersja darmowa to GNU Ghostscript i jest starsz± wersj± Aladdina
uprzejmie u¿yczon± dla GNU. (Cze¶æ i chwa³a dla Aladdina za to;
wiêcej sprzedawców oprogramowania powinna wspomagaæ darmowe
oprogramowanie w ten sposób)
<P>Cokolwiek robisz w <I>
<A HREF="http://www.picante.com/~gtaylor/pht/man/gs.html">gs</A></I>, upewnij
siê, ¿e uruchomi³e¶ go z opcj± wy³±czaj±c± dostêp do
plików (<CODE>-dSAFER</CODE>). PostScript jest jêzykiem w pe³ni funkcjonalnym
i z³y program w PostScripcie móg³by ciê przyprawiæ o ból g³owy.
<P>Mówi±c o PDF-ie (Adobe's Portable Document Format), w³a¶ciwie jest
to trochê bardziej zorganizowany PostScript w skompresowanym
pliku. Ghostscript umie obs³u¿yæ PDF tak samo jak PostScript, wiêc
mo¿esz byæ pierwszym w swoim otoczeniu z drukark± umiej±c±
wydrukowaæ PDF.
<P>
<H2>10.1 Wywo³ywanie Ghosscript-u.</H2>

<P>
<P>Zwykle ghostscript jest uruchamiany przez filtr, który za³o¿y³e¶,
ale w celach ¶ledzenia b³êdó÷ dobrze jest go uruchamiaæ rêcznie.
<P><CODE>gs -help</CODE> poka¿e krótk± listê opcji i dotêpnych sterowników
(lista ta pokazuje tylko sterowniki wkompilowane, a nie wszystkie
dostêpne sterowniki).
<P>Mo¿esz uruchomiæ gs w celach testowych np. tak:
<P>
<PRE>
   
gs &lt;opcje> -q -dSAFER -sOutputFile=/dev/lp1 test.ps
</PRE>
  
<P>
<H2>10.2 Dostrajanie wyników w Ghostscripcie.</H2>

<P>
<P>Jest wiele rzeczy, które mo¿na zrobiæ je¶li wynik powsta³y przy
opracowywaniu tekstu nie jest zadowalaj±cy (w³a¶ciwie, to mo¿esz
zrobiæ co ci siê tylko zamarzy, je¶li masz ¼ród³a).
<P>
<H3>Umiejscowienie i rozmiar wyniku.</H3>

<P>
<P>Umiejscowienie, rozmiar i wspolczynik ksztaltu obrazu na stronie jest kontrolowane
przez specyficzny dla danej drukarki sterownik w
ghostscripcie. Je¶li na przyk³ad zauwa¿ysz, ¿e strony wychodz± za
krótkie, albo za d³ugie, albo za du¿e o dwa razy, mo¿esz zajrzeæ do
¼róde³ twojego sterownika i dopasowaæ jakiekolwiek parametry, które
ci nie pasuj±. Niestety, ka¿dy sterownik jest inny, tak wiêc nie
mogê ci powiedzieæ co tak na prawdê trzeba zmieniæ, ale wiêkszo¶æ z
nich jest dobrze skomentowana.
<P>
<H3>Gamma, rozmiar pikseli itp.</H3>

<P>
<P>Wiêkszo¶æ nielaserowych drukarek ma tê wadê, ¿e rozmiar ich punktu
jest raczej du¿y. Rezultatem tego s± zbyt ciemne obrazy. Je¶li masz
ten problem, to powiniene¶ u¿yæ swojej w³asnej funkcji do
transferu. Po prostu stwórz nastêpuj±cy plik w katalogu
bibliotecznym ghostscripta i dodaj jego nazwê do wywo³ania <I>gs</I>
zaraz przed w³a¶ciwym plikiem. Mo¿e bêdziesz musia³ zmieniæ
warto¶ci, ¿eby pasowa³y do twojej drukarki. Mniejsze warto¶ci daj±
ja¶niejszy obraz. Mniejsze warto¶ci (0.2 - 0.15) s± dobrym
pomys³em, szczególnie je¶li twój sterownik u¿ywa algorytmu
Floyda-Steinberga do rasteryzacji kolorów.
<P>
<PRE>
---8&lt;---- gamma.ps ----8&lt;---
%!
%transfer functions for cyan magenta yellow black
{0.3 exp} {0.3 exp} {0.3 exp} {0.3 exp} setcolortransfer
---8&lt;------------------8&lt;---
</PRE>
<P>Przez dopasowanie tych warto¶ci mo¿liwe jest te¿ naprawienie
drukarki, która ma jak±¶ wadê zwi±zan± z kolorami. Je¶li bêdziesz
robi³ co¶ takiego, to radzê u¿yæ pliku <I>colorcir.ps</I>, który
dostarczany jest wraz z ghostscriptem (w podkatalogu <CODE>examples</CODE>)
jako przyk³adowa strona.
<P>
<H2><A NAME="s11">11. Jak drukowaæ poprzez sieæ.</A></H2>

<P>
<P>Jedn± z zalet <I>lpd</I> jest to, ¿e mo¿na przy jego pomocy drukowaæ
na drukarkach przy³±czonych fizycznie do innych komputerów. Je¶li
dobrze dobierzesz kombinacjê skryptów i narzêdzi, to mo¿esz
drukowaæ przy pomocy <I>lpr</I> na wszelkiego rodzaju sieciach.
<P>
<H2>11.1 Na ho¶cie unix/lpd.</H2>

<P>
<P>Aby pozwoliæ odleg³ym maszynom drukowaæ na twojej drukarce, musisz
je umie¶ciæ w <CODE>/etc/hosts.equiv</CODE> lub
<CODE>/etc/hosts.lpd</CODE>. (Zauwa¿, ¿e <CODE>hosts.equiv</CODE> ma kilka
innych efektów; upewnij siê, ¿e wiesz co robisz je¶li umieszczasz
tam jak±¶ maszynê). U¿ywaj±c opcji <I>rs</I> mo¿esz pozwoliæ tylko
wybranym u¿ytkownikom na drukowanie; informacje na ten temat
znajdziesz na stronie podrêcznika systemowego na temat <I>
<A HREF="http://www.picante.com/~gtaylor/pht/man/lpd.html">lpd</A></I>.
<P>
<H3>Przy pomocy lpd.</H3>

<P>
<P>Aby wydrukowaæ co¶ na innej maszynie, musisz zrobiæ pozycjê w
<CODE>/etc/printcap</CODE> podobn± do tej:
<P>
<PRE>
# REMOTE djet500
lp|dj|deskjet:\
        :sd=/var/spool/lpd/dj:\
        :rm=jaka¶.odleg³a.maszyna.pl:\
        :rp=nazwa_drukarki:\
        :lp=/dev/null:\
        :sh:
</PRE>
<P>Zauwa¿, ¿e lokalnie nadal znajduje siê katalog zadañ obs³ugiwany
przez <I>lpd</I>. Je¶li odleg³a maszyna jest zajêt± albo wy³±czona,
to zadania do drukowania czekaj± lokalnie a¿ bêd± mog³y zostaæ
wys³ane.
<P>
<H3>Przy pomocy rlpr.</H3>

<P>
<P>¯eby omin±æ konfigurowanie lokalnego lpd, mo¿esz u¿yæ <I>rlpr</I>,
aby wys³aæ co¶ bezpo¶rednio do kolejki na odleg³ej maszynie. Jest
to bardzo u¿yteczne je¶li drukujesz na ró¿nych drukarkach tylko
okazyjnie. Z og³oszenia o <I>rlpr</I>:
<P>Rlpr u¿ywa protoko³u TCP/IP, aby wys³aæ zadania do drukowania do
serwera lpd gdziekolwiek w sieci.
<P>W przeciwieñstwie do lpr, ten *nie* wymaga, ¿eby drukarki, na
których chcesz drukowaæ by³y znane dla lokalnej maszyny (np. w
<CODE>/etc/printcap</CODE>) i przez to jest bardziej elastyczny i
wymaga mniejszego nak³adu pracy administratora.
<P>rlpr mo¿e zostaæ u¿yty gdziekolwiek, gdzie móg³by zostaæ u¿yty zwyk³y
lpr, i jest kompatybilny w dó³ z tradycyjnym lpr z BSD.
<P>Najwa¿niejsz± zalet± <I>rlpr</I> jest, to ¿e mo¿na drukowaæ
*sk±dkolwiek dok±dkolwiek*, niezale¿nie od tego jak jest
skonfigurowany system, z którego chcesz drukowaæ. Mo¿e te¿ byæ
u¿yty jako serwer, tak ¿e klienci uruchomieni na innych maszynach
jak np.: netscape, xemacs, itp. mog± drukowaæ na twojej drukarce
ma³ym nak³adem wysi³ku.
<P>Rlpr dostêpny jest na 
<A HREF="ftp://ftp.icm.edu.pl:/pub/Linux/sunsite/system/printing/">SUNSite Polska</A>.
<P>
<H2>11.2 Na Win95, WinNT, LanManager lub Sambie.</H2>

<P>
<P>Jest dostêpne mini-HOWTO "Printing to Windows", które zawiera
wiêcej inormacji ni¿ ta sekcja. 
<P>Mo¿liwe jest przekierowanie kolejki lpd poprzez program <I>
<A HREF="http://www.picante.com/~gtaylor/pht/man/smbclient.html">smbclient</A></I>
(czê¶æ pakietu Samba) do serwisu drukowania Samby opartego na
TCP/IP. Samba zawiera odpowiedni skrypt pod nazw±
<I>smbprint</I>. Krótko mówi±c umieszczasz plik konfiguracyjny dla
konkretnej drukarki w katalogu zadañ i instalujesz skrypt
<I>smbprint</I> jako <I>if</I>.
<P>Odpowiednia pozycja w <CODE>/etc/printcap</CODE> powinna wygl±daæ tak:
<P>
<PRE>
lp|remote-smbprinter:\
    :lp=/dev/null:sh:\
    :sd=/var/spool/lpd/lp:\
    :if=/usr/local/sbin/smbprint:
</PRE>
<P>Aby uzyskaæ wiêcej informacji na temat konfigurowania takich
przypadków przeczytaj dokumentacjê zawart± w skrypcie
<I>smbprint</I>.
<P>Mo¿esz tak¿e u¿yæ <I>smbclient</I>, aby wys³aæ zadanie drukowania
bezpo¶rednio do serwisu drukowania SMB bez w³±czania w to
lpd. Zobacz informacje w podrêczniku systemowym.
<P>
<H2>11.3 Na drukarce NetWare.</H2>

<P>
<P>Pakiet ncpfs zawiera narzêdzie zwane <I>nprint</I>, które udostêpnia
te same funkcje co <I>smbprint</I>, ale dla NetWare. Pakiet ten mo¿na
zdobyæ z 
<A HREF="ftp://ftp.icm.edu.pl:/pub/Linux/sunsite/system/filesystems/ncpfs">SunSITE Polska</A>. Z informacji LSM dla wersji
0.16:
<P>
<BLOCKQUOTE>
Przy pomocy pakietu ncpfs mo¿esz montowaæ wolumeny z serwera netware
pod Linux-em. Mo¿esz tak¿e drukowaæ na drukarkach pod³±czonych pod
netware oraz kolejkowaæ zadania z netware dla drukarek pod³±czonych
do Linux-a. Potrzebujesz j±dra w wersji 1.2.x lub 1.3.54 i nowsze.
ncpfs nie bêdzie dzia³a³ z j±drem w wersji 1.3 poni¿ej 1.3.54.
</BLOCKQUOTE>
<P>Aby <I>nprint</I> dzia³a³ poprzez lpd, musisz napisaæ ma³y skrypt,
aby drukowaæ "stdin" na drukarkach NetWare i zainstalowaæ go jako
<I>if</I> dla kolejki lpd. Otrzymasz co¶ takiego:
<P>
<PRE>
sub2|remote-NWprinter:\
        :lp=/dev/null:sh:\
        :sd=/var/spool/lpd/sub2:\
        :if=/var/spool/lpd/nprint-script:
</PRE>
<P>Skrypt "nprint-script" mo¿e wygl±daæ tak:
<P>
<PRE>
#! /bin/sh
# Powiniene¶ najpierw sprawdziæ konto guest bez has³a!
/usr/local/bin/nprint -S sieæ -U nazwa -P has³o -q nazwa-kolejki -
</PRE>
<P>
<H2>11.4 Na drukarce EtherTalk (Apple).</H2>

<P>
<P>Pakiet netatalk zawiera co¶ podobnego do <I>nprint</I> i
<I>smbclient</I>. Werner Eugster udokumentowa³ procedurê dla drukowania
do i z sieci Apple o wiele lepiej ni¿ ja kiedykolwiek; zobacz to w
<A HREF="http://thehamptons.com/anders/netatalk/">Netatalk-HOWTO</A>.
<P>Netatalk nie dzia³a z kart± SMC Etherpower PCI z chip-em DEC tulip.
<P>
<H2>11.5 Na drukarce HP i innych ethernetowych drukarkach.</H2>

<P>
<P>Drukarki HP i niektóre inne maj± ethernetowy interfejs, do którego
mo¿esz drukowaæ bezpo¶rednio u¿ywaj±c lpd. Powiniene¶ postêpowaæ
zgodnie z instrukcj±, któr± dosta³e¶ do drukarki albo jej
sterownika, ale ogólnie takie drukarki "maj± uruchomionego" lpd i
dostarczaj± jedn± lub wiêcej kolejek, do których mo¿esz
drukowaæ. HP mo¿e pracowaæ np. z takim <CODE>/etc/printcap</CODE>:
<P>
<PRE>
lj-5|remote-hplj:\
        :lp=/dev/null:sh:\
        :sd=/var/spool/lpd/lj-5:\
        :rm=nazwa.drukarki.pl:rp=raw:
</PRE>
<P>Drukarki HP LaserJet z interfejsami Jet Direct obs³uguj±
generalnie dwie wbudowane kolejki - "surow±" (raw), która akceptuje
PCL (i mo¿liwe, ¿e PostScript) oraz "tekstow±", która akceptuje
zwyk³e ASCII i radzi sobie od razu z "efektem schodków".
<P>W ¶rodowisku wielkoskalowym, szczególnie w du¿ych ¶rodowiskach,
gdzie niektóre drukarki nie obs³uguj± PostScript-u, mo¿e byæ
po¿yteczne ustawienie specjalnego serwera drukowania, do którego
drukuj± wszystkie maszyny i na którym uruchamiane s± wszystkie
zadania ghostscript-a.
<P>Pozwala to twojemu Linux-owi dzia³aæ jako serwer wydruków dla
drukarki, i u¿tykownicy mog± robiæ swoje wydruki szybko i zajmowaæ
siê swoimi rzeczami zamiast czekaæ a¿ drukarka skoñczy drukowaæ
pracê kogo¶ innego.
<P>Aby to zrobiæ, ustaw na swoim Linux-ie kolejkê, która wskazuje na
HP LJ wyposa¿on± w ethernet. Teraz ustaw kolejkê u wszystkich
swoich klientów na tego Linux-a.
<P>Niektóre drukarki sieciowe HP wyra¼nie nie akceptuj± ustawieñ
strony tytu³owej (banner page) wys³anej przez klienta; mo¿na
wy³±czyæ ich wewnêtrznie generowan± tak± stronê przez po³±czenie
siê z drukark± telnet-em, wci¶niêcie dwa razy &lt;&lt;ENTER>>, wpisanie
"banner: 0" i nastêpnie "quit". S± inne ustawienia, które mo¿esz
tak¿e w taki sposób zmieniæ - wpisz "?", ¿eby wy¶wietliæ ich
listê.
<P>
<H3>Na starszych drukarkach HP.</H3>

<P>
<P>Niektóre drukarki (oraz "czarne pude³ka" z sieciowym drukowaniem)
obs³uguj± tylko pro¶ciutkie nie-protoko³owane czyste po³±czenia
TCP. Zauwa¿alne w tej kategorii s± wczesne modele kart JetDirect
(w³aczaj±c niektóre JetDirectEx). Ogólnie, aby drukowaæ na takiej
drukarce, musisz otworzyæ po³±czenie TCP na danym porcie (z regu³y
9100) i umie¶ciæ tam swoje zadanie do wydrukowania. Mo¿na to
zaimplementowaæ m.in. w Perl-u:
<P>
<PRE>
#!/usr/bin/perl
# Thanks to Dan McLaughlin for writing the original version of this
# script (And to Jim W. Jones for sitting next to Dan when writing me
# for help ;)

$fileName = @ARGV[0];

open(IN,"$fileName") || die "Can't open file $fileName";

$dpi300     = "\x1B*t300R";
$dosCr      = "\x1B&amp;k3G";
$ends = "\x0A";

$port =  9100 unless $port;
$them = "bach.sr.hp.com" unless $them;

$AF_INET = 2;
$SOCK_STREAM = 1;
$SIG{'INT'} = 'dokill';
$sockaddr = 'S n a4 x8';

chop($hostname = `hostname`);
($name,$aliases,$proto) = getprotobyname('tcp');
($name,$aliases,$port) = getservbyname($port,'tcp')
    unless $port =~ /^\d+$/;;
($name,$aliases,$type,$len,$thisaddr) =
        gethostbyname($hostname);
($name,$aliases,$type,$len,$thataddr) = gethostbyname($them);
$this = pack($sockaddr, $AF_INET, 0, $thisaddr);
$that = pack($sockaddr, $AF_INET, $port, $thataddr);

if (socket(S, $AF_INET, $SOCK_STREAM, $proto)) {
#    print "socket ok\n";
}
else {
    die $!;
}
# Give the socket an address.
if (bind(S, $this)) {
#    print "bind ok\n";
}
else {
    die $!;
}

# Call up the server.

if (connect(S,$that)) {
#    print "connect ok\n";
}
else {
    die $!;
}

# Set socket to be command buffered.

select(S); $| = 1; select(STDOUT);

#    print S "@PJL ECHO Hi $hostname! $ends";
#    print S "@PJL OPMSG DISPLAY=\"Job $whoami\" $ends";
#    print S $dpi300;

# Avoid deadlock by forking.

if($child = fork) {
    print S $dosCr;
    print S $TimesNewR;

    while (&lt;IN>) {
        print S;
    }
    sleep 3;
    do dokill();
} else {
    while(&lt;S>) {
        print;
    }
}

sub dokill {
    kill 9,$child if $child;
}
</PRE>
<P>
<H2>11.6 Uruchamianie <I>if</I> dla odleg³ych drukarek.</H2>

<P>
<P>Jedn± wad± <I>lpd</I> jest to, ¿e <I>if</I> nie s± uruchamiane dla
drukarek odleg³ych. Je¶li oka¿e siê, ¿e potrzebujesz <I>if</I>, mo¿esz
ustawiæ podwójn± kolejkê i ponownie zkolejkowaæ dany wydruk. We¼
ten <I>printcap</I> jako przyk³ad:
<P>
<PRE>
lj-5:remote-hplj:\
        :lp=/dev/null:sh:\
        :sd=/var/spool/lpd/lj-5:\
        :if=/usr/lib/lpd/filter-lj-5:
lj-5-remote:lp=/dev/null:sh:rm=nazwa.drukarki.pl:\
        :rp=raw:sd=/var/spool/lpd/lj-5-raw:
</PRE>
<P>w ¶wietle tego, skrypt <I>filter-lj-5</I> to:
<P>
<PRE>
#!/bin/sh
gs &lt;opcje> -q -dSAFER -sOutputFile=- - | \
        lpr -Plj-5-remote -U$5
</PRE>
<P>Opcja <I>-U</I> dla lpr dzia³a tylko wtedy je¶li lpr jest uruchomiony
jako demon i ustawia ona poprawnie zleceniodawcê kolejki w ponownie
zainicjowanej kolejce. Powiniene¶ raczej u¿yæ bardziej pewnej
metody na zdobycie identyfikatora u¿ytkownika, poniewa¿ niezawsze
jest to argument 5. Zobacz w podrêcznik systemowym na temat
<I>
<A HREF="http://www.picante.com/~gtaylor/pht/man/printcap.html">printcap</A></I>.
<P>
<H2>11.7 Z Windows.</H2>

<P>
<P>Drukowanie z Windows (czy OS/2) na Linux-ie jest obs³ugiwane
poprzez SMB w pakiecie SAMBA, który tak¿e umo¿liwia wspó³dzielenie
plików dla Windows.
<P>Samba zawiera ca³kiem poka¼n± dokumentacjê. Mo¿esz albo
skonfigurowaæ magic-filter na Linux-ie i drukowaæ tam PostScript,
albo zainstalowaæ sterowniki dla konkretnej drukarki na wszystkich
komputerach z Winndows i mieæ kolejkê dla nich bez ¿adnych
filtrów. Poleganie na tych sterownikach mo¿e czasami dawaæ lepsze
efekty, ale jest to uci±¿liwe ze strony administratora je¶li jest
du¿o komputerów z Windows. Wiêc spróbuj najpierw PostScript-u.
<P>
<H2>11.8 Z Apple.</H2>

<P>
<P>Netatalk obs³uguje drukowanie z Apple poprzez EtherTalk.  Na 
<A HREF="http://thehamptons.com/anders/netatalk/">stronie Netatalk HOWTO</A> znajdziesz wiêcej
informacji.
<P>
<H2>11.9 Z Netware.</H2>

<P>
<P>Jest jaka¶ obs³uga drukowania z Netware przez Linux-a oferowana
przez czy z powodu Calder-y, ale nie mam pojêcia czy Linux mo¿e
oferowaæ drukarki dla klientów Netware.
<P>
<P>
<H2><A NAME="s12">12. Jak drukowaæ na fax-ie.</A></H2>

<P>
<P>
<H2>12.1 U¿ywanie faxmodemu.</H2>

<P>
<P>Jest wiele programów, które pozwol± ci na odbieranie i wysy³anie
faxów. Jednym z bardziej z³o¿onych jest program Sama Lefflera pod
nazw± <I>HylaFax</I>. Jest on dostêpny na <CODE>ftp.sgi.com</CODE>. Obs³uguje
on wiele rzeczy od wiêkszej ilo¶ci modemów do rozg³aszania (broadcasting).
<P>Dostêpny jest tak¿e <I>
<A HREF="http://www.picante.com/~gtaylor/pht/man/efax.html">efax</A></I>, prosty
program wysy³aj±cy fax-y - jest on lepszym wyborem dla
Linux-owców. Program <I>mgetty</I> mo¿e odbieraæ faxy (a nawet
wysy³aæ pocztê g³osow± na niektórych modemach!).
<P>
<H2>12.2 U¿ywanie Zdalnego Serwisu Drukowania.</H2>

<P>
<P>Dostêpny jest eksperymentalny serwis, który pozwala ci na wys³anie
poczty elektronicznej z do³±czonym fragmentem, który ma byæ
wydrukowany na faxie gdzie¶ indziej. Obs³ugiwane s± takie formaty
jak PostScript, tak wiêc pomimo, i¿ nie obejmuje swym zasiêgiem
wszystkiego, mo¿e byæ on bardzo przydatnym serwisem. Wiêcej informacji
na temat drukowania poprzez Zdalny Serwis Drukowania znajdziesz na 
<A HREF="http://www.tpc.int/">stronie o zdalnym    drukowaniu</A>.
<P>
<H2><A NAME="s13">13. Jak wygenerowaæ co¶ wartego drukowania.</A></H2>

<P>
<P>Tutaj wchodzimy w prawdziw± sieæ oprogramowania. Ogólnie, Linux
mo¿e uruchamiaæ cztery typy binariów z ró¿nym sukcesem: Linux,
iBCS, Win16/Win32s (za pomoc± dosemu i kiedy¶ Wine) oraz Mac/68k
(przy pomocy  Executora). Ja omówiê tylko czysto-Linux-owe i popularne
Unix-owe oprogramowanie, poza tym WordPerfect dla SCO i
przypuszczalnie inne komercyjne procesory tekstu tak¿e dobrze
dzia³aj± na Linux-owej emulacji iBCS.
<P>Dla Linux-a wybór jest przewa¿nie ograniczony do oprogramowania
dostêpnego ogólnie dla Unix-a.
<P>
<H2>13.1 Jêzyki "Markup".</H2>

<P>
<P>Wiêkszo¶æ jêzyków "markup" jest bardziej elastyczna dla wiêkszych
albo powtarzalnych projektów, gdzie chcesz, aby komputer
kontrolowa³ wygl±d rezultatu/wydruku, aby utworzyæ ogólny
wzór. Próba zrobienia jakiego¶ ³adnego znaczka  w jêzyku "markup"
przypuszczalnie by "bola³a"...
<P>
<DL>
<DT><B><CODE>nroff</CODE></B><DD><P>To by³ jeden z pierwszych jêzyków "markup" dla
Unix-a. Strony z podrêcznika systemowego s± najpopularniejszym
przyk³adem tekstów sformatowanych przy pomocy makr *roff-a. Wiele
ludzi przeklina ten jêzyk, ale nroff ma, przynajmniej dla mnie,
bardziej z³o¿on± sk³adniê ni¿ to jest konieczne i przypuszczalnie
jest z³ym wyborem dla nowych prac. Jednak warto jest wiedzieæ, ¿e
mo¿esz zamieniæ napisan± w groff-ie stronê bezpo¶rednio na
PostScript. Wiêkszo¶æ poleceñ "man" zrobi to za ciebie np. <I>man
-t co¶| lpr</I>.
<DT><B><CODE>TeX</CODE></B><DD><P>oraz jêzyk makr - LaTeX, s± jednym z najczê¶ciej
u¿ywanych jêzyków "markup" na Unix-ie. Techniczne prace s± czêsto
napisane w LaTeX-u poniewa¿ bardzo upraszcza okre¶lenie wygl±du
tekstu i jest <B>wci±¿</B> jednym z niewielu systemów obróbki tekstu,
który obs³uguje zapisy matematyczne dok³adnie i dobrze na
raz. Formatem wyj¶ciowym TeX-a jest <I>dvi</I> (DeVice Independent -
czyli niezale¿ny od urz±dzenia [przyp. t³um.]) i mo¿na go zamieniæ
na PostScript lub Hewlett Packard PCL przy pomocy <I>dvips</I> lub
<I>dvilj</I>. [TeX czyta siê "tech" - przyp. t³um.].
<DT><B><I>SGML</I></B><DD><P>Dostêpny jest przynajmniej jeden program do
obróbki tego jêzyka na Unix-a; formuuje on podstawy systemu
dokumentów Linuxdoc-SGML. Mo¿e on tak¿e obs³ugiwaæ inne DTD.
<DT><B><I>HTML</I></B><DD><P>Kto¶ zasugerowa³, ¿e dla prostych projektów,
wystarczy napisanie w HTML-u i drukowaæ przy pomocy Netscape-a. Ja
siê z tym jednak nie zgadzam.
</DL>
<P>
<H2>13.2 WYSIWYG.</H2>

<P>
<P>[ Jest to skrót od What You See Is What You Get - czyli to co
widzisz to dostaniesz, a oznacza, i¿ wydrukowane zostanie DOK£ADNIE
to co jest widoczne na ekranie i DOK£ADNIE w taki sam sposób -
przyp. t³um.]
<P>W tej chwili jest niedobór oprogramownia do obróbki tekstu
WYSIWYG. Nie bój siê napisaæ jakiego¶ i daj mi znaæ je¶li omin±³em
co¶ tutaj.
<P>
<DL>
<DT><B><I>LyX</I></B><DD><P>Jest to zakoñczenie dla LaTeX-a, które wygl±da
bardzo obiecuj±co. Odwied¼ 
<A HREF="http://www-pu.informatik.uni-tuebingen.de/users/ettrich/">stronê domow± LyX-a</A> je¶li
chcesz wiêcej informacji.
<DT><B><I>Andrew User Interface System</I></B><DD><P>AUIS zawiera <I>ez</I> -
edytor w stylu WYSIWYG z wiêkszo¶ci± cech podstawowego procesora
tekstu, mo¿liwo¶ciami HTML oraz pe³n± obs³ug± poczty elektronicznej
MIME i grup dyskusyjnych (news-ow).
<DT><B><I>Oferty komercyjne</I></B><DD><P>Przynajmniej Caldera i Red Hat
dostarczaj± pakiety zawieraj±ce zwyk³e aplikacje biurowe jak edytor
w stylu WYSIWYG i arkusz kalkulacyjny. Powiedzia³bym, ¿e robi±
dobr± robotê, ale nigdy nie u¿ywa³em takich pakietów. S±dze, ¿e
Caldera dostarcza tak¿e WABI firmy Sun, tak wiêc móg³by¶
przypuszczalnie uruchomiæ jaki¶ MS Office pod tym je¶li musia³by¶
zintegrowaæ siê z plikami innych.
<P>Jeff Phillips <EM>&lt;jeff@I_RATUS.org&gt;</EM> u¿ywa WordPerfect-a dla
Linux-a z Caldery (w Slackware ró¿nego rodzaju) i twierdzi, ¿e
dzia³a mu to dobrze. Wygl±da na to, ¿e zawiera on wbudowan±
obs³ugê drukarek, jak to mo¿na by siê spodziewaæ. Caldera powinna
mieæ jakie¶ informacje na 
<A HREF="http://www.caldera.com/">swojej stronie WWW</A>.
<P>RedHat dostarcza pakiet o nazwie <I>Applixware</I>; 
<A HREF="http://www.redhat.com/">Ich stronê</A> mo¿na znale¼æ pod
adresem www.redhat.com.
<P>Inni sprzedawcy niech mi dadz± znaæ jakie maj± oferty.
</DL>
<P>
<P>
<H2><A NAME="s14">14. Podgl±d przed wydrukiem.</A></H2>

<P>
<P>Prawie wszystko co mo¿esz wydrukowaæ, mo¿esz te¿ zobaczyæ na
ekranie.
<P>
<H2>14.1 PostScript.</H2>

<P>
<P>Ghostscript posiada sterownik do X11; najlepiej je¶li jest on u¿yty
pod kontrol± podgl±darki PostScript o nazwie <I>
<A HREF="http://www.picante.com/~gtaylor/pht/man/ghostview.html">Ghostview</A></I>.
Najnowsza wersja tego programu powinna byæ tak¿e w stanie
wy¶wietliæ pliki PDF.
<P>
<H2>14.2 TeX dvi.</H2>

<P>
<P>Niezale¿ne od urz±dzenia (DeVice Independant) pliki TeX-a mog± byæ
wy¶wietlane w X11 u¿ywaj±c <I>
<A HREF="http://www.picante.com/~gtaylor/pht/man/xdvi.html">xdvi</A></I>. Nowsze
wersje <I>xdvi</I> wywo³uj± ghostscript, aby wykonaæ polecenia
typowo PostScriptowe.
<P>Jest tak¿e sterownik na VT100. Nazywa siê <I>dgvt</I>. <I>Tmview</I>
dzia³a z Linux-em i svgalib je¶li to wszystko na co ciê staæ.
<P>
<P>
<H2><A NAME="s15">15. Drukarki szeregowe pod lpd.</A></H2>

<P>
<P>
<H2>15.1 Ustawianie w printcap-ie.</H2>

<P>
<P>Lpd udostepnia piêæ atrybutów, które mo¿esz ustawiæ w pliku
<CODE>/etc/printcap</CODE>, aby kontrolowaæ wszystkie ustawienia portu
szeregowego, do którego do³±czona jest drukarka. Przeczytaj stronê
podrêcznika systemowego na temat <I>
<A HREF="http://www.picante.com/~gtaylor/pht/man/printcap.html">printcap</A></I> i
zapamiêtaj znaczenia: <I>br#</I>, <I>fc#</I>, <I>xc#</I>,
<I>fs#</I> i <I>xs#</I>. Ostatnie cztery z tych atrybutów to
mapy bitowe oznaczaj±ce ustawienia portu. Atrybut <I>br#</I> jest
prêdko¶ci±: np. <I>br#9600</I>.
<P>T³umaczenie z postaci <I>stty</I> na <I>printcap</I> jest bardzo
proste. Je¶li musisz, to zobacz stronê podrêcznika systemowego na
temat <I>stty</I>.
<P>U¿yj <I>stty</I>, aby ustawiæ port drukarki, tak ¿eby¶ móg³ wys³aæ
plik do tego portu (poleceniem <I>cat</I>) i otrzyma³ poprawny
wydruk. Oto co wy¶wietla polecenie <I>stty -a</I> dla mojego portu
drukarki:
<P>
<PRE>
dina:/usr/users/andy/work/lpd/lpd# stty -a &lt; /dev/ttyS2
speed 9600 baud; rows 0; columns 0; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = &lt;undef>;
eol2 = &lt;undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W;
lnext = ^V; min = 1; time = 0;
-parenb -parodd cs8 hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr 
-igncr -icrnl ixon -ixoff -iuclc -ixany -imaxbel
-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 
bs0 vt0 ff0
-isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase
-tostop -echoprt -echoctl -echoke
</PRE>
<P>Jedynymi zmianami miêdzy tym, i stanem w jakim port jest
inicjowany podczas startu s± <CODE>-clocal</CODE>, <CODE>-crtscts</CODE> i
<CODE>ixon</CODE>. Twój port mo¿e mieæ inne ustawienia w zale¼no¶ci od tego
jak twoja drukarka kontroluje przep³yw (flow control).
<P><I>stty</I> u¿ywa siê w³a¶ciwie w dziwny sposób. Poniewa¿ polecenie
<I>stty</I> operuje na terminalu pod³±czonym do jego standardowego
wej¶cia, ty u¿ywasz je, aby manipulowaæ danym portem szeregowym
przez u¿ycie znaku <CODE>&lt;</CODE> jak powy¿ej.
<P>Jak ju¿ masz dobre ustawienia, tak ¿e <I>cat plik &gt;
/dev/ttyS2</I> (w moim przypadku) dzia³a, zajrzyj do pliku
<CODE>/usr/src/linux/include/linux/termios.h</CODE>. Zawiera on wiele
#define (definicji) i kilka struktur - mo¿esz go sobie
wydrukowaæ (przecie¿ drukarka dzia³a, nie ?) i u¿ywaæ jako
pomocy. Id¼ do sekcji, która zaczyna siê tak:
<P>
<PRE>
/* c_cflag bit meaning */
#define CBAUD   0000017
</PRE>
<P>Sekcja ta zawiera znaczenia bitów <I>fc#</I> i
<I>fs#</I>. Zauwa¿ysz, ¿e nazwy (po ilo¶ci bodów) s± identyczne z
tymi z polecenie <I>stty</I>. A nie mówi³em, ¿e to bêdzie proste ?
<P>Zobacz, które z tych ustawieñ maj± znak "-" na pocz±tku przy
poleceniu <I>stty</I>. Zsumuj te wszystkie liczby (s± one zapisane w
systemie ósemkowym). To bêd± te bity, które bêdziesz chcia³
wyzerowaæ, tak wiêc wynik jest tym, co masz wpisaæ do
<I>fc#</I>. Pamiêtaj oczywi¶cie, ¿e bêdziesz ustawia³ bity zaraz
po tym jak je wyzerujesz, tak wiêc mo¿esz u¿yæ
"<I>fc#0177777</I>" (ja tak robiê).
<P>Teraz zrób to samo dla tych ustawieñ, które nie maj± znaku "-" na
pocz±tku w poleceniu <I>stty</I>. W moim przyk³adzie wa¿ne s± CS8
(0000060), HUPCL (0002000) i CREAD (0000200). Zapamiêtaj te¿
ustawienie dla swojej prêdko¶ci (u mnie jest to 0000015). Zsumuj to
wszystko - w moim przyk³adzie bêdzie to 0002275. To bêdzie to, co
masz wpisaæ do <I>fs#</I>. ("<I>fs#02275</I> dzia³a u mnie.)
<P>Zrób to samo z ustawieniem i zerowaniem dla nastêpnej sekcji pliku
nag³ówkowego. "c_lflag bits". W moim przypadku nie musia³em niczego
ustawiaæ, tak wiêc u¿y³em tylko "<I>xc#0157777</I>" i
"<I>xs#0</I>".
<P>
<H2>15.2 Starsze drukarki szeregowe, które gubi± znaki.</H2>

<P>
<P>Jon Luckey pisze, ¿e u niektórych starszych szeregowych drukarek z
interfejsem za 10 centów i ma³ym buforem, stop w kontroli przep³ywu
oznacza <B>rzeczywiste</B> stop dla drukowania. Potem odkry³, ¿e ¿eby
naprawiæ tê niedogodno¶æ wystarczy wy³±czyæ FIFO w uk³adzie 16550
poleceniem <I>
<A HREF="http://www.picante.com/~gtaylor/pht/man/setserial.html">setserial</A></I>
(¿eby to zrobiæ po prostu podajesz typ ukladu uart jako 8250).
<P>
<H2><A NAME="s16">16. Wyrazy uznania.</A></H2>

<P>
<P>Informacje na temat <I>smbprint</I> zosta³y zaczerpniête z artyku³u
Marcela Roelofsa <CODE>&lt;marcel@paragon.nl&gt;</CODE>.
<P>Informacje na temat <I>nprint</I> i u¿ywania drukarek NetWare zosta³y
dostarczone przez Michaela Smitha
<CODE>&lt;mikes@bioch.ox.ac.uk&gt;</CODE>.
<P>Sekcja na temat drukarek szeregowych pod lpd zosta³a napisana przez
Andrew Teffta <CODE>&lt;teffta@engr.dnet.ge.com&gt;</CODE>.
<P>Te wszystkie gammy i inne takie dla "gs" zosta³y dostarczone przez
Andreasa <CODE>&lt;quasi@hub-fue.franken.de&gt;</CODE>.
<P>Dwa paragrafy na temat 30 sekundowego "closing_wait" przy
sterownikach szeregowych zosta³y dostarczone przez Chrisa Johnsona
<CODE>&lt;cdj@netcom.com&gt;</CODE>.
<P>Robert Hart przys³a³ kilka doskona³ych paragrafów na temat
ustawiania serwera drukarek dla po³±czonych HP, któych ja u¿ywam w
niezmienionej wersji.
<P>I specjalne podziêkowania dla tuzinów nad tuzinami tych, którzy
wskazywali literówki, z³e adresy i b³êdy w tym dokumencie przez
lata.
<P>
<H2>16.1 Od t³umacza.</H2>

<P>
<P>Wersja ta jest wersj± ostateczn±. Dodany zosta³ odno¶nik
do w³a¶nie powsta³ego t³umaczenia dokumentu Printing-Usage-HOWTO.
<P>T³umaczenie to jest chronione prawami autorskimi &copy; Bartosza
Maruszewskiego.
Dozwolone jest rozprowadzanie i dystrybucja na prawach takich
samych jak dokument oryginalny.
<P>Je¶li znalaz³e¶ jakie¶ ra¿±ce b³êdy ortograficzne, gramatyczne,
sk³adniowe, techniczne (a mo¿e ich tu trochê byæ, bo nie znam siê
tak bardzo na poligrafii) to pisz do mnie:
<P>
<A HREF="mailto:B.Maruszewski@jtz.org.pl">B.Maruszewski@jtz.org.pl</A><P>Oficjaln± stron± t³umaczeñ HOWTO jest
<A HREF="http://www.jtz.org.pl/">http://www.jtz.org.pl/</A><P>Aktualne wersje przet³umaczonych dokumentów znajduj± siê na
tej¿e stronie. Dostêpne s± tak¿e poprzez anonimowe ftp pod adresem
<A HREF="ftp://ftp.jtz.org.pl/JTZ/">ftp.jtz.org.pl</A> w katalogu <CODE>/JTZ</CODE>.
<P>Przet³umaczone przeze mnie dokumenty znajduj± siê tak¿e na
<A HREF="http://www.jtz.org.pl/bartek/tlumaczenie.html">mojej stronie WWW.</A> S± tam te¿ odwo³ania do Polskiej Strony
T³umaczeniowej.
<P>Kontakt z nasz± grup±, grup± t³umaczy mo¿esz uzyskaæ poprzez listê
dyskusyjn± jtz@jtz.org.pl. Je¶li chcesz sie na ni± zapisaæ, to
wy¶lij list o tre¶ci <CODE>subscribe jtz Imiê Nazwisko</CODE> na adres
<CODE>majordomo@ippt.gov.pl</CODE>
<P>
</BODY>
</HTML>