# SOME DESCRIPTIVE TITLE # Copyright (C) YEAR The FreeBSD Project # This file is distributed under the same license as the FreeBSD Documentation package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: FreeBSD Documentation VERSION\n" "POT-Creation-Date: 2025-05-01 19:56-0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. type: YAML Front Matter: description #: documentation/content/en/books/handbook/printing/_index.adoc:1 #, no-wrap msgid "This chapter covers the printing system in FreeBSD" msgstr "" #. type: YAML Front Matter: part #: documentation/content/en/books/handbook/printing/_index.adoc:1 #, no-wrap msgid "Part II. Common Tasks" msgstr "" #. type: YAML Front Matter: title #: documentation/content/en/books/handbook/printing/_index.adoc:1 #, no-wrap msgid "Chapter 11. Printing" msgstr "" #. type: Title = #: documentation/content/en/books/handbook/printing/_index.adoc:15 #, no-wrap msgid "Printing" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:55 msgid "" "Putting information on paper is a vital function, despite many attempts to " "eliminate it. Printing has two basic components. The data must be " "delivered to the printer, and must be in a form that the printer can " "understand." msgstr "" #. type: Title == #: documentation/content/en/books/handbook/printing/_index.adoc:57 #, no-wrap msgid "Quick Start" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:62 msgid "" "Basic printing can be set up quickly. The printer must be capable of " "printing plain `ASCII` text. For printing to other types of files, see " "crossref:printing[printing-lpd-filters, Filters]." msgstr "" #. type: delimited block * 4 #: documentation/content/en/books/handbook/printing/_index.adoc:66 msgid "Create a directory to store files while they are being printed:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/printing/_index.adoc:72 #: documentation/content/en/books/handbook/printing/_index.adoc:341 #, no-wrap msgid "" "# mkdir -p /var/spool/lpd/lp\n" "# chown daemon:daemon /var/spool/lpd/lp\n" "# chmod 770 /var/spool/lpd/lp\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:75 msgid "As `root`, create [.filename]#/etc/printcap# with these contents:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/printing/_index.adoc:84 #, no-wrap msgid "" "lp:\\\n" "lp=/dev/unlpt0:\\ <.>\n" "sh:\\\n" "mx#0:\\\n" "sd=/var/spool/lpd/lp:\\\n" "lf=/var/log/lpd-errs:\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:87 msgid "This line is for a printer connected to a `USB` port." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:89 msgid "For a printer connected to a parallel or \"printer\" port, use:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/printing/_index.adoc:93 #, no-wrap msgid ":lp=/dev/lpt0:\\\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:96 msgid "For a printer connected directly to a network, use:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/printing/_index.adoc:100 #, no-wrap msgid ":lp=:rm=network-printer-name:rp=raw:\\\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:103 msgid "" "Replace _network-printer-name_ with the `DNS` host name of the network " "printer." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:105 msgid "Enable LPD by editing [.filename]#/etc/rc.conf#, adding this line:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/printing/_index.adoc:109 #: documentation/content/en/books/handbook/printing/_index.adoc:383 #, no-wrap msgid "lpd_enable=\"YES\"\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:112 #: documentation/content/en/books/handbook/printing/_index.adoc:386 msgid "Start the service:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/printing/_index.adoc:117 #, no-wrap msgid "" "# service lpd start\n" "Starting lpd.\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:120 msgid "Print a test:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/printing/_index.adoc:124 #, no-wrap msgid "# printf \"1. This printer can print.\\n2. This is the second line.\\n\" | lpr\n" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/printing/_index.adoc:130 msgid "" "If both lines do not start at the left border, but \"stairstep\" instead, " "see crossref:printing[printing-lpd-filters-stairstep, Preventing " "Stairstepping on Plain Text Printers]." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:134 msgid "" "Text files can now be printed with `lpr`. Give the filename on the command " "line, or pipe output directly into `lpr`." msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/printing/_index.adoc:139 #, no-wrap msgid "" "% lpr textfile.txt\n" "% ls -lh | lpr\n" msgstr "" #. type: Title == #: documentation/content/en/books/handbook/printing/_index.adoc:143 #, no-wrap msgid "Printer Connections" msgstr "" #. type: delimited block * 4 #: documentation/content/en/books/handbook/printing/_index.adoc:150 msgid "" "Printers are connected to computer systems in a variety of ways. Small " "desktop printers are usually connected directly to a computer's `USB` port. " "Older printers are connected to a parallel or \"printer\" port. Some " "printers are directly connected to a network, making it easy for multiple " "computers to share them. A few printers use a rare serial port connection." msgstr "" #. type: delimited block * 4 #: documentation/content/en/books/handbook/printing/_index.adoc:152 msgid "FreeBSD can communicate with all of these types of printers." msgstr "" #. type: Labeled list #: documentation/content/en/books/handbook/printing/_index.adoc:154 #, no-wrap msgid "`USB`" msgstr "" #. type: delimited block * 4 #: documentation/content/en/books/handbook/printing/_index.adoc:156 msgid "" "`USB` printers can be connected to any available `USB` port on the computer." msgstr "" #. type: delimited block * 4 #: documentation/content/en/books/handbook/printing/_index.adoc:162 msgid "" "When FreeBSD detects a `USB` printer, two device entries are created: " "[.filename]#/dev/ulpt0# and [.filename]#/dev/unlpt0#. Data sent to either " "device will be relayed to the printer. After each print job, " "[.filename]#ulpt0# resets the `USB` port. Resetting the port can cause " "problems with some printers, so the [.filename]#unlpt0# device is usually " "used instead. [.filename]#unlpt0# does not reset the USB port at all." msgstr "" #. type: Labeled list #: documentation/content/en/books/handbook/printing/_index.adoc:164 #, no-wrap msgid "Parallel (`IEEE`-1284)" msgstr "" #. type: delimited block * 4 #: documentation/content/en/books/handbook/printing/_index.adoc:167 msgid "" "The parallel port device is [.filename]#/dev/lpt0#. This device appears " "whether a printer is attached or not, it is not autodetected." msgstr "" #. type: delimited block * 4 #: documentation/content/en/books/handbook/printing/_index.adoc:172 msgid "" "Vendors have largely moved away from these \"legacy\" ports, and many " "computers no longer have them. Adapters can be used to connect a parallel " "printer to a `USB` port. With such an adapter, the printer can be treated " "as if it were actually a `USB` printer. Devices called _print servers_ can " "also be used to connect parallel printers directly to a network." msgstr "" #. type: Labeled list #: documentation/content/en/books/handbook/printing/_index.adoc:174 #, no-wrap msgid "Serial (RS-232)" msgstr "" #. type: delimited block * 4 #: documentation/content/en/books/handbook/printing/_index.adoc:177 msgid "" "Serial ports are another legacy port, rarely used for printers except in " "certain niche applications. Cables, connectors, and required wiring vary " "widely." msgstr "" #. type: delimited block * 4 #: documentation/content/en/books/handbook/printing/_index.adoc:180 msgid "" "For serial ports built into a motherboard, the serial device name is " "[.filename]#/dev/cuau0# or [.filename]#/dev/cuau1#. Serial `USB` adapters " "can also be used, and these will appear as [.filename]#/dev/cuaU0#." msgstr "" #. type: delimited block * 4 #: documentation/content/en/books/handbook/printing/_index.adoc:184 msgid "" "Several communication parameters must be known to communicate with a serial " "printer. The most important are _baud rate_ or `BPS` (Bits Per Second) and " "_parity_. Values vary, but typical serial printers use a baud rate of 9600 " "and no parity." msgstr "" #. type: Labeled list #: documentation/content/en/books/handbook/printing/_index.adoc:186 #, no-wrap msgid "Network" msgstr "" #. type: delimited block * 4 #: documentation/content/en/books/handbook/printing/_index.adoc:188 msgid "Network printers are connected directly to the local computer network." msgstr "" #. type: delimited block * 4 #: documentation/content/en/books/handbook/printing/_index.adoc:192 msgid "" "The `DNS` hostname of the printer must be known. If the printer is assigned " "a dynamic address by `DHCP`, `DNS` should be dynamically updated so that the " "host name always has the correct `IP` address. Network printers are often " "given static `IP` addresses to avoid this problem." msgstr "" #. type: delimited block * 4 #: documentation/content/en/books/handbook/printing/_index.adoc:197 msgid "" "Most network printers understand print jobs sent with the LPD protocol. A " "print queue name can also be specified. Some printers process data " "differently depending on which queue is used. For example, a `raw` queue " "prints the data unchanged, while the `text` queue adds carriage returns to " "plain text." msgstr "" #. type: delimited block * 4 #: documentation/content/en/books/handbook/printing/_index.adoc:199 msgid "Many network printers can also print data sent directly to port 9100." msgstr "" #. type: Title === #: documentation/content/en/books/handbook/printing/_index.adoc:201 #: documentation/content/en/books/handbook/printing/_index.adoc:287 #, no-wrap msgid "Summary" msgstr "" #. type: delimited block * 4 #: documentation/content/en/books/handbook/printing/_index.adoc:209 msgid "" "Wired network connections are usually the easiest to set up and give the " "fastest printing. For direct connection to the computer, `USB` is preferred " "for speed and simplicity. Parallel connections work but have limitations on " "cable length and speed. Serial connections are more difficult to " "configure. Cable wiring differs between models, and communication " "parameters like baud rate and parity bits must add to the complexity. " "Fortunately, serial printers are rare." msgstr "" #. type: Title == #: documentation/content/en/books/handbook/printing/_index.adoc:211 #, no-wrap msgid "Common Page Description Languages" msgstr "" #. type: delimited block * 4 #: documentation/content/en/books/handbook/printing/_index.adoc:215 msgid "" "Data sent to a printer must be in a language that the printer can " "understand. These languages are called Page Description Languages, or PDLs." msgstr "" #. type: Labeled list #: documentation/content/en/books/handbook/printing/_index.adoc:217 #, no-wrap msgid "`ASCII`" msgstr "" #. type: delimited block * 4 #: documentation/content/en/books/handbook/printing/_index.adoc:224 msgid "" "Plain `ASCII` text is the simplest way to send data to a printer. " "Characters correspond one to one with what will be printed: an `A` in the " "data prints an `A` on the page. Very little formatting is available. There " "is no way to select a font or proportional spacing. The forced simplicity " "of plain `ASCII` means that text can be printed straight from the computer " "with little or no encoding or translation. The printed output corresponds " "directly with what was sent." msgstr "" #. type: delimited block * 4 #: documentation/content/en/books/handbook/printing/_index.adoc:227 msgid "" "Some inexpensive printers cannot print plain `ASCII` text. This makes them " "more difficult to set up, but it is usually still possible." msgstr "" #. type: Labeled list #: documentation/content/en/books/handbook/printing/_index.adoc:229 #, no-wrap msgid "PostScript(R)" msgstr "" #. type: delimited block * 4 #: documentation/content/en/books/handbook/printing/_index.adoc:236 msgid "" "PostScript(R) is almost the opposite of `ASCII`. Rather than simple text, a " "PostScript(R) program is a set of instructions that draw the final " "document. Different fonts and graphics can be used. However, this power " "comes at a price. The program that draws the page must be written. Usually " "this program is generated by application software, so the process is " "invisible to the user." msgstr "" #. type: delimited block * 4 #: documentation/content/en/books/handbook/printing/_index.adoc:238 msgid "" "Inexpensive printers sometimes leave out PostScript(R) compatibility as a " "cost-saving measure." msgstr "" #. type: Labeled list #: documentation/content/en/books/handbook/printing/_index.adoc:240 #, no-wrap msgid "`PCL` (Printer Command Language)" msgstr "" #. type: delimited block * 4 #: documentation/content/en/books/handbook/printing/_index.adoc:245 msgid "" "`PCL` is an extension of `ASCII`, adding escape sequences for formatting, " "font selection, and printing graphics. Many printers provide `PCL5` " "support. Some support the newer `PCL6` or `PCLXL`. These later versions " "are supersets of `PCL5` and can provide faster printing." msgstr "" #. type: Labeled list #: documentation/content/en/books/handbook/printing/_index.adoc:247 #, no-wrap msgid "Host-Based" msgstr "" #. type: delimited block * 4 #: documentation/content/en/books/handbook/printing/_index.adoc:252 msgid "" "Manufacturers can reduce the cost of a printer by giving it a simple " "processor and very little memory. These printers are not capable of " "printing plain text. Instead, bitmaps of text and graphics are drawn by a " "driver on the host computer and then sent to the printer. These are called " "_host-based_ printers." msgstr "" #. type: delimited block * 4 #: documentation/content/en/books/handbook/printing/_index.adoc:254 msgid "" "Communication between the driver and a host-based printer is often through " "proprietary or undocumented protocols, making them functional only on the " "most common operating systems." msgstr "" #. type: Title === #: documentation/content/en/books/handbook/printing/_index.adoc:256 #, no-wrap msgid "Converting PostScript(R) to Other PDLs" msgstr "" #. type: delimited block * 4 #: documentation/content/en/books/handbook/printing/_index.adoc:260 msgid "" "Many applications from the Ports Collection and FreeBSD utilities produce " "PostScript(R) output. This table shows the utilities available to convert " "that into other common PDLs:" msgstr "" #. type: Block title #: documentation/content/en/books/handbook/printing/_index.adoc:262 #, no-wrap msgid "Output PDLs" msgstr "" #. type: Table #: documentation/content/en/books/handbook/printing/_index.adoc:266 #, no-wrap msgid "Output PDL" msgstr "" #. type: Table #: documentation/content/en/books/handbook/printing/_index.adoc:267 #, no-wrap msgid "Generated By" msgstr "" #. type: Table #: documentation/content/en/books/handbook/printing/_index.adoc:269 #, no-wrap msgid "Notes" msgstr "" #. type: Table #: documentation/content/en/books/handbook/printing/_index.adoc:270 #, no-wrap msgid "`PCL` or `PCL5`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/printing/_index.adoc:271 #: documentation/content/en/books/handbook/printing/_index.adoc:275 #: documentation/content/en/books/handbook/printing/_index.adoc:279 #, no-wrap msgid "package:print/ghostscript9-base[]" msgstr "" #. type: Table #: documentation/content/en/books/handbook/printing/_index.adoc:273 #, no-wrap msgid "`-sDEVICE=ljet4` for monochrome, `-sDEVICE=cljet5` for color" msgstr "" #. type: Table #: documentation/content/en/books/handbook/printing/_index.adoc:274 #, no-wrap msgid "`PCLXL` or `PCL6`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/printing/_index.adoc:277 #, no-wrap msgid "`-sDEVICE=pxlmono` for monochrome, `-sDEVICE=pxlcolor` for color" msgstr "" #. type: Table #: documentation/content/en/books/handbook/printing/_index.adoc:278 #, no-wrap msgid "`ESC/P2`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/printing/_index.adoc:281 #, no-wrap msgid "`-sDEVICE=uniprint`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/printing/_index.adoc:282 #, no-wrap msgid "`XQX`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/printing/_index.adoc:283 #, no-wrap msgid "package:print/foo2zjs[]" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:293 msgid "" "For the easiest printing, choose a printer that supports PostScript(R). " "Printers that support `PCL` are the next preferred. With package:print/" "ghostscript9-base[], these printers can be used as if they understood " "PostScript(R) natively. Printers that support PostScript(R) or `PCL` " "directly almost always support direct printing of plain `ASCII` text files " "also." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:298 msgid "" "Line-based printers like typical inkjets usually do not support " "PostScript(R) or `PCL`. They often can print plain `ASCII` text files. " "package:print/ghostscript9-base[] supports the PDLs used by some of these " "printers. However, printing an entire graphic-based page on these printers " "is often very slow due to the large amount of data to be transferred and " "printed." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:303 msgid "" "Host-based printers are often more difficult to set up. Some cannot be used " "at all because of proprietary PDLs. Avoid these printers when possible. " "The particular `PDL` used by various models of printers can be found at " "http://www.openprinting.org/printers[]." msgstr "" #. type: Title == #: documentation/content/en/books/handbook/printing/_index.adoc:305 #, no-wrap msgid "Direct Printing" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:309 msgid "" "For occasional printing, files can be sent directly to a printer device " "without any setup. For example, a file called [.filename]#sample.txt# can " "be sent to a `USB` printer:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/printing/_index.adoc:313 #, no-wrap msgid "# cp sample.txt /dev/unlpt0\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:316 msgid "" "Direct printing to network printers depends on the abilities of the printer, " "but most accept print jobs on port 9100, and man:nc[1] can be used with " "them. To print the same file to a printer with the `DNS` hostname of " "_netlaser_:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/printing/_index.adoc:320 #, no-wrap msgid "# nc netlaser 9100 < sample.txt\n" msgstr "" #. type: Title == #: documentation/content/en/books/handbook/printing/_index.adoc:323 #, no-wrap msgid "LPD (Line Printer Daemon)" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:327 msgid "" "Printing a file in the background is called _spooling_. A spooler allows " "the user to continue with other programs on the computer without waiting for " "the printer to slowly complete the print job." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:330 msgid "" "FreeBSD includes a spooler called man:lpd[8]. Print jobs are submitted with " "man:lpr[1]." msgstr "" #. type: Title === #: documentation/content/en/books/handbook/printing/_index.adoc:332 #, no-wrap msgid "Initial Setup" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:335 msgid "" "A directory for storing print jobs is created, ownership is set, and the " "permissions are set to prevent other users from viewing the contents of " "those files:" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:346 msgid "" "Printers are defined in [.filename]#/etc/printcap#. An entry for each " "printer includes details like a name, the port where it is attached, and " "various other settings. Create [.filename]#/etc/printcap# with these " "contents:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/printing/_index.adoc:355 #, no-wrap msgid "" "lp:\\\t\t\t\t<.>\n" "\t:lp=/dev/unlpt0:\\\t<.>\n" "\t:sh:\\\t\t\t<.>\n" "\t:mx#0:\\\t\t\t<.>\n" "\t:sd=/var/spool/lpd/lp:\\\t<.>\n" "\t:lf=/var/log/lpd-errs:\t<.>\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:358 msgid "" "The name of this printer. man:lpr[1] sends print jobs to the `lp` printer " "unless another printer is specified with `-P`, so the default printer should " "be named `lp`." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:360 msgid "" "The device where the printer is connected. Replace this line with the " "appropriate one for the connection type shown here." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:362 msgid "Suppress the printing of a header page at the start of a print job." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:364 msgid "Do not limit the maximum size of a print job." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:366 msgid "" "The path to the spooling directory for this printer. Each printer uses its " "own spooling directory." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:368 msgid "The log file where errors on this printer will be reported." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:370 msgid "" "After creating [.filename]#/etc/printcap#, use man:chkprintcap[8] to test it " "for errors:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/printing/_index.adoc:374 #, no-wrap msgid "# chkprintcap\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:377 msgid "Fix any reported problems before continuing." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:379 msgid "Enable man:lpd[8] in [.filename]#/etc/rc.conf#:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/printing/_index.adoc:390 #, no-wrap msgid "# service lpd start\n" msgstr "" #. type: Title === #: documentation/content/en/books/handbook/printing/_index.adoc:393 #, no-wrap msgid "Printing with man:lpr[1]" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:398 msgid "" "Documents are sent to the printer with `lpr`. A file to be printed can be " "named on the command line or piped into `lpr`. These two commands are " "equivalent, sending the contents of [.filename]#doc.txt# to the default " "printer:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/printing/_index.adoc:403 #, no-wrap msgid "" "% lpr doc.txt\n" "% cat doc.txt | lpr\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:407 msgid "" "Printers can be selected with `-P`. To print to a printer called _laser_:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/printing/_index.adoc:411 #, no-wrap msgid "% lpr -Plaser doc.txt\n" msgstr "" #. type: Title === #: documentation/content/en/books/handbook/printing/_index.adoc:414 #, no-wrap msgid "Filters" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:418 msgid "" "The examples shown so far have sent the contents of a text file directly to " "the printer. As long as the printer understands the content of those files, " "output will be printed correctly." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:420 msgid "" "Some printers are not capable of printing plain text, and the input file " "might not even be plain text." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:424 msgid "" "_Filters_ allow files to be translated or processed. The typical use is to " "translate one type of input, like plain text, into a form that the printer " "can understand, like PostScript(R) or `PCL`. Filters can also be used to " "provide additional features, like adding page numbers or highlighting source " "code to make it easier to read." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:428 msgid "" "The filters discussed here are _input filters_ or _text filters_. These " "filters convert the incoming file into different forms. Use man:su[1] to " "become `root` before creating the files." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:431 msgid "" "Filters are specified in [.filename]#/etc/printcap# with the `if=` " "identifier. To use [.filename]#/usr/local/libexec/lf2crlf# as a filter, " "modify [.filename]#/etc/printcap# like this:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/printing/_index.adoc:441 #, no-wrap msgid "" "lp:\\\n" "\t:lp=/dev/unlpt0:\\\n" "\t:sh:\\\n" "\t:mx#0:\\\n" "\t:sd=/var/spool/lpd/lp:\\\n" "\t:if=/usr/local/libexec/lf2crlf:\\ <.>\n" "\t:lf=/var/log/lpd-errs:\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:444 msgid "`if=` identifies the _input filter_ that will be used on incoming text." msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/printing/_index.adoc:449 msgid "" "The backslash _line continuation_ characters at the end of the lines in " "[.filename]#printcap# entries reveal that an entry for a printer is really " "just one long line with entries delimited by colon characters. An earlier " "example can be rewritten as a single less-readable line:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/printing/_index.adoc:453 #, no-wrap msgid "lp:lp=/dev/unlpt0:sh:mx#0:sd=/var/spool/lpd/lp:if=/usr/local/libexec/lf2crlf:lf=/var/log/lpd-errs:\n" msgstr "" #. type: Title ==== #: documentation/content/en/books/handbook/printing/_index.adoc:458 #, no-wrap msgid "Preventing Stairstepping on Plain Text Printers" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/printing/_index.adoc:462 msgid "" "Typical FreeBSD text files contain only a single line feed character at the " "end of each line. These lines will \"stairstep\" on a standard printer:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/printing/_index.adoc:468 #, no-wrap msgid "" "A printed file looks\n" " like the steps of a staircase\n" " scattered by the wind\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:473 msgid "" "A filter can convert the newline characters into carriage returns and " "newlines. The carriage returns make the printer return to the left after " "each line. Create [.filename]#/usr/local/libexec/lf2crlf# with these " "contents:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/printing/_index.adoc:479 #, no-wrap msgid "" "#!/bin/sh\n" "CR=$'\\r'\n" "/usr/bin/sed -e \"s/$/${CR}/g\"\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:482 #: documentation/content/en/books/handbook/printing/_index.adoc:514 #: documentation/content/en/books/handbook/printing/_index.adoc:547 #: documentation/content/en/books/handbook/printing/_index.adoc:604 msgid "Set the permissions and make it executable:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/printing/_index.adoc:486 #, no-wrap msgid "# chmod 555 /usr/local/libexec/lf2crlf\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:489 #: documentation/content/en/books/handbook/printing/_index.adoc:521 msgid "Modify [.filename]#/etc/printcap# to use the new filter:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/printing/_index.adoc:493 #, no-wrap msgid ":if=/usr/local/libexec/lf2crlf:\\\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:497 msgid "" "Test the filter by printing the same plain text file. The carriage returns " "will cause each line to start at the left side of the page." msgstr "" #. type: Title ==== #: documentation/content/en/books/handbook/printing/_index.adoc:499 #, no-wrap msgid "Fancy Plain Text on PostScript(R) Printers with package:print/enscript[]" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:504 msgid "" "GNUEnscript converts plain text files into nicely-formatted PostScript(R) " "for printing on PostScript(R) printers. It adds page numbers, wraps long " "lines, and provides numerous other features to make printed text files " "easier to read. Depending on the local paper size, install either " "package:print/enscript-letter[] or package:print/enscript-a4[] from the " "Ports Collection." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:506 msgid "Create [.filename]#/usr/local/libexec/enscript# with these contents:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/printing/_index.adoc:511 #, no-wrap msgid "" "#!/bin/sh\n" "/usr/local/bin/enscript -o -\n" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/printing/_index.adoc:518 #, no-wrap msgid "# chmod 555 /usr/local/libexec/enscript\n" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/printing/_index.adoc:525 #, no-wrap msgid ":if=/usr/local/libexec/enscript:\\\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:528 msgid "Test the filter by printing a plain text file." msgstr "" #. type: Title ==== #: documentation/content/en/books/handbook/printing/_index.adoc:530 #, no-wrap msgid "Printing PostScript(R) to `PCL` Printers" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:535 msgid "" "Many programs produce PostScript(R) documents. However, inexpensive " "printers often only understand plain text or `PCL`. This filter converts " "PostScript(R) files to `PCL` before sending them to the printer." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:537 msgid "" "Install the Ghostscript PostScript(R) interpreter, package:print/" "ghostscript9-base[], from the Ports Collection." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:539 msgid "Create [.filename]#/usr/local/libexec/ps2pcl# with these contents:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/printing/_index.adoc:544 #, no-wrap msgid "" "#!/bin/sh\n" "/usr/local/bin/gs -dSAFER -dNOPAUSE -dBATCH -q -sDEVICE=ljet4 -sOutputFile=- -\n" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/printing/_index.adoc:551 #, no-wrap msgid "# chmod 555 /usr/local/libexec/ps2pcl\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:554 msgid "" "PostScript(R) input sent to this script will be rendered and converted to " "`PCL` before being sent on to the printer." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:556 #: documentation/content/en/books/handbook/printing/_index.adoc:611 msgid "Modify [.filename]#/etc/printcap# to use this new input filter:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/printing/_index.adoc:560 #, no-wrap msgid ":if=/usr/local/libexec/ps2pcl:\\\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:563 msgid "Test the filter by sending a small PostScript(R) program to it:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/printing/_index.adoc:568 #, no-wrap msgid "" "% printf \"%%\\!PS \\n /Helvetica findfont 18 scalefont setfont \\\n" "72 432 moveto (PostScript printing successful.) show showpage \\004\" | lpr\n" msgstr "" #. type: Title ==== #: documentation/content/en/books/handbook/printing/_index.adoc:571 #, no-wrap msgid "Smart Filters" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:579 msgid "" "A filter that detects the type of input and automatically converts it to the " "correct format for the printer can be very convenient. The first two " "characters of a PostScript(R) file are usually `%!`. A filter can detect " "those two characters. PostScript(R) files can be sent on to a PostScript(R) " "printer unchanged. Text files can be converted to PostScript(R) with " "Enscript as shown earlier. Create [.filename]#/usr/local/libexec/psif# with " "these contents:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/printing/_index.adoc:588 #, no-wrap msgid "" "#!/bin/sh\n" "#\n" "# psif - Print PostScript or plain text on a PostScript printer\n" "#\n" "IFS=\"\" read -r first_line\n" "first_two_chars=`expr \"$first_line\" : '\\(..\\)'`\n" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/printing/_index.adoc:601 #, no-wrap msgid "" "case \"$first_two_chars\" in\n" "%!)\n" " # %! : PostScript job, print it.\n" " echo \"$first_line\" && cat && exit 0\n" " exit 2\n" " ;;\n" "*)\n" " # otherwise, format with enscript\n" " ( echo \"$first_line\"; cat ) | /usr/local/bin/enscript -o - && exit 0\n" " exit 2\n" " ;;\n" "esac\n" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/printing/_index.adoc:608 #, no-wrap msgid "# chmod 555 /usr/local/libexec/psif\n" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/printing/_index.adoc:615 #, no-wrap msgid ":if=/usr/local/libexec/psif:\\\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:618 msgid "Test the filter by printing PostScript(R) and plain text files." msgstr "" #. type: Title === #: documentation/content/en/books/handbook/printing/_index.adoc:620 #, no-wrap msgid "Multiple Queues" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:625 msgid "" "The entries in [.filename]#/etc/printcap# are really definitions of " "_queues_. There can be more than one queue for a single printer. When " "combined with filters, multiple queues provide users more control over how " "their jobs are printed." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:629 msgid "" "As an example, consider a networked PostScript(R) laser printer in an " "office. Most users want to print plain text, but a few advanced users want " "to be able to print PostScript(R) files directly. Two entries can be " "created for the same printer in [.filename]#/etc/printcap#:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/printing/_index.adoc:639 #, no-wrap msgid "" "textprinter:\\\n" "\t:lp=9100@officelaser:\\\n" "\t:sh:\\\n" "\t:mx#0:\\\n" "\t:sd=/var/spool/lpd/textprinter:\\\n" "\t:if=/usr/local/libexec/enscript:\\\n" "\t:lf=/var/log/lpd-errs:\n" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/printing/_index.adoc:646 #, no-wrap msgid "" "psprinter:\\\n" "\t:lp=9100@officelaser:\\\n" "\t:sh:\\\n" "\t:mx#0:\\\n" "\t:sd=/var/spool/lpd/psprinter:\\\n" "\t:lf=/var/log/lpd-errs:\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:650 msgid "" "Documents sent to `textprinter` will be formatted by the [.filename]#/usr/" "local/libexec/enscript# filter shown in an earlier example. Advanced users " "can print PostScript(R) files on `psprinter`, where no filtering is done." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:653 msgid "" "This multiple queue technique can be used to provide direct access to all " "kinds of printer features. A printer with a duplexer could use two queues, " "one for ordinary single-sided printing, and one with a filter that sends the " "command sequence to enable double-sided printing and then sends the incoming " "file." msgstr "" #. type: Title === #: documentation/content/en/books/handbook/printing/_index.adoc:655 #, no-wrap msgid "Monitoring and Controlling Printing" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:658 msgid "" "Several utilities are available to monitor print jobs and check and control " "printer operation." msgstr "" #. type: Title ==== #: documentation/content/en/books/handbook/printing/_index.adoc:660 #, no-wrap msgid "man:lpq[1]" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:664 msgid "" "man:lpq[1] shows the status of a user's print jobs. Print jobs from other " "users are not shown." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:666 msgid "Show the current user's pending jobs on a single printer:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/printing/_index.adoc:672 #, no-wrap msgid "" "% lpq -Plp\n" "Rank Owner Job Files Total Size\n" "1st jsmith 0 (standard input) 12792 bytes\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:675 msgid "Show the current user's pending jobs on all printers:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/printing/_index.adoc:682 #, no-wrap msgid "" "% lpq -a\n" "lp:\n" "Rank Owner Job Files Total Size\n" "1st jsmith 1 (standard input) 27320 bytes\n" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/printing/_index.adoc:686 #, no-wrap msgid "" "laser:\n" "Rank Owner Job Files Total Size\n" "1st jsmith 287 (standard input) 22443 bytes\n" msgstr "" #. type: Title ==== #: documentation/content/en/books/handbook/printing/_index.adoc:689 #, no-wrap msgid "man:lprm[1]" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:694 msgid "" "man:lprm[1] is used to remove print jobs. Normal users are only allowed to " "remove their own jobs. `root` can remove any or all jobs." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:696 msgid "Remove all pending jobs from a printer:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/printing/_index.adoc:706 #, no-wrap msgid "" "# lprm -Plp -\n" "dfA002smithy dequeued\n" "cfA002smithy dequeued\n" "dfA003smithy dequeued\n" "cfA003smithy dequeued\n" "dfA004smithy dequeued\n" "cfA004smithy dequeued\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:710 msgid "" "Remove a single job from a printer. man:lpq[1] is used to find the job " "number." msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/printing/_index.adoc:716 #, no-wrap msgid "" "% lpq\n" "Rank Owner Job Files Total Size\n" "1st jsmith 5 (standard input) 12188 bytes\n" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/printing/_index.adoc:720 #, no-wrap msgid "" "% lprm -Plp 5\n" "dfA005smithy dequeued\n" "cfA005smithy dequeued\n" msgstr "" #. type: Title ==== #: documentation/content/en/books/handbook/printing/_index.adoc:723 #, no-wrap msgid "man:lpc[8]" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:730 msgid "" "man:lpc[8] is used to check and modify printer status. `lpc` is followed by " "a command and an optional printer name. `all` can be used instead of a " "specific printer name, and the command will be applied to all printers. " "Normal users can view status with man:lpc[8]. Only `root` can use commands " "which modify printer status." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:732 msgid "Show the status of all printers:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/printing/_index.adoc:746 #, no-wrap msgid "" "% lpc status all\n" "lp:\n" "\tqueuing is enabled\n" "\tprinting is enabled\n" "\t1 entry in spool area\n" "\tprinter idle\n" "laser:\n" "\tqueuing is enabled\n" "\tprinting is enabled\n" "\t1 entry in spool area\n" "\twaiting for laser to come up\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:749 msgid "" "Prevent a printer from accepting new jobs, then begin accepting new jobs " "again:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/printing/_index.adoc:758 #, no-wrap msgid "" "# lpc disable lp\n" "lp:\n" "\tqueuing disabled\n" "# lpc enable lp\n" "lp:\n" "\tqueuing enabled\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:762 msgid "" "Stop printing, but continue to accept new jobs. Then begin printing again:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/printing/_index.adoc:772 #, no-wrap msgid "" "# lpc stop lp\n" "lp:\n" "\tprinting disabled\n" "# lpc start lp\n" "lp:\n" "\tprinting enabled\n" "\tdaemon started\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:775 msgid "Restart a printer after some error condition:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/printing/_index.adoc:783 #, no-wrap msgid "" "# lpc restart lp\n" "lp:\n" "\tno daemon to abort\n" "\tprinting enabled\n" "\tdaemon restarted\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:786 msgid "" "Turn the print queue off and disable printing, with a message to explain the " "problem to users:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/printing/_index.adoc:793 #, no-wrap msgid "" "# lpc down lp Repair parts will arrive on Monday\n" "lp:\n" "\tprinter and queuing disabled\n" "\tstatus message is now: Repair parts will arrive on Monday\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:796 msgid "Re-enable a printer that is down:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/printing/_index.adoc:803 #, no-wrap msgid "" "# lpc up lp\n" "lp:\n" "\tprinting enabled\n" "\tdaemon started\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:806 msgid "See man:lpc[8] for more commands and options." msgstr "" #. type: Title === #: documentation/content/en/books/handbook/printing/_index.adoc:808 #, no-wrap msgid "Shared Printers" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:812 msgid "" "Printers are often shared by multiple users in businesses and schools. " "Additional features are provided to make sharing printers more convenient." msgstr "" #. type: Title ==== #: documentation/content/en/books/handbook/printing/_index.adoc:814 #, no-wrap msgid "Aliases" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:819 msgid "" "The printer name is set in the first line of the entry in [.filename]#/etc/" "printcap#. Additional names, or _aliases_, can be added after that name. " "Aliases are separated from the name and each other by vertical bars:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/printing/_index.adoc:823 #, no-wrap msgid "lp|repairsprinter|salesprinter:\\\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:827 msgid "" "Aliases can be used in place of the printer name. For example, users in the " "Sales department print to their printer with" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/printing/_index.adoc:831 #, no-wrap msgid "% lpr -Psalesprinter sales-report.txt\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:834 msgid "Users in the Repairs department print to _their_ printer with" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/printing/_index.adoc:838 #, no-wrap msgid "% lpr -Prepairsprinter repairs-report.txt\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:843 msgid "" "All of the documents print on that single printer. When the Sales " "department grows enough to need their own printer, the alias can be removed " "from the shared printer entry and used as the name of a new printer. Users " "in both departments continue to use the same commands, but the Sales " "documents are sent to the new printer." msgstr "" #. type: Title ==== #: documentation/content/en/books/handbook/printing/_index.adoc:845 #, no-wrap msgid "Header Pages" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:851 msgid "" "It can be difficult for users to locate their documents in the stack of " "pages produced by a busy shared printer. _Header pages_ were created to " "solve this problem. A header page with the user name and document name is " "printed before each print job. These pages are also sometimes called " "_banner_ or _separator_ pages." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:853 msgid "" "Enabling header pages differs depending on whether the printer is connected " "directly to the computer with a `USB`, parallel, or serial cable, or is " "connected remotely over a network." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:858 msgid "" "Header pages on directly-connected printers are enabled by removing the `:sh:" "\\` (Suppress Header) line from the entry in [.filename]#/etc/printcap#. " "These header pages only use line feed characters for new lines. Some " "printers will need the [.filename]#/usr/share/examples/printing/hpif# filter " "to prevent stairstepped text. The filter configures `PCL` printers to print " "both carriage returns and line feeds when a line feed is received." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:862 msgid "" "Header pages for network printers must be configured on the printer itself. " "Header page entries in [.filename]#/etc/printcap# are ignored. Settings are " "usually available from the printer front panel or a configuration web page " "accessible with a web browser." msgstr "" #. type: Title === #: documentation/content/en/books/handbook/printing/_index.adoc:864 #, no-wrap msgid "References" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:867 msgid "Example files: [.filename]#/usr/share/examples/printing/#." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:869 msgid "" "The _4.3BSD Line Printer Spooler Manual_, [.filename]#/usr/share/doc/smm/" "07.lpd/paper.ascii.gz#." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:871 msgid "" "Manual pages: man:printcap[5], man:lpd[8], man:lpr[1], man:lpc[8], " "man:lprm[1], man:lpq[1]." msgstr "" #. type: Title == #: documentation/content/en/books/handbook/printing/_index.adoc:873 #, no-wrap msgid "Other Printing Systems" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:877 msgid "" "Several other printing systems are available in addition to the built-in " "man:lpd[8]. These systems offer support for other protocols or additional " "features." msgstr "" #. type: Title === #: documentation/content/en/books/handbook/printing/_index.adoc:879 #, no-wrap msgid "CUPS (Common UNIX(R) Printing System)" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:883 msgid "" "CUPS is a popular printing system available on many operating systems. " "Using CUPS on FreeBSD is documented in a separate article: extref:{cups}" "[CUPS]" msgstr "" #. type: Title === #: documentation/content/en/books/handbook/printing/_index.adoc:885 #, no-wrap msgid "HPLIP" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:892 msgid "" "Hewlett Packard provides a printing system that supports many of their " "inkjet and laser printers. The port is package:print/hplip[]. The main web " "page is at https://developers.hp.com/hp-linux-imaging-and-printing[]. The " "port handles all the installation details on FreeBSD. Configuration " "information is shown at https://developers.hp.com/hp-linux-imaging-and-" "printing/install[]." msgstr "" #. type: Title === #: documentation/content/en/books/handbook/printing/_index.adoc:894 #, no-wrap msgid "LPRng" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/printing/_index.adoc:898 msgid "" "LPRng was developed as an enhanced alternative to man:lpd[8]. The port is " "package:sysutils/LPRng[]. For details and documentation, see https://" "lprng.sourceforge.net/[]." msgstr ""