1619
|
1 *print.txt* For Vim version 7.2a. Last change: 2008 Apr 30
|
15
|
2
|
|
3
|
|
4 VIM REFERENCE MANUAL by Bram Moolenaar
|
|
5
|
|
6
|
|
7 Printing *printing*
|
|
8
|
|
9 1. Introduction |print-intro|
|
|
10 2. Print options |print-options|
|
|
11 3. PostScript Printing |postscript-printing|
|
|
12 4. PostScript Printing Encoding |postscript-print-encoding|
|
856
|
13 5. PostScript CJK Printing |postscript-cjk-printing|
|
15
|
14 6. PostScript Printing Troubleshooting |postscript-print-trouble|
|
|
15 7. PostScript Utilities |postscript-print-util|
|
|
16 8. Formfeed Characters |printing-formfeed|
|
|
17
|
|
18 {Vi has None of this}
|
|
19 {only available when compiled with the |+printer| feature}
|
|
20
|
|
21 ==============================================================================
|
|
22 1. Introduction *print-intro*
|
|
23
|
|
24 On MS-Windows Vim can print your text on any installed printer. On other
|
|
25 systems a PostScript file is produced. This can be directly sent to a
|
|
26 PostScript printer. For other printers a program like ghostscript needs to be
|
|
27 used.
|
|
28
|
1619
|
29 Note: If you have problems printing with |:hardcopy|, an alternative is to use
|
|
30 |:TOhtml| and print the resulting html file from a browser.
|
|
31
|
15
|
32 *:ha* *:hardcopy* *E237* *E238* *E324*
|
|
33 :[range]ha[rdcopy][!] [arguments]
|
|
34 Send [range] lines (default whole file) to the
|
|
35 printer.
|
|
36
|
|
37 On MS-Windows a dialog is displayed to allow selection
|
236
|
38 of printer, paper size etc. To skip the dialog, use
|
15
|
39 the [!]. In this case the printer defined by
|
|
40 'printdevice' is used, or, if 'printdevice' is empty,
|
|
41 the system default printer.
|
|
42
|
|
43 For systems other than MS-Windows, PostScript is
|
|
44 written in a temp file and 'printexpr' is used to
|
|
45 actually print it. Then [arguments] can be used by
|
|
46 'printexpr' through |v:cmdarg|. Otherwise [arguments]
|
|
47 is ignored. 'printoptions' can be used to specify
|
|
48 paper size, duplex, etc.
|
|
49
|
|
50 :[range]ha[rdcopy][!] >{filename}
|
|
51 As above, but write the resulting PostScript in file
|
|
52 {filename}.
|
|
53 Things like "%" are expanded |cmdline-special|
|
|
54 Careful: An existing file is silently overwritten.
|
|
55 {only available when compiled with the |+postscript|
|
|
56 feature}
|
|
57 On MS-Windows use the "print to file" feature of the
|
|
58 printer driver.
|
|
59
|
|
60 Progress is displayed during printing as a page number and a percentage. To
|
|
61 abort printing use the interrupt key (CTRL-C or, on MS-systems, CTRL-Break).
|
|
62
|
|
63 Printer output is controlled by the 'printfont' and 'printoptions' options.
|
|
64 'printheader' specifies the format of a page header.
|
|
65
|
|
66 The printed file is always limited to the selected margins, irrespective of
|
|
67 the current window's 'wrap' or 'linebreak' settings. The "wrap" item in
|
|
68 'printoptions' can be used to switch wrapping off.
|
|
69 The current highlighting colors are used in the printout, with the following
|
|
70 considerations:
|
236
|
71 1) The normal background is always rendered as white (i.e. blank paper).
|
15
|
72 2) White text or the default foreground is rendered as black, so that it shows
|
|
73 up!
|
|
74 3) If 'background' is "dark", then the colours are darkened to compensate for
|
|
75 the fact that otherwise they would be too bright to show up clearly on
|
|
76 white paper.
|
|
77
|
|
78 ==============================================================================
|
|
79 2. Print options *print-options*
|
|
80
|
|
81 Here are the details for the options that change the way printing is done.
|
|
82 For generic info about setting options see |options.txt|.
|
|
83
|
|
84 *pdev-option*
|
|
85 'printdevice' 'pdev' string (default empty)
|
|
86 global
|
|
87 This defines the name of the printer to be used when the |:hardcopy| command
|
|
88 is issued with a bang (!) to skip the printer selection dialog. On Win32, it
|
|
89 should be the printer name exactly as it appears in the standard printer
|
|
90 dialog.
|
|
91 If the option is empty, then vim will use the system default printer for
|
|
92 ":hardcopy!"
|
|
93
|
|
94 *penc-option* *E620*
|
|
95 'printencoding' 'penc' String (default empty, except for:
|
|
96 Windows, OS/2: cp1252,
|
|
97 Macintosh: mac-roman,
|
|
98 VMS: dec-mcs,
|
|
99 HPUX: hp-roman8,
|
|
100 EBCDIC: ebcdic-uk)
|
|
101 global
|
|
102 Sets the character encoding used when printing. This option tells VIM which
|
|
103 print character encoding file from the "print" directory in 'runtimepath' to
|
|
104 use.
|
|
105
|
|
106 This option will accept any value from |encoding-names|. Any recognized names
|
|
107 are converted to VIM standard names - see 'encoding' for more details. Names
|
|
108 not recognized by VIM will just be converted to lower case and underscores
|
|
109 replaced with '-' signs.
|
|
110
|
|
111 If 'printencoding' is empty or VIM cannot find the file then it will use
|
|
112 'encoding' (if VIM is compiled with |+multi_byte| and it is set an 8-bit
|
|
113 encoding) to find the print character encoding file. If VIM is unable to find
|
|
114 a character encoding file then it will use the "latin1" print character
|
|
115 encoding file.
|
|
116
|
|
117 When 'encoding' is set to a multi-byte encoding, VIM will try to convert
|
|
118 characters to the printing encoding for printing (if 'printencoding' is empty
|
|
119 then the conversion will be to latin1). Conversion to a printing encoding
|
|
120 other than latin1 will require VIM to be compiled with the |+iconv| feature.
|
|
121 If no conversion is possible then printing will fail. Any characters that
|
|
122 cannot be converted will be replaced with upside down question marks.
|
|
123
|
|
124 Four print character encoding files are provided to support default Mac, VMS,
|
|
125 HPUX, and EBCDIC character encodings and are used by default on these
|
|
126 platforms. Code page 1252 print character encoding is used by default on
|
|
127 Windows and OS/2 platforms.
|
|
128
|
|
129 *pexpr-option*
|
|
130 'printexpr' 'pexpr' String (default: see below)
|
|
131 global
|
|
132 Expression that is evaluated to print the PostScript produced with
|
|
133 |:hardcopy|.
|
|
134 The file name to be printed is in |v:fname_in|.
|
|
135 The arguments to the ":hardcopy" command are in |v:cmdarg|.
|
|
136 The expression must take care of deleting the file after printing it.
|
|
137 When there is an error, the expression must return a non-zero number.
|
|
138 If there is no error, return zero or an empty string.
|
|
139 The default for non MS-Windows or VMS systems is to simply use "lpr" to print
|
|
140 the file: >
|
|
141
|
|
142 system('lpr' . (&printdevice == '' ? '' : ' -P' . &printdevice)
|
|
143 . ' ' . v:fname_in) . delete(v:fname_in) + v:shell_error
|
|
144
|
|
145 On MS-Dos, MS-Windows and OS/2 machines the default is to copy the file to the
|
|
146 currently specified printdevice: >
|
|
147
|
|
148 system('copy' . ' ' . v:fname_in . (&printdevice == ''
|
|
149 ? ' LPT1:' : (' \"' . &printdevice . '\"')))
|
|
150 . delete(v:fname_in)
|
|
151
|
|
152 On VMS machines the default is to send the file to either the default or
|
|
153 currently specified printdevice: >
|
|
154
|
|
155 system('print' . (&printdevice == '' ? '' : ' /queue=' .
|
|
156 &printdevice) . ' ' . v:fname_in) . delete(v:fname_in)
|
|
157
|
|
158 If you change this option, using a function is an easy way to avoid having to
|
|
159 escape all the spaces. Example: >
|
|
160
|
|
161 :set printexpr=PrintFile(v:fname_in)
|
|
162 :function PrintFile(fname)
|
|
163 : call system("ghostview " . a:fname)
|
|
164 : call delete(a:fname)
|
|
165 : return v:shell_error
|
|
166 :endfunc
|
|
167
|
|
168 Be aware that some print programs return control before they have read the
|
|
169 file. If you delete the file too soon it will not be printed. These programs
|
|
170 usually offer an option to have them remove the file when printing is done.
|
|
171 *E365*
|
|
172 If evaluating the expression fails or it results in a non-zero number, you get
|
|
173 an error message. In that case Vim will delete the file. In the default
|
|
174 value for non-MS-Windows a trick is used: Adding "v:shell_error" will result
|
|
175 in a non-zero number when the system() call fails.
|
|
176
|
|
177 This option cannot be set from a |modeline| or in the |sandbox|, for security
|
|
178 reasons.
|
|
179
|
|
180 *pfn-option* *E613*
|
|
181 'printfont' 'pfn' string (default "courier")
|
|
182 global
|
|
183 This is the name of the font that will be used for the |:hardcopy| command's
|
|
184 output. It has the same format as the 'guifont' option, except that only one
|
|
185 font may be named, and the special "guifont=*" syntax is not available.
|
|
186
|
|
187 In the Win32 GUI version this specifies a font name with its extra attributes,
|
|
188 as with the 'guifont' option.
|
|
189
|
|
190 For other systems, only ":h11" is recognized, where "11" is the point size of
|
|
191 the font. When omitted, the point size is 10.
|
|
192
|
|
193 *pheader-option*
|
|
194 'printheader' 'pheader' string (default "%<%f%h%m%=Page %N")
|
|
195 global
|
|
196 This defines the format of the header produced in |:hardcopy| output. The
|
|
197 option is defined in the same way as the 'statusline' option. If Vim has not
|
|
198 been compiled with the |+statusline| feature, this option has no effect and a
|
1619
|
199 simple default header is used, which shows the page number. The same simple
|
|
200 header is used when this option is empty.
|
15
|
201
|
|
202 *pmbcs-option*
|
|
203 'printmbcharset' 'pmbcs' string (default "")
|
|
204 global
|
|
205 Sets the CJK character set to be used when generating CJK output from
|
|
206 |:hardcopy|. The following predefined values are currently recognised by VIM:
|
|
207
|
|
208 Value Description ~
|
|
209 Chinese GB_2312-80
|
|
210 (Simplified) GBT_12345-90
|
|
211 MAC Apple Mac Simplified Chinese
|
|
212 GBT-90_MAC GB/T 12345-90 Apple Mac Simplified
|
|
213 Chinese
|
|
214 GBK GBK (GB 13000.1-93)
|
|
215 ISO10646 ISO 10646-1:1993
|
|
216
|
|
217 Chinese CNS_1993 CNS 11643-1993, Planes 1 & 2
|
|
218 (Traditional) BIG5
|
|
219 ETEN Big5 with ETen extensions
|
|
220 ISO10646 ISO 10646-1:1993
|
|
221
|
|
222 Japanese JIS_C_1978
|
|
223 JIS_X_1983
|
|
224 JIS_X_1990
|
856
|
225 MSWINDOWS Win3.1/95J (JIS X 1997 + NEC +
|
15
|
226 IBM extensions)
|
|
227 KANJITALK6 Apple Mac KanjiTalk V6.x
|
|
228 KANJITALK7 Apple Mac KanjiTalk V7.x
|
|
229
|
|
230 Korean KS_X_1992
|
|
231 MAC Apple Macintosh Korean
|
|
232 MSWINDOWS KS X 1992 with MS extensions
|
|
233 ISO10646 ISO 10646-1:1993
|
|
234
|
|
235 Only certain combinations of the above values and 'printencoding' are
|
|
236 possible. The following tables show the valid combinations:
|
|
237
|
|
238 euc-cn gbk ucs-2 utf-8 ~
|
|
239 Chinese GB_2312-80 x
|
|
240 (Simplified) GBT_12345-90 x
|
|
241 MAC x
|
|
242 GBT-90_MAC x
|
|
243 GBK x
|
|
244 ISO10646 x x
|
|
245
|
|
246 euc-tw big5 ucs-2 utf-8 ~
|
|
247 Chinese CNS_1993 x
|
|
248 (Traditional) BIG5 x
|
|
249 ETEN x
|
|
250 ISO10646 x x
|
|
251
|
|
252 euc-jp sjis ucs-2 utf-8 ~
|
|
253 Japanese JIS_C_1978 x x
|
|
254 JIS_X_1983 x x
|
|
255 JIS_X_1990 x x x
|
|
256 MSWINDOWS x
|
|
257 KANJITALK6 x
|
|
258 KANJITALK7 x
|
|
259
|
|
260 euc-kr cp949 ucs-2 utf-8 ~
|
856
|
261 Korean KS_X_1992 x
|
15
|
262 MAC x
|
|
263 MSWINDOWS x
|
|
264 ISO10646 x x
|
|
265
|
|
266 To set up the correct encoding and character set for printing some
|
|
267 Japanese text you would do the following; >
|
|
268 :set printencoding=euc-jp
|
|
269 :set printmbcharset=JIS_X_1983
|
|
270
|
|
271 If 'printmbcharset' is not one of the above values then it is assumed to
|
|
272 specify a custom multi-byte character set and no check will be made that it is
|
|
273 compatible with the value for 'printencoding'. VIM will look for a file
|
|
274 defining the character set in the "print" directory in 'runtimepath'.
|
|
275
|
|
276 *pmbfn-option*
|
|
277 'printmbfont' 'pmbfn' string (default "")
|
|
278 global
|
|
279 This is a comma-separated list of fields for font names to be used when
|
|
280 generating CJK output from |:hardcopy|. Each font name has to be preceded
|
|
281 with a letter indicating the style the font is to be used for as follows:
|
|
282
|
|
283 r:{font-name} font to use for normal characters
|
|
284 b:{font-name} font to use for bold characters
|
|
285 i:{font-name} font to use for italic characters
|
|
286 o:{font-name} font to use for bold-italic characters
|
|
287
|
|
288 A field with the r: prefix must be specified when doing CJK printing. The
|
|
289 other fontname specifiers are optional. If a specifier is missing then
|
|
290 another font will be used as follows:
|
|
291
|
|
292 if b: is missing, then use r:
|
|
293 if i: is missing, then use r:
|
839
|
294 if o: is missing, then use b:
|
15
|
295
|
|
296 Some CJK fonts do not contain characters for codes in the ASCII code range.
|
|
297 Also, some characters in the CJK ASCII code ranges differ in a few code points
|
|
298 from traditional ASCII characters. There are two additional fields to control
|
|
299 printing of characters in the ASCII code range.
|
|
300
|
|
301 c:yes Use Courier font for characters in the ASCII
|
|
302 c:no (default) code range.
|
|
303
|
|
304 a:yes Use ASCII character set for codes in the ASCII
|
|
305 a:no (default) code range.
|
|
306
|
|
307 The following is an example of specifying two multi-byte fonts, one for normal
|
|
308 and italic printing and one for bold and bold-italic printing, and using
|
|
309 Courier to print codes in the ASCII code range but using the national
|
|
310 character set: >
|
|
311 :set printmbfont=r:WadaMin-Regular,b:WadaMin-Bold,c:yes
|
|
312 <
|
|
313 *popt-option*
|
856
|
314 'printoptions' 'popt' string (default "")
|
15
|
315 global
|
|
316 This is a comma-separated list of items that control the format of the output
|
|
317 of |:hardcopy|:
|
|
318
|
|
319 left:{spec} left margin (default: 10pc)
|
|
320 right:{spec} right margin (default: 5pc)
|
|
321 top:{spec} top margin (default: 5pc)
|
|
322 bottom:{spec} bottom margin (default: 5pc)
|
|
323 {spec} is a number followed by "in" for inches, "pt"
|
|
324 for points (1 point is 1/72 of an inch), "mm" for
|
|
325 millimeters or "pc" for a percentage of the media
|
|
326 size.
|
|
327 Weird example:
|
|
328 left:2in,top:30pt,right:16mm,bottom:3pc
|
|
329 If the unit is not recognized there is no error and
|
|
330 the default value is used.
|
|
331
|
|
332 header:{nr} Number of lines to reserve for the header.
|
|
333 Only the first line is actually filled, thus when {nr}
|
|
334 is 2 there is one empty line. The header is formatted
|
|
335 according to 'printheader'.
|
|
336 header:0 Do not print a header.
|
|
337 header:2 (default) Use two lines for the header
|
|
338
|
|
339 syntax:n Do not use syntax highlighting. This is faster and
|
|
340 thus useful when printing large files.
|
|
341 syntax:y Do syntax highlighting.
|
|
342 syntax:a (default) Use syntax highlighting if the printer appears to be
|
856
|
343 able to print color or grey.
|
15
|
344
|
|
345 number:y Include line numbers in the printed output.
|
|
346 number:n (default) No line numbers.
|
|
347
|
|
348 wrap:y (default) Wrap long lines.
|
|
349 wrap:n Truncate long lines.
|
|
350
|
|
351 duplex:off Print on one side.
|
|
352 duplex:long (default) Print on both sides (when possible), bind on long
|
856
|
353 side.
|
15
|
354 duplex:short Print on both sides (when possible), bind on short
|
856
|
355 side.
|
15
|
356
|
|
357 collate:y (default) Collating: 1 2 3, 1 2 3, 1 2 3
|
|
358 collate:n No collating: 1 1 1, 2 2 2, 3 3 3
|
|
359
|
|
360 jobsplit:n (default) Do all copies in one print job
|
|
361 jobsplit:y Do each copy as a separate print job. Useful when
|
856
|
362 doing N-up postprocessing.
|
15
|
363
|
|
364 portrait:y (default) Orientation is portrait.
|
|
365 portrait:n Orientation is landscape.
|
|
366 *a4* *letter*
|
|
367 paper:A4 (default) Paper size: A4
|
|
368 paper:{name} Paper size from this table:
|
|
369 {name} size in cm size in inch ~
|
|
370 10x14 25.4 x 35.57 10 x 14
|
|
371 A3 29.7 x 42 11.69 x 16.54
|
|
372 A4 21 x 29.7 8.27 x 11.69
|
|
373 A5 14.8 x 21 5.83 x 8.27
|
|
374 B4 25 x 35.3 10.12 x 14.33
|
|
375 B5 17.6 x 25 7.17 x 10.12
|
|
376 executive 18.42 x 26.67 7.25 x 10.5
|
|
377 folio 21 x 33 8.27 x 13
|
|
378 ledger 43.13 x 27.96 17 x 11
|
|
379 legal 21.59 x 35.57 8.5 x 14
|
|
380 letter 21.59 x 27.96 8.5 x 11
|
|
381 quarto 21.59 x 27.5 8.5 x 10.83
|
|
382 statement 13.97 x 21.59 5.5 x 8.5
|
|
383 tabloid 27.96 x 43.13 11 x 17
|
|
384
|
|
385 formfeed:n (default) Treat form feed characters (0x0c) as a normal print
|
856
|
386 character.
|
15
|
387 formfeed:y When a form feed character is encountered, continue
|
|
388 printing of the current line at the beginning of the
|
|
389 first line on a new page.
|
|
390
|
|
391 The item indicated with (default) is used when the item is not present. The
|
|
392 values are not always used, especially when using a dialog to select the
|
|
393 printer and options.
|
|
394 Example: >
|
|
395 :set printoptions=paper:letter,duplex:off
|
|
396
|
|
397 ==============================================================================
|
|
398 3. PostScript Printing *postscript-printing*
|
|
399 *E455* *E456* *E457* *E624*
|
|
400 Provided you have enough disk space there should be no problems generating a
|
|
401 PostScript file. You need to have the runtime files correctly installed (if
|
|
402 you can find the help files, they probably are).
|
|
403
|
|
404 There are currently a number of limitations with PostScript printing:
|
|
405
|
|
406 - 'printfont' - The font name is ignored (the Courier family is always used -
|
|
407 it should be available on all PostScript printers) but the font size is
|
|
408 used.
|
|
409
|
|
410 - 'printoptions' - The duplex setting is used when generating PostScript
|
|
411 output, but it is up to the printer to take notice of the setting. If the
|
|
412 printer does not support duplex printing then it should be silently ignored.
|
|
413 Some printers, however, don't print at all.
|
|
414
|
|
415 - 8-bit support - While a number of 8-bit print character encodings are
|
|
416 supported it is possible that some characters will not print. Whether a
|
|
417 character will print depends on the font in the printer knowing the
|
|
418 character. Missing characters will be replaced with an upside down question
|
|
419 mark, or a space if that character is also not known by the font. It may be
|
|
420 possible to get all the characters in an encoding to print by installing a
|
|
421 new version of the Courier font family.
|
|
422
|
|
423 - Multi-byte support - Currently VIM will try to convert multi-byte characters
|
|
424 to the 8-bit encoding specified by 'printencoding' (or latin1 if it is
|
|
425 empty). Any characters that are not successfully converted are shown as
|
|
426 unknown characters. Printing will fail if VIM cannot convert the multi-byte
|
|
427 to the 8-bit encoding.
|
|
428
|
|
429 ==============================================================================
|
|
430 4. Custom 8-bit Print Character Encodings *postscript-print-encoding*
|
|
431 *E618* *E619*
|
|
432 To use your own print character encoding when printing 8-bit character data
|
|
433 you need to define your own PostScript font encoding vector. Details on how
|
1121
|
434 to define a font encoding vector is beyond the scope of this help file, but
|
15
|
435 you can find details in the PostScript Language Reference Manual, 3rd Edition,
|
|
436 published by Addison-Wesley and available in PDF form at
|
|
437 http://www.adobe.com/. The following describes what you need to do for VIM to
|
|
438 locate and use your print character encoding.
|
|
439
|
|
440 i. Decide on a unique name for your encoding vector, one that does not clash
|
|
441 with any of the recognized or standard encoding names that VIM uses (see
|
|
442 |encoding-names| for a list), and that no one else is likely to use.
|
|
443 ii. Copy $VIMRUNTIME/print/latin1.ps to the print subdirectory in your
|
|
444 'runtimepath' and rename it with your unique name.
|
|
445 iii. Edit your renamed copy of latin1.ps, replacing all occurrences of latin1
|
|
446 with your unique name (don't forget the line starting %%Title:), and
|
|
447 modify the array of glyph names to define your new encoding vector. The
|
|
448 array must have exactly 256 entries or you will not be able to print!
|
|
449 iv. Within VIM, set 'printencoding' to your unique encoding name and then
|
|
450 print your file. VIM will now use your custom print character encoding.
|
|
451
|
|
452 VIM will report an error with the resource file if you change the order or
|
|
453 content of the first 3 lines, other than the name of the encoding on the line
|
|
454 starting %%Title: or the version number on the line starting %%Version:.
|
|
455
|
|
456 [Technical explanation for those that know PostScript - VIM looks for a file
|
|
457 with the same name as the encoding it will use when printing. The file
|
|
458 defines a new PostScript Encoding resource called /VIM-name, where name is the
|
|
459 print character encoding VIM will use.]
|
|
460
|
|
461 ==============================================================================
|
|
462 5. PostScript CJK Printing *postscript-cjk-printing*
|
|
463 *E673* *E674* *E675*
|
|
464
|
|
465 VIM supports printing of Chinese, Japanese, and Korean files. Setting up VIM
|
|
466 to correctly print CJK files requires setting up a few more options.
|
|
467
|
|
468 Each of these countries has many standard character sets and encodings which
|
|
469 require that both be specified when printing. In addition, CJK fonts normally
|
|
470 do not have the concept of italic glyphs and use different weight or stroke
|
|
471 style to achieve emphasis when printing. This in turn requires a different
|
|
472 approach to specifying fonts to use when printing.
|
|
473
|
|
474 The encoding and character set are specified with the 'printencoding' and
|
|
475 'printmbcharset' options. If 'printencoding' is not specified then 'encoding'
|
|
476 is used as normal. If 'printencoding' is specified then characters will be
|
|
477 translated to this encoding for printing. You should ensure that the encoding
|
|
478 is compatible with the character set needed for the file contents or some
|
|
479 characters may not appear when printed.
|
|
480
|
|
481 The fonts to use for CJK printing are specified with 'printmbfont'. This
|
|
482 option allows you to specify different fonts to use when printing characters
|
|
483 which are syntax highlighted with the font styles normal, italic, bold and
|
|
484 bold-italic.
|
|
485
|
|
486 No CJK fonts are supplied with VIM. There are some free Korean, Japanese, and
|
|
487 Traditional Chinese fonts available at:
|
|
488
|
|
489 http://examples.oreilly.com/cjkvinfo/adobe/samples/
|
|
490
|
856
|
491 You can find descriptions of the various fonts in the read me file at
|
15
|
492
|
|
493 http://examples.oreilly.com/cjkvinfo/adobe/00README
|
|
494
|
|
495 Please read your printer documentation on how to install new fonts.
|
|
496
|
|
497 CJK fonts can be large containing several thousand glyphs, and it is not
|
|
498 uncommon to find that they only contain a subset of a national standard. It
|
|
499 is not unusual to find the fonts to not include characters for codes in the
|
|
500 ASCII code range. If you find half-width Roman characters are not appearing
|
|
501 in your printout then you should configure VIM to use the Courier font the
|
|
502 half-width ASCII characters with 'printmbfont'. If your font does not include
|
|
503 other characters then you will need to find another font that does.
|
|
504
|
|
505 Another issue with ASCII characters, is that the various national character
|
|
506 sets specify a couple of different glyphs in the ASCII code range. If you
|
|
507 print ASCII text using the national character set you may see some unexpected
|
|
508 characters. If you want true ASCII code printing then you need to configure
|
|
509 VIM to output ASCII characters for the ASCII code range with 'printmbfont'.
|
|
510
|
|
511 It is possible to define your own multi-byte character set although this
|
|
512 should not be attempted lightly. A discussion on the process if beyond the
|
|
513 scope of these help files. You can find details on CMap (character map) files
|
|
514 in the document 'Adobe CMap and CIDFont Files Specification, Version 1.0',
|
|
515 available from http://www.adobe.com as a PDF file.
|
|
516
|
|
517 ==============================================================================
|
|
518 6. PostScript Printing Troubleshooting *postscript-print-trouble*
|
|
519 *E621*
|
|
520 Usually the only sign of a problem when printing with PostScript is that your
|
|
521 printout does not appear. If you are lucky you may get a printed page that
|
|
522 tells you the PostScript operator that generated the error that prevented the
|
|
523 print job completing.
|
|
524
|
|
525 There are a number of possible causes as to why the printing may have failed:
|
|
526
|
|
527 - Wrong version of the prolog resource file. The prolog resource file
|
|
528 contains some PostScript that VIM needs to be able to print. Each version
|
|
529 of VIM needs one particular version. Make sure you have correctly installed
|
|
530 the runtime files, and don't have any old versions of a file called prolog
|
|
531 in the print directory in your 'runtimepath' directory.
|
|
532
|
|
533 - Paper size. Some PostScript printers will abort printing a file if they do
|
|
534 not support the requested paper size. By default VIM uses A4 paper. Find
|
|
535 out what size paper your printer normally uses and set the appropriate paper
|
|
536 size with 'printoptions'. If you cannot find the name of the paper used,
|
|
537 measure a sheet and compare it with the table of supported paper sizes listed
|
|
538 for 'printoptions', using the paper that is closest in both width AND height.
|
|
539 Note: The dimensions of actual paper may vary slightly from the ones listed.
|
|
540 If there is no paper listed close enough, then you may want to try psresize
|
|
541 from PSUtils, discussed below.
|
|
542
|
|
543 - Two-sided printing (duplex). Normally a PostScript printer that does not
|
|
544 support two-sided printing will ignore any request to do it. However, some
|
|
545 printers may abort the job altogether. Try printing with duplex turned off.
|
|
546 Note: Duplex prints can be achieved manually using PS utils - see below.
|
|
547
|
|
548 - Collated printing. As with Duplex printing, most PostScript printers that
|
|
549 do not support collating printouts will ignore a request to do so. Some may
|
|
550 not. Try printing with collation turned off.
|
|
551
|
|
552 - Syntax highlighting. Some print management code may prevent the generated
|
|
553 PostScript file from being printed on a black and white printer when syntax
|
|
554 highlighting is turned on, even if solid black is the only color used. Try
|
|
555 printing with syntax highlighting turned off.
|
|
556
|
|
557 A safe printoptions setting to try is: >
|
|
558
|
|
559 :set printoptions=paper:A4,duplex:off,collate:n,syntax:n
|
|
560
|
|
561 Replace "A4" with the paper size that best matches your printer paper.
|
|
562
|
|
563 ==============================================================================
|
|
564 7. PostScript Utilities *postscript-print-util*
|
|
565
|
|
566 7.1 Ghostscript
|
|
567
|
|
568 Ghostscript is a PostScript and PDF interpreter that can be used to display
|
|
569 and print on non-PostScript printers PostScript and PDF files. It can also
|
|
570 generate PDF files from PostScript.
|
|
571
|
|
572 Ghostscript will run on a wide variety of platforms.
|
|
573
|
|
574 There are three available versions:
|
|
575
|
|
576 - AFPL Ghostscript (formerly Aladdin Ghostscript) which is free for
|
|
577 non-commercial use. It can be obtained from:
|
|
578
|
|
579 http://www.cs.wisc.edu/~ghost/
|
|
580
|
|
581 - GNU Ghostscript which is available under the GNU General Public License. It
|
|
582 can be obtained from:
|
|
583
|
|
584 ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/gnu/
|
|
585
|
|
586 - A commercial version for inclusion in commercial products.
|
|
587
|
|
588 Additional information on Ghostscript can also be found at:
|
|
589
|
|
590 http://www.ghostscript.com/
|
|
591
|
|
592 Support for a number of non PostScript printers is provided in the
|
|
593 distribution as standard, but if you cannot find support for your printer
|
|
594 check the Ghostscript site for other printers not included by default.
|
|
595
|
|
596
|
|
597 7.2 Ghostscript Previewers.
|
|
598
|
|
599 The interface to Ghostscript is very primitive so a number of graphical front
|
|
600 ends have been created. These allow easier PostScript file selection,
|
|
601 previewing at different zoom levels, and printing. Check supplied
|
|
602 documentation for full details.
|
|
603
|
|
604 X11
|
|
605
|
|
606 - Ghostview. Obtainable from:
|
|
607
|
|
608 http://www.cs.wisc.edu/~ghost/gv/
|
|
609
|
|
610 - gv. Derived from Ghostview. Obtainable from:
|
|
611
|
|
612 http://wwwthep.physik.uni-mainz.de/~plass/gv/
|
|
613
|
|
614 Copies (possibly not the most recent) can be found at:
|
|
615
|
|
616 http://www.cs.wisc.edu/~ghost/gv/
|
|
617
|
|
618 OpenVMS
|
|
619
|
|
620 - Is apparently supported in the main code now (untested). See:
|
|
621
|
|
622 http://wwwthep.physik.uni-mainz.de/~plass/gv/
|
|
623
|
|
624 Windows and OS/2
|
|
625
|
|
626 - GSview. Obtainable from:
|
|
627
|
|
628 http://www.cs.wisc.edu/~ghost/gsview/
|
|
629
|
|
630 DOS
|
|
631
|
|
632 - ps_view. Obtainable from:
|
|
633
|
|
634 ftp://ftp.pg.gda.pl/pub/TeX/support/ps_view/
|
|
635 ftp://ftp.dante.de/tex-archive/support/ps_view/
|
|
636
|
|
637 Linux
|
|
638
|
|
639 - GSview. Linux version of the popular Windows and OS/2 previewer.
|
|
640 Obtainable from:
|
|
641
|
|
642 http://www.cs.wisc.edu/~ghost/gsview/
|
|
643
|
|
644 - BMV. Different from Ghostview and gv in that it doesn't use X but svgalib.
|
|
645 Obtainable from:
|
|
646
|
|
647 ftp://sunsite.unc.edu/pub/Linux/apps/graphics/viewers/svga/bmv-1.2.tgz
|
|
648
|
|
649
|
|
650 7.3 PSUtils
|
|
651
|
|
652 PSUtils is a collection of utility programs for manipulating PostScript
|
|
653 documents. Binary distributions are available for many platforms, as well as
|
|
654 the full source. PSUtils can be found at:
|
|
655
|
|
656 http://knackered.org/angus/psutils
|
|
657
|
|
658 The utilities of interest include:
|
|
659
|
|
660 - psnup. Convert PS files for N-up printing.
|
|
661 - psselect. Select page range and order of printing.
|
|
662 - psresize. Change the page size.
|
|
663 - psbook. Reorder and lay out pages ready for making a book.
|
|
664
|
|
665 The output of one program can be used as the input to the next, allowing for
|
|
666 complex print document creation.
|
|
667
|
|
668
|
|
669 N-UP PRINTING
|
|
670
|
|
671 The psnup utility takes an existing PostScript file generated from VIM and
|
|
672 convert it to an n-up version. The simplest way to create a 2-up printout is
|
|
673 to first create a PostScript file with: >
|
|
674
|
|
675 :hardcopy > test.ps
|
|
676
|
|
677 Then on your command line execute: >
|
|
678
|
|
679 psnup -n 2 test.ps final.ps
|
|
680
|
|
681 Note: You may get warnings from some Ghostscript previewers for files produced
|
|
682 by psnup - these may safely be ignored.
|
|
683
|
|
684 Finally print the file final.ps to your PostScript printer with your
|
|
685 platform's print command. (You will need to delete the two PostScript files
|
|
686 afterwards yourself.) 'printexpr' could be modified to perform this extra
|
|
687 step before printing.
|
|
688
|
|
689
|
|
690 ALTERNATE DUPLEX PRINTING
|
|
691
|
|
692 It is possible to achieve a poor man's version of duplex printing using the PS
|
|
693 utility psselect. This utility has options -e and -o for printing just the
|
|
694 even or odd pages of a PS file respectively.
|
|
695
|
|
696 First generate a PS file with the 'hardcopy' command, then generate a new
|
|
697 files with all the odd and even numbered pages with: >
|
|
698
|
|
699 psselect -o test.ps odd.ps
|
|
700 psselect -e test.ps even.ps
|
|
701
|
|
702 Next print odd.ps with your platform's normal print command. Then take the
|
|
703 print output, turn it over and place it back in the paper feeder. Now print
|
|
704 even.ps with your platform's print command. All the even pages should now
|
|
705 appear on the back of the odd pages.
|
|
706
|
|
707 There a couple of points to bear in mind:
|
|
708
|
|
709 1. Position of the first page. If the first page is on top of the printout
|
|
710 when printing the odd pages then you need to reverse the order that the odd
|
|
711 pages are printed. This can be done with the -r option to psselect. This
|
|
712 will ensure page 2 is printed on the back of page 1.
|
|
713 Note: it is better to reverse the odd numbered pages rather than the even
|
|
714 numbered in case there are an odd number of pages in the original PS file.
|
|
715
|
|
716 2. Paper flipping. When turning over the paper with the odd pages printed on
|
|
717 them you may have to either flip them horizontally (along the long edge) or
|
|
718 vertically (along the short edge), as well as possibly rotating them 180
|
|
719 degrees. All this depends on the printer - it will be more obvious for
|
|
720 desktop ink jets than for small office laser printers where the paper path
|
|
721 is hidden from view.
|
|
722
|
|
723
|
|
724 ==============================================================================
|
|
725 8. Formfeed Characters *printing-formfeed*
|
|
726
|
|
727 By default VIM does not do any special processing of |formfeed| control
|
|
728 characters. Setting the 'printoptions' formfeed item will make VIM recognize
|
|
729 formfeed characters and continue printing the current line at the beginning
|
|
730 of the first line on a new page. The use of formfeed characters provides
|
|
731 rudimentary print control but there are certain things to be aware of.
|
|
732
|
|
733 VIM will always start printing a line (including a line number if enabled)
|
|
734 containing a formfeed character, even if it is the first character on the
|
|
735 line. This means if a line starting with a formfeed character is the first
|
|
736 line of a page then VIM will print a blank page.
|
|
737
|
|
738 Since the line number is printed at the start of printing the line containing
|
|
739 the formfeed character, the remainder of the line printed on the new page
|
|
740 will not have a line number printed for it (in the same way as the wrapped
|
|
741 lines of a long line when wrap in 'printoptions' is enabled).
|
|
742
|
|
743 If the formfeed character is the last character on a line, then printing will
|
|
744 continue on the second line of the new page, not the first. This is due to
|
|
745 VIM processing the end of the line after the formfeed character and moving
|
|
746 down a line to continue printing.
|
|
747
|
|
748 Due to the points made above it is recommended that when formfeed character
|
|
749 processing is enabled, printing of line numbers is disabled, and that form
|
|
750 feed characters are not the last character on a line. Even then you may need
|
|
751 to adjust the number of lines before a formfeed character to prevent
|
|
752 accidental blank pages.
|
|
753
|
|
754 ==============================================================================
|
|
755 vim:tw=78:ts=8:ft=help:norl:
|