<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://www.freebsdwiki.net/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://www.freebsdwiki.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sidetone</id>
		<title>FreeBSDwiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://www.freebsdwiki.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sidetone"/>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Special:Contributions/Sidetone"/>
		<updated>2026-05-03T08:42:00Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.18.0</generator>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/User_talk:Sidetone</id>
		<title>User talk:Sidetone</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/User_talk:Sidetone"/>
				<updated>2021-07-15T22:00:49Z</updated>
		
		<summary type="html">&lt;p&gt;Sidetone: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I had wrote in a document file, the edits to be made, while the system locked me out. This is why edits were made so fast, recently. [[User:Sidetone|Sidetone]] 15:08, 17 December 2014 (EST)&lt;br /&gt;
&lt;br /&gt;
Hey Sidetone, just out of curiosity... did you realize &amp;quot;Jim Salter&amp;quot; == &amp;quot;creator and owner of freebsdwiki.net&amp;quot; when you were trashing me as some kind of FreeBSD hater on the FreeBSD forums recently, after the Ars Technica article about the work Netgate commissioned Macy to do? [[User:Jimbo|Jimbo]] 17:32, 15 July 2021&lt;br /&gt;
&lt;br /&gt;
:I don't believe I did that. I brought up the article, and didn't like the article because I thought it was negative. I read it again, and saw that it was more objective than I thought it was. [[User:Sidetone|Sidetone]] 17:42, 15 July 2021 (EDT)&lt;br /&gt;
:I see now. I'm embarrassed. [[User:Sidetone|Sidetone]] 18:00, 15 July 2021 (EDT)&lt;/div&gt;</summary>
		<author><name>Sidetone</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/User_talk:Sidetone</id>
		<title>User talk:Sidetone</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/User_talk:Sidetone"/>
				<updated>2021-07-15T21:42:42Z</updated>
		
		<summary type="html">&lt;p&gt;Sidetone: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I had wrote in a document file, the edits to be made, while the system locked me out. This is why edits were made so fast, recently. [[User:Sidetone|Sidetone]] 15:08, 17 December 2014 (EST)&lt;br /&gt;
&lt;br /&gt;
Hey Sidetone, just out of curiosity... did you realize &amp;quot;Jim Salter&amp;quot; == &amp;quot;creator and owner of freebsdwiki.net&amp;quot; when you were trashing me as some kind of FreeBSD hater on the FreeBSD forums recently, after the Ars Technica article about the work Netgate commissioned Macy to do? [[User:Jimbo|Jimbo]] 17:32, 15 July 2021&lt;br /&gt;
&lt;br /&gt;
:I don't believe I did that. I brought up the article, and didn't like the article because I thought it was negative. I read it again, and saw that it was more objective than I thought it was. [[User:Sidetone|Sidetone]] 17:42, 15 July 2021 (EDT)&lt;/div&gt;</summary>
		<author><name>Sidetone</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/User:Sidetone</id>
		<title>User:Sidetone</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/User:Sidetone"/>
				<updated>2021-07-15T19:45:02Z</updated>
		
		<summary type="html">&lt;p&gt;Sidetone: /* Some pages started */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Books==&lt;br /&gt;
Books I have access to, to assist with wiki documentation&lt;br /&gt;
* &amp;lt;b&amp;gt;FreeBSD 6 Unleashed&amp;lt;/b&amp;gt; (2006)&lt;br /&gt;
* &amp;lt;b&amp;gt;Network Administration with FreeBSD 7&amp;lt;/b&amp;gt; (2008)&lt;br /&gt;
* &amp;lt;b&amp;gt;BSD UNIX Toolbox: 1000+ Commands for FreeBSD, OpenBSD and NetBSD&amp;lt;/b&amp;gt; (2008)&lt;br /&gt;
&lt;br /&gt;
==Online==&lt;br /&gt;
Free online resources&lt;br /&gt;
* http://www.bsdguides.org/&lt;br /&gt;
* http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/index.html&lt;br /&gt;
* https://forums.freebsd.org/&lt;br /&gt;
* http://www.bsdnow.tv/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Some pages started==&lt;br /&gt;
* [[Desktop, light setup]]&lt;br /&gt;
* [[Hardware Configuration, Audio/Video]]&lt;br /&gt;
* [[Window Managers, BSD]]&lt;br /&gt;
* [[Network, Wireless]]&lt;br /&gt;
* [[Hardware Considerations]]&lt;br /&gt;
* [[Printing, about]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[BSD alternatives, administration level]]&lt;br /&gt;
* [[BSD alternatives, user-end applications]]&lt;br /&gt;
* [[Linux, configuration]]&lt;br /&gt;
* [[ezjail]]&lt;br /&gt;
* [[Poudriere]]&lt;br /&gt;
* [[Etc/]]&lt;br /&gt;
* [[Subversion]]&lt;br /&gt;
* [[Portmaster]]&lt;br /&gt;
&lt;br /&gt;
==Subpages==&lt;br /&gt;
* [[/ezjail]] - contains ezjail resources&lt;br /&gt;
* [[/linuxcompat]] - scratch page&lt;br /&gt;
* [[/Emulation]]&lt;br /&gt;
&lt;br /&gt;
==License==&lt;br /&gt;
The website license is described at: http://freebsdwiki.net/index.php/FreeBSDwiki:Copyrights&lt;br /&gt;
 All content here should be licensed under CC-BY, CC0, or FreeBSD Documentation license.&lt;br /&gt;
 CC-BY-SA is unacceptable because it's copyleft and AGAINST BSD TRADITIONS.&lt;br /&gt;
&lt;br /&gt;
* [https://www.freebsd.org/copyright/freebsd-doc-license.html| FreeBSD documentation license]&lt;br /&gt;
* CC-BY 2.5 - http://freebsdwiki.net/index.php/CC-BY &lt;br /&gt;
&lt;br /&gt;
For clarity, my contributions here can be released under any version of &amp;lt;b&amp;gt;FreeBSD Documentation License&amp;lt;/b&amp;gt; and any version of &amp;lt;b&amp;gt;CC-BY&amp;lt;/b&amp;gt;. [https://creativecommons.org/licenses/by/4.0/| Attribution 4.0 International (CC BY 4.0)] is an updated CC-BY version.&lt;br /&gt;
&lt;br /&gt;
For anything else:&lt;br /&gt;
* attribute http://freebsdwiki.net&lt;br /&gt;
* released to https://freebsd.org and any BSD forum without attribution&lt;/div&gt;</summary>
		<author><name>Sidetone</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/User:Sidetone</id>
		<title>User:Sidetone</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/User:Sidetone"/>
				<updated>2021-07-15T19:44:30Z</updated>
		
		<summary type="html">&lt;p&gt;Sidetone: /* Some pages started */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Books==&lt;br /&gt;
Books I have access to, to assist with wiki documentation&lt;br /&gt;
* &amp;lt;b&amp;gt;FreeBSD 6 Unleashed&amp;lt;/b&amp;gt; (2006)&lt;br /&gt;
* &amp;lt;b&amp;gt;Network Administration with FreeBSD 7&amp;lt;/b&amp;gt; (2008)&lt;br /&gt;
* &amp;lt;b&amp;gt;BSD UNIX Toolbox: 1000+ Commands for FreeBSD, OpenBSD and NetBSD&amp;lt;/b&amp;gt; (2008)&lt;br /&gt;
&lt;br /&gt;
==Online==&lt;br /&gt;
Free online resources&lt;br /&gt;
* http://www.bsdguides.org/&lt;br /&gt;
* http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/index.html&lt;br /&gt;
* https://forums.freebsd.org/&lt;br /&gt;
* http://www.bsdnow.tv/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Some pages started==&lt;br /&gt;
* [[Desktop, light setup]]&lt;br /&gt;
* [[Hardware Configuration, Audio/Video]]&lt;br /&gt;
* [[Window Managers, BSD]]&lt;br /&gt;
* [[Network, Wireless]]&lt;br /&gt;
* [[Hardware Considerations]]&lt;br /&gt;
* [[Printing,_about]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[BSD alternatives, administration level]]&lt;br /&gt;
* [[BSD alternatives, user-end applications]]&lt;br /&gt;
* [[Linux, configuration]]&lt;br /&gt;
* [[ezjail]]&lt;br /&gt;
* [[Poudriere]]&lt;br /&gt;
* [[Etc/]]&lt;br /&gt;
* [[Subversion]]&lt;br /&gt;
* [[Portmaster]]&lt;br /&gt;
&lt;br /&gt;
==Subpages==&lt;br /&gt;
* [[/ezjail]] - contains ezjail resources&lt;br /&gt;
* [[/linuxcompat]] - scratch page&lt;br /&gt;
* [[/Emulation]]&lt;br /&gt;
&lt;br /&gt;
==License==&lt;br /&gt;
The website license is described at: http://freebsdwiki.net/index.php/FreeBSDwiki:Copyrights&lt;br /&gt;
 All content here should be licensed under CC-BY, CC0, or FreeBSD Documentation license.&lt;br /&gt;
 CC-BY-SA is unacceptable because it's copyleft and AGAINST BSD TRADITIONS.&lt;br /&gt;
&lt;br /&gt;
* [https://www.freebsd.org/copyright/freebsd-doc-license.html| FreeBSD documentation license]&lt;br /&gt;
* CC-BY 2.5 - http://freebsdwiki.net/index.php/CC-BY &lt;br /&gt;
&lt;br /&gt;
For clarity, my contributions here can be released under any version of &amp;lt;b&amp;gt;FreeBSD Documentation License&amp;lt;/b&amp;gt; and any version of &amp;lt;b&amp;gt;CC-BY&amp;lt;/b&amp;gt;. [https://creativecommons.org/licenses/by/4.0/| Attribution 4.0 International (CC BY 4.0)] is an updated CC-BY version.&lt;br /&gt;
&lt;br /&gt;
For anything else:&lt;br /&gt;
* attribute http://freebsdwiki.net&lt;br /&gt;
* released to https://freebsd.org and any BSD forum without attribution&lt;/div&gt;</summary>
		<author><name>Sidetone</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/User:Sidetone</id>
		<title>User:Sidetone</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/User:Sidetone"/>
				<updated>2021-07-15T19:03:50Z</updated>
		
		<summary type="html">&lt;p&gt;Sidetone: /* License */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Books==&lt;br /&gt;
Books I have access to, to assist with wiki documentation&lt;br /&gt;
* &amp;lt;b&amp;gt;FreeBSD 6 Unleashed&amp;lt;/b&amp;gt; (2006)&lt;br /&gt;
* &amp;lt;b&amp;gt;Network Administration with FreeBSD 7&amp;lt;/b&amp;gt; (2008)&lt;br /&gt;
* &amp;lt;b&amp;gt;BSD UNIX Toolbox: 1000+ Commands for FreeBSD, OpenBSD and NetBSD&amp;lt;/b&amp;gt; (2008)&lt;br /&gt;
&lt;br /&gt;
==Online==&lt;br /&gt;
Free online resources&lt;br /&gt;
* http://www.bsdguides.org/&lt;br /&gt;
* http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/index.html&lt;br /&gt;
* https://forums.freebsd.org/&lt;br /&gt;
* http://www.bsdnow.tv/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Some pages started==&lt;br /&gt;
* [[Desktop, light setup]]&lt;br /&gt;
* [[Hardware Configuration, Audio/Video]]&lt;br /&gt;
* [[Window Managers, BSD]]&lt;br /&gt;
* [[Network, Wireless]]&lt;br /&gt;
* [[Hardware Considerations]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[BSD alternatives, administration level]]&lt;br /&gt;
* [[BSD alternatives, user-end applications]]&lt;br /&gt;
* [[Linux, configuration]]&lt;br /&gt;
* [[ezjail]]&lt;br /&gt;
* [[Poudriere]]&lt;br /&gt;
* [[Etc/]]&lt;br /&gt;
* [[Subversion]]&lt;br /&gt;
* [[Portmaster]]&lt;br /&gt;
&lt;br /&gt;
==Subpages==&lt;br /&gt;
* [[/ezjail]] - contains ezjail resources&lt;br /&gt;
* [[/linuxcompat]] - scratch page&lt;br /&gt;
* [[/Emulation]]&lt;br /&gt;
&lt;br /&gt;
==License==&lt;br /&gt;
The website license is described at: http://freebsdwiki.net/index.php/FreeBSDwiki:Copyrights&lt;br /&gt;
 All content here should be licensed under CC-BY, CC0, or FreeBSD Documentation license.&lt;br /&gt;
 CC-BY-SA is unacceptable because it's copyleft and AGAINST BSD TRADITIONS.&lt;br /&gt;
&lt;br /&gt;
* [https://www.freebsd.org/copyright/freebsd-doc-license.html| FreeBSD documentation license]&lt;br /&gt;
* CC-BY 2.5 - http://freebsdwiki.net/index.php/CC-BY &lt;br /&gt;
&lt;br /&gt;
For clarity, my contributions here can be released under any version of &amp;lt;b&amp;gt;FreeBSD Documentation License&amp;lt;/b&amp;gt; and any version of &amp;lt;b&amp;gt;CC-BY&amp;lt;/b&amp;gt;. [https://creativecommons.org/licenses/by/4.0/| Attribution 4.0 International (CC BY 4.0)] is an updated CC-BY version.&lt;br /&gt;
&lt;br /&gt;
For anything else:&lt;br /&gt;
* attribute http://freebsdwiki.net&lt;br /&gt;
* released to https://freebsd.org and any BSD forum without attribution&lt;/div&gt;</summary>
		<author><name>Sidetone</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/User:Sidetone</id>
		<title>User:Sidetone</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/User:Sidetone"/>
				<updated>2021-07-15T19:03:18Z</updated>
		
		<summary type="html">&lt;p&gt;Sidetone: /* License */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Books==&lt;br /&gt;
Books I have access to, to assist with wiki documentation&lt;br /&gt;
* &amp;lt;b&amp;gt;FreeBSD 6 Unleashed&amp;lt;/b&amp;gt; (2006)&lt;br /&gt;
* &amp;lt;b&amp;gt;Network Administration with FreeBSD 7&amp;lt;/b&amp;gt; (2008)&lt;br /&gt;
* &amp;lt;b&amp;gt;BSD UNIX Toolbox: 1000+ Commands for FreeBSD, OpenBSD and NetBSD&amp;lt;/b&amp;gt; (2008)&lt;br /&gt;
&lt;br /&gt;
==Online==&lt;br /&gt;
Free online resources&lt;br /&gt;
* http://www.bsdguides.org/&lt;br /&gt;
* http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/index.html&lt;br /&gt;
* https://forums.freebsd.org/&lt;br /&gt;
* http://www.bsdnow.tv/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Some pages started==&lt;br /&gt;
* [[Desktop, light setup]]&lt;br /&gt;
* [[Hardware Configuration, Audio/Video]]&lt;br /&gt;
* [[Window Managers, BSD]]&lt;br /&gt;
* [[Network, Wireless]]&lt;br /&gt;
* [[Hardware Considerations]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[BSD alternatives, administration level]]&lt;br /&gt;
* [[BSD alternatives, user-end applications]]&lt;br /&gt;
* [[Linux, configuration]]&lt;br /&gt;
* [[ezjail]]&lt;br /&gt;
* [[Poudriere]]&lt;br /&gt;
* [[Etc/]]&lt;br /&gt;
* [[Subversion]]&lt;br /&gt;
* [[Portmaster]]&lt;br /&gt;
&lt;br /&gt;
==Subpages==&lt;br /&gt;
* [[/ezjail]] - contains ezjail resources&lt;br /&gt;
* [[/linuxcompat]] - scratch page&lt;br /&gt;
* [[/Emulation]]&lt;br /&gt;
&lt;br /&gt;
==License==&lt;br /&gt;
The website license is described at: http://freebsdwiki.net/index.php/FreeBSDwiki:Copyrights&lt;br /&gt;
 All content here should be licensed under CC-BY, CC0, or FreeBSD Documentation license.&lt;br /&gt;
 CC-BY-SA is unacceptable because it's copyleft and AGAINST BSD TRADITIONS.&lt;br /&gt;
&lt;br /&gt;
* [https://www.freebsd.org/copyright/freebsd-doc-license.html| FreeBSD documentation license]&lt;br /&gt;
* CC-BY 2.5 - http://freebsdwiki.net/index.php/CC-BY &lt;br /&gt;
&lt;br /&gt;
For clarity, my contributions here can be released under any version of &amp;lt;b&amp;gt;FreeBSD documentation license&amp;lt;/b&amp;gt; and any version of &amp;lt;b&amp;gt;CC-BY&amp;lt;/b&amp;gt;. [https://creativecommons.org/licenses/by/4.0/| Attribution 4.0 International (CC BY 4.0)] is an updated CC-BY version.&lt;br /&gt;
&lt;br /&gt;
For anything else:&lt;br /&gt;
* attribute http://freebsdwiki.net&lt;br /&gt;
* released to https://freebsd.org and any BSD forum without attribution&lt;/div&gt;</summary>
		<author><name>Sidetone</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/User:Sidetone</id>
		<title>User:Sidetone</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/User:Sidetone"/>
				<updated>2021-07-15T18:23:13Z</updated>
		
		<summary type="html">&lt;p&gt;Sidetone: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Books==&lt;br /&gt;
Books I have access to, to assist with wiki documentation&lt;br /&gt;
* &amp;lt;b&amp;gt;FreeBSD 6 Unleashed&amp;lt;/b&amp;gt; (2006)&lt;br /&gt;
* &amp;lt;b&amp;gt;Network Administration with FreeBSD 7&amp;lt;/b&amp;gt; (2008)&lt;br /&gt;
* &amp;lt;b&amp;gt;BSD UNIX Toolbox: 1000+ Commands for FreeBSD, OpenBSD and NetBSD&amp;lt;/b&amp;gt; (2008)&lt;br /&gt;
&lt;br /&gt;
==Online==&lt;br /&gt;
Free online resources&lt;br /&gt;
* http://www.bsdguides.org/&lt;br /&gt;
* http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/index.html&lt;br /&gt;
* https://forums.freebsd.org/&lt;br /&gt;
* http://www.bsdnow.tv/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Some pages started==&lt;br /&gt;
* [[Desktop, light setup]]&lt;br /&gt;
* [[Hardware Configuration, Audio/Video]]&lt;br /&gt;
* [[Window Managers, BSD]]&lt;br /&gt;
* [[Network, Wireless]]&lt;br /&gt;
* [[Hardware Considerations]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[BSD alternatives, administration level]]&lt;br /&gt;
* [[BSD alternatives, user-end applications]]&lt;br /&gt;
* [[Linux, configuration]]&lt;br /&gt;
* [[ezjail]]&lt;br /&gt;
* [[Poudriere]]&lt;br /&gt;
* [[Etc/]]&lt;br /&gt;
* [[Subversion]]&lt;br /&gt;
* [[Portmaster]]&lt;br /&gt;
&lt;br /&gt;
==Subpages==&lt;br /&gt;
* [[/ezjail]] - contains ezjail resources&lt;br /&gt;
* [[/linuxcompat]] - scratch page&lt;br /&gt;
* [[/Emulation]]&lt;br /&gt;
&lt;br /&gt;
==License==&lt;br /&gt;
The website license is described at: http://freebsdwiki.net/index.php/FreeBSDwiki:Copyrights&lt;br /&gt;
 All content here should be licensed under CC-BY, CC0, or FreeBSD Documentation license.&lt;br /&gt;
 CC-BY-SA is unacceptable because it's copyleft and AGAINST BSD TRADITIONS.&lt;br /&gt;
&lt;br /&gt;
* [https://www.freebsd.org/copyright/freebsd-doc-license.html| FreeBSD documentation license]&lt;br /&gt;
* CC-BY 2.5 - http://freebsdwiki.net/index.php/CC-BY &lt;br /&gt;
&lt;br /&gt;
For clarity, my contributions here can be released under any version of FreeBSD documentation license and CC-BY. [https://creativecommons.org/licenses/by/4.0/| Attribution 4.0 International (CC BY 4.0)] is an updated CC-BY version.&lt;br /&gt;
&lt;br /&gt;
For anything else:&lt;br /&gt;
* attribute http://freebsdwiki.net&lt;br /&gt;
* released to https://freebsd.org and any BSD forum without attribution&lt;/div&gt;</summary>
		<author><name>Sidetone</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/User:Sidetone</id>
		<title>User:Sidetone</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/User:Sidetone"/>
				<updated>2021-07-15T18:17:28Z</updated>
		
		<summary type="html">&lt;p&gt;Sidetone: /* License */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Books==&lt;br /&gt;
Books I have access to, to assist with wiki documentation&lt;br /&gt;
* &amp;lt;b&amp;gt;FreeBSD 6 Unleashed&amp;lt;/b&amp;gt; (2006)&lt;br /&gt;
* &amp;lt;b&amp;gt;Network Administration with FreeBSD 7&amp;lt;/b&amp;gt; (2008)&lt;br /&gt;
&lt;br /&gt;
==Online==&lt;br /&gt;
Free online resources&lt;br /&gt;
* http://www.bsdguides.org/&lt;br /&gt;
* http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/index.html&lt;br /&gt;
* https://forums.freebsd.org/&lt;br /&gt;
* http://www.bsdnow.tv/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Some pages started==&lt;br /&gt;
* [[Desktop, light setup]]&lt;br /&gt;
* [[Hardware Configuration, Audio/Video]]&lt;br /&gt;
* [[Window Managers, BSD]]&lt;br /&gt;
* [[Network, Wireless]]&lt;br /&gt;
* [[Hardware Considerations]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[BSD alternatives, administration level]]&lt;br /&gt;
* [[BSD alternatives, user-end applications]]&lt;br /&gt;
* [[Linux, configuration]]&lt;br /&gt;
* [[ezjail]]&lt;br /&gt;
* [[Poudriere]]&lt;br /&gt;
* [[Etc/]]&lt;br /&gt;
* [[Subversion]]&lt;br /&gt;
* [[Portmaster]]&lt;br /&gt;
&lt;br /&gt;
==Subpages==&lt;br /&gt;
* [[/ezjail]] - contains ezjail resources&lt;br /&gt;
* [[/linuxcompat]] - scratch page&lt;br /&gt;
* [[/Emulation]]&lt;br /&gt;
&lt;br /&gt;
==License==&lt;br /&gt;
The website license is described at: http://freebsdwiki.net/index.php/FreeBSDwiki:Copyrights&lt;br /&gt;
 All content here should be licensed under CC-BY, CC0, or FreeBSD Documentation license.&lt;br /&gt;
 CC-BY-SA is unacceptable because it's copyleft and AGAINST BSD TRADITIONS.&lt;br /&gt;
&lt;br /&gt;
* [https://www.freebsd.org/copyright/freebsd-doc-license.html| FreeBSD documentation license]&lt;br /&gt;
* CC-BY 2.5 - http://freebsdwiki.net/index.php/CC-BY &lt;br /&gt;
&lt;br /&gt;
For clarity, my contributions here can be released under any version of FreeBSD documentation license and CC-BY. [https://creativecommons.org/licenses/by/4.0/| Attribution 4.0 International (CC BY 4.0)] is an updated CC-BY version.&lt;br /&gt;
&lt;br /&gt;
For anything else:&lt;br /&gt;
* attribute http://freebsdwiki.net&lt;br /&gt;
* released to https://freebsd.org and any BSD forum without attribution&lt;/div&gt;</summary>
		<author><name>Sidetone</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/User:Sidetone</id>
		<title>User:Sidetone</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/User:Sidetone"/>
				<updated>2021-07-15T18:11:10Z</updated>
		
		<summary type="html">&lt;p&gt;Sidetone: /* License */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Books==&lt;br /&gt;
Books I have access to, to assist with wiki documentation&lt;br /&gt;
* &amp;lt;b&amp;gt;FreeBSD 6 Unleashed&amp;lt;/b&amp;gt; (2006)&lt;br /&gt;
* &amp;lt;b&amp;gt;Network Administration with FreeBSD 7&amp;lt;/b&amp;gt; (2008)&lt;br /&gt;
&lt;br /&gt;
==Online==&lt;br /&gt;
Free online resources&lt;br /&gt;
* http://www.bsdguides.org/&lt;br /&gt;
* http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/index.html&lt;br /&gt;
* https://forums.freebsd.org/&lt;br /&gt;
* http://www.bsdnow.tv/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Some pages started==&lt;br /&gt;
* [[Desktop, light setup]]&lt;br /&gt;
* [[Hardware Configuration, Audio/Video]]&lt;br /&gt;
* [[Window Managers, BSD]]&lt;br /&gt;
* [[Network, Wireless]]&lt;br /&gt;
* [[Hardware Considerations]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[BSD alternatives, administration level]]&lt;br /&gt;
* [[BSD alternatives, user-end applications]]&lt;br /&gt;
* [[Linux, configuration]]&lt;br /&gt;
* [[ezjail]]&lt;br /&gt;
* [[Poudriere]]&lt;br /&gt;
* [[Etc/]]&lt;br /&gt;
* [[Subversion]]&lt;br /&gt;
* [[Portmaster]]&lt;br /&gt;
&lt;br /&gt;
==Subpages==&lt;br /&gt;
* [[/ezjail]] - contains ezjail resources&lt;br /&gt;
* [[/linuxcompat]] - scratch page&lt;br /&gt;
* [[/Emulation]]&lt;br /&gt;
&lt;br /&gt;
==License==&lt;br /&gt;
The website is under the licenses described at: http://freebsdwiki.net/index.php/FreeBSDwiki:Copyrights&lt;br /&gt;
 All content here should be licensed under CC-BY, CC0, or FreeBSD Documentation license.&lt;br /&gt;
 CC-BY-SA is unacceptable because it's copyleft and AGAINST BSD TRADITIONS.&lt;br /&gt;
&lt;br /&gt;
* [https://www.freebsd.org/copyright/freebsd-doc-license.html| FreeBSD documentation license]&lt;br /&gt;
* CC-BY 2.5 - http://freebsdwiki.net/index.php/CC-BY &lt;br /&gt;
&lt;br /&gt;
For clarity, my contributions here can be released under any version of FreeBSD documentation license and CC-BY. [https://creativecommons.org/licenses/by/4.0/| Attribution 4.0 International (CC BY 4.0)] is an updated CC-BY version.&lt;br /&gt;
&lt;br /&gt;
For anything else:&lt;br /&gt;
* attribute http://freebsdwiki.net&lt;br /&gt;
* released to https://freebsd.org and any BSD forum without attribution&lt;/div&gt;</summary>
		<author><name>Sidetone</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/User:Sidetone</id>
		<title>User:Sidetone</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/User:Sidetone"/>
				<updated>2021-07-15T18:03:56Z</updated>
		
		<summary type="html">&lt;p&gt;Sidetone: /* License */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Books==&lt;br /&gt;
Books I have access to, to assist with wiki documentation&lt;br /&gt;
* &amp;lt;b&amp;gt;FreeBSD 6 Unleashed&amp;lt;/b&amp;gt; (2006)&lt;br /&gt;
* &amp;lt;b&amp;gt;Network Administration with FreeBSD 7&amp;lt;/b&amp;gt; (2008)&lt;br /&gt;
&lt;br /&gt;
==Online==&lt;br /&gt;
Free online resources&lt;br /&gt;
* http://www.bsdguides.org/&lt;br /&gt;
* http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/index.html&lt;br /&gt;
* https://forums.freebsd.org/&lt;br /&gt;
* http://www.bsdnow.tv/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Some pages started==&lt;br /&gt;
* [[Desktop, light setup]]&lt;br /&gt;
* [[Hardware Configuration, Audio/Video]]&lt;br /&gt;
* [[Window Managers, BSD]]&lt;br /&gt;
* [[Network, Wireless]]&lt;br /&gt;
* [[Hardware Considerations]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[BSD alternatives, administration level]]&lt;br /&gt;
* [[BSD alternatives, user-end applications]]&lt;br /&gt;
* [[Linux, configuration]]&lt;br /&gt;
* [[ezjail]]&lt;br /&gt;
* [[Poudriere]]&lt;br /&gt;
* [[Etc/]]&lt;br /&gt;
* [[Subversion]]&lt;br /&gt;
* [[Portmaster]]&lt;br /&gt;
&lt;br /&gt;
==Subpages==&lt;br /&gt;
* [[/ezjail]] - contains ezjail resources&lt;br /&gt;
* [[/linuxcompat]] - scratch page&lt;br /&gt;
* [[/Emulation]]&lt;br /&gt;
&lt;br /&gt;
==License==&lt;br /&gt;
The website is under the licenses described at: http://freebsdwiki.net/index.php/FreeBSDwiki:Copyrights&lt;br /&gt;
 All content here should be licensed under CC-BY, CC0, or FreeBSD Documentation license.&lt;br /&gt;
 CC-BY-SA is unacceptable because it's copyleft and AGAINST BSD TRADITIONS.&lt;br /&gt;
&lt;br /&gt;
* [https://www.freebsd.org/copyright/freebsd-doc-license.html| FreeBSD documentation license]&lt;br /&gt;
* CC-BY 2.5 - http://freebsdwiki.net/index.php/CC-BY &lt;br /&gt;
&lt;br /&gt;
In addition, everything I wrote here, I release to any of:&lt;br /&gt;
* [https://creativecommons.org/licenses/by/4.0/| Attribution 4.0 International (CC BY 4.0)] is an updated CC-BY version, that can also apply to my contributions&lt;br /&gt;
* attribute http://freebsdwiki.net&lt;br /&gt;
* released to https://freebsd.org and any BSD forum without attribution&lt;/div&gt;</summary>
		<author><name>Sidetone</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/User:Sidetone</id>
		<title>User:Sidetone</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/User:Sidetone"/>
				<updated>2021-07-15T18:02:06Z</updated>
		
		<summary type="html">&lt;p&gt;Sidetone: /* License */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Books==&lt;br /&gt;
Books I have access to, to assist with wiki documentation&lt;br /&gt;
* &amp;lt;b&amp;gt;FreeBSD 6 Unleashed&amp;lt;/b&amp;gt; (2006)&lt;br /&gt;
* &amp;lt;b&amp;gt;Network Administration with FreeBSD 7&amp;lt;/b&amp;gt; (2008)&lt;br /&gt;
&lt;br /&gt;
==Online==&lt;br /&gt;
Free online resources&lt;br /&gt;
* http://www.bsdguides.org/&lt;br /&gt;
* http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/index.html&lt;br /&gt;
* https://forums.freebsd.org/&lt;br /&gt;
* http://www.bsdnow.tv/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Some pages started==&lt;br /&gt;
* [[Desktop, light setup]]&lt;br /&gt;
* [[Hardware Configuration, Audio/Video]]&lt;br /&gt;
* [[Window Managers, BSD]]&lt;br /&gt;
* [[Network, Wireless]]&lt;br /&gt;
* [[Hardware Considerations]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[BSD alternatives, administration level]]&lt;br /&gt;
* [[BSD alternatives, user-end applications]]&lt;br /&gt;
* [[Linux, configuration]]&lt;br /&gt;
* [[ezjail]]&lt;br /&gt;
* [[Poudriere]]&lt;br /&gt;
* [[Etc/]]&lt;br /&gt;
* [[Subversion]]&lt;br /&gt;
* [[Portmaster]]&lt;br /&gt;
&lt;br /&gt;
==Subpages==&lt;br /&gt;
* [[/ezjail]] - contains ezjail resources&lt;br /&gt;
* [[/linuxcompat]] - scratch page&lt;br /&gt;
* [[/Emulation]]&lt;br /&gt;
&lt;br /&gt;
==License==&lt;br /&gt;
The website is under the licenses described at: http://freebsdwiki.net/index.php/FreeBSDwiki:Copyrights&lt;br /&gt;
 All content here should be licensed under CC-BY, CC0, or FreeBSD Documentation license.&lt;br /&gt;
 CC-BY-SA is unacceptable because it's copyleft and AGAINST BSD TRADITIONS.&lt;br /&gt;
&lt;br /&gt;
* [https://www.freebsd.org/copyright/freebsd-doc-license.html| FreeBSD documentation license]&lt;br /&gt;
* CC-BY 2.5 http://freebsdwiki.net/index.php/CC-BY &lt;br /&gt;
&lt;br /&gt;
In addition, everything I wrote here, I release to any of:&lt;br /&gt;
* [https://creativecommons.org/licenses/by/4.0/| Attribution 4.0 International (CC BY 4.0)] is an updated CC-BY version, that can apply to my contributions&lt;br /&gt;
* attribute http://freebsdwiki.net&lt;br /&gt;
* released to https://freebsd.org and any BSD forum without attribution&lt;/div&gt;</summary>
		<author><name>Sidetone</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/User:Sidetone</id>
		<title>User:Sidetone</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/User:Sidetone"/>
				<updated>2021-07-15T17:59:11Z</updated>
		
		<summary type="html">&lt;p&gt;Sidetone: /* License */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Books==&lt;br /&gt;
Books I have access to, to assist with wiki documentation&lt;br /&gt;
* &amp;lt;b&amp;gt;FreeBSD 6 Unleashed&amp;lt;/b&amp;gt; (2006)&lt;br /&gt;
* &amp;lt;b&amp;gt;Network Administration with FreeBSD 7&amp;lt;/b&amp;gt; (2008)&lt;br /&gt;
&lt;br /&gt;
==Online==&lt;br /&gt;
Free online resources&lt;br /&gt;
* http://www.bsdguides.org/&lt;br /&gt;
* http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/index.html&lt;br /&gt;
* https://forums.freebsd.org/&lt;br /&gt;
* http://www.bsdnow.tv/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Some pages started==&lt;br /&gt;
* [[Desktop, light setup]]&lt;br /&gt;
* [[Hardware Configuration, Audio/Video]]&lt;br /&gt;
* [[Window Managers, BSD]]&lt;br /&gt;
* [[Network, Wireless]]&lt;br /&gt;
* [[Hardware Considerations]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[BSD alternatives, administration level]]&lt;br /&gt;
* [[BSD alternatives, user-end applications]]&lt;br /&gt;
* [[Linux, configuration]]&lt;br /&gt;
* [[ezjail]]&lt;br /&gt;
* [[Poudriere]]&lt;br /&gt;
* [[Etc/]]&lt;br /&gt;
* [[Subversion]]&lt;br /&gt;
* [[Portmaster]]&lt;br /&gt;
&lt;br /&gt;
==Subpages==&lt;br /&gt;
* [[/ezjail]] - contains ezjail resources&lt;br /&gt;
* [[/linuxcompat]] - scratch page&lt;br /&gt;
* [[/Emulation]]&lt;br /&gt;
&lt;br /&gt;
==License==&lt;br /&gt;
The website is under the licenses described at http://freebsdwiki.net/index.php/FreeBSDwiki:Copyrights&lt;br /&gt;
 All content here should be licensed under CC-BY, CC0, or FreeBSD Documentation license.&lt;br /&gt;
 CC-BY-SA is unacceptable because it's copyleft and AGAINST BSD TRADITIONS.&lt;br /&gt;
&lt;br /&gt;
* [https://www.freebsd.org/copyright/freebsd-doc-license.html| FreeBSD documentation license]&lt;br /&gt;
* [http://freebsdwiki.net/index.php/CC-BY | CC-BY 2.5]&lt;br /&gt;
http://freebsdwiki.net/index.php/CC-BY&lt;br /&gt;
&lt;br /&gt;
In addition, everything I wrote here, I release to any of:&lt;br /&gt;
* [https://creativecommons.org/licenses/by/4.0/| Attribution 4.0 International (CC BY 4.0)] is an updated CC-BY version, that can apply to my contributions&lt;br /&gt;
* attribute http://freebsdwiki.net&lt;br /&gt;
* released to https://freebsd.org and any BSD forum without attribution&lt;/div&gt;</summary>
		<author><name>Sidetone</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Printing,_about</id>
		<title>Printing, about</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Printing,_about"/>
				<updated>2021-06-28T05:35:22Z</updated>
		
		<summary type="html">&lt;p&gt;Sidetone: /* CUPS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;About printing on FreeBSD: comparisons of printing protocols; about filters, Page Description Languages (PDL's) and printer specifications.&lt;br /&gt;
&lt;br /&gt;
==Protocols==&lt;br /&gt;
LPD (Line Printer Daemon) and IPP (Internet Printing Protocol) are printer protocols defined by IETF. LPD is described by RFC 1179 (not as a standard): it uses service port 515. IPP is a standard defined by RFC 8011 and RFC 3510: it uses service port 631. Access control and security features are available on IPP that aren't on LPD. RFC 2569 is a memo on mapping between LPD and IPP.&lt;br /&gt;
&lt;br /&gt;
pdl-datastream on service port 9100 is for proprietary printers and proprietary local network printer servers. This is often used by JetDirect products.&lt;br /&gt;
&lt;br /&gt;
Printers can also use SMB (over Samba) as a protocol.&lt;br /&gt;
&lt;br /&gt;
==Comparison of print architectures==&lt;br /&gt;
===LPR, LPRng===&lt;br /&gt;
LPR is the default with FreeBSD. LPRng is a more advanced implementation of LPR. These two programs use and can alter {{man|printcap|5}}. LPR and LPRng both use the LPD protocol over service port 515.&lt;br /&gt;
&lt;br /&gt;
LPR and LPRng require manual set up through custom shell scripts of filters to convert plain text or other types of data, even between PostScript outputs to PostScript capable printers. {{port|print/a2ps}} can simplify this task of converting ASCII to PostScript output. LPR's intended use was for text printing.&lt;br /&gt;
&lt;br /&gt;
LPRng (LPR Next Generation) is an advanced replacement for LPR. It is under the GPL and Artistic licenses. IFHP is a filter that determines the format and does conversions, including by use of Ghostscript. LPRng takes care of format conversions through its filters, and of PostScript output through Ghostscript. LPRng was designed to be more secure than LPR. LPRng is found at {{port|sysutils/LPRng}}. It uses {{file|printcap}}, {{file|lpd.conf}}, and {{file|lpd.perms}} for configuration.&lt;br /&gt;
&lt;br /&gt;
lprng in services ({{file|rc.conf}}) requires that lpr and cupsd be disabled. LPR and LPRng daemons can be enabled or disabled through {{file|rc.conf}}. LPR compilation in the world build can be disabled through {{man|src.conf|5}}&lt;br /&gt;
&lt;br /&gt;
===CUPS===&lt;br /&gt;
The Common Unix Printing System (CUPS: {{port|print/cups}}) framework supports more printers than LPR and LPRng, and it is more advanced. PCL printers are more readily supported under CUPS. CUPS can be administered on the command line, through the web interface, and through a GUI.&lt;br /&gt;
&lt;br /&gt;
The default protocol that CUPS uses is IPP. In addition to IPP, CUPS also has protocol support for: LPD, SMB (Server Message Block) and pdl-datastream. CUPS originally started out over LPD. Samba is only needed for printing on LANs that include Windows computers.&lt;br /&gt;
&lt;br /&gt;
CUPS has its own implementation of LPR in under {{file|/usr/local/}}, as opposed to LPR's default location under {{file|/usr/}}. The LPR files that CUPS uses can be set in {{file|/usr/local/etc/cups/printcap}}. On the command line, CUPS uses BSD LPR style commands.&lt;br /&gt;
&lt;br /&gt;
The command cupsctl can adjust settings in cupsd.conf.&lt;br /&gt;
&lt;br /&gt;
CUPS supports encryption for administration and printing, which wasn't available in older versions. Kerberos will be replaced by OAuth and PAM for access control and security by CUPS 3.0.&lt;br /&gt;
&lt;br /&gt;
CUPS is compatible for use with Zeroconf.&lt;br /&gt;
&lt;br /&gt;
This print architecture uses Apache License 2.0. Legacy versions of CUPS were under GPL.&lt;br /&gt;
&lt;br /&gt;
===More===&lt;br /&gt;
CUPS and LPRng software conflicts so cannot be installed together. LPR and CUPS can coexist, but only one service is needed.&lt;br /&gt;
&lt;br /&gt;
Some programs, such as forks of OpenOffice (such as LibreOffice or Apache OpenOffice) provide their own drivers that output to LPR in place of already configured filters like Ghostscript. Their printing has to be set up independently from an already working CUPS or LPR print configuration.&lt;br /&gt;
&lt;br /&gt;
The Printer Working Group (PWG) intends to offer driverless scanning over IPP. However, there are no IPP scanners and there's no working program from PWG, so SANE is still the de-facto standard for open-source printing. SANE is under GPL, and it is unable to be changed to LGPL by the wishes of its maintainers, because it has multiple contributors.&lt;br /&gt;
&lt;br /&gt;
==Modern CUPS specifications==&lt;br /&gt;
As of future CUPS version 3.0, legacy drivers and PDL's will no longer be used. CUPS 2.3 already supports modern CUPS replacements for printer drivers.&lt;br /&gt;
&lt;br /&gt;
PWG Raster ('image/pwg-raster'), JPEG ('image/jpeg'), and PDF ('application/pdf') are modern formats directly supported by newer printers. PWG Raster and JPEG formats are supported by most new printers since 2010.&lt;br /&gt;
&lt;br /&gt;
There are also IPP-Everywhere compliant printers.&lt;br /&gt;
&lt;br /&gt;
Airprint is an alternate technology for Apple MacOS and i-products. It uses Apple Raster ('image/urf'). Mopria is a printer technology to print from Android, which is intended to be used with PAPPL.&lt;br /&gt;
&lt;br /&gt;
'text/plain' is supported by simple printers. 'application/octet-stream' tells capable printers which format to use. For printers without this capability, the format has to be specified through configuration or through print commands.&lt;br /&gt;
&lt;br /&gt;
The WiFi alliance has a printer specification.&lt;br /&gt;
&lt;br /&gt;
Industrial, label, legacy and other specialized printers don't have the capability for these modern printing formats. LPrint is intended for label printers to work with CUPS, and a few are already supported. The PAPPL framework could be the replacement for drivers of legacy, specialty and other printers to work with newer versions of CUPS.&lt;br /&gt;
&lt;br /&gt;
Legacy printers may have an application that addresses their Printer Description Language for use with the newer versions of CUPS. PCL has hp-printer-app, and PostScript has ps-printer-app.&lt;br /&gt;
&lt;br /&gt;
For 3D printers, there are a few formats supported: 3MF, U3D, PRC and PWG compliant G-code. Different versions of PDF have support for either U3D and PRC.&lt;br /&gt;
&lt;br /&gt;
==Legacy specifications: filters/drivers/PDL's==&lt;br /&gt;
Postscript (PS) and PCL (Printer Command Language) are printer languages known as Page Description Languages (PDL's) supported by the majority of printers for interpreting and printing jobs. These two PDLs are alternate models developed by Adobe and HP respectively. PJL is another type of printer language for controlling features. These legacy specifications work up to CUPS version 2.4. Postscript is defined by 'application/postscript', and PCL is defined by 'application/vnd.hp-pcl'.&lt;br /&gt;
&lt;br /&gt;
Many programs simply output data as Postscript. A filter is often needed for different types of output formats (separate from the printer language), even when the printer understands the same printer language as a program's output (such as Postscript). Output formats that need to be converted to a printer language include: dvi, Fortran and Raster.&lt;br /&gt;
&lt;br /&gt;
Filters are useful for different types of output. Carriage returns are different for command line output from Bourne shells, MS DOS, text files and Postscript output. Without the right filters, printers can stair-step or text can otherwise be misaligned.&lt;br /&gt;
&lt;br /&gt;
Printer packaging lists its specs, often: supported PDLs, fonts and graphics formats.&lt;br /&gt;
&lt;br /&gt;
===PCL===&lt;br /&gt;
ASCII is a printer language which PCL is an extension of.&lt;br /&gt;
&lt;br /&gt;
===PostScript===&lt;br /&gt;
LPR in base, and CUPS from ports perform the same function of receiving PostScript output and sending it to PostScript capable printers. CUPS allows printers that use other PDL's to be used through PostScript via PPD (PostScript Printer Description) conversions. LPR uses filters to convert from Postscript and other formats to a language a printer understands.&lt;br /&gt;
&lt;br /&gt;
PostScript is the default for both CUPS and Apple. For the most common PDL's: PostScript is considered higher quality than PCL, so more preference is centered around it. There are also very high quality printers that don't use either of these two PDL's.&lt;br /&gt;
&lt;br /&gt;
PostScript printers cost more because of hardware and font license fees from Adobe. However, this company offers PostScript software drivers for free. (Opensource driver software is available as mentioned a few times.) HP computers that have M in the model for Macintosh are PostScript printers (one may want to confirm that the specifications say Postscript).&lt;br /&gt;
&lt;br /&gt;
Conversions for non-PostScript printers rely on PPD's, and filters.&lt;br /&gt;
&lt;br /&gt;
===Conversions===&lt;br /&gt;
Ghostscript is a substitution for PCL printers to work as if they were PostScript. Ghostscript, Foomatic and other printer suites act as filters on LPR. On CUPS, many of these filters plus Gutenprint are able to provide needed PPD's (Postscript Printer Descriptions) for varying printers. {{port|print/foomatic-filters}} may lack compatibility with CUPS, and it conflicts with a needed {{port|print/cups-filters}}.&lt;br /&gt;
&lt;br /&gt;
LPR is able to output to non-PostScript printers by using Ghostscript's {{cmd|gs}} as an input filter through printcap. Ghostscript offers a few conversion programs between Postscript and pdf files.&lt;br /&gt;
&lt;br /&gt;
Ghostscript (under AGPL) can convert PostScript outputs to printer languages which specific non-Postscript printers can interpret. In addition to PCL, Ghostscript makes ESC printers functional. LPRng includes Ghostscript for printer language conversion too. Ghostscript can be used with LPR, CUPS, or LPRng&lt;br /&gt;
&lt;br /&gt;
GhostViewer ({{port|print/gv}}) is a program for viewing Postscript output on the monitor.&lt;br /&gt;
&lt;br /&gt;
===ESC===&lt;br /&gt;
ESC/P (Epson's developed PDL) printers are used in consumer inkjet printers, as well as dot matrix, receipt, thermal, labeling and barcode printers.&lt;br /&gt;
&lt;br /&gt;
===GDI/WIN===&lt;br /&gt;
Win(dos) or GDI printers are generally incompatible with BSD's or Linux. Printers that let the software from the computer run them completely are referred to as dumb printers.&lt;br /&gt;
&lt;br /&gt;
==Components==&lt;br /&gt;
The spool holds printing jobs to be printed in order. Print jobs are held in the {{file|/var/spool/}} directory.&lt;br /&gt;
&lt;br /&gt;
==References/Further Reading==&lt;br /&gt;
* FreeBSD 6 Unleashed&lt;br /&gt;
* Network Administration with FreeBSD 7&lt;br /&gt;
* Building a Server with FreeBSD 7&lt;br /&gt;
* The Complete FreeBSD (2006)&lt;br /&gt;
* https://www.cups.org/&lt;br /&gt;
* http://lprng.com&lt;br /&gt;
* http://www.wonkity.com/~wblock/docs/html/lpdprinting.html&lt;br /&gt;
* https://docs.freebsd.org/en/books/handbook/printing/&lt;br /&gt;
* https://docs.freebsd.org/en/articles/cups/&lt;br /&gt;
* https://www.informit.com/articles/article.aspx?p=167786&lt;br /&gt;
* https://www.cups.org/blog/2018-06-06-demystifying-cups-development.html&lt;br /&gt;
* https://ftp.pwg.org/pub/pwg/liaison/openprinting/presentations/cups-plenary-may-2021.pdf&lt;br /&gt;
* https://www.msweet.org/lprint/&lt;br /&gt;
* https://www.msweet.org/pappl/&lt;br /&gt;
* https://www.pwg.org/3d/index.html&lt;br /&gt;
* https://www.pwg.org/ipp/ippguide.html&lt;br /&gt;
* https://openprinting.github.io/upcoming-technologies/02-ipp-scan/&lt;br /&gt;
(some references are out of date, but still have relevance)&lt;br /&gt;
&lt;br /&gt;
[[Category:New User Tips and FAQs]]&lt;br /&gt;
[[Category:Configuring FreeBSD]]&lt;br /&gt;
[[Category:FreeBSD for Workstations]]&lt;/div&gt;</summary>
		<author><name>Sidetone</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Printing,_about</id>
		<title>Printing, about</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Printing,_about"/>
				<updated>2021-06-28T05:15:00Z</updated>
		
		<summary type="html">&lt;p&gt;Sidetone: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;About printing on FreeBSD: comparisons of printing protocols; about filters, Page Description Languages (PDL's) and printer specifications.&lt;br /&gt;
&lt;br /&gt;
==Protocols==&lt;br /&gt;
LPD (Line Printer Daemon) and IPP (Internet Printing Protocol) are printer protocols defined by IETF. LPD is described by RFC 1179 (not as a standard): it uses service port 515. IPP is a standard defined by RFC 8011 and RFC 3510: it uses service port 631. Access control and security features are available on IPP that aren't on LPD. RFC 2569 is a memo on mapping between LPD and IPP.&lt;br /&gt;
&lt;br /&gt;
pdl-datastream on service port 9100 is for proprietary printers and proprietary local network printer servers. This is often used by JetDirect products.&lt;br /&gt;
&lt;br /&gt;
Printers can also use SMB (over Samba) as a protocol.&lt;br /&gt;
&lt;br /&gt;
==Comparison of print architectures==&lt;br /&gt;
===LPR, LPRng===&lt;br /&gt;
LPR is the default with FreeBSD. LPRng is a more advanced implementation of LPR. These two programs use and can alter {{man|printcap|5}}. LPR and LPRng both use the LPD protocol over service port 515.&lt;br /&gt;
&lt;br /&gt;
LPR and LPRng require manual set up through custom shell scripts of filters to convert plain text or other types of data, even between PostScript outputs to PostScript capable printers. {{port|print/a2ps}} can simplify this task of converting ASCII to PostScript output. LPR's intended use was for text printing.&lt;br /&gt;
&lt;br /&gt;
LPRng (LPR Next Generation) is an advanced replacement for LPR. It is under the GPL and Artistic licenses. IFHP is a filter that determines the format and does conversions, including by use of Ghostscript. LPRng takes care of format conversions through its filters, and of PostScript output through Ghostscript. LPRng was designed to be more secure than LPR. LPRng is found at {{port|sysutils/LPRng}}. It uses {{file|printcap}}, {{file|lpd.conf}}, and {{file|lpd.perms}} for configuration.&lt;br /&gt;
&lt;br /&gt;
lprng in services ({{file|rc.conf}}) requires that lpr and cupsd be disabled. LPR and LPRng daemons can be enabled or disabled through {{file|rc.conf}}. LPR compilation in the world build can be disabled through {{man|src.conf|5}}&lt;br /&gt;
&lt;br /&gt;
===CUPS===&lt;br /&gt;
The Common Unix Printing System ({{port|print/cups}}) framework supports more printers than LPR and LPRng, and it is more advanced. PCL printers are more readily supported under CUPS. CUPS can be administered on the command line, through the web interface, and through a GUI.&lt;br /&gt;
&lt;br /&gt;
The default protocol that CUPS uses is IPP. In addition to IPP, CUPS also has protocol support for: LPD, SMB (Server Message Block) and pdl-datastream. CUPS originally started out over LPD. Samba is only needed for printing on LANs that include Windows computers.&lt;br /&gt;
&lt;br /&gt;
CUPS has its own implementation of LPR in under {{file|/usr/local/}}, as opposed to LPR's default location under {{file|/usr/}}. The LPR files that CUPS uses can be set in {{file|/usr/local/etc/cups/printcap}}. On the command line, CUPS uses BSD LPR style commands.&lt;br /&gt;
&lt;br /&gt;
The command cupsctl can adjust settings in cupsd.conf.&lt;br /&gt;
&lt;br /&gt;
CUPS supports encryption for administration and printing, which wasn't available in older versions. Kerberos will be replaced by OAuth and PAM for access control and security by CUPS 3.0.&lt;br /&gt;
&lt;br /&gt;
CUPS is compatible for use with Zeroconf.&lt;br /&gt;
&lt;br /&gt;
This print architecture uses Apache License 2.0. Legacy versions of CUPS were under GPL.&lt;br /&gt;
&lt;br /&gt;
===More===&lt;br /&gt;
CUPS and LPRng software conflicts so cannot be installed together. LPR and CUPS can coexist, but only one service is needed.&lt;br /&gt;
&lt;br /&gt;
Some programs, such as forks of OpenOffice (such as LibreOffice or Apache OpenOffice) provide their own drivers that output to LPR in place of already configured filters like Ghostscript. Their printing has to be set up independently from an already working CUPS or LPR print configuration.&lt;br /&gt;
&lt;br /&gt;
The Printer Working Group (PWG) intends to offer driverless scanning over IPP. However, there are no IPP scanners and there's no working program from PWG, so SANE is still the de-facto standard for open-source printing. SANE is under GPL, and it is unable to be changed to LGPL by the wishes of its maintainers, because it has multiple contributors.&lt;br /&gt;
&lt;br /&gt;
==Modern CUPS specifications==&lt;br /&gt;
As of future CUPS version 3.0, legacy drivers and PDL's will no longer be used. CUPS 2.3 already supports modern CUPS replacements for printer drivers.&lt;br /&gt;
&lt;br /&gt;
PWG Raster ('image/pwg-raster'), JPEG ('image/jpeg'), and PDF ('application/pdf') are modern formats directly supported by newer printers. PWG Raster and JPEG formats are supported by most new printers since 2010.&lt;br /&gt;
&lt;br /&gt;
There are also IPP-Everywhere compliant printers.&lt;br /&gt;
&lt;br /&gt;
Airprint is an alternate technology for Apple MacOS and i-products. It uses Apple Raster ('image/urf'). Mopria is a printer technology to print from Android, which is intended to be used with PAPPL.&lt;br /&gt;
&lt;br /&gt;
'text/plain' is supported by simple printers. 'application/octet-stream' tells capable printers which format to use. For printers without this capability, the format has to be specified through configuration or through print commands.&lt;br /&gt;
&lt;br /&gt;
The WiFi alliance has a printer specification.&lt;br /&gt;
&lt;br /&gt;
Industrial, label, legacy and other specialized printers don't have the capability for these modern printing formats. LPrint is intended for label printers to work with CUPS, and a few are already supported. The PAPPL framework could be the replacement for drivers of legacy, specialty and other printers to work with newer versions of CUPS.&lt;br /&gt;
&lt;br /&gt;
Legacy printers may have an application that addresses their Printer Description Language for use with the newer versions of CUPS. PCL has hp-printer-app, and PostScript has ps-printer-app.&lt;br /&gt;
&lt;br /&gt;
For 3D printers, there are a few formats supported: 3MF, U3D, PRC and PWG compliant G-code. Different versions of PDF have support for either U3D and PRC.&lt;br /&gt;
&lt;br /&gt;
==Legacy specifications: filters/drivers/PDL's==&lt;br /&gt;
Postscript (PS) and PCL (Printer Command Language) are printer languages known as Page Description Languages (PDL's) supported by the majority of printers for interpreting and printing jobs. These two PDLs are alternate models developed by Adobe and HP respectively. PJL is another type of printer language for controlling features. These legacy specifications work up to CUPS version 2.4. Postscript is defined by 'application/postscript', and PCL is defined by 'application/vnd.hp-pcl'.&lt;br /&gt;
&lt;br /&gt;
Many programs simply output data as Postscript. A filter is often needed for different types of output formats (separate from the printer language), even when the printer understands the same printer language as a program's output (such as Postscript). Output formats that need to be converted to a printer language include: dvi, Fortran and Raster.&lt;br /&gt;
&lt;br /&gt;
Filters are useful for different types of output. Carriage returns are different for command line output from Bourne shells, MS DOS, text files and Postscript output. Without the right filters, printers can stair-step or text can otherwise be misaligned.&lt;br /&gt;
&lt;br /&gt;
Printer packaging lists its specs, often: supported PDLs, fonts and graphics formats.&lt;br /&gt;
&lt;br /&gt;
===PCL===&lt;br /&gt;
ASCII is a printer language which PCL is an extension of.&lt;br /&gt;
&lt;br /&gt;
===PostScript===&lt;br /&gt;
LPR in base, and CUPS from ports perform the same function of receiving PostScript output and sending it to PostScript capable printers. CUPS allows printers that use other PDL's to be used through PostScript via PPD (PostScript Printer Description) conversions. LPR uses filters to convert from Postscript and other formats to a language a printer understands.&lt;br /&gt;
&lt;br /&gt;
PostScript is the default for both CUPS and Apple. For the most common PDL's: PostScript is considered higher quality than PCL, so more preference is centered around it. There are also very high quality printers that don't use either of these two PDL's.&lt;br /&gt;
&lt;br /&gt;
PostScript printers cost more because of hardware and font license fees from Adobe. However, this company offers PostScript software drivers for free. (Opensource driver software is available as mentioned a few times.) HP computers that have M in the model for Macintosh are PostScript printers (one may want to confirm that the specifications say Postscript).&lt;br /&gt;
&lt;br /&gt;
Conversions for non-PostScript printers rely on PPD's, and filters.&lt;br /&gt;
&lt;br /&gt;
===Conversions===&lt;br /&gt;
Ghostscript is a substitution for PCL printers to work as if they were PostScript. Ghostscript, Foomatic and other printer suites act as filters on LPR. On CUPS, many of these filters plus Gutenprint are able to provide needed PPD's (Postscript Printer Descriptions) for varying printers. {{port|print/foomatic-filters}} may lack compatibility with CUPS, and it conflicts with a needed {{port|print/cups-filters}}.&lt;br /&gt;
&lt;br /&gt;
LPR is able to output to non-PostScript printers by using Ghostscript's {{cmd|gs}} as an input filter through printcap. Ghostscript offers a few conversion programs between Postscript and pdf files.&lt;br /&gt;
&lt;br /&gt;
Ghostscript (under AGPL) can convert PostScript outputs to printer languages which specific non-Postscript printers can interpret. In addition to PCL, Ghostscript makes ESC printers functional. LPRng includes Ghostscript for printer language conversion too. Ghostscript can be used with LPR, CUPS, or LPRng&lt;br /&gt;
&lt;br /&gt;
GhostViewer ({{port|print/gv}}) is a program for viewing Postscript output on the monitor.&lt;br /&gt;
&lt;br /&gt;
===ESC===&lt;br /&gt;
ESC/P (Epson's developed PDL) printers are used in consumer inkjet printers, as well as dot matrix, receipt, thermal, labeling and barcode printers.&lt;br /&gt;
&lt;br /&gt;
===GDI/WIN===&lt;br /&gt;
Win(dos) or GDI printers are generally incompatible with BSD's or Linux. Printers that let the software from the computer run them completely are referred to as dumb printers.&lt;br /&gt;
&lt;br /&gt;
==Components==&lt;br /&gt;
The spool holds printing jobs to be printed in order. Print jobs are held in the {{file|/var/spool/}} directory.&lt;br /&gt;
&lt;br /&gt;
==References/Further Reading==&lt;br /&gt;
* FreeBSD 6 Unleashed&lt;br /&gt;
* Network Administration with FreeBSD 7&lt;br /&gt;
* Building a Server with FreeBSD 7&lt;br /&gt;
* The Complete FreeBSD (2006)&lt;br /&gt;
* https://www.cups.org/&lt;br /&gt;
* http://lprng.com&lt;br /&gt;
* http://www.wonkity.com/~wblock/docs/html/lpdprinting.html&lt;br /&gt;
* https://docs.freebsd.org/en/books/handbook/printing/&lt;br /&gt;
* https://docs.freebsd.org/en/articles/cups/&lt;br /&gt;
* https://www.informit.com/articles/article.aspx?p=167786&lt;br /&gt;
* https://www.cups.org/blog/2018-06-06-demystifying-cups-development.html&lt;br /&gt;
* https://ftp.pwg.org/pub/pwg/liaison/openprinting/presentations/cups-plenary-may-2021.pdf&lt;br /&gt;
* https://www.msweet.org/lprint/&lt;br /&gt;
* https://www.msweet.org/pappl/&lt;br /&gt;
* https://www.pwg.org/3d/index.html&lt;br /&gt;
* https://www.pwg.org/ipp/ippguide.html&lt;br /&gt;
* https://openprinting.github.io/upcoming-technologies/02-ipp-scan/&lt;br /&gt;
(some references are out of date, but still have relevance)&lt;br /&gt;
&lt;br /&gt;
[[Category:New User Tips and FAQs]]&lt;br /&gt;
[[Category:Configuring FreeBSD]]&lt;br /&gt;
[[Category:FreeBSD for Workstations]]&lt;/div&gt;</summary>
		<author><name>Sidetone</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Window_Managers,_BSD</id>
		<title>Window Managers, BSD</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Window_Managers,_BSD"/>
				<updated>2021-06-27T23:18:37Z</updated>
		
		<summary type="html">&lt;p&gt;Sidetone: category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;List of BSD window managers that contain BSD/ISC/MIT style licenses.&lt;br /&gt;
&lt;br /&gt;
==By Resource Requirements==&lt;br /&gt;
===Lightest===&lt;br /&gt;
* {{port|x11-wm/antiwm|MIT}} - C - fullscreen&lt;br /&gt;
* {{port|x11-wm/bspwm|BSD2}} - tiling&lt;br /&gt;
* {{port|x11-wm/ctwm|MIT}} Claude's Tab Window Manager; twm extension&lt;br /&gt;
* {{port|x11-wm/cwm|ISCL}} - C - floating&lt;br /&gt;
* {{port|x11-wm/dwm|MIT}} Dynamic Window Manager; Minimalist window manager that uses C programming language for custom desktop configuration&lt;br /&gt;
* {{port|x11-wm/tinywm|Public Domain}}&lt;br /&gt;
* {{port|x11-wm/twm|MIT}} - C Xlib - reparenting&lt;br /&gt;
* {{port|x11-wm/vtwm|MIT}} - twm variant&lt;br /&gt;
&lt;br /&gt;
===Light===&lt;br /&gt;
* {{port|x11-wm/blackbox|MIT}} - C++ - floating&lt;br /&gt;
* {{port|x11-wm/i3|BSD3}} - tiling&lt;br /&gt;
* {{port|x11-wm/jwm|MIT}} - C - floating&lt;br /&gt;
* {{port|x11-wm/qtile|MIT}} - python - tiling&lt;br /&gt;
&lt;br /&gt;
===Heavy===&lt;br /&gt;
* {{port|x11-wm/enlightenment|BSD2}}, x11-wm/e16 - C&lt;br /&gt;
* {{port|x11-wm/fluxbox|MIT}} - C++ - floating&lt;br /&gt;
* {{port|x11-wm/hs-xmonad|BSD3}} - haskell - heavy dependencies&lt;br /&gt;
&lt;br /&gt;
===Unspecified===&lt;br /&gt;
* {{port|x11-wm/wmii|MIT}} Window Manager Improved, Improved; Minimalist and dynamic window manager&lt;br /&gt;
* {{port|x11-wm/compton|MIT}}&lt;br /&gt;
* {{port|x11-wm/euclid-wm|BSD3}}&lt;br /&gt;
* {{port|x11-wm/golem|BSD3}}&lt;br /&gt;
* {{port|x11-wm/mcwm|ISCL}}&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
===9wm derivatives===&lt;br /&gt;
* {{port|x11-wm/aewm|9wm derived}}&lt;br /&gt;
* {{port|x11-wm/evilwm|9wm derived}}&lt;br /&gt;
* {{port|x11-wm/w9wm|9wm derived}}&lt;br /&gt;
===Unclear===&lt;br /&gt;
* {{port|x11-wm/fvwm|unspecified}} - There is supposedly a version with a BSD compatible license: the license of its prerelease version is unspecified. {{port|x11-wm/fvwm2}} and FVWM3 (not in ports) have GPL type licenses.&lt;br /&gt;
&lt;br /&gt;
[[Category:FreeBSD for Workstations]]&lt;br /&gt;
[[Category:FreeBSD Multimedia]]&lt;br /&gt;
[[Category:Why FreeBSD?]]&lt;/div&gt;</summary>
		<author><name>Sidetone</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Printing,_about</id>
		<title>Printing, about</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Printing,_about"/>
				<updated>2021-06-24T17:49:22Z</updated>
		
		<summary type="html">&lt;p&gt;Sidetone: /* PostScript */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;About printing on FreeBSD: comparisons of printing protocols; about filters, Page Description Languages (PDL's) and printer specifications.&lt;br /&gt;
&lt;br /&gt;
==Protocols==&lt;br /&gt;
LPD (Line Printer Daemon) and IPP (Internet Printing Protocol) are printer protocols defined by IETF. LPD is described by RFC 1179 (not as a standard): it uses service port 515. IPP is defined by RFC 8011 and RFC 3510: it uses service port 631. Access control and security features are available on IPP that aren't on LPD. RFC 2569 is a memo on mapping between LPD and IPP.&lt;br /&gt;
&lt;br /&gt;
pdl-datastream on service port 9100 is for proprietary printers and proprietary local network printer servers. This is often used by JetDirect products.&lt;br /&gt;
&lt;br /&gt;
Printers can also use SMB (over Samba) as a protocol.&lt;br /&gt;
&lt;br /&gt;
==Comparison of print architectures==&lt;br /&gt;
===LPR, LPRng===&lt;br /&gt;
LPR is the default with FreeBSD. LPRng is a more advanced implementation of LPR. These two programs use and can alter {{man|printcap|5}}. LPR and LPRng both use the LPD protocol over service port 515.&lt;br /&gt;
&lt;br /&gt;
LPR and LPRng require manual set up through custom shell scripts of filters to convert plain text or other types of data, even between PostScript outputs to PostScript able printers. {{port|print/a2ps}} can simplify this task of converting ASCII to PostScript output. LPR's intended use was for text printing.&lt;br /&gt;
&lt;br /&gt;
LPRng (LPR Next Generation) is an advanced replacement for LPR. It is under the GPL and Artistic licenses. IFHP determines the format and does conversions, including by use of Ghostscript. LPRng takes care of format conversions through its filters, and of PostScript output through Ghostscript. LPRng was designed to be more secure than LPR. LPRng is found at {{port|sysutils/LPRng}}. It uses {{file|printcap}}, {{file|lpd.conf}}, and {{file|lpd.perms}} for configuration.&lt;br /&gt;
&lt;br /&gt;
lprng in services ({{file|rc.conf}}) requires that lpr and cupsd be disabled. LPR and LPRng daemons can be enabled or disabled through {{file|rc.conf}}. LPR compilation in the world build can be disabled through {{man|src.conf|5}}&lt;br /&gt;
&lt;br /&gt;
===CUPS===&lt;br /&gt;
The CUPS framework supports more printers than LPR and LPRng, and it is more advanced. PCL printers are more readily supported under CUPS. CUPS can be administered on the command line, through the web interface, and through a GUI.&lt;br /&gt;
&lt;br /&gt;
The default protocol that CUPS uses is IPP. In addition to IPP, CUPS also has protocol support for: LPD, SMB (Server Message Block) and pdl-datastream. CUPS originally started out over LPD. Samba is only needed for printing on LANs that include Windows computers.&lt;br /&gt;
&lt;br /&gt;
CUPS has its own implementation of LPR in under {{file|/usr/local/}}, as opposed to LPR's default location under {{file|/usr/}}. The LPR files that CUPS uses can be set in {{file|/usr/local/etc/cups/printcap}}. On the command line, CUPS uses BSD LPR style commands.&lt;br /&gt;
&lt;br /&gt;
The command cupsctl can adjust settings in cupsd.conf.&lt;br /&gt;
&lt;br /&gt;
CUPS supports encryption for administration and printing, which wasn't available in older versions. Kerberos will be replaced by OAuth and PAM for access control and security by CUPS 3.0.&lt;br /&gt;
&lt;br /&gt;
CUPS is compatible for use with Zeroconf.&lt;br /&gt;
&lt;br /&gt;
This print architecture uses Apache License 2.0. Legacy versions of CUPS were under GPL.&lt;br /&gt;
&lt;br /&gt;
===More===&lt;br /&gt;
CUPS and LPRng software conflicts so cannot be installed together. LPR and CUPS can coexist, but only one service is needed.&lt;br /&gt;
&lt;br /&gt;
Some programs, such as forks of OpenOffice (such as LibreOffice or Apache OpenOffice) provide their own drivers that output to LPR in place of already configured filters like Ghostscript. Their printing has to be set up independently from an already working CUPS or LPR print configuration.&lt;br /&gt;
&lt;br /&gt;
The Printer Working Group (PWG) intends to offer driverless scanning over IPP. However, there are no IPP scanners and there's no working program from PWG, so SANE is still the de-facto standard for open-source printing. SANE is under GPL, and it is unable to be changed to LGPL by the wishes of its maintainers, because it has multiple contributors.&lt;br /&gt;
&lt;br /&gt;
==Modern CUPS specifications==&lt;br /&gt;
As of future CUPS version 3.0, legacy drivers and PDL's will no longer be used. CUPS 2.3 already supports modern CUPS replacements for printer drivers.&lt;br /&gt;
&lt;br /&gt;
PWG Raster ('image/pwg-raster'), JPEG ('image/jpeg'), and PDF ('application/pdf') are modern formats directly supported by newer printers. PWG Raster and JPEG formats are supported by most new printers since 2010.&lt;br /&gt;
&lt;br /&gt;
There are also IPP-Everywhere compliant printers.&lt;br /&gt;
&lt;br /&gt;
Airprint is an alternate technology for Apple MacOS and i-products. It uses Apple Raster ('image/urf'). Mopria is a printer technology to print from Android, which is intended to be used with PAPPL.&lt;br /&gt;
&lt;br /&gt;
'text/plain' is supported by simple printers. 'application/octet-stream' tells capable printers which format to use. For printers without this capability, the format has to be specified through configuration or through print commands.&lt;br /&gt;
&lt;br /&gt;
The WiFi alliance has a printer specification.&lt;br /&gt;
&lt;br /&gt;
Industrial, label, legacy and other specialized printers don't have the capability for these modern printing formats. LPrint is intended for label printers to work with CUPS, and a few are already supported. The PAPPL framework could be the replacement for drivers of legacy, specialty and other printers to work with newer versions of CUPS.&lt;br /&gt;
&lt;br /&gt;
Legacy printers may have an application that addresses their Printer Description Language for use with the newer versions of CUPS. PCL has hp-printer-app, and PostScript has ps-printer-app.&lt;br /&gt;
&lt;br /&gt;
For 3D printers, there are a few formats supported: 3MF, U3D, PRC and PWG compliant G-code. Different versions of PDF have support for either U3D and PRC.&lt;br /&gt;
&lt;br /&gt;
==Legacy specifications: filters/drivers/PDL's==&lt;br /&gt;
Postscript (PS) and PCL (Printer Command Language) are printer languages known as Page Description Languages (PDL's) supported by the majority of printers for interpreting and printing jobs. These two PDLs are alternate models developed by Adobe and HP respectively. PJL is another type of printer language for controlling features. These legacy specifications work up to CUPS version 2.4. Postscript is defined by 'application/postscript', and PCL is defined by 'application/vnd.hp-pcl'.&lt;br /&gt;
&lt;br /&gt;
Many programs simply output data as Postscript. A filter is often needed for different types of output formats (separate from the printer language), even when the printer understands the same printer language as a program's output (such as Postscript). Output formats that need to be converted to a printer language include: dvi, Fortran and Raster.&lt;br /&gt;
&lt;br /&gt;
Filters are useful for different types of output. Carriage returns are different for command line output from Bourne shells, MS DOS, text files and Postscript output. Without the right filters, printers can stair-step or text can otherwise be misaligned.&lt;br /&gt;
&lt;br /&gt;
Printer packaging lists its specs, often: supported PDLs, fonts and graphics formats.&lt;br /&gt;
&lt;br /&gt;
===PCL===&lt;br /&gt;
ASCII is a printer language which PCL is an extension of.&lt;br /&gt;
&lt;br /&gt;
===PostScript===&lt;br /&gt;
LPR in base, and CUPS from ports perform the same function of receiving PostScript output and sending it to PostScript capable printers. CUPS allows printers that use other PDL's to be used through PostScript via PPD (PostScript Printer Description) conversions. LPR uses filters to convert from Postscript and other formats to a language a printer understands.&lt;br /&gt;
&lt;br /&gt;
PostScript is the default for both CUPS and Apple. For the most common PDL's: PostScript is considered higher quality than PCL, so more preference is centered around it. There are also very high quality printers that don't use either of these two PDL's.&lt;br /&gt;
&lt;br /&gt;
PostScript printers cost more because of hardware and font license fees from Adobe. However, this company offers PostScript software drivers for free. (Opensource driver software is available as mentioned a few times.) HP computers that have M in the model for Macintosh are PostScript printers (one may want to confirm that the specifications say Postscript).&lt;br /&gt;
&lt;br /&gt;
Conversions for non-PostScript printers rely on PPD's, and filters.&lt;br /&gt;
&lt;br /&gt;
===Conversions===&lt;br /&gt;
Ghostscript is a substitution for PCL printers to work as if they were PostScript. Ghostscript, Foomatic and other printer suites act as filters on LPR. On CUPS, many of these filters plus Gutenprint are able to provide needed PPD's (Postscript Printer Descriptions) for varying printers. {{port|print/foomatic-filters}} may lack compatibility with CUPS, and it conflicts with a needed {{port|print/cups-filters}}.&lt;br /&gt;
&lt;br /&gt;
LPR is able to output to non-PostScript printers by using Ghostscript's {{cmd|gs}} as an input filter through printcap. Ghostscript offers a few conversion programs between Postscript and pdf files.&lt;br /&gt;
&lt;br /&gt;
Ghostscript (under AGPL) can convert PostScript outputs to printer languages which specific non-Postscript printers can interpret. In addition to PCL, Ghostscript makes ESC printers functional. LPRng includes Ghostscript for printer language conversion too. Ghostscript can be used with LPR, CUPS, or LPRng&lt;br /&gt;
&lt;br /&gt;
GhostViewer ({{port|print/gv}}) is a program for viewing Postscript output on the monitor.&lt;br /&gt;
&lt;br /&gt;
===ESC===&lt;br /&gt;
ESC/P (Epson's developed PDL) printers are used in consumer inkjet printers, as well as dot matrix, receipt, thermal, labeling and barcode printers.&lt;br /&gt;
&lt;br /&gt;
===GDI/WIN===&lt;br /&gt;
Win(dos) or GDI printers are generally incompatible with BSD's or Linux. Printers that let the software from the computer run them completely are referred to as dumb printers.&lt;br /&gt;
&lt;br /&gt;
==Components==&lt;br /&gt;
The spool holds printing jobs to be printed in order. Print jobs are held in the {{file|/var/spool/}} directory.&lt;br /&gt;
&lt;br /&gt;
==References/Further Reading==&lt;br /&gt;
* FreeBSD 6 Unleashed&lt;br /&gt;
* Network Administration with FreeBSD 7&lt;br /&gt;
* Building a Server with FreeBSD 7&lt;br /&gt;
* The Complete FreeBSD (2006)&lt;br /&gt;
* https://www.cups.org/&lt;br /&gt;
* http://lprng.com&lt;br /&gt;
* http://www.wonkity.com/~wblock/docs/html/lpdprinting.html&lt;br /&gt;
* https://docs.freebsd.org/en/books/handbook/printing/&lt;br /&gt;
* https://docs.freebsd.org/en/articles/cups/&lt;br /&gt;
* https://www.informit.com/articles/article.aspx?p=167786&lt;br /&gt;
* https://www.cups.org/blog/2018-06-06-demystifying-cups-development.html&lt;br /&gt;
* https://ftp.pwg.org/pub/pwg/liaison/openprinting/presentations/cups-plenary-may-2021.pdf&lt;br /&gt;
* https://www.msweet.org/lprint/&lt;br /&gt;
* https://www.msweet.org/pappl/&lt;br /&gt;
* https://www.pwg.org/3d/index.html&lt;br /&gt;
* https://www.pwg.org/ipp/ippguide.html&lt;br /&gt;
* https://openprinting.github.io/upcoming-technologies/02-ipp-scan/&lt;br /&gt;
(some references are out of date, but still have relevance)&lt;br /&gt;
&lt;br /&gt;
[[Category:New User Tips and FAQs]]&lt;br /&gt;
[[Category:Configuring FreeBSD]]&lt;br /&gt;
[[Category:FreeBSD for Workstations]]&lt;/div&gt;</summary>
		<author><name>Sidetone</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Printing,_about</id>
		<title>Printing, about</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Printing,_about"/>
				<updated>2021-06-22T17:04:52Z</updated>
		
		<summary type="html">&lt;p&gt;Sidetone: /* Modern CUPS specifications */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;About printing on FreeBSD: comparisons of printing protocols; about filters, Page Description Languages (PDL's) and printer specifications.&lt;br /&gt;
&lt;br /&gt;
==Protocols==&lt;br /&gt;
LPD (Line Printer Daemon) and IPP (Internet Printing Protocol) are printer protocols defined by IETF. LPD is described by RFC 1179 (not as a standard): it uses service port 515. IPP is defined by RFC 8011 and RFC 3510: it uses service port 631. Access control and security features are available on IPP that aren't on LPD. RFC 2569 is a memo on mapping between LPD and IPP.&lt;br /&gt;
&lt;br /&gt;
pdl-datastream on service port 9100 is for proprietary printers and proprietary local network printer servers. This is often used by JetDirect products.&lt;br /&gt;
&lt;br /&gt;
Printers can also use SMB (over Samba) as a protocol.&lt;br /&gt;
&lt;br /&gt;
==Comparison of print architectures==&lt;br /&gt;
===LPR, LPRng===&lt;br /&gt;
LPR is the default with FreeBSD. LPRng is a more advanced implementation of LPR. These two programs use and can alter {{man|printcap|5}}. LPR and LPRng both use the LPD protocol over service port 515.&lt;br /&gt;
&lt;br /&gt;
LPR and LPRng require manual set up through custom shell scripts of filters to convert plain text or other types of data, even between PostScript outputs to PostScript able printers. {{port|print/a2ps}} can simplify this task of converting ASCII to PostScript output. LPR's intended use was for text printing.&lt;br /&gt;
&lt;br /&gt;
LPRng (LPR Next Generation) is an advanced replacement for LPR. It is under the GPL and Artistic licenses. IFHP determines the format and does conversions, including by use of Ghostscript. LPRng takes care of format conversions through its filters, and of PostScript output through Ghostscript. LPRng was designed to be more secure than LPR. LPRng is found at {{port|sysutils/LPRng}}. It uses {{file|printcap}}, {{file|lpd.conf}}, and {{file|lpd.perms}} for configuration.&lt;br /&gt;
&lt;br /&gt;
lprng in services ({{file|rc.conf}}) requires that lpr and cupsd be disabled. LPR and LPRng daemons can be enabled or disabled through {{file|rc.conf}}. LPR compilation in the world build can be disabled through {{man|src.conf|5}}&lt;br /&gt;
&lt;br /&gt;
===CUPS===&lt;br /&gt;
The CUPS framework supports more printers than LPR and LPRng, and it is more advanced. PCL printers are more readily supported under CUPS. CUPS can be administered on the command line, through the web interface, and through a GUI.&lt;br /&gt;
&lt;br /&gt;
The default protocol that CUPS uses is IPP. In addition to IPP, CUPS also has protocol support for: LPD, SMB (Server Message Block) and pdl-datastream. CUPS originally started out over LPD. Samba is only needed for printing on LANs that include Windows computers.&lt;br /&gt;
&lt;br /&gt;
CUPS has its own implementation of LPR in under {{file|/usr/local/}}, as opposed to LPR's default location under {{file|/usr/}}. The LPR files that CUPS uses can be set in {{file|/usr/local/etc/cups/printcap}}. On the command line, CUPS uses BSD LPR style commands.&lt;br /&gt;
&lt;br /&gt;
The command cupsctl can adjust settings in cupsd.conf.&lt;br /&gt;
&lt;br /&gt;
CUPS supports encryption for administration and printing, which wasn't available in older versions. Kerberos will be replaced by OAuth and PAM for access control and security by CUPS 3.0.&lt;br /&gt;
&lt;br /&gt;
CUPS is compatible for use with Zeroconf.&lt;br /&gt;
&lt;br /&gt;
This print architecture uses Apache License 2.0. Legacy versions of CUPS were under GPL.&lt;br /&gt;
&lt;br /&gt;
===More===&lt;br /&gt;
CUPS and LPRng software conflicts so cannot be installed together. LPR and CUPS can coexist, but only one service is needed.&lt;br /&gt;
&lt;br /&gt;
Some programs, such as forks of OpenOffice (such as LibreOffice or Apache OpenOffice) provide their own drivers that output to LPR in place of already configured filters like Ghostscript. Their printing has to be set up independently from an already working CUPS or LPR print configuration.&lt;br /&gt;
&lt;br /&gt;
The Printer Working Group (PWG) intends to offer driverless scanning over IPP. However, there are no IPP scanners and there's no working program from PWG, so SANE is still the de-facto standard for open-source printing. SANE is under GPL, and it is unable to be changed to LGPL by the wishes of its maintainers, because it has multiple contributors.&lt;br /&gt;
&lt;br /&gt;
==Modern CUPS specifications==&lt;br /&gt;
As of future CUPS version 3.0, legacy drivers and PDL's will no longer be used. CUPS 2.3 already supports modern CUPS replacements for printer drivers.&lt;br /&gt;
&lt;br /&gt;
PWG Raster ('image/pwg-raster'), JPEG ('image/jpeg'), and PDF ('application/pdf') are modern formats directly supported by newer printers. PWG Raster and JPEG formats are supported by most new printers since 2010.&lt;br /&gt;
&lt;br /&gt;
There are also IPP-Everywhere compliant printers.&lt;br /&gt;
&lt;br /&gt;
Airprint is an alternate technology for Apple MacOS and i-products. It uses Apple Raster ('image/urf'). Mopria is a printer technology to print from Android, which is intended to be used with PAPPL.&lt;br /&gt;
&lt;br /&gt;
'text/plain' is supported by simple printers. 'application/octet-stream' tells capable printers which format to use. For printers without this capability, the format has to be specified through configuration or through print commands.&lt;br /&gt;
&lt;br /&gt;
The WiFi alliance has a printer specification.&lt;br /&gt;
&lt;br /&gt;
Industrial, label, legacy and other specialized printers don't have the capability for these modern printing formats. LPrint is intended for label printers to work with CUPS, and a few are already supported. The PAPPL framework could be the replacement for drivers of legacy, specialty and other printers to work with newer versions of CUPS.&lt;br /&gt;
&lt;br /&gt;
Legacy printers may have an application that addresses their Printer Description Language for use with the newer versions of CUPS. PCL has hp-printer-app, and PostScript has ps-printer-app.&lt;br /&gt;
&lt;br /&gt;
For 3D printers, there are a few formats supported: 3MF, U3D, PRC and PWG compliant G-code. Different versions of PDF have support for either U3D and PRC.&lt;br /&gt;
&lt;br /&gt;
==Legacy specifications: filters/drivers/PDL's==&lt;br /&gt;
Postscript (PS) and PCL (Printer Command Language) are printer languages known as Page Description Languages (PDL's) supported by the majority of printers for interpreting and printing jobs. These two PDLs are alternate models developed by Adobe and HP respectively. PJL is another type of printer language for controlling features. These legacy specifications work up to CUPS version 2.4. Postscript is defined by 'application/postscript', and PCL is defined by 'application/vnd.hp-pcl'.&lt;br /&gt;
&lt;br /&gt;
Many programs simply output data as Postscript. A filter is often needed for different types of output formats (separate from the printer language), even when the printer understands the same printer language as a program's output (such as Postscript). Output formats that need to be converted to a printer language include: dvi, Fortran and Raster.&lt;br /&gt;
&lt;br /&gt;
Filters are useful for different types of output. Carriage returns are different for command line output from Bourne shells, MS DOS, text files and Postscript output. Without the right filters, printers can stair-step or text can otherwise be misaligned.&lt;br /&gt;
&lt;br /&gt;
Printer packaging lists its specs, often: supported PDLs, fonts and graphics formats.&lt;br /&gt;
&lt;br /&gt;
===PCL===&lt;br /&gt;
ASCII is a printer language which PCL is an extension of.&lt;br /&gt;
&lt;br /&gt;
===PostScript===&lt;br /&gt;
LPR in base, and CUPS from ports perform the same function of receiving PostScript output and sending it to PostScript capable printers. CUPS allows printers that use other PCL's to be used through PostScript via PPD (PostScript Printer Description) conversions.&lt;br /&gt;
&lt;br /&gt;
PostScript is the default for both CUPS and Apple. For the most common PDL's: PostScript is considered higher quality than PCL, so more preference is centered around it. There are also very high quality printers that don't use either of these two PDL's.&lt;br /&gt;
&lt;br /&gt;
PostScript printers cost more because of hardware and font license fees from Adobe. However, this company offers PostScript software drivers for free. (Opensource driver software is available as mentioned a few times.) HP computers that have M in the model for Macintosh are PostScript printers (one may want to confirm that the specifications say Postscript).&lt;br /&gt;
&lt;br /&gt;
Conversions for non-PostScript printers rely on PPD's, and filters.&lt;br /&gt;
&lt;br /&gt;
===Conversions===&lt;br /&gt;
Ghostscript is a substitution for PCL printers to work as if they were PostScript. Ghostscript, Foomatic and other printer suites act as filters on LPR. On CUPS, many of these filters plus Gutenprint are able to provide needed PPD's (Postscript Printer Descriptions) for varying printers. {{port|print/foomatic-filters}} may lack compatibility with CUPS, and it conflicts with a needed {{port|print/cups-filters}}.&lt;br /&gt;
&lt;br /&gt;
LPR is able to output to non-PostScript printers by using Ghostscript's {{cmd|gs}} as an input filter through printcap. Ghostscript offers a few conversion programs between Postscript and pdf files.&lt;br /&gt;
&lt;br /&gt;
Ghostscript (under AGPL) can convert PostScript outputs to printer languages which specific non-Postscript printers can interpret. In addition to PCL, Ghostscript makes ESC printers functional. LPRng includes Ghostscript for printer language conversion too. Ghostscript can be used with LPR, CUPS, or LPRng&lt;br /&gt;
&lt;br /&gt;
GhostViewer ({{port|print/gv}}) is a program for viewing Postscript output on the monitor.&lt;br /&gt;
&lt;br /&gt;
===ESC===&lt;br /&gt;
ESC/P (Epson's developed PDL) printers are used in consumer inkjet printers, as well as dot matrix, receipt, thermal, labeling and barcode printers.&lt;br /&gt;
&lt;br /&gt;
===GDI/WIN===&lt;br /&gt;
Win(dos) or GDI printers are generally incompatible with BSD's or Linux. Printers that let the software from the computer run them completely are referred to as dumb printers.&lt;br /&gt;
&lt;br /&gt;
==Components==&lt;br /&gt;
The spool holds printing jobs to be printed in order. Print jobs are held in the {{file|/var/spool/}} directory.&lt;br /&gt;
&lt;br /&gt;
==References/Further Reading==&lt;br /&gt;
* FreeBSD 6 Unleashed&lt;br /&gt;
* Network Administration with FreeBSD 7&lt;br /&gt;
* Building a Server with FreeBSD 7&lt;br /&gt;
* The Complete FreeBSD (2006)&lt;br /&gt;
* https://www.cups.org/&lt;br /&gt;
* http://lprng.com&lt;br /&gt;
* http://www.wonkity.com/~wblock/docs/html/lpdprinting.html&lt;br /&gt;
* https://docs.freebsd.org/en/books/handbook/printing/&lt;br /&gt;
* https://docs.freebsd.org/en/articles/cups/&lt;br /&gt;
* https://www.informit.com/articles/article.aspx?p=167786&lt;br /&gt;
* https://www.cups.org/blog/2018-06-06-demystifying-cups-development.html&lt;br /&gt;
* https://ftp.pwg.org/pub/pwg/liaison/openprinting/presentations/cups-plenary-may-2021.pdf&lt;br /&gt;
* https://www.msweet.org/lprint/&lt;br /&gt;
* https://www.msweet.org/pappl/&lt;br /&gt;
* https://www.pwg.org/3d/index.html&lt;br /&gt;
* https://www.pwg.org/ipp/ippguide.html&lt;br /&gt;
* https://openprinting.github.io/upcoming-technologies/02-ipp-scan/&lt;br /&gt;
(some references are out of date, but still have relevance)&lt;br /&gt;
&lt;br /&gt;
[[Category:New User Tips and FAQs]]&lt;br /&gt;
[[Category:Configuring FreeBSD]]&lt;br /&gt;
[[Category:FreeBSD for Workstations]]&lt;/div&gt;</summary>
		<author><name>Sidetone</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Printing,_about</id>
		<title>Printing, about</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Printing,_about"/>
				<updated>2021-06-22T17:04:29Z</updated>
		
		<summary type="html">&lt;p&gt;Sidetone: /* Modern CUPS specifications */ PCL and PostScript printer apps for legacy printers&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;About printing on FreeBSD: comparisons of printing protocols; about filters, Page Description Languages (PDL's) and printer specifications.&lt;br /&gt;
&lt;br /&gt;
==Protocols==&lt;br /&gt;
LPD (Line Printer Daemon) and IPP (Internet Printing Protocol) are printer protocols defined by IETF. LPD is described by RFC 1179 (not as a standard): it uses service port 515. IPP is defined by RFC 8011 and RFC 3510: it uses service port 631. Access control and security features are available on IPP that aren't on LPD. RFC 2569 is a memo on mapping between LPD and IPP.&lt;br /&gt;
&lt;br /&gt;
pdl-datastream on service port 9100 is for proprietary printers and proprietary local network printer servers. This is often used by JetDirect products.&lt;br /&gt;
&lt;br /&gt;
Printers can also use SMB (over Samba) as a protocol.&lt;br /&gt;
&lt;br /&gt;
==Comparison of print architectures==&lt;br /&gt;
===LPR, LPRng===&lt;br /&gt;
LPR is the default with FreeBSD. LPRng is a more advanced implementation of LPR. These two programs use and can alter {{man|printcap|5}}. LPR and LPRng both use the LPD protocol over service port 515.&lt;br /&gt;
&lt;br /&gt;
LPR and LPRng require manual set up through custom shell scripts of filters to convert plain text or other types of data, even between PostScript outputs to PostScript able printers. {{port|print/a2ps}} can simplify this task of converting ASCII to PostScript output. LPR's intended use was for text printing.&lt;br /&gt;
&lt;br /&gt;
LPRng (LPR Next Generation) is an advanced replacement for LPR. It is under the GPL and Artistic licenses. IFHP determines the format and does conversions, including by use of Ghostscript. LPRng takes care of format conversions through its filters, and of PostScript output through Ghostscript. LPRng was designed to be more secure than LPR. LPRng is found at {{port|sysutils/LPRng}}. It uses {{file|printcap}}, {{file|lpd.conf}}, and {{file|lpd.perms}} for configuration.&lt;br /&gt;
&lt;br /&gt;
lprng in services ({{file|rc.conf}}) requires that lpr and cupsd be disabled. LPR and LPRng daemons can be enabled or disabled through {{file|rc.conf}}. LPR compilation in the world build can be disabled through {{man|src.conf|5}}&lt;br /&gt;
&lt;br /&gt;
===CUPS===&lt;br /&gt;
The CUPS framework supports more printers than LPR and LPRng, and it is more advanced. PCL printers are more readily supported under CUPS. CUPS can be administered on the command line, through the web interface, and through a GUI.&lt;br /&gt;
&lt;br /&gt;
The default protocol that CUPS uses is IPP. In addition to IPP, CUPS also has protocol support for: LPD, SMB (Server Message Block) and pdl-datastream. CUPS originally started out over LPD. Samba is only needed for printing on LANs that include Windows computers.&lt;br /&gt;
&lt;br /&gt;
CUPS has its own implementation of LPR in under {{file|/usr/local/}}, as opposed to LPR's default location under {{file|/usr/}}. The LPR files that CUPS uses can be set in {{file|/usr/local/etc/cups/printcap}}. On the command line, CUPS uses BSD LPR style commands.&lt;br /&gt;
&lt;br /&gt;
The command cupsctl can adjust settings in cupsd.conf.&lt;br /&gt;
&lt;br /&gt;
CUPS supports encryption for administration and printing, which wasn't available in older versions. Kerberos will be replaced by OAuth and PAM for access control and security by CUPS 3.0.&lt;br /&gt;
&lt;br /&gt;
CUPS is compatible for use with Zeroconf.&lt;br /&gt;
&lt;br /&gt;
This print architecture uses Apache License 2.0. Legacy versions of CUPS were under GPL.&lt;br /&gt;
&lt;br /&gt;
===More===&lt;br /&gt;
CUPS and LPRng software conflicts so cannot be installed together. LPR and CUPS can coexist, but only one service is needed.&lt;br /&gt;
&lt;br /&gt;
Some programs, such as forks of OpenOffice (such as LibreOffice or Apache OpenOffice) provide their own drivers that output to LPR in place of already configured filters like Ghostscript. Their printing has to be set up independently from an already working CUPS or LPR print configuration.&lt;br /&gt;
&lt;br /&gt;
The Printer Working Group (PWG) intends to offer driverless scanning over IPP. However, there are no IPP scanners and there's no working program from PWG, so SANE is still the de-facto standard for open-source printing. SANE is under GPL, and it is unable to be changed to LGPL by the wishes of its maintainers, because it has multiple contributors.&lt;br /&gt;
&lt;br /&gt;
==Modern CUPS specifications==&lt;br /&gt;
As of future CUPS version 3.0, legacy drivers and PDL's will no longer be used. CUPS 2.3 already supports modern CUPS replacements for printer drivers.&lt;br /&gt;
&lt;br /&gt;
PWG Raster ('image/pwg-raster'), JPEG ('image/jpeg'), and PDF ('application/pdf') are modern formats directly supported by newer printers. PWG Raster and JPEG formats are supported by most new printers since 2010.&lt;br /&gt;
&lt;br /&gt;
There are also IPP-Everywhere compliant printers.&lt;br /&gt;
&lt;br /&gt;
Airprint is an alternate technology for Apple MacOS and i-products. It uses Apple Raster ('image/urf'). Mopria is a printer technology to print from Android, which is intended to be used with PAPPL.&lt;br /&gt;
&lt;br /&gt;
'text/plain' is supported by simple printers. 'application/octet-stream' tells capable printers which format to use. For printers without this capability, the format has to be specified through configuration or through print commands.&lt;br /&gt;
&lt;br /&gt;
The WiFi alliance has a printer specification.&lt;br /&gt;
&lt;br /&gt;
Industrial, label, legacy and other specialized printers don't have the capability for these modern printing formats. LPrint is intended for label printers to work with CUPS, and a few are already supported. The PAPPL framework could be the replacement for drivers of legacy, specialty and other printers to work with newer versions of CUPS.&lt;br /&gt;
&lt;br /&gt;
Legacy printers may have an application that addresses their Printer Description Language for use with the newer versions of CUPS. PCL has hp-printer-app, and PostScript has ps-printer-ap.&lt;br /&gt;
&lt;br /&gt;
For 3D printers, there are a few formats supported: 3MF, U3D, PRC and PWG compliant G-code. Different versions of PDF have support for either U3D and PRC.&lt;br /&gt;
&lt;br /&gt;
==Legacy specifications: filters/drivers/PDL's==&lt;br /&gt;
Postscript (PS) and PCL (Printer Command Language) are printer languages known as Page Description Languages (PDL's) supported by the majority of printers for interpreting and printing jobs. These two PDLs are alternate models developed by Adobe and HP respectively. PJL is another type of printer language for controlling features. These legacy specifications work up to CUPS version 2.4. Postscript is defined by 'application/postscript', and PCL is defined by 'application/vnd.hp-pcl'.&lt;br /&gt;
&lt;br /&gt;
Many programs simply output data as Postscript. A filter is often needed for different types of output formats (separate from the printer language), even when the printer understands the same printer language as a program's output (such as Postscript). Output formats that need to be converted to a printer language include: dvi, Fortran and Raster.&lt;br /&gt;
&lt;br /&gt;
Filters are useful for different types of output. Carriage returns are different for command line output from Bourne shells, MS DOS, text files and Postscript output. Without the right filters, printers can stair-step or text can otherwise be misaligned.&lt;br /&gt;
&lt;br /&gt;
Printer packaging lists its specs, often: supported PDLs, fonts and graphics formats.&lt;br /&gt;
&lt;br /&gt;
===PCL===&lt;br /&gt;
ASCII is a printer language which PCL is an extension of.&lt;br /&gt;
&lt;br /&gt;
===PostScript===&lt;br /&gt;
LPR in base, and CUPS from ports perform the same function of receiving PostScript output and sending it to PostScript capable printers. CUPS allows printers that use other PCL's to be used through PostScript via PPD (PostScript Printer Description) conversions.&lt;br /&gt;
&lt;br /&gt;
PostScript is the default for both CUPS and Apple. For the most common PDL's: PostScript is considered higher quality than PCL, so more preference is centered around it. There are also very high quality printers that don't use either of these two PDL's.&lt;br /&gt;
&lt;br /&gt;
PostScript printers cost more because of hardware and font license fees from Adobe. However, this company offers PostScript software drivers for free. (Opensource driver software is available as mentioned a few times.) HP computers that have M in the model for Macintosh are PostScript printers (one may want to confirm that the specifications say Postscript).&lt;br /&gt;
&lt;br /&gt;
Conversions for non-PostScript printers rely on PPD's, and filters.&lt;br /&gt;
&lt;br /&gt;
===Conversions===&lt;br /&gt;
Ghostscript is a substitution for PCL printers to work as if they were PostScript. Ghostscript, Foomatic and other printer suites act as filters on LPR. On CUPS, many of these filters plus Gutenprint are able to provide needed PPD's (Postscript Printer Descriptions) for varying printers. {{port|print/foomatic-filters}} may lack compatibility with CUPS, and it conflicts with a needed {{port|print/cups-filters}}.&lt;br /&gt;
&lt;br /&gt;
LPR is able to output to non-PostScript printers by using Ghostscript's {{cmd|gs}} as an input filter through printcap. Ghostscript offers a few conversion programs between Postscript and pdf files.&lt;br /&gt;
&lt;br /&gt;
Ghostscript (under AGPL) can convert PostScript outputs to printer languages which specific non-Postscript printers can interpret. In addition to PCL, Ghostscript makes ESC printers functional. LPRng includes Ghostscript for printer language conversion too. Ghostscript can be used with LPR, CUPS, or LPRng&lt;br /&gt;
&lt;br /&gt;
GhostViewer ({{port|print/gv}}) is a program for viewing Postscript output on the monitor.&lt;br /&gt;
&lt;br /&gt;
===ESC===&lt;br /&gt;
ESC/P (Epson's developed PDL) printers are used in consumer inkjet printers, as well as dot matrix, receipt, thermal, labeling and barcode printers.&lt;br /&gt;
&lt;br /&gt;
===GDI/WIN===&lt;br /&gt;
Win(dos) or GDI printers are generally incompatible with BSD's or Linux. Printers that let the software from the computer run them completely are referred to as dumb printers.&lt;br /&gt;
&lt;br /&gt;
==Components==&lt;br /&gt;
The spool holds printing jobs to be printed in order. Print jobs are held in the {{file|/var/spool/}} directory.&lt;br /&gt;
&lt;br /&gt;
==References/Further Reading==&lt;br /&gt;
* FreeBSD 6 Unleashed&lt;br /&gt;
* Network Administration with FreeBSD 7&lt;br /&gt;
* Building a Server with FreeBSD 7&lt;br /&gt;
* The Complete FreeBSD (2006)&lt;br /&gt;
* https://www.cups.org/&lt;br /&gt;
* http://lprng.com&lt;br /&gt;
* http://www.wonkity.com/~wblock/docs/html/lpdprinting.html&lt;br /&gt;
* https://docs.freebsd.org/en/books/handbook/printing/&lt;br /&gt;
* https://docs.freebsd.org/en/articles/cups/&lt;br /&gt;
* https://www.informit.com/articles/article.aspx?p=167786&lt;br /&gt;
* https://www.cups.org/blog/2018-06-06-demystifying-cups-development.html&lt;br /&gt;
* https://ftp.pwg.org/pub/pwg/liaison/openprinting/presentations/cups-plenary-may-2021.pdf&lt;br /&gt;
* https://www.msweet.org/lprint/&lt;br /&gt;
* https://www.msweet.org/pappl/&lt;br /&gt;
* https://www.pwg.org/3d/index.html&lt;br /&gt;
* https://www.pwg.org/ipp/ippguide.html&lt;br /&gt;
* https://openprinting.github.io/upcoming-technologies/02-ipp-scan/&lt;br /&gt;
(some references are out of date, but still have relevance)&lt;br /&gt;
&lt;br /&gt;
[[Category:New User Tips and FAQs]]&lt;br /&gt;
[[Category:Configuring FreeBSD]]&lt;br /&gt;
[[Category:FreeBSD for Workstations]]&lt;/div&gt;</summary>
		<author><name>Sidetone</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Printing,_about</id>
		<title>Printing, about</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Printing,_about"/>
				<updated>2021-06-22T15:25:26Z</updated>
		
		<summary type="html">&lt;p&gt;Sidetone: /* Comparison of print architectures */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;About printing on FreeBSD: comparisons of printing protocols; about filters, Page Description Languages (PDL's) and printer specifications.&lt;br /&gt;
&lt;br /&gt;
==Protocols==&lt;br /&gt;
LPD (Line Printer Daemon) and IPP (Internet Printing Protocol) are printer protocols defined by IETF. LPD is described by RFC 1179 (not as a standard): it uses service port 515. IPP is defined by RFC 8011 and RFC 3510: it uses service port 631. Access control and security features are available on IPP that aren't on LPD. RFC 2569 is a memo on mapping between LPD and IPP.&lt;br /&gt;
&lt;br /&gt;
pdl-datastream on service port 9100 is for proprietary printers and proprietary local network printer servers. This is often used by JetDirect products.&lt;br /&gt;
&lt;br /&gt;
Printers can also use SMB (over Samba) as a protocol.&lt;br /&gt;
&lt;br /&gt;
==Comparison of print architectures==&lt;br /&gt;
===LPR, LPRng===&lt;br /&gt;
LPR is the default with FreeBSD. LPRng is a more advanced implementation of LPR. These two programs use and can alter {{man|printcap|5}}. LPR and LPRng both use the LPD protocol over service port 515.&lt;br /&gt;
&lt;br /&gt;
LPR and LPRng require manual set up through custom shell scripts of filters to convert plain text or other types of data, even between PostScript outputs to PostScript able printers. {{port|print/a2ps}} can simplify this task of converting ASCII to PostScript output. LPR's intended use was for text printing.&lt;br /&gt;
&lt;br /&gt;
LPRng (LPR Next Generation) is an advanced replacement for LPR. It is under the GPL and Artistic licenses. IFHP determines the format and does conversions, including by use of Ghostscript. LPRng takes care of format conversions through its filters, and of PostScript output through Ghostscript. LPRng was designed to be more secure than LPR. LPRng is found at {{port|sysutils/LPRng}}. It uses {{file|printcap}}, {{file|lpd.conf}}, and {{file|lpd.perms}} for configuration.&lt;br /&gt;
&lt;br /&gt;
lprng in services ({{file|rc.conf}}) requires that lpr and cupsd be disabled. LPR and LPRng daemons can be enabled or disabled through {{file|rc.conf}}. LPR compilation in the world build can be disabled through {{man|src.conf|5}}&lt;br /&gt;
&lt;br /&gt;
===CUPS===&lt;br /&gt;
The CUPS framework supports more printers than LPR and LPRng, and it is more advanced. PCL printers are more readily supported under CUPS. CUPS can be administered on the command line, through the web interface, and through a GUI.&lt;br /&gt;
&lt;br /&gt;
The default protocol that CUPS uses is IPP. In addition to IPP, CUPS also has protocol support for: LPD, SMB (Server Message Block) and pdl-datastream. CUPS originally started out over LPD. Samba is only needed for printing on LANs that include Windows computers.&lt;br /&gt;
&lt;br /&gt;
CUPS has its own implementation of LPR in under {{file|/usr/local/}}, as opposed to LPR's default location under {{file|/usr/}}. The LPR files that CUPS uses can be set in {{file|/usr/local/etc/cups/printcap}}. On the command line, CUPS uses BSD LPR style commands.&lt;br /&gt;
&lt;br /&gt;
The command cupsctl can adjust settings in cupsd.conf.&lt;br /&gt;
&lt;br /&gt;
CUPS supports encryption for administration and printing, which wasn't available in older versions. Kerberos will be replaced by OAuth and PAM for access control and security by CUPS 3.0.&lt;br /&gt;
&lt;br /&gt;
CUPS is compatible for use with Zeroconf.&lt;br /&gt;
&lt;br /&gt;
This print architecture uses Apache License 2.0. Legacy versions of CUPS were under GPL.&lt;br /&gt;
&lt;br /&gt;
===More===&lt;br /&gt;
CUPS and LPRng software conflicts so cannot be installed together. LPR and CUPS can coexist, but only one service is needed.&lt;br /&gt;
&lt;br /&gt;
Some programs, such as forks of OpenOffice (such as LibreOffice or Apache OpenOffice) provide their own drivers that output to LPR in place of already configured filters like Ghostscript. Their printing has to be set up independently from an already working CUPS or LPR print configuration.&lt;br /&gt;
&lt;br /&gt;
The Printer Working Group (PWG) intends to offer driverless scanning over IPP. However, there are no IPP scanners and there's no working program from PWG, so SANE is still the de-facto standard for open-source printing. SANE is under GPL, and it is unable to be changed to LGPL by the wishes of its maintainers, because it has multiple contributors.&lt;br /&gt;
&lt;br /&gt;
==Modern CUPS specifications==&lt;br /&gt;
As of future CUPS version 3.0, legacy drivers and PDL's will no longer be used. CUPS 2.3 already supports modern CUPS replacements for printer drivers.&lt;br /&gt;
&lt;br /&gt;
PWG Raster ('image/pwg-raster'), JPEG ('image/jpeg'), and PDF ('application/pdf') are modern formats directly supported by newer printers. PWG Raster and JPEG formats are supported by most new printers since 2010.&lt;br /&gt;
&lt;br /&gt;
There are also IPP-Everywhere compliant printers.&lt;br /&gt;
&lt;br /&gt;
Airprint is an alternate technology for Apple MacOS and i-products. It uses Apple Raster ('image/urf'). Mopria is a printer technology to print from Android, which is intended to be used with PAPPL.&lt;br /&gt;
&lt;br /&gt;
'text/plain' is supported by simple printers. 'application/octet-stream' tells capable printers which format to use. For printers without this capability, the format has to be specified through configuration or through print commands.&lt;br /&gt;
&lt;br /&gt;
The WiFi alliance has a printer specification.&lt;br /&gt;
&lt;br /&gt;
Industrial, label, legacy and other specialized printers don't have the capability for these modern printing formats. LPrint is intended for label printers to work with CUPS, and a few are already supported. The PAPPL framework could be the replacement for drivers of legacy, specialty and other printers to work with newer versions of CUPS.&lt;br /&gt;
&lt;br /&gt;
For 3D printers, there are a few formats supported: 3MF, U3D, PRC and PWG compliant G-code. Different versions of PDF have support for either U3D and PRC.&lt;br /&gt;
&lt;br /&gt;
==Legacy specifications: filters/drivers/PDL's==&lt;br /&gt;
Postscript (PS) and PCL (Printer Command Language) are printer languages known as Page Description Languages (PDL's) supported by the majority of printers for interpreting and printing jobs. These two PDLs are alternate models developed by Adobe and HP respectively. PJL is another type of printer language for controlling features. These legacy specifications work up to CUPS version 2.4. Postscript is defined by 'application/postscript', and PCL is defined by 'application/vnd.hp-pcl'.&lt;br /&gt;
&lt;br /&gt;
Many programs simply output data as Postscript. A filter is often needed for different types of output formats (separate from the printer language), even when the printer understands the same printer language as a program's output (such as Postscript). Output formats that need to be converted to a printer language include: dvi, Fortran and Raster.&lt;br /&gt;
&lt;br /&gt;
Filters are useful for different types of output. Carriage returns are different for command line output from Bourne shells, MS DOS, text files and Postscript output. Without the right filters, printers can stair-step or text can otherwise be misaligned.&lt;br /&gt;
&lt;br /&gt;
Printer packaging lists its specs, often: supported PDLs, fonts and graphics formats.&lt;br /&gt;
&lt;br /&gt;
===PCL===&lt;br /&gt;
ASCII is a printer language which PCL is an extension of.&lt;br /&gt;
&lt;br /&gt;
===PostScript===&lt;br /&gt;
LPR in base, and CUPS from ports perform the same function of receiving PostScript output and sending it to PostScript capable printers. CUPS allows printers that use other PCL's to be used through PostScript via PPD (PostScript Printer Description) conversions.&lt;br /&gt;
&lt;br /&gt;
PostScript is the default for both CUPS and Apple. For the most common PDL's: PostScript is considered higher quality than PCL, so more preference is centered around it. There are also very high quality printers that don't use either of these two PDL's.&lt;br /&gt;
&lt;br /&gt;
PostScript printers cost more because of hardware and font license fees from Adobe. However, this company offers PostScript software drivers for free. (Opensource driver software is available as mentioned a few times.) HP computers that have M in the model for Macintosh are PostScript printers (one may want to confirm that the specifications say Postscript).&lt;br /&gt;
&lt;br /&gt;
Conversions for non-PostScript printers rely on PPD's, and filters.&lt;br /&gt;
&lt;br /&gt;
===Conversions===&lt;br /&gt;
Ghostscript is a substitution for PCL printers to work as if they were PostScript. Ghostscript, Foomatic and other printer suites act as filters on LPR. On CUPS, many of these filters plus Gutenprint are able to provide needed PPD's (Postscript Printer Descriptions) for varying printers. {{port|print/foomatic-filters}} may lack compatibility with CUPS, and it conflicts with a needed {{port|print/cups-filters}}.&lt;br /&gt;
&lt;br /&gt;
LPR is able to output to non-PostScript printers by using Ghostscript's {{cmd|gs}} as an input filter through printcap. Ghostscript offers a few conversion programs between Postscript and pdf files.&lt;br /&gt;
&lt;br /&gt;
Ghostscript (under AGPL) can convert PostScript outputs to printer languages which specific non-Postscript printers can interpret. In addition to PCL, Ghostscript makes ESC printers functional. LPRng includes Ghostscript for printer language conversion too. Ghostscript can be used with LPR, CUPS, or LPRng&lt;br /&gt;
&lt;br /&gt;
GhostViewer ({{port|print/gv}}) is a program for viewing Postscript output on the monitor.&lt;br /&gt;
&lt;br /&gt;
===ESC===&lt;br /&gt;
ESC/P (Epson's developed PDL) printers are used in consumer inkjet printers, as well as dot matrix, receipt, thermal, labeling and barcode printers.&lt;br /&gt;
&lt;br /&gt;
===GDI/WIN===&lt;br /&gt;
Win(dos) or GDI printers are generally incompatible with BSD's or Linux. Printers that let the software from the computer run them completely are referred to as dumb printers.&lt;br /&gt;
&lt;br /&gt;
==Components==&lt;br /&gt;
The spool holds printing jobs to be printed in order. Print jobs are held in the {{file|/var/spool/}} directory.&lt;br /&gt;
&lt;br /&gt;
==References/Further Reading==&lt;br /&gt;
* FreeBSD 6 Unleashed&lt;br /&gt;
* Network Administration with FreeBSD 7&lt;br /&gt;
* Building a Server with FreeBSD 7&lt;br /&gt;
* The Complete FreeBSD (2006)&lt;br /&gt;
* https://www.cups.org/&lt;br /&gt;
* http://lprng.com&lt;br /&gt;
* http://www.wonkity.com/~wblock/docs/html/lpdprinting.html&lt;br /&gt;
* https://docs.freebsd.org/en/books/handbook/printing/&lt;br /&gt;
* https://docs.freebsd.org/en/articles/cups/&lt;br /&gt;
* https://www.informit.com/articles/article.aspx?p=167786&lt;br /&gt;
* https://www.cups.org/blog/2018-06-06-demystifying-cups-development.html&lt;br /&gt;
* https://ftp.pwg.org/pub/pwg/liaison/openprinting/presentations/cups-plenary-may-2021.pdf&lt;br /&gt;
* https://www.msweet.org/lprint/&lt;br /&gt;
* https://www.msweet.org/pappl/&lt;br /&gt;
* https://www.pwg.org/3d/index.html&lt;br /&gt;
* https://www.pwg.org/ipp/ippguide.html&lt;br /&gt;
* https://openprinting.github.io/upcoming-technologies/02-ipp-scan/&lt;br /&gt;
(some references are out of date, but still have relevance)&lt;br /&gt;
&lt;br /&gt;
[[Category:New User Tips and FAQs]]&lt;br /&gt;
[[Category:Configuring FreeBSD]]&lt;br /&gt;
[[Category:FreeBSD for Workstations]]&lt;/div&gt;</summary>
		<author><name>Sidetone</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Printing,_about</id>
		<title>Printing, about</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Printing,_about"/>
				<updated>2021-06-21T23:52:42Z</updated>
		
		<summary type="html">&lt;p&gt;Sidetone: /* Modern CUPS specifications */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;About printing on FreeBSD: comparisons of printing protocols; about filters, Page Description Languages (PDL's) and printer specifications.&lt;br /&gt;
&lt;br /&gt;
==Protocols==&lt;br /&gt;
LPD (Line Printer Daemon) and IPP (Internet Printing Protocol) are printer protocols defined by IETF. LPD is described by RFC 1179 (not as a standard): it uses service port 515. IPP is defined by RFC 8011 and RFC 3510: it uses service port 631. Access control and security features are available on IPP that aren't on LPD. RFC 2569 is a memo on mapping between LPD and IPP.&lt;br /&gt;
&lt;br /&gt;
pdl-datastream on service port 9100 is for proprietary printers and proprietary local network printer servers. This is often used by JetDirect products.&lt;br /&gt;
&lt;br /&gt;
Printers can also use SMB (over Samba) as a protocol.&lt;br /&gt;
&lt;br /&gt;
==Comparison of print architectures==&lt;br /&gt;
===LPR, LPRng===&lt;br /&gt;
LPR is the default with FreeBSD. LPRng is a more advanced implementation of LPR. These two programs use and can alter {{man|printcap|5}}. LPR and LPRng both use the LPD protocol over service port 515.&lt;br /&gt;
&lt;br /&gt;
LPR and LPRng require manual set up through custom shell scripts of filters to convert plain text or other types of data, even between PostScript outputs to PostScript able printers. {{port|print/a2ps}} can simplify this task of converting ASCII to PostScript output. LPR's intended use was for text printing.&lt;br /&gt;
&lt;br /&gt;
LPRng (LPR Next Generation) is an advanced replacement for LPR. It is under the GPL and Artistic licenses. IFHP determines the format and does conversions, including by use of Ghostscript. LPRng takes care of format conversions through its filters, and of PostScript output through Ghostscript. LPRng was designed to be more secure than LPR. LPRng is found at {{port|sysutils/LPRng}}. It uses {{file|printcap}}, {{file|lpd.conf}}, and {{file|lpd.perms}} for configuration.&lt;br /&gt;
&lt;br /&gt;
lprng in services ({{file|rc.conf}}) requires that lpr and cupsd be disabled. LPR and LPRng daemons can be enabled or disabled through {{file|rc.conf}}. LPR compilation in the world build can be disabled through {{man|src.conf|5}}&lt;br /&gt;
&lt;br /&gt;
===CUPS===&lt;br /&gt;
The CUPS framework supports more printers than LPR and LPRng, and it is more advanced. PCL printers are more readily supported under CUPS. CUPS can be administered on the command line, through the web interface, and through a GUI.&lt;br /&gt;
&lt;br /&gt;
The default protocol that CUPS uses is IPP. In addition to IPP, CUPS also has protocol support for: LPD, SMB (Server Message Block) and pdl-datastream. CUPS originally started out over LPD. Samba is only needed for printing on LANs that include Windows computers.&lt;br /&gt;
&lt;br /&gt;
CUPS has its own implementation of LPR in under {{file|/usr/local/}}, as opposed to LPR's default location under {{file|/usr/}}. The LPR files that CUPS uses can be set in {{file|/usr/local/etc/cups/printcap}}. On the command line, CUPS uses BSD LPR style commands.&lt;br /&gt;
&lt;br /&gt;
The command cupsctl can adjust settings in cupsd.conf.&lt;br /&gt;
&lt;br /&gt;
CUPS supports encryption for administration and printing, which wasn't available in older versions. Kerberos will be replaced by OAuth and PAM for access control and security by CUPS 3.0.&lt;br /&gt;
&lt;br /&gt;
CUPS is compatible for use with Zeroconf.&lt;br /&gt;
&lt;br /&gt;
This print architecture uses Apache License 2.0. Legacy versions of CUPS were under GPL.&lt;br /&gt;
&lt;br /&gt;
===More===&lt;br /&gt;
CUPS and LPRng software conflicts so cannot be installed together. LPR and CUPS can coexist, but only one service is needed.&lt;br /&gt;
&lt;br /&gt;
Some programs, such as forks of OpenOffice (such as LibreOffice or Apache OpenOffice) provide their own drivers that output to LPR in place of already configured filters like Ghostscript. Their printing has to be set up independently from an already working CUPS or LPR print configuration.&lt;br /&gt;
&lt;br /&gt;
The Printer Working Group (PWG) intends to offer driverless scanning over IPP. However, there are no IPP scanners and there's no working program from PWG, so SANE is still the de-facto standard for open-source printing.&lt;br /&gt;
&lt;br /&gt;
==Modern CUPS specifications==&lt;br /&gt;
As of future CUPS version 3.0, legacy drivers and PDL's will no longer be used. CUPS 2.3 already supports modern CUPS replacements for printer drivers.&lt;br /&gt;
&lt;br /&gt;
PWG Raster ('image/pwg-raster'), JPEG ('image/jpeg'), and PDF ('application/pdf') are modern formats directly supported by newer printers. PWG Raster and JPEG formats are supported by most new printers since 2010.&lt;br /&gt;
&lt;br /&gt;
There are also IPP-Everywhere compliant printers.&lt;br /&gt;
&lt;br /&gt;
Airprint is an alternate technology for Apple MacOS and i-products. It uses Apple Raster ('image/urf'). Mopria is a printer technology to print from Android, which is intended to be used with PAPPL.&lt;br /&gt;
&lt;br /&gt;
'text/plain' is supported by simple printers. 'application/octet-stream' tells capable printers which format to use. For printers without this capability, the format has to be specified through configuration or through print commands.&lt;br /&gt;
&lt;br /&gt;
The WiFi alliance has a printer specification.&lt;br /&gt;
&lt;br /&gt;
Industrial, label, legacy and other specialized printers don't have the capability for these modern printing formats. LPrint is intended for label printers to work with CUPS, and a few are already supported. The PAPPL framework could be the replacement for drivers of legacy, specialty and other printers to work with newer versions of CUPS.&lt;br /&gt;
&lt;br /&gt;
For 3D printers, there are a few formats supported: 3MF, U3D, PRC and PWG compliant G-code. Different versions of PDF have support for either U3D and PRC.&lt;br /&gt;
&lt;br /&gt;
==Legacy specifications: filters/drivers/PDL's==&lt;br /&gt;
Postscript (PS) and PCL (Printer Command Language) are printer languages known as Page Description Languages (PDL's) supported by the majority of printers for interpreting and printing jobs. These two PDLs are alternate models developed by Adobe and HP respectively. PJL is another type of printer language for controlling features. These legacy specifications work up to CUPS version 2.4. Postscript is defined by 'application/postscript', and PCL is defined by 'application/vnd.hp-pcl'.&lt;br /&gt;
&lt;br /&gt;
Many programs simply output data as Postscript. A filter is often needed for different types of output formats (separate from the printer language), even when the printer understands the same printer language as a program's output (such as Postscript). Output formats that need to be converted to a printer language include: dvi, Fortran and Raster.&lt;br /&gt;
&lt;br /&gt;
Filters are useful for different types of output. Carriage returns are different for command line output from Bourne shells, MS DOS, text files and Postscript output. Without the right filters, printers can stair-step or text can otherwise be misaligned.&lt;br /&gt;
&lt;br /&gt;
Printer packaging lists its specs, often: supported PDLs, fonts and graphics formats.&lt;br /&gt;
&lt;br /&gt;
===PCL===&lt;br /&gt;
ASCII is a printer language which PCL is an extension of.&lt;br /&gt;
&lt;br /&gt;
===PostScript===&lt;br /&gt;
LPR in base, and CUPS from ports perform the same function of receiving PostScript output and sending it to PostScript capable printers. CUPS allows printers that use other PCL's to be used through PostScript via PPD (PostScript Printer Description) conversions.&lt;br /&gt;
&lt;br /&gt;
PostScript is the default for both CUPS and Apple. For the most common PDL's: PostScript is considered higher quality than PCL, so more preference is centered around it. There are also very high quality printers that don't use either of these two PDL's.&lt;br /&gt;
&lt;br /&gt;
PostScript printers cost more because of hardware and font license fees from Adobe. However, this company offers PostScript software drivers for free. (Opensource driver software is available as mentioned a few times.) HP computers that have M in the model for Macintosh are PostScript printers (one may want to confirm that the specifications say Postscript).&lt;br /&gt;
&lt;br /&gt;
Conversions for non-PostScript printers rely on PPD's, and filters.&lt;br /&gt;
&lt;br /&gt;
===Conversions===&lt;br /&gt;
Ghostscript is a substitution for PCL printers to work as if they were PostScript. Ghostscript, Foomatic and other printer suites act as filters on LPR. On CUPS, many of these filters plus Gutenprint are able to provide needed PPD's (Postscript Printer Descriptions) for varying printers. {{port|print/foomatic-filters}} may lack compatibility with CUPS, and it conflicts with a needed {{port|print/cups-filters}}.&lt;br /&gt;
&lt;br /&gt;
LPR is able to output to non-PostScript printers by using Ghostscript's {{cmd|gs}} as an input filter through printcap. Ghostscript offers a few conversion programs between Postscript and pdf files.&lt;br /&gt;
&lt;br /&gt;
Ghostscript (under AGPL) can convert PostScript outputs to printer languages which specific non-Postscript printers can interpret. In addition to PCL, Ghostscript makes ESC printers functional. LPRng includes Ghostscript for printer language conversion too. Ghostscript can be used with LPR, CUPS, or LPRng&lt;br /&gt;
&lt;br /&gt;
GhostViewer ({{port|print/gv}}) is a program for viewing Postscript output on the monitor.&lt;br /&gt;
&lt;br /&gt;
===ESC===&lt;br /&gt;
ESC/P (Epson's developed PDL) printers are used in consumer inkjet printers, as well as dot matrix, receipt, thermal, labeling and barcode printers.&lt;br /&gt;
&lt;br /&gt;
===GDI/WIN===&lt;br /&gt;
Win(dos) or GDI printers are generally incompatible with BSD's or Linux. Printers that let the software from the computer run them completely are referred to as dumb printers.&lt;br /&gt;
&lt;br /&gt;
==Components==&lt;br /&gt;
The spool holds printing jobs to be printed in order. Print jobs are held in the {{file|/var/spool/}} directory.&lt;br /&gt;
&lt;br /&gt;
==References/Further Reading==&lt;br /&gt;
* FreeBSD 6 Unleashed&lt;br /&gt;
* Network Administration with FreeBSD 7&lt;br /&gt;
* Building a Server with FreeBSD 7&lt;br /&gt;
* The Complete FreeBSD (2006)&lt;br /&gt;
* https://www.cups.org/&lt;br /&gt;
* http://lprng.com&lt;br /&gt;
* http://www.wonkity.com/~wblock/docs/html/lpdprinting.html&lt;br /&gt;
* https://docs.freebsd.org/en/books/handbook/printing/&lt;br /&gt;
* https://docs.freebsd.org/en/articles/cups/&lt;br /&gt;
* https://www.informit.com/articles/article.aspx?p=167786&lt;br /&gt;
* https://www.cups.org/blog/2018-06-06-demystifying-cups-development.html&lt;br /&gt;
* https://ftp.pwg.org/pub/pwg/liaison/openprinting/presentations/cups-plenary-may-2021.pdf&lt;br /&gt;
* https://www.msweet.org/lprint/&lt;br /&gt;
* https://www.msweet.org/pappl/&lt;br /&gt;
* https://www.pwg.org/3d/index.html&lt;br /&gt;
* https://www.pwg.org/ipp/ippguide.html&lt;br /&gt;
* https://openprinting.github.io/upcoming-technologies/02-ipp-scan/&lt;br /&gt;
(some references are out of date, but still have relevance)&lt;br /&gt;
&lt;br /&gt;
[[Category:New User Tips and FAQs]]&lt;br /&gt;
[[Category:Configuring FreeBSD]]&lt;br /&gt;
[[Category:FreeBSD for Workstations]]&lt;/div&gt;</summary>
		<author><name>Sidetone</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Printing,_about</id>
		<title>Printing, about</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Printing,_about"/>
				<updated>2021-06-21T23:52:18Z</updated>
		
		<summary type="html">&lt;p&gt;Sidetone: /* More */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;About printing on FreeBSD: comparisons of printing protocols; about filters, Page Description Languages (PDL's) and printer specifications.&lt;br /&gt;
&lt;br /&gt;
==Protocols==&lt;br /&gt;
LPD (Line Printer Daemon) and IPP (Internet Printing Protocol) are printer protocols defined by IETF. LPD is described by RFC 1179 (not as a standard): it uses service port 515. IPP is defined by RFC 8011 and RFC 3510: it uses service port 631. Access control and security features are available on IPP that aren't on LPD. RFC 2569 is a memo on mapping between LPD and IPP.&lt;br /&gt;
&lt;br /&gt;
pdl-datastream on service port 9100 is for proprietary printers and proprietary local network printer servers. This is often used by JetDirect products.&lt;br /&gt;
&lt;br /&gt;
Printers can also use SMB (over Samba) as a protocol.&lt;br /&gt;
&lt;br /&gt;
==Comparison of print architectures==&lt;br /&gt;
===LPR, LPRng===&lt;br /&gt;
LPR is the default with FreeBSD. LPRng is a more advanced implementation of LPR. These two programs use and can alter {{man|printcap|5}}. LPR and LPRng both use the LPD protocol over service port 515.&lt;br /&gt;
&lt;br /&gt;
LPR and LPRng require manual set up through custom shell scripts of filters to convert plain text or other types of data, even between PostScript outputs to PostScript able printers. {{port|print/a2ps}} can simplify this task of converting ASCII to PostScript output. LPR's intended use was for text printing.&lt;br /&gt;
&lt;br /&gt;
LPRng (LPR Next Generation) is an advanced replacement for LPR. It is under the GPL and Artistic licenses. IFHP determines the format and does conversions, including by use of Ghostscript. LPRng takes care of format conversions through its filters, and of PostScript output through Ghostscript. LPRng was designed to be more secure than LPR. LPRng is found at {{port|sysutils/LPRng}}. It uses {{file|printcap}}, {{file|lpd.conf}}, and {{file|lpd.perms}} for configuration.&lt;br /&gt;
&lt;br /&gt;
lprng in services ({{file|rc.conf}}) requires that lpr and cupsd be disabled. LPR and LPRng daemons can be enabled or disabled through {{file|rc.conf}}. LPR compilation in the world build can be disabled through {{man|src.conf|5}}&lt;br /&gt;
&lt;br /&gt;
===CUPS===&lt;br /&gt;
The CUPS framework supports more printers than LPR and LPRng, and it is more advanced. PCL printers are more readily supported under CUPS. CUPS can be administered on the command line, through the web interface, and through a GUI.&lt;br /&gt;
&lt;br /&gt;
The default protocol that CUPS uses is IPP. In addition to IPP, CUPS also has protocol support for: LPD, SMB (Server Message Block) and pdl-datastream. CUPS originally started out over LPD. Samba is only needed for printing on LANs that include Windows computers.&lt;br /&gt;
&lt;br /&gt;
CUPS has its own implementation of LPR in under {{file|/usr/local/}}, as opposed to LPR's default location under {{file|/usr/}}. The LPR files that CUPS uses can be set in {{file|/usr/local/etc/cups/printcap}}. On the command line, CUPS uses BSD LPR style commands.&lt;br /&gt;
&lt;br /&gt;
The command cupsctl can adjust settings in cupsd.conf.&lt;br /&gt;
&lt;br /&gt;
CUPS supports encryption for administration and printing, which wasn't available in older versions. Kerberos will be replaced by OAuth and PAM for access control and security by CUPS 3.0.&lt;br /&gt;
&lt;br /&gt;
CUPS is compatible for use with Zeroconf.&lt;br /&gt;
&lt;br /&gt;
This print architecture uses Apache License 2.0. Legacy versions of CUPS were under GPL.&lt;br /&gt;
&lt;br /&gt;
===More===&lt;br /&gt;
CUPS and LPRng software conflicts so cannot be installed together. LPR and CUPS can coexist, but only one service is needed.&lt;br /&gt;
&lt;br /&gt;
Some programs, such as forks of OpenOffice (such as LibreOffice or Apache OpenOffice) provide their own drivers that output to LPR in place of already configured filters like Ghostscript. Their printing has to be set up independently from an already working CUPS or LPR print configuration.&lt;br /&gt;
&lt;br /&gt;
The Printer Working Group (PWG) intends to offer driverless scanning over IPP. However, there are no IPP scanners and there's no working program from PWG, so SANE is still the de-facto standard for open-source printing.&lt;br /&gt;
&lt;br /&gt;
==Modern CUPS specifications==&lt;br /&gt;
As of future CUPS version 3.0, legacy drivers and PDL's will no longer be used. CUPS 2.3 already supports modern CUPS replacements for printer drivers.&lt;br /&gt;
&lt;br /&gt;
PWG Raster ('image/pwg-raster'), JPEG ('image/jpeg'), and PDF ('application/pdf') are modern formats directly supported by newer printers. PWG Raster and JPEG formats are supported by most new printers since 2010.&lt;br /&gt;
&lt;br /&gt;
There are also IPP-Everywhere compliant printers.&lt;br /&gt;
&lt;br /&gt;
Airprint is an alternate technology for Apple MacOS and i-products. It uses Apple Raster ('image/urf'). Mopria is a printer technology to print from Android, which is intended to be used with PAPPL.&lt;br /&gt;
&lt;br /&gt;
'text/plain' is supported by simple printers. 'application/octet-stream' tells capable printers which format to use. For printers without this capability, the format has to be specified through configuration or through print commands.&lt;br /&gt;
&lt;br /&gt;
The WiFi alliance has a printer specification.&lt;br /&gt;
&lt;br /&gt;
Industrial, label, legacy and other specialized printers don't have the capability for these modern printing formats. LPrint is intended for label printers to work with CUPS, and a few are already supported. The PAPPL framework could be the replacement for drivers of legacy, specialty and other printers to work with newer versions of CUPS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For 3D printers, there are a few formats supported: 3MF, U3D, PRC and PWG compliant G-code. Different versions of PDF have support for either U3D and PRC.&lt;br /&gt;
&lt;br /&gt;
==Legacy specifications: filters/drivers/PDL's==&lt;br /&gt;
Postscript (PS) and PCL (Printer Command Language) are printer languages known as Page Description Languages (PDL's) supported by the majority of printers for interpreting and printing jobs. These two PDLs are alternate models developed by Adobe and HP respectively. PJL is another type of printer language for controlling features. These legacy specifications work up to CUPS version 2.4. Postscript is defined by 'application/postscript', and PCL is defined by 'application/vnd.hp-pcl'.&lt;br /&gt;
&lt;br /&gt;
Many programs simply output data as Postscript. A filter is often needed for different types of output formats (separate from the printer language), even when the printer understands the same printer language as a program's output (such as Postscript). Output formats that need to be converted to a printer language include: dvi, Fortran and Raster.&lt;br /&gt;
&lt;br /&gt;
Filters are useful for different types of output. Carriage returns are different for command line output from Bourne shells, MS DOS, text files and Postscript output. Without the right filters, printers can stair-step or text can otherwise be misaligned.&lt;br /&gt;
&lt;br /&gt;
Printer packaging lists its specs, often: supported PDLs, fonts and graphics formats.&lt;br /&gt;
&lt;br /&gt;
===PCL===&lt;br /&gt;
ASCII is a printer language which PCL is an extension of.&lt;br /&gt;
&lt;br /&gt;
===PostScript===&lt;br /&gt;
LPR in base, and CUPS from ports perform the same function of receiving PostScript output and sending it to PostScript capable printers. CUPS allows printers that use other PCL's to be used through PostScript via PPD (PostScript Printer Description) conversions.&lt;br /&gt;
&lt;br /&gt;
PostScript is the default for both CUPS and Apple. For the most common PDL's: PostScript is considered higher quality than PCL, so more preference is centered around it. There are also very high quality printers that don't use either of these two PDL's.&lt;br /&gt;
&lt;br /&gt;
PostScript printers cost more because of hardware and font license fees from Adobe. However, this company offers PostScript software drivers for free. (Opensource driver software is available as mentioned a few times.) HP computers that have M in the model for Macintosh are PostScript printers (one may want to confirm that the specifications say Postscript).&lt;br /&gt;
&lt;br /&gt;
Conversions for non-PostScript printers rely on PPD's, and filters.&lt;br /&gt;
&lt;br /&gt;
===Conversions===&lt;br /&gt;
Ghostscript is a substitution for PCL printers to work as if they were PostScript. Ghostscript, Foomatic and other printer suites act as filters on LPR. On CUPS, many of these filters plus Gutenprint are able to provide needed PPD's (Postscript Printer Descriptions) for varying printers. {{port|print/foomatic-filters}} may lack compatibility with CUPS, and it conflicts with a needed {{port|print/cups-filters}}.&lt;br /&gt;
&lt;br /&gt;
LPR is able to output to non-PostScript printers by using Ghostscript's {{cmd|gs}} as an input filter through printcap. Ghostscript offers a few conversion programs between Postscript and pdf files.&lt;br /&gt;
&lt;br /&gt;
Ghostscript (under AGPL) can convert PostScript outputs to printer languages which specific non-Postscript printers can interpret. In addition to PCL, Ghostscript makes ESC printers functional. LPRng includes Ghostscript for printer language conversion too. Ghostscript can be used with LPR, CUPS, or LPRng&lt;br /&gt;
&lt;br /&gt;
GhostViewer ({{port|print/gv}}) is a program for viewing Postscript output on the monitor.&lt;br /&gt;
&lt;br /&gt;
===ESC===&lt;br /&gt;
ESC/P (Epson's developed PDL) printers are used in consumer inkjet printers, as well as dot matrix, receipt, thermal, labeling and barcode printers.&lt;br /&gt;
&lt;br /&gt;
===GDI/WIN===&lt;br /&gt;
Win(dos) or GDI printers are generally incompatible with BSD's or Linux. Printers that let the software from the computer run them completely are referred to as dumb printers.&lt;br /&gt;
&lt;br /&gt;
==Components==&lt;br /&gt;
The spool holds printing jobs to be printed in order. Print jobs are held in the {{file|/var/spool/}} directory.&lt;br /&gt;
&lt;br /&gt;
==References/Further Reading==&lt;br /&gt;
* FreeBSD 6 Unleashed&lt;br /&gt;
* Network Administration with FreeBSD 7&lt;br /&gt;
* Building a Server with FreeBSD 7&lt;br /&gt;
* The Complete FreeBSD (2006)&lt;br /&gt;
* https://www.cups.org/&lt;br /&gt;
* http://lprng.com&lt;br /&gt;
* http://www.wonkity.com/~wblock/docs/html/lpdprinting.html&lt;br /&gt;
* https://docs.freebsd.org/en/books/handbook/printing/&lt;br /&gt;
* https://docs.freebsd.org/en/articles/cups/&lt;br /&gt;
* https://www.informit.com/articles/article.aspx?p=167786&lt;br /&gt;
* https://www.cups.org/blog/2018-06-06-demystifying-cups-development.html&lt;br /&gt;
* https://ftp.pwg.org/pub/pwg/liaison/openprinting/presentations/cups-plenary-may-2021.pdf&lt;br /&gt;
* https://www.msweet.org/lprint/&lt;br /&gt;
* https://www.msweet.org/pappl/&lt;br /&gt;
* https://www.pwg.org/3d/index.html&lt;br /&gt;
* https://www.pwg.org/ipp/ippguide.html&lt;br /&gt;
* https://openprinting.github.io/upcoming-technologies/02-ipp-scan/&lt;br /&gt;
(some references are out of date, but still have relevance)&lt;br /&gt;
&lt;br /&gt;
[[Category:New User Tips and FAQs]]&lt;br /&gt;
[[Category:Configuring FreeBSD]]&lt;br /&gt;
[[Category:FreeBSD for Workstations]]&lt;/div&gt;</summary>
		<author><name>Sidetone</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Printing,_about</id>
		<title>Printing, about</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Printing,_about"/>
				<updated>2021-06-21T23:51:56Z</updated>
		
		<summary type="html">&lt;p&gt;Sidetone: /* More */ IPP scanning&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;About printing on FreeBSD: comparisons of printing protocols; about filters, Page Description Languages (PDL's) and printer specifications.&lt;br /&gt;
&lt;br /&gt;
==Protocols==&lt;br /&gt;
LPD (Line Printer Daemon) and IPP (Internet Printing Protocol) are printer protocols defined by IETF. LPD is described by RFC 1179 (not as a standard): it uses service port 515. IPP is defined by RFC 8011 and RFC 3510: it uses service port 631. Access control and security features are available on IPP that aren't on LPD. RFC 2569 is a memo on mapping between LPD and IPP.&lt;br /&gt;
&lt;br /&gt;
pdl-datastream on service port 9100 is for proprietary printers and proprietary local network printer servers. This is often used by JetDirect products.&lt;br /&gt;
&lt;br /&gt;
Printers can also use SMB (over Samba) as a protocol.&lt;br /&gt;
&lt;br /&gt;
==Comparison of print architectures==&lt;br /&gt;
===LPR, LPRng===&lt;br /&gt;
LPR is the default with FreeBSD. LPRng is a more advanced implementation of LPR. These two programs use and can alter {{man|printcap|5}}. LPR and LPRng both use the LPD protocol over service port 515.&lt;br /&gt;
&lt;br /&gt;
LPR and LPRng require manual set up through custom shell scripts of filters to convert plain text or other types of data, even between PostScript outputs to PostScript able printers. {{port|print/a2ps}} can simplify this task of converting ASCII to PostScript output. LPR's intended use was for text printing.&lt;br /&gt;
&lt;br /&gt;
LPRng (LPR Next Generation) is an advanced replacement for LPR. It is under the GPL and Artistic licenses. IFHP determines the format and does conversions, including by use of Ghostscript. LPRng takes care of format conversions through its filters, and of PostScript output through Ghostscript. LPRng was designed to be more secure than LPR. LPRng is found at {{port|sysutils/LPRng}}. It uses {{file|printcap}}, {{file|lpd.conf}}, and {{file|lpd.perms}} for configuration.&lt;br /&gt;
&lt;br /&gt;
lprng in services ({{file|rc.conf}}) requires that lpr and cupsd be disabled. LPR and LPRng daemons can be enabled or disabled through {{file|rc.conf}}. LPR compilation in the world build can be disabled through {{man|src.conf|5}}&lt;br /&gt;
&lt;br /&gt;
===CUPS===&lt;br /&gt;
The CUPS framework supports more printers than LPR and LPRng, and it is more advanced. PCL printers are more readily supported under CUPS. CUPS can be administered on the command line, through the web interface, and through a GUI.&lt;br /&gt;
&lt;br /&gt;
The default protocol that CUPS uses is IPP. In addition to IPP, CUPS also has protocol support for: LPD, SMB (Server Message Block) and pdl-datastream. CUPS originally started out over LPD. Samba is only needed for printing on LANs that include Windows computers.&lt;br /&gt;
&lt;br /&gt;
CUPS has its own implementation of LPR in under {{file|/usr/local/}}, as opposed to LPR's default location under {{file|/usr/}}. The LPR files that CUPS uses can be set in {{file|/usr/local/etc/cups/printcap}}. On the command line, CUPS uses BSD LPR style commands.&lt;br /&gt;
&lt;br /&gt;
The command cupsctl can adjust settings in cupsd.conf.&lt;br /&gt;
&lt;br /&gt;
CUPS supports encryption for administration and printing, which wasn't available in older versions. Kerberos will be replaced by OAuth and PAM for access control and security by CUPS 3.0.&lt;br /&gt;
&lt;br /&gt;
CUPS is compatible for use with Zeroconf.&lt;br /&gt;
&lt;br /&gt;
This print architecture uses Apache License 2.0. Legacy versions of CUPS were under GPL.&lt;br /&gt;
&lt;br /&gt;
===More===&lt;br /&gt;
CUPS and LPRng software conflicts so cannot be installed together. LPR and CUPS can coexist, but only one service is needed.&lt;br /&gt;
&lt;br /&gt;
Some programs, such as forks of OpenOffice (such as LibreOffice or Apache OpenOffice) provide their own drivers that output to LPR in place of already configured filters like Ghostscript. Their printing has to be set up independently from an already working CUPS or LPR print configuration.&lt;br /&gt;
&lt;br /&gt;
The Printer Working Group (PWG) intends to offer driverless scanning over IPP. However there are no IPP scanners and there's no working program from PWG, so SANE is still the de-facto standard for open-source printing.&lt;br /&gt;
&lt;br /&gt;
==Modern CUPS specifications==&lt;br /&gt;
As of future CUPS version 3.0, legacy drivers and PDL's will no longer be used. CUPS 2.3 already supports modern CUPS replacements for printer drivers.&lt;br /&gt;
&lt;br /&gt;
PWG Raster ('image/pwg-raster'), JPEG ('image/jpeg'), and PDF ('application/pdf') are modern formats directly supported by newer printers. PWG Raster and JPEG formats are supported by most new printers since 2010.&lt;br /&gt;
&lt;br /&gt;
There are also IPP-Everywhere compliant printers.&lt;br /&gt;
&lt;br /&gt;
Airprint is an alternate technology for Apple MacOS and i-products. It uses Apple Raster ('image/urf'). Mopria is a printer technology to print from Android, which is intended to be used with PAPPL.&lt;br /&gt;
&lt;br /&gt;
'text/plain' is supported by simple printers. 'application/octet-stream' tells capable printers which format to use. For printers without this capability, the format has to be specified through configuration or through print commands.&lt;br /&gt;
&lt;br /&gt;
The WiFi alliance has a printer specification.&lt;br /&gt;
&lt;br /&gt;
Industrial, label, legacy and other specialized printers don't have the capability for these modern printing formats. LPrint is intended for label printers to work with CUPS, and a few are already supported. The PAPPL framework could be the replacement for drivers of legacy, specialty and other printers to work with newer versions of CUPS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For 3D printers, there are a few formats supported: 3MF, U3D, PRC and PWG compliant G-code. Different versions of PDF have support for either U3D and PRC.&lt;br /&gt;
&lt;br /&gt;
==Legacy specifications: filters/drivers/PDL's==&lt;br /&gt;
Postscript (PS) and PCL (Printer Command Language) are printer languages known as Page Description Languages (PDL's) supported by the majority of printers for interpreting and printing jobs. These two PDLs are alternate models developed by Adobe and HP respectively. PJL is another type of printer language for controlling features. These legacy specifications work up to CUPS version 2.4. Postscript is defined by 'application/postscript', and PCL is defined by 'application/vnd.hp-pcl'.&lt;br /&gt;
&lt;br /&gt;
Many programs simply output data as Postscript. A filter is often needed for different types of output formats (separate from the printer language), even when the printer understands the same printer language as a program's output (such as Postscript). Output formats that need to be converted to a printer language include: dvi, Fortran and Raster.&lt;br /&gt;
&lt;br /&gt;
Filters are useful for different types of output. Carriage returns are different for command line output from Bourne shells, MS DOS, text files and Postscript output. Without the right filters, printers can stair-step or text can otherwise be misaligned.&lt;br /&gt;
&lt;br /&gt;
Printer packaging lists its specs, often: supported PDLs, fonts and graphics formats.&lt;br /&gt;
&lt;br /&gt;
===PCL===&lt;br /&gt;
ASCII is a printer language which PCL is an extension of.&lt;br /&gt;
&lt;br /&gt;
===PostScript===&lt;br /&gt;
LPR in base, and CUPS from ports perform the same function of receiving PostScript output and sending it to PostScript capable printers. CUPS allows printers that use other PCL's to be used through PostScript via PPD (PostScript Printer Description) conversions.&lt;br /&gt;
&lt;br /&gt;
PostScript is the default for both CUPS and Apple. For the most common PDL's: PostScript is considered higher quality than PCL, so more preference is centered around it. There are also very high quality printers that don't use either of these two PDL's.&lt;br /&gt;
&lt;br /&gt;
PostScript printers cost more because of hardware and font license fees from Adobe. However, this company offers PostScript software drivers for free. (Opensource driver software is available as mentioned a few times.) HP computers that have M in the model for Macintosh are PostScript printers (one may want to confirm that the specifications say Postscript).&lt;br /&gt;
&lt;br /&gt;
Conversions for non-PostScript printers rely on PPD's, and filters.&lt;br /&gt;
&lt;br /&gt;
===Conversions===&lt;br /&gt;
Ghostscript is a substitution for PCL printers to work as if they were PostScript. Ghostscript, Foomatic and other printer suites act as filters on LPR. On CUPS, many of these filters plus Gutenprint are able to provide needed PPD's (Postscript Printer Descriptions) for varying printers. {{port|print/foomatic-filters}} may lack compatibility with CUPS, and it conflicts with a needed {{port|print/cups-filters}}.&lt;br /&gt;
&lt;br /&gt;
LPR is able to output to non-PostScript printers by using Ghostscript's {{cmd|gs}} as an input filter through printcap. Ghostscript offers a few conversion programs between Postscript and pdf files.&lt;br /&gt;
&lt;br /&gt;
Ghostscript (under AGPL) can convert PostScript outputs to printer languages which specific non-Postscript printers can interpret. In addition to PCL, Ghostscript makes ESC printers functional. LPRng includes Ghostscript for printer language conversion too. Ghostscript can be used with LPR, CUPS, or LPRng&lt;br /&gt;
&lt;br /&gt;
GhostViewer ({{port|print/gv}}) is a program for viewing Postscript output on the monitor.&lt;br /&gt;
&lt;br /&gt;
===ESC===&lt;br /&gt;
ESC/P (Epson's developed PDL) printers are used in consumer inkjet printers, as well as dot matrix, receipt, thermal, labeling and barcode printers.&lt;br /&gt;
&lt;br /&gt;
===GDI/WIN===&lt;br /&gt;
Win(dos) or GDI printers are generally incompatible with BSD's or Linux. Printers that let the software from the computer run them completely are referred to as dumb printers.&lt;br /&gt;
&lt;br /&gt;
==Components==&lt;br /&gt;
The spool holds printing jobs to be printed in order. Print jobs are held in the {{file|/var/spool/}} directory.&lt;br /&gt;
&lt;br /&gt;
==References/Further Reading==&lt;br /&gt;
* FreeBSD 6 Unleashed&lt;br /&gt;
* Network Administration with FreeBSD 7&lt;br /&gt;
* Building a Server with FreeBSD 7&lt;br /&gt;
* The Complete FreeBSD (2006)&lt;br /&gt;
* https://www.cups.org/&lt;br /&gt;
* http://lprng.com&lt;br /&gt;
* http://www.wonkity.com/~wblock/docs/html/lpdprinting.html&lt;br /&gt;
* https://docs.freebsd.org/en/books/handbook/printing/&lt;br /&gt;
* https://docs.freebsd.org/en/articles/cups/&lt;br /&gt;
* https://www.informit.com/articles/article.aspx?p=167786&lt;br /&gt;
* https://www.cups.org/blog/2018-06-06-demystifying-cups-development.html&lt;br /&gt;
* https://ftp.pwg.org/pub/pwg/liaison/openprinting/presentations/cups-plenary-may-2021.pdf&lt;br /&gt;
* https://www.msweet.org/lprint/&lt;br /&gt;
* https://www.msweet.org/pappl/&lt;br /&gt;
* https://www.pwg.org/3d/index.html&lt;br /&gt;
* https://www.pwg.org/ipp/ippguide.html&lt;br /&gt;
* https://openprinting.github.io/upcoming-technologies/02-ipp-scan/&lt;br /&gt;
(some references are out of date, but still have relevance)&lt;br /&gt;
&lt;br /&gt;
[[Category:New User Tips and FAQs]]&lt;br /&gt;
[[Category:Configuring FreeBSD]]&lt;br /&gt;
[[Category:FreeBSD for Workstations]]&lt;/div&gt;</summary>
		<author><name>Sidetone</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Printing,_about</id>
		<title>Printing, about</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Printing,_about"/>
				<updated>2021-06-21T23:47:44Z</updated>
		
		<summary type="html">&lt;p&gt;Sidetone: /* References/Further Reading */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;About printing on FreeBSD: comparisons of printing protocols; about filters, Page Description Languages (PDL's) and printer specifications.&lt;br /&gt;
&lt;br /&gt;
==Protocols==&lt;br /&gt;
LPD (Line Printer Daemon) and IPP (Internet Printing Protocol) are printer protocols defined by IETF. LPD is described by RFC 1179 (not as a standard): it uses service port 515. IPP is defined by RFC 8011 and RFC 3510: it uses service port 631. Access control and security features are available on IPP that aren't on LPD. RFC 2569 is a memo on mapping between LPD and IPP.&lt;br /&gt;
&lt;br /&gt;
pdl-datastream on service port 9100 is for proprietary printers and proprietary local network printer servers. This is often used by JetDirect products.&lt;br /&gt;
&lt;br /&gt;
Printers can also use SMB (over Samba) as a protocol.&lt;br /&gt;
&lt;br /&gt;
==Comparison of print architectures==&lt;br /&gt;
===LPR, LPRng===&lt;br /&gt;
LPR is the default with FreeBSD. LPRng is a more advanced implementation of LPR. These two programs use and can alter {{man|printcap|5}}. LPR and LPRng both use the LPD protocol over service port 515.&lt;br /&gt;
&lt;br /&gt;
LPR and LPRng require manual set up through custom shell scripts of filters to convert plain text or other types of data, even between PostScript outputs to PostScript able printers. {{port|print/a2ps}} can simplify this task of converting ASCII to PostScript output. LPR's intended use was for text printing.&lt;br /&gt;
&lt;br /&gt;
LPRng (LPR Next Generation) is an advanced replacement for LPR. It is under the GPL and Artistic licenses. IFHP determines the format and does conversions, including by use of Ghostscript. LPRng takes care of format conversions through its filters, and of PostScript output through Ghostscript. LPRng was designed to be more secure than LPR. LPRng is found at {{port|sysutils/LPRng}}. It uses {{file|printcap}}, {{file|lpd.conf}}, and {{file|lpd.perms}} for configuration.&lt;br /&gt;
&lt;br /&gt;
lprng in services ({{file|rc.conf}}) requires that lpr and cupsd be disabled. LPR and LPRng daemons can be enabled or disabled through {{file|rc.conf}}. LPR compilation in the world build can be disabled through {{man|src.conf|5}}&lt;br /&gt;
&lt;br /&gt;
===CUPS===&lt;br /&gt;
The CUPS framework supports more printers than LPR and LPRng, and it is more advanced. PCL printers are more readily supported under CUPS. CUPS can be administered on the command line, through the web interface, and through a GUI.&lt;br /&gt;
&lt;br /&gt;
The default protocol that CUPS uses is IPP. In addition to IPP, CUPS also has protocol support for: LPD, SMB (Server Message Block) and pdl-datastream. CUPS originally started out over LPD. Samba is only needed for printing on LANs that include Windows computers.&lt;br /&gt;
&lt;br /&gt;
CUPS has its own implementation of LPR in under {{file|/usr/local/}}, as opposed to LPR's default location under {{file|/usr/}}. The LPR files that CUPS uses can be set in {{file|/usr/local/etc/cups/printcap}}. On the command line, CUPS uses BSD LPR style commands.&lt;br /&gt;
&lt;br /&gt;
The command cupsctl can adjust settings in cupsd.conf.&lt;br /&gt;
&lt;br /&gt;
CUPS supports encryption for administration and printing, which wasn't available in older versions. Kerberos will be replaced by OAuth and PAM for access control and security by CUPS 3.0.&lt;br /&gt;
&lt;br /&gt;
CUPS is compatible for use with Zeroconf.&lt;br /&gt;
&lt;br /&gt;
This print architecture uses Apache License 2.0. Legacy versions of CUPS were under GPL.&lt;br /&gt;
&lt;br /&gt;
===More===&lt;br /&gt;
CUPS and LPRng software conflicts so cannot be installed together. LPR and CUPS can coexist, but only one service is needed.&lt;br /&gt;
&lt;br /&gt;
Some programs, such as forks of OpenOffice (such as LibreOffice or Apache OpenOffice) provide their own drivers that output to LPR in place of already configured filters like Ghostscript. Their printing has to be set up independently from an already working CUPS or LPR print configuration.&lt;br /&gt;
&lt;br /&gt;
==Modern CUPS specifications==&lt;br /&gt;
As of future CUPS version 3.0, legacy drivers and PDL's will no longer be used. CUPS 2.3 already supports modern CUPS replacements for printer drivers.&lt;br /&gt;
&lt;br /&gt;
PWG Raster ('image/pwg-raster'), JPEG ('image/jpeg'), and PDF ('application/pdf') are modern formats directly supported by newer printers. PWG Raster and JPEG formats are supported by most new printers since 2010.&lt;br /&gt;
&lt;br /&gt;
There are also IPP-Everywhere compliant printers.&lt;br /&gt;
&lt;br /&gt;
Airprint is an alternate technology for Apple MacOS and i-products. It uses Apple Raster ('image/urf'). Mopria is a printer technology to print from Android, which is intended to be used with PAPPL.&lt;br /&gt;
&lt;br /&gt;
'text/plain' is supported by simple printers. 'application/octet-stream' tells capable printers which format to use. For printers without this capability, the format has to be specified through configuration or through print commands.&lt;br /&gt;
&lt;br /&gt;
The WiFi alliance has a printer specification.&lt;br /&gt;
&lt;br /&gt;
Industrial, label, legacy and other specialized printers don't have the capability for these modern printing formats. LPrint is intended for label printers to work with CUPS, and a few are already supported. The PAPPL framework could be the replacement for drivers of legacy, specialty and other printers to work with newer versions of CUPS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For 3D printers, there are a few formats supported: 3MF, U3D, PRC and PWG compliant G-code. Different versions of PDF have support for either U3D and PRC.&lt;br /&gt;
&lt;br /&gt;
==Legacy specifications: filters/drivers/PDL's==&lt;br /&gt;
Postscript (PS) and PCL (Printer Command Language) are printer languages known as Page Description Languages (PDL's) supported by the majority of printers for interpreting and printing jobs. These two PDLs are alternate models developed by Adobe and HP respectively. PJL is another type of printer language for controlling features. These legacy specifications work up to CUPS version 2.4. Postscript is defined by 'application/postscript', and PCL is defined by 'application/vnd.hp-pcl'.&lt;br /&gt;
&lt;br /&gt;
Many programs simply output data as Postscript. A filter is often needed for different types of output formats (separate from the printer language), even when the printer understands the same printer language as a program's output (such as Postscript). Output formats that need to be converted to a printer language include: dvi, Fortran and Raster.&lt;br /&gt;
&lt;br /&gt;
Filters are useful for different types of output. Carriage returns are different for command line output from Bourne shells, MS DOS, text files and Postscript output. Without the right filters, printers can stair-step or text can otherwise be misaligned.&lt;br /&gt;
&lt;br /&gt;
Printer packaging lists its specs, often: supported PDLs, fonts and graphics formats.&lt;br /&gt;
&lt;br /&gt;
===PCL===&lt;br /&gt;
ASCII is a printer language which PCL is an extension of.&lt;br /&gt;
&lt;br /&gt;
===PostScript===&lt;br /&gt;
LPR in base, and CUPS from ports perform the same function of receiving PostScript output and sending it to PostScript capable printers. CUPS allows printers that use other PCL's to be used through PostScript via PPD (PostScript Printer Description) conversions.&lt;br /&gt;
&lt;br /&gt;
PostScript is the default for both CUPS and Apple. For the most common PDL's: PostScript is considered higher quality than PCL, so more preference is centered around it. There are also very high quality printers that don't use either of these two PDL's.&lt;br /&gt;
&lt;br /&gt;
PostScript printers cost more because of hardware and font license fees from Adobe. However, this company offers PostScript software drivers for free. (Opensource driver software is available as mentioned a few times.) HP computers that have M in the model for Macintosh are PostScript printers (one may want to confirm that the specifications say Postscript).&lt;br /&gt;
&lt;br /&gt;
Conversions for non-PostScript printers rely on PPD's, and filters.&lt;br /&gt;
&lt;br /&gt;
===Conversions===&lt;br /&gt;
Ghostscript is a substitution for PCL printers to work as if they were PostScript. Ghostscript, Foomatic and other printer suites act as filters on LPR. On CUPS, many of these filters plus Gutenprint are able to provide needed PPD's (Postscript Printer Descriptions) for varying printers. {{port|print/foomatic-filters}} may lack compatibility with CUPS, and it conflicts with a needed {{port|print/cups-filters}}.&lt;br /&gt;
&lt;br /&gt;
LPR is able to output to non-PostScript printers by using Ghostscript's {{cmd|gs}} as an input filter through printcap. Ghostscript offers a few conversion programs between Postscript and pdf files.&lt;br /&gt;
&lt;br /&gt;
Ghostscript (under AGPL) can convert PostScript outputs to printer languages which specific non-Postscript printers can interpret. In addition to PCL, Ghostscript makes ESC printers functional. LPRng includes Ghostscript for printer language conversion too. Ghostscript can be used with LPR, CUPS, or LPRng&lt;br /&gt;
&lt;br /&gt;
GhostViewer ({{port|print/gv}}) is a program for viewing Postscript output on the monitor.&lt;br /&gt;
&lt;br /&gt;
===ESC===&lt;br /&gt;
ESC/P (Epson's developed PDL) printers are used in consumer inkjet printers, as well as dot matrix, receipt, thermal, labeling and barcode printers.&lt;br /&gt;
&lt;br /&gt;
===GDI/WIN===&lt;br /&gt;
Win(dos) or GDI printers are generally incompatible with BSD's or Linux. Printers that let the software from the computer run them completely are referred to as dumb printers.&lt;br /&gt;
&lt;br /&gt;
==Components==&lt;br /&gt;
The spool holds printing jobs to be printed in order. Print jobs are held in the {{file|/var/spool/}} directory.&lt;br /&gt;
&lt;br /&gt;
==References/Further Reading==&lt;br /&gt;
* FreeBSD 6 Unleashed&lt;br /&gt;
* Network Administration with FreeBSD 7&lt;br /&gt;
* Building a Server with FreeBSD 7&lt;br /&gt;
* The Complete FreeBSD (2006)&lt;br /&gt;
* https://www.cups.org/&lt;br /&gt;
* http://lprng.com&lt;br /&gt;
* http://www.wonkity.com/~wblock/docs/html/lpdprinting.html&lt;br /&gt;
* https://docs.freebsd.org/en/books/handbook/printing/&lt;br /&gt;
* https://docs.freebsd.org/en/articles/cups/&lt;br /&gt;
* https://www.informit.com/articles/article.aspx?p=167786&lt;br /&gt;
* https://www.cups.org/blog/2018-06-06-demystifying-cups-development.html&lt;br /&gt;
* https://ftp.pwg.org/pub/pwg/liaison/openprinting/presentations/cups-plenary-may-2021.pdf&lt;br /&gt;
* https://www.msweet.org/lprint/&lt;br /&gt;
* https://www.msweet.org/pappl/&lt;br /&gt;
* https://www.pwg.org/3d/index.html&lt;br /&gt;
* https://www.pwg.org/ipp/ippguide.html&lt;br /&gt;
* https://openprinting.github.io/upcoming-technologies/02-ipp-scan/&lt;br /&gt;
(some references are out of date, but still have relevance)&lt;br /&gt;
&lt;br /&gt;
[[Category:New User Tips and FAQs]]&lt;br /&gt;
[[Category:Configuring FreeBSD]]&lt;br /&gt;
[[Category:FreeBSD for Workstations]]&lt;/div&gt;</summary>
		<author><name>Sidetone</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Printing,_about</id>
		<title>Printing, about</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Printing,_about"/>
				<updated>2021-06-21T23:33:16Z</updated>
		
		<summary type="html">&lt;p&gt;Sidetone: /* Modern CUPS specifications */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;About printing on FreeBSD: comparisons of printing protocols; about filters, Page Description Languages (PDL's) and printer specifications.&lt;br /&gt;
&lt;br /&gt;
==Protocols==&lt;br /&gt;
LPD (Line Printer Daemon) and IPP (Internet Printing Protocol) are printer protocols defined by IETF. LPD is described by RFC 1179 (not as a standard): it uses service port 515. IPP is defined by RFC 8011 and RFC 3510: it uses service port 631. Access control and security features are available on IPP that aren't on LPD. RFC 2569 is a memo on mapping between LPD and IPP.&lt;br /&gt;
&lt;br /&gt;
pdl-datastream on service port 9100 is for proprietary printers and proprietary local network printer servers. This is often used by JetDirect products.&lt;br /&gt;
&lt;br /&gt;
Printers can also use SMB (over Samba) as a protocol.&lt;br /&gt;
&lt;br /&gt;
==Comparison of print architectures==&lt;br /&gt;
===LPR, LPRng===&lt;br /&gt;
LPR is the default with FreeBSD. LPRng is a more advanced implementation of LPR. These two programs use and can alter {{man|printcap|5}}. LPR and LPRng both use the LPD protocol over service port 515.&lt;br /&gt;
&lt;br /&gt;
LPR and LPRng require manual set up through custom shell scripts of filters to convert plain text or other types of data, even between PostScript outputs to PostScript able printers. {{port|print/a2ps}} can simplify this task of converting ASCII to PostScript output. LPR's intended use was for text printing.&lt;br /&gt;
&lt;br /&gt;
LPRng (LPR Next Generation) is an advanced replacement for LPR. It is under the GPL and Artistic licenses. IFHP determines the format and does conversions, including by use of Ghostscript. LPRng takes care of format conversions through its filters, and of PostScript output through Ghostscript. LPRng was designed to be more secure than LPR. LPRng is found at {{port|sysutils/LPRng}}. It uses {{file|printcap}}, {{file|lpd.conf}}, and {{file|lpd.perms}} for configuration.&lt;br /&gt;
&lt;br /&gt;
lprng in services ({{file|rc.conf}}) requires that lpr and cupsd be disabled. LPR and LPRng daemons can be enabled or disabled through {{file|rc.conf}}. LPR compilation in the world build can be disabled through {{man|src.conf|5}}&lt;br /&gt;
&lt;br /&gt;
===CUPS===&lt;br /&gt;
The CUPS framework supports more printers than LPR and LPRng, and it is more advanced. PCL printers are more readily supported under CUPS. CUPS can be administered on the command line, through the web interface, and through a GUI.&lt;br /&gt;
&lt;br /&gt;
The default protocol that CUPS uses is IPP. In addition to IPP, CUPS also has protocol support for: LPD, SMB (Server Message Block) and pdl-datastream. CUPS originally started out over LPD. Samba is only needed for printing on LANs that include Windows computers.&lt;br /&gt;
&lt;br /&gt;
CUPS has its own implementation of LPR in under {{file|/usr/local/}}, as opposed to LPR's default location under {{file|/usr/}}. The LPR files that CUPS uses can be set in {{file|/usr/local/etc/cups/printcap}}. On the command line, CUPS uses BSD LPR style commands.&lt;br /&gt;
&lt;br /&gt;
The command cupsctl can adjust settings in cupsd.conf.&lt;br /&gt;
&lt;br /&gt;
CUPS supports encryption for administration and printing, which wasn't available in older versions. Kerberos will be replaced by OAuth and PAM for access control and security by CUPS 3.0.&lt;br /&gt;
&lt;br /&gt;
CUPS is compatible for use with Zeroconf.&lt;br /&gt;
&lt;br /&gt;
This print architecture uses Apache License 2.0. Legacy versions of CUPS were under GPL.&lt;br /&gt;
&lt;br /&gt;
===More===&lt;br /&gt;
CUPS and LPRng software conflicts so cannot be installed together. LPR and CUPS can coexist, but only one service is needed.&lt;br /&gt;
&lt;br /&gt;
Some programs, such as forks of OpenOffice (such as LibreOffice or Apache OpenOffice) provide their own drivers that output to LPR in place of already configured filters like Ghostscript. Their printing has to be set up independently from an already working CUPS or LPR print configuration.&lt;br /&gt;
&lt;br /&gt;
==Modern CUPS specifications==&lt;br /&gt;
As of future CUPS version 3.0, legacy drivers and PDL's will no longer be used. CUPS 2.3 already supports modern CUPS replacements for printer drivers.&lt;br /&gt;
&lt;br /&gt;
PWG Raster ('image/pwg-raster'), JPEG ('image/jpeg'), and PDF ('application/pdf') are modern formats directly supported by newer printers. PWG Raster and JPEG formats are supported by most new printers since 2010.&lt;br /&gt;
&lt;br /&gt;
There are also IPP-Everywhere compliant printers.&lt;br /&gt;
&lt;br /&gt;
Airprint is an alternate technology for Apple MacOS and i-products. It uses Apple Raster ('image/urf'). Mopria is a printer technology to print from Android, which is intended to be used with PAPPL.&lt;br /&gt;
&lt;br /&gt;
'text/plain' is supported by simple printers. 'application/octet-stream' tells capable printers which format to use. For printers without this capability, the format has to be specified through configuration or through print commands.&lt;br /&gt;
&lt;br /&gt;
The WiFi alliance has a printer specification.&lt;br /&gt;
&lt;br /&gt;
Industrial, label, legacy and other specialized printers don't have the capability for these modern printing formats. LPrint is intended for label printers to work with CUPS, and a few are already supported. The PAPPL framework could be the replacement for drivers of legacy, specialty and other printers to work with newer versions of CUPS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For 3D printers, there are a few formats supported: 3MF, U3D, PRC and PWG compliant G-code. Different versions of PDF have support for either U3D and PRC.&lt;br /&gt;
&lt;br /&gt;
==Legacy specifications: filters/drivers/PDL's==&lt;br /&gt;
Postscript (PS) and PCL (Printer Command Language) are printer languages known as Page Description Languages (PDL's) supported by the majority of printers for interpreting and printing jobs. These two PDLs are alternate models developed by Adobe and HP respectively. PJL is another type of printer language for controlling features. These legacy specifications work up to CUPS version 2.4. Postscript is defined by 'application/postscript', and PCL is defined by 'application/vnd.hp-pcl'.&lt;br /&gt;
&lt;br /&gt;
Many programs simply output data as Postscript. A filter is often needed for different types of output formats (separate from the printer language), even when the printer understands the same printer language as a program's output (such as Postscript). Output formats that need to be converted to a printer language include: dvi, Fortran and Raster.&lt;br /&gt;
&lt;br /&gt;
Filters are useful for different types of output. Carriage returns are different for command line output from Bourne shells, MS DOS, text files and Postscript output. Without the right filters, printers can stair-step or text can otherwise be misaligned.&lt;br /&gt;
&lt;br /&gt;
Printer packaging lists its specs, often: supported PDLs, fonts and graphics formats.&lt;br /&gt;
&lt;br /&gt;
===PCL===&lt;br /&gt;
ASCII is a printer language which PCL is an extension of.&lt;br /&gt;
&lt;br /&gt;
===PostScript===&lt;br /&gt;
LPR in base, and CUPS from ports perform the same function of receiving PostScript output and sending it to PostScript capable printers. CUPS allows printers that use other PCL's to be used through PostScript via PPD (PostScript Printer Description) conversions.&lt;br /&gt;
&lt;br /&gt;
PostScript is the default for both CUPS and Apple. For the most common PDL's: PostScript is considered higher quality than PCL, so more preference is centered around it. There are also very high quality printers that don't use either of these two PDL's.&lt;br /&gt;
&lt;br /&gt;
PostScript printers cost more because of hardware and font license fees from Adobe. However, this company offers PostScript software drivers for free. (Opensource driver software is available as mentioned a few times.) HP computers that have M in the model for Macintosh are PostScript printers (one may want to confirm that the specifications say Postscript).&lt;br /&gt;
&lt;br /&gt;
Conversions for non-PostScript printers rely on PPD's, and filters.&lt;br /&gt;
&lt;br /&gt;
===Conversions===&lt;br /&gt;
Ghostscript is a substitution for PCL printers to work as if they were PostScript. Ghostscript, Foomatic and other printer suites act as filters on LPR. On CUPS, many of these filters plus Gutenprint are able to provide needed PPD's (Postscript Printer Descriptions) for varying printers. {{port|print/foomatic-filters}} may lack compatibility with CUPS, and it conflicts with a needed {{port|print/cups-filters}}.&lt;br /&gt;
&lt;br /&gt;
LPR is able to output to non-PostScript printers by using Ghostscript's {{cmd|gs}} as an input filter through printcap. Ghostscript offers a few conversion programs between Postscript and pdf files.&lt;br /&gt;
&lt;br /&gt;
Ghostscript (under AGPL) can convert PostScript outputs to printer languages which specific non-Postscript printers can interpret. In addition to PCL, Ghostscript makes ESC printers functional. LPRng includes Ghostscript for printer language conversion too. Ghostscript can be used with LPR, CUPS, or LPRng&lt;br /&gt;
&lt;br /&gt;
GhostViewer ({{port|print/gv}}) is a program for viewing Postscript output on the monitor.&lt;br /&gt;
&lt;br /&gt;
===ESC===&lt;br /&gt;
ESC/P (Epson's developed PDL) printers are used in consumer inkjet printers, as well as dot matrix, receipt, thermal, labeling and barcode printers.&lt;br /&gt;
&lt;br /&gt;
===GDI/WIN===&lt;br /&gt;
Win(dos) or GDI printers are generally incompatible with BSD's or Linux. Printers that let the software from the computer run them completely are referred to as dumb printers.&lt;br /&gt;
&lt;br /&gt;
==Components==&lt;br /&gt;
The spool holds printing jobs to be printed in order. Print jobs are held in the {{file|/var/spool/}} directory.&lt;br /&gt;
&lt;br /&gt;
==References/Further Reading==&lt;br /&gt;
* FreeBSD 6 Unleashed&lt;br /&gt;
* Network Administration with FreeBSD 7&lt;br /&gt;
* Building a Server with FreeBSD 7&lt;br /&gt;
* The Complete FreeBSD (2006)&lt;br /&gt;
* https://www.cups.org/&lt;br /&gt;
* http://lprng.com&lt;br /&gt;
* http://www.wonkity.com/~wblock/docs/html/lpdprinting.html&lt;br /&gt;
* https://docs.freebsd.org/en/books/handbook/printing/&lt;br /&gt;
* https://docs.freebsd.org/en/articles/cups/&lt;br /&gt;
* https://www.informit.com/articles/article.aspx?p=167786&lt;br /&gt;
* https://www.cups.org/blog/2018-06-06-demystifying-cups-development.html&lt;br /&gt;
* https://ftp.pwg.org/pub/pwg/liaison/openprinting/presentations/cups-plenary-may-2021.pdf&lt;br /&gt;
* https://www.msweet.org/lprint/&lt;br /&gt;
* https://www.msweet.org/pappl/&lt;br /&gt;
* https://www.pwg.org/3d/index.html&lt;br /&gt;
* https://www.pwg.org/ipp/ippguide.html&lt;br /&gt;
(some references are out of date, but still have relevance)&lt;br /&gt;
&lt;br /&gt;
[[Category:New User Tips and FAQs]]&lt;br /&gt;
[[Category:Configuring FreeBSD]]&lt;br /&gt;
[[Category:FreeBSD for Workstations]]&lt;/div&gt;</summary>
		<author><name>Sidetone</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/CUPS</id>
		<title>CUPS</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/CUPS"/>
				<updated>2021-06-21T23:31:38Z</updated>
		
		<summary type="html">&lt;p&gt;Sidetone: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CUPS (Common Unix Printing System)&lt;br /&gt;
This makes it easy to add printers to your system and programs such as firefox will pick up the printer list automatically. For information about printing systems and about modern printing on CUPS, see [[Printing, about]].&lt;br /&gt;
&lt;br /&gt;
==Installing CUPS==&lt;br /&gt;
Make sure CUPS supports your printer.&lt;br /&gt;
&lt;br /&gt;
To install:&lt;br /&gt;
 # pkg_add -r cups&lt;br /&gt;
&lt;br /&gt;
or &lt;br /&gt;
&lt;br /&gt;
 # cd /usr/ports/print/cups&lt;br /&gt;
 # make install clean&lt;br /&gt;
&lt;br /&gt;
The CUPS daemon can now be started.&lt;br /&gt;
&lt;br /&gt;
 # export cupsd_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 # /usr/local/etc/rc.d/cupsd start&lt;br /&gt;
&lt;br /&gt;
If you want CUPS to start at boot time, add the line ''cupsd_enable=&amp;quot;YES&amp;quot;'' to /etc/rc.conf. The Cups configuration file is at ''/usr/local/etc/cups/cupsd.conf''.&lt;br /&gt;
&lt;br /&gt;
Note that the port installed by sysinstall (for FreeBSD 6.2 at least) is cups-base and much functionality is missing so you may want to add the above port even if you installed cups when you installed FreeBSD. As well, cups-base (and perhaps cups) does not create a directory for CUPS log files. They can be very handy for debugging so create one this way:&lt;br /&gt;
&lt;br /&gt;
 # mkdir /var/log/cups&lt;br /&gt;
&lt;br /&gt;
==Install a Parallel Printer==&lt;br /&gt;
&lt;br /&gt;
If you use an old parallel printer then you need to do the following before you add the printer through cups:&lt;br /&gt;
&lt;br /&gt;
 # chown root:cups /dev/lpt0&lt;br /&gt;
 # chmod 0660 /dev/lpt0&lt;br /&gt;
&lt;br /&gt;
Now add these lines to /etc/devfs.conf so that the permissions are set during boot time&lt;br /&gt;
&lt;br /&gt;
 own    /dev/lpt0    root:cups&lt;br /&gt;
 perm   /dev/lpt0    0660&lt;br /&gt;
&lt;br /&gt;
Turn on your printer and let it boot up. You should also make sure that it is &amp;quot;On Line&amp;quot;. Now go back into the cups setup http://localhost:631 and add your printer, you will notice that there is now a Parallel device present.&lt;br /&gt;
&lt;br /&gt;
After installing a printer try printing a test page. If you are using a non-Postscript printer you may get the error:&lt;br /&gt;
&lt;br /&gt;
 Unsupported format 'application/postscript'&lt;br /&gt;
&lt;br /&gt;
In this case, add the port cups-pstoraster or the cups meta-port.&lt;br /&gt;
&lt;br /&gt;
 # pkg_add -r cups-pstoraster&lt;br /&gt;
 &lt;br /&gt;
 or&lt;br /&gt;
 &lt;br /&gt;
 # pkg_add -r cups&lt;br /&gt;
&lt;br /&gt;
Now open /usr/local/etc/cups/mime.convs in an editor as root and add or uncomment the line linking pstoraster to the mime type application/postscript.&lt;br /&gt;
&lt;br /&gt;
 application/vnd.cups-postscript application/vnd.cups-raster     100     pstoraster&lt;br /&gt;
&lt;br /&gt;
Restart the cups daemon&lt;br /&gt;
&lt;br /&gt;
 # /usr/local/etc/rc.d/cupsd restart&lt;br /&gt;
&lt;br /&gt;
and try to print a test page.&lt;br /&gt;
&lt;br /&gt;
==Installing a PCL printer==&lt;br /&gt;
&lt;br /&gt;
If you have a printer which handles PCL but not PS then you need to install the 'hpijs' port&lt;br /&gt;
&lt;br /&gt;
 # portinstall -P hpijs&lt;br /&gt;
&lt;br /&gt;
Now you will have a huge list of HP printers to select from, if you have a basic B&amp;amp;W laser printer which accepts PCL then use the 'HP LaserJet 5L Foomatic/hpijs' driver and you shouldn't have a problem.&lt;br /&gt;
&lt;br /&gt;
==Printing from Windows XP to a FreeBSD CUPs server==&lt;br /&gt;
You don't require samba to print from an XP client through a FreeBSD CUPS server to your printer.  It's easier to do this without samba actually.  It doesn't matter if you have samba installed though.&lt;br /&gt;
&lt;br /&gt;
Simply get your printers working under CUPs and on the local server and test these.  Then on the windows box add a new network printer and point that printer to your server by using the URL section of the wizard.&lt;br /&gt;
&lt;br /&gt;
For example &lt;br /&gt;
 http://&amp;lt;server&amp;gt;:631/printers/&amp;lt;printer name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then you will be able to have full rights of that printer on each windows box.&lt;br /&gt;
&lt;br /&gt;
==KDE Setup==&lt;br /&gt;
You can setup any non KDE applications such as Openoffice to use the KDE printer dialogue by setting up the default printer of that applications as:&lt;br /&gt;
&lt;br /&gt;
 kprinter -stdin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Openoffice===&lt;br /&gt;
Change the default printer in openoffice spadmin program&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===xpdf===&lt;br /&gt;
&lt;br /&gt;
Add the following to /usr/X11R6/etc/xpdfrc config file.&lt;br /&gt;
 psFile                  &amp;quot;|kprinter -stdin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==CUPS to PDF==&lt;br /&gt;
CUPS can also be used to print directly from any program to a PDF file.&lt;br /&gt;
&lt;br /&gt;
 # pkg_add -r cups-pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==CUPS mimics lpr==&lt;br /&gt;
If you have old programs which use lpr to print then you should install CUPS-lpr&lt;br /&gt;
 &lt;br /&gt;
 # pkg_add -r cups-lpr&lt;br /&gt;
&lt;br /&gt;
==Accessing and configuring==&lt;br /&gt;
Type ''http://127.0.0.1:631/'' or ''http://localhost:631'' into your browser. Here you can configure your printers and printing status.&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
===CUPS with proxy===&lt;br /&gt;
Make sure if you run a proxy to set localhost in the exceptions of your browser.&lt;br /&gt;
It should now be able to connect to http://localhost:631&lt;br /&gt;
&lt;br /&gt;
===CUPS and KDE Error===&lt;br /&gt;
If you get an error in KDE print manager such as:&lt;br /&gt;
cups host not found.&lt;br /&gt;
&lt;br /&gt;
Then change the host from&lt;br /&gt;
host: /var/run/cups.sock&lt;br /&gt;
to&lt;br /&gt;
host: localhost&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===CUPS and Gnome Warning===&lt;br /&gt;
In order to have CUPS work with Gnome applications and Firefox3, you will need to add 'WITH_CUPS=&amp;quot;YES&amp;quot;' to your /etc/make.conf and recompile libgnomeprint and gtk20.  You can do that with the commands:&lt;br /&gt;
 # echo 'WITH_CUPS=&amp;quot;YES&amp;quot;' &amp;gt;&amp;gt; /etc/make.conf&lt;br /&gt;
 # cd /usr/ports/print/libgnomeprint &amp;amp;&amp;amp; make deinstall &amp;amp;&amp;amp; make configure &amp;amp;&amp;amp; make install&lt;br /&gt;
 # cd /usr/ports/x11-toolkits/gtk20 &amp;amp;&amp;amp; make deinstall &amp;amp;&amp;amp; make configure &amp;amp;&amp;amp; make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Ports and Packages]]&lt;br /&gt;
[[Category:Common Tasks]]&lt;/div&gt;</summary>
		<author><name>Sidetone</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Printing,_about</id>
		<title>Printing, about</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Printing,_about"/>
				<updated>2021-06-21T23:25:44Z</updated>
		
		<summary type="html">&lt;p&gt;Sidetone: /* References/Further Reading */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;About printing on FreeBSD: comparisons of printing protocols; about filters, Page Description Languages (PDL's) and printer specifications.&lt;br /&gt;
&lt;br /&gt;
==Protocols==&lt;br /&gt;
LPD (Line Printer Daemon) and IPP (Internet Printing Protocol) are printer protocols defined by IETF. LPD is described by RFC 1179 (not as a standard): it uses service port 515. IPP is defined by RFC 8011 and RFC 3510: it uses service port 631. Access control and security features are available on IPP that aren't on LPD. RFC 2569 is a memo on mapping between LPD and IPP.&lt;br /&gt;
&lt;br /&gt;
pdl-datastream on service port 9100 is for proprietary printers and proprietary local network printer servers. This is often used by JetDirect products.&lt;br /&gt;
&lt;br /&gt;
Printers can also use SMB (over Samba) as a protocol.&lt;br /&gt;
&lt;br /&gt;
==Comparison of print architectures==&lt;br /&gt;
===LPR, LPRng===&lt;br /&gt;
LPR is the default with FreeBSD. LPRng is a more advanced implementation of LPR. These two programs use and can alter {{man|printcap|5}}. LPR and LPRng both use the LPD protocol over service port 515.&lt;br /&gt;
&lt;br /&gt;
LPR and LPRng require manual set up through custom shell scripts of filters to convert plain text or other types of data, even between PostScript outputs to PostScript able printers. {{port|print/a2ps}} can simplify this task of converting ASCII to PostScript output. LPR's intended use was for text printing.&lt;br /&gt;
&lt;br /&gt;
LPRng (LPR Next Generation) is an advanced replacement for LPR. It is under the GPL and Artistic licenses. IFHP determines the format and does conversions, including by use of Ghostscript. LPRng takes care of format conversions through its filters, and of PostScript output through Ghostscript. LPRng was designed to be more secure than LPR. LPRng is found at {{port|sysutils/LPRng}}. It uses {{file|printcap}}, {{file|lpd.conf}}, and {{file|lpd.perms}} for configuration.&lt;br /&gt;
&lt;br /&gt;
lprng in services ({{file|rc.conf}}) requires that lpr and cupsd be disabled. LPR and LPRng daemons can be enabled or disabled through {{file|rc.conf}}. LPR compilation in the world build can be disabled through {{man|src.conf|5}}&lt;br /&gt;
&lt;br /&gt;
===CUPS===&lt;br /&gt;
The CUPS framework supports more printers than LPR and LPRng, and it is more advanced. PCL printers are more readily supported under CUPS. CUPS can be administered on the command line, through the web interface, and through a GUI.&lt;br /&gt;
&lt;br /&gt;
The default protocol that CUPS uses is IPP. In addition to IPP, CUPS also has protocol support for: LPD, SMB (Server Message Block) and pdl-datastream. CUPS originally started out over LPD. Samba is only needed for printing on LANs that include Windows computers.&lt;br /&gt;
&lt;br /&gt;
CUPS has its own implementation of LPR in under {{file|/usr/local/}}, as opposed to LPR's default location under {{file|/usr/}}. The LPR files that CUPS uses can be set in {{file|/usr/local/etc/cups/printcap}}. On the command line, CUPS uses BSD LPR style commands.&lt;br /&gt;
&lt;br /&gt;
The command cupsctl can adjust settings in cupsd.conf.&lt;br /&gt;
&lt;br /&gt;
CUPS supports encryption for administration and printing, which wasn't available in older versions. Kerberos will be replaced by OAuth and PAM for access control and security by CUPS 3.0.&lt;br /&gt;
&lt;br /&gt;
CUPS is compatible for use with Zeroconf.&lt;br /&gt;
&lt;br /&gt;
This print architecture uses Apache License 2.0. Legacy versions of CUPS were under GPL.&lt;br /&gt;
&lt;br /&gt;
===More===&lt;br /&gt;
CUPS and LPRng software conflicts so cannot be installed together. LPR and CUPS can coexist, but only one service is needed.&lt;br /&gt;
&lt;br /&gt;
Some programs, such as forks of OpenOffice (such as LibreOffice or Apache OpenOffice) provide their own drivers that output to LPR in place of already configured filters like Ghostscript. Their printing has to be set up independently from an already working CUPS or LPR print configuration.&lt;br /&gt;
&lt;br /&gt;
==Modern CUPS specifications==&lt;br /&gt;
As of future CUPS version 3.0, legacy drivers and PDL's will no longer be used. CUPS 2.3 already supports modern CUPS replacements for printer drivers.&lt;br /&gt;
&lt;br /&gt;
PWG Raster ('image/pwg-raster'), JPEG ('image/jpeg'), and PDF ('application/pdf') are modern formats directly supported by newer printers. PWG Raster and JPEG formats are supported by most new printers since 2010.&lt;br /&gt;
&lt;br /&gt;
There are also IPP-Everywhere compliant printers.&lt;br /&gt;
&lt;br /&gt;
Airprint is an alternate technology for Apple MacOS and i-products. It uses Apple Raster ('image/urf'). Mopria is a printer technology to print from Android, which is intended to be used with PAPPL.&lt;br /&gt;
&lt;br /&gt;
'text/plain' is supported by simple printers. 'application/octet-stream' tells capable printers which format to use. For printers without this capability, the format has to be specified through configuration or through print commands.&lt;br /&gt;
&lt;br /&gt;
The WiFi alliance has a printer specification.&lt;br /&gt;
&lt;br /&gt;
Industrial, label, legacy and other specialized printers don't have the capability for these modern printing formats. LPrint is intended for label printers to work with CUPS, and a few are already supported. The PAPPL framework could be the replacement for drivers of legacy, specialty and other printers to work with newer versions of CUPS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For 3D printers, there are a few formats supported: 3MF, U3D, PRC and PWG G-code. Different versions of PDF have support for either U3D and PRC.&lt;br /&gt;
&lt;br /&gt;
==Legacy specifications: filters/drivers/PDL's==&lt;br /&gt;
Postscript (PS) and PCL (Printer Command Language) are printer languages known as Page Description Languages (PDL's) supported by the majority of printers for interpreting and printing jobs. These two PDLs are alternate models developed by Adobe and HP respectively. PJL is another type of printer language for controlling features. These legacy specifications work up to CUPS version 2.4. Postscript is defined by 'application/postscript', and PCL is defined by 'application/vnd.hp-pcl'.&lt;br /&gt;
&lt;br /&gt;
Many programs simply output data as Postscript. A filter is often needed for different types of output formats (separate from the printer language), even when the printer understands the same printer language as a program's output (such as Postscript). Output formats that need to be converted to a printer language include: dvi, Fortran and Raster.&lt;br /&gt;
&lt;br /&gt;
Filters are useful for different types of output. Carriage returns are different for command line output from Bourne shells, MS DOS, text files and Postscript output. Without the right filters, printers can stair-step or text can otherwise be misaligned.&lt;br /&gt;
&lt;br /&gt;
Printer packaging lists its specs, often: supported PDLs, fonts and graphics formats.&lt;br /&gt;
&lt;br /&gt;
===PCL===&lt;br /&gt;
ASCII is a printer language which PCL is an extension of.&lt;br /&gt;
&lt;br /&gt;
===PostScript===&lt;br /&gt;
LPR in base, and CUPS from ports perform the same function of receiving PostScript output and sending it to PostScript capable printers. CUPS allows printers that use other PCL's to be used through PostScript via PPD (PostScript Printer Description) conversions.&lt;br /&gt;
&lt;br /&gt;
PostScript is the default for both CUPS and Apple. For the most common PDL's: PostScript is considered higher quality than PCL, so more preference is centered around it. There are also very high quality printers that don't use either of these two PDL's.&lt;br /&gt;
&lt;br /&gt;
PostScript printers cost more because of hardware and font license fees from Adobe. However, this company offers PostScript software drivers for free. (Opensource driver software is available as mentioned a few times.) HP computers that have M in the model for Macintosh are PostScript printers (one may want to confirm that the specifications say Postscript).&lt;br /&gt;
&lt;br /&gt;
Conversions for non-PostScript printers rely on PPD's, and filters.&lt;br /&gt;
&lt;br /&gt;
===Conversions===&lt;br /&gt;
Ghostscript is a substitution for PCL printers to work as if they were PostScript. Ghostscript, Foomatic and other printer suites act as filters on LPR. On CUPS, many of these filters plus Gutenprint are able to provide needed PPD's (Postscript Printer Descriptions) for varying printers. {{port|print/foomatic-filters}} may lack compatibility with CUPS, and it conflicts with a needed {{port|print/cups-filters}}.&lt;br /&gt;
&lt;br /&gt;
LPR is able to output to non-PostScript printers by using Ghostscript's {{cmd|gs}} as an input filter through printcap. Ghostscript offers a few conversion programs between Postscript and pdf files.&lt;br /&gt;
&lt;br /&gt;
Ghostscript (under AGPL) can convert PostScript outputs to printer languages which specific non-Postscript printers can interpret. In addition to PCL, Ghostscript makes ESC printers functional. LPRng includes Ghostscript for printer language conversion too. Ghostscript can be used with LPR, CUPS, or LPRng&lt;br /&gt;
&lt;br /&gt;
GhostViewer ({{port|print/gv}}) is a program for viewing Postscript output on the monitor.&lt;br /&gt;
&lt;br /&gt;
===ESC===&lt;br /&gt;
ESC/P (Epson's developed PDL) printers are used in consumer inkjet printers, as well as dot matrix, receipt, thermal, labeling and barcode printers.&lt;br /&gt;
&lt;br /&gt;
===GDI/WIN===&lt;br /&gt;
Win(dos) or GDI printers are generally incompatible with BSD's or Linux. Printers that let the software from the computer run them completely are referred to as dumb printers.&lt;br /&gt;
&lt;br /&gt;
==Components==&lt;br /&gt;
The spool holds printing jobs to be printed in order. Print jobs are held in the {{file|/var/spool/}} directory.&lt;br /&gt;
&lt;br /&gt;
==References/Further Reading==&lt;br /&gt;
* FreeBSD 6 Unleashed&lt;br /&gt;
* Network Administration with FreeBSD 7&lt;br /&gt;
* Building a Server with FreeBSD 7&lt;br /&gt;
* The Complete FreeBSD (2006)&lt;br /&gt;
* https://www.cups.org/&lt;br /&gt;
* http://lprng.com&lt;br /&gt;
* http://www.wonkity.com/~wblock/docs/html/lpdprinting.html&lt;br /&gt;
* https://docs.freebsd.org/en/books/handbook/printing/&lt;br /&gt;
* https://docs.freebsd.org/en/articles/cups/&lt;br /&gt;
* https://www.informit.com/articles/article.aspx?p=167786&lt;br /&gt;
* https://www.cups.org/blog/2018-06-06-demystifying-cups-development.html&lt;br /&gt;
* https://ftp.pwg.org/pub/pwg/liaison/openprinting/presentations/cups-plenary-may-2021.pdf&lt;br /&gt;
* https://www.msweet.org/lprint/&lt;br /&gt;
* https://www.msweet.org/pappl/&lt;br /&gt;
* https://www.pwg.org/3d/index.html&lt;br /&gt;
* https://www.pwg.org/ipp/ippguide.html&lt;br /&gt;
(some references are out of date, but still have relevance)&lt;br /&gt;
&lt;br /&gt;
[[Category:New User Tips and FAQs]]&lt;br /&gt;
[[Category:Configuring FreeBSD]]&lt;br /&gt;
[[Category:FreeBSD for Workstations]]&lt;/div&gt;</summary>
		<author><name>Sidetone</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Printing,_about</id>
		<title>Printing, about</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Printing,_about"/>
				<updated>2021-06-21T23:22:33Z</updated>
		
		<summary type="html">&lt;p&gt;Sidetone: /* Modern CUPS specifications */ 3D printers&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;About printing on FreeBSD: comparisons of printing protocols; about filters, Page Description Languages (PDL's) and printer specifications.&lt;br /&gt;
&lt;br /&gt;
==Protocols==&lt;br /&gt;
LPD (Line Printer Daemon) and IPP (Internet Printing Protocol) are printer protocols defined by IETF. LPD is described by RFC 1179 (not as a standard): it uses service port 515. IPP is defined by RFC 8011 and RFC 3510: it uses service port 631. Access control and security features are available on IPP that aren't on LPD. RFC 2569 is a memo on mapping between LPD and IPP.&lt;br /&gt;
&lt;br /&gt;
pdl-datastream on service port 9100 is for proprietary printers and proprietary local network printer servers. This is often used by JetDirect products.&lt;br /&gt;
&lt;br /&gt;
Printers can also use SMB (over Samba) as a protocol.&lt;br /&gt;
&lt;br /&gt;
==Comparison of print architectures==&lt;br /&gt;
===LPR, LPRng===&lt;br /&gt;
LPR is the default with FreeBSD. LPRng is a more advanced implementation of LPR. These two programs use and can alter {{man|printcap|5}}. LPR and LPRng both use the LPD protocol over service port 515.&lt;br /&gt;
&lt;br /&gt;
LPR and LPRng require manual set up through custom shell scripts of filters to convert plain text or other types of data, even between PostScript outputs to PostScript able printers. {{port|print/a2ps}} can simplify this task of converting ASCII to PostScript output. LPR's intended use was for text printing.&lt;br /&gt;
&lt;br /&gt;
LPRng (LPR Next Generation) is an advanced replacement for LPR. It is under the GPL and Artistic licenses. IFHP determines the format and does conversions, including by use of Ghostscript. LPRng takes care of format conversions through its filters, and of PostScript output through Ghostscript. LPRng was designed to be more secure than LPR. LPRng is found at {{port|sysutils/LPRng}}. It uses {{file|printcap}}, {{file|lpd.conf}}, and {{file|lpd.perms}} for configuration.&lt;br /&gt;
&lt;br /&gt;
lprng in services ({{file|rc.conf}}) requires that lpr and cupsd be disabled. LPR and LPRng daemons can be enabled or disabled through {{file|rc.conf}}. LPR compilation in the world build can be disabled through {{man|src.conf|5}}&lt;br /&gt;
&lt;br /&gt;
===CUPS===&lt;br /&gt;
The CUPS framework supports more printers than LPR and LPRng, and it is more advanced. PCL printers are more readily supported under CUPS. CUPS can be administered on the command line, through the web interface, and through a GUI.&lt;br /&gt;
&lt;br /&gt;
The default protocol that CUPS uses is IPP. In addition to IPP, CUPS also has protocol support for: LPD, SMB (Server Message Block) and pdl-datastream. CUPS originally started out over LPD. Samba is only needed for printing on LANs that include Windows computers.&lt;br /&gt;
&lt;br /&gt;
CUPS has its own implementation of LPR in under {{file|/usr/local/}}, as opposed to LPR's default location under {{file|/usr/}}. The LPR files that CUPS uses can be set in {{file|/usr/local/etc/cups/printcap}}. On the command line, CUPS uses BSD LPR style commands.&lt;br /&gt;
&lt;br /&gt;
The command cupsctl can adjust settings in cupsd.conf.&lt;br /&gt;
&lt;br /&gt;
CUPS supports encryption for administration and printing, which wasn't available in older versions. Kerberos will be replaced by OAuth and PAM for access control and security by CUPS 3.0.&lt;br /&gt;
&lt;br /&gt;
CUPS is compatible for use with Zeroconf.&lt;br /&gt;
&lt;br /&gt;
This print architecture uses Apache License 2.0. Legacy versions of CUPS were under GPL.&lt;br /&gt;
&lt;br /&gt;
===More===&lt;br /&gt;
CUPS and LPRng software conflicts so cannot be installed together. LPR and CUPS can coexist, but only one service is needed.&lt;br /&gt;
&lt;br /&gt;
Some programs, such as forks of OpenOffice (such as LibreOffice or Apache OpenOffice) provide their own drivers that output to LPR in place of already configured filters like Ghostscript. Their printing has to be set up independently from an already working CUPS or LPR print configuration.&lt;br /&gt;
&lt;br /&gt;
==Modern CUPS specifications==&lt;br /&gt;
As of future CUPS version 3.0, legacy drivers and PDL's will no longer be used. CUPS 2.3 already supports modern CUPS replacements for printer drivers.&lt;br /&gt;
&lt;br /&gt;
PWG Raster ('image/pwg-raster'), JPEG ('image/jpeg'), and PDF ('application/pdf') are modern formats directly supported by newer printers. PWG Raster and JPEG formats are supported by most new printers since 2010.&lt;br /&gt;
&lt;br /&gt;
There are also IPP-Everywhere compliant printers.&lt;br /&gt;
&lt;br /&gt;
Airprint is an alternate technology for Apple MacOS and i-products. It uses Apple Raster ('image/urf'). Mopria is a printer technology to print from Android, which is intended to be used with PAPPL.&lt;br /&gt;
&lt;br /&gt;
'text/plain' is supported by simple printers. 'application/octet-stream' tells capable printers which format to use. For printers without this capability, the format has to be specified through configuration or through print commands.&lt;br /&gt;
&lt;br /&gt;
The WiFi alliance has a printer specification.&lt;br /&gt;
&lt;br /&gt;
Industrial, label, legacy and other specialized printers don't have the capability for these modern printing formats. LPrint is intended for label printers to work with CUPS, and a few are already supported. The PAPPL framework could be the replacement for drivers of legacy, specialty and other printers to work with newer versions of CUPS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For 3D printers, there are a few formats supported: 3MF, U3D, PRC and PWG G-code. Different versions of PDF have support for either U3D and PRC.&lt;br /&gt;
&lt;br /&gt;
==Legacy specifications: filters/drivers/PDL's==&lt;br /&gt;
Postscript (PS) and PCL (Printer Command Language) are printer languages known as Page Description Languages (PDL's) supported by the majority of printers for interpreting and printing jobs. These two PDLs are alternate models developed by Adobe and HP respectively. PJL is another type of printer language for controlling features. These legacy specifications work up to CUPS version 2.4. Postscript is defined by 'application/postscript', and PCL is defined by 'application/vnd.hp-pcl'.&lt;br /&gt;
&lt;br /&gt;
Many programs simply output data as Postscript. A filter is often needed for different types of output formats (separate from the printer language), even when the printer understands the same printer language as a program's output (such as Postscript). Output formats that need to be converted to a printer language include: dvi, Fortran and Raster.&lt;br /&gt;
&lt;br /&gt;
Filters are useful for different types of output. Carriage returns are different for command line output from Bourne shells, MS DOS, text files and Postscript output. Without the right filters, printers can stair-step or text can otherwise be misaligned.&lt;br /&gt;
&lt;br /&gt;
Printer packaging lists its specs, often: supported PDLs, fonts and graphics formats.&lt;br /&gt;
&lt;br /&gt;
===PCL===&lt;br /&gt;
ASCII is a printer language which PCL is an extension of.&lt;br /&gt;
&lt;br /&gt;
===PostScript===&lt;br /&gt;
LPR in base, and CUPS from ports perform the same function of receiving PostScript output and sending it to PostScript capable printers. CUPS allows printers that use other PCL's to be used through PostScript via PPD (PostScript Printer Description) conversions.&lt;br /&gt;
&lt;br /&gt;
PostScript is the default for both CUPS and Apple. For the most common PDL's: PostScript is considered higher quality than PCL, so more preference is centered around it. There are also very high quality printers that don't use either of these two PDL's.&lt;br /&gt;
&lt;br /&gt;
PostScript printers cost more because of hardware and font license fees from Adobe. However, this company offers PostScript software drivers for free. (Opensource driver software is available as mentioned a few times.) HP computers that have M in the model for Macintosh are PostScript printers (one may want to confirm that the specifications say Postscript).&lt;br /&gt;
&lt;br /&gt;
Conversions for non-PostScript printers rely on PPD's, and filters.&lt;br /&gt;
&lt;br /&gt;
===Conversions===&lt;br /&gt;
Ghostscript is a substitution for PCL printers to work as if they were PostScript. Ghostscript, Foomatic and other printer suites act as filters on LPR. On CUPS, many of these filters plus Gutenprint are able to provide needed PPD's (Postscript Printer Descriptions) for varying printers. {{port|print/foomatic-filters}} may lack compatibility with CUPS, and it conflicts with a needed {{port|print/cups-filters}}.&lt;br /&gt;
&lt;br /&gt;
LPR is able to output to non-PostScript printers by using Ghostscript's {{cmd|gs}} as an input filter through printcap. Ghostscript offers a few conversion programs between Postscript and pdf files.&lt;br /&gt;
&lt;br /&gt;
Ghostscript (under AGPL) can convert PostScript outputs to printer languages which specific non-Postscript printers can interpret. In addition to PCL, Ghostscript makes ESC printers functional. LPRng includes Ghostscript for printer language conversion too. Ghostscript can be used with LPR, CUPS, or LPRng&lt;br /&gt;
&lt;br /&gt;
GhostViewer ({{port|print/gv}}) is a program for viewing Postscript output on the monitor.&lt;br /&gt;
&lt;br /&gt;
===ESC===&lt;br /&gt;
ESC/P (Epson's developed PDL) printers are used in consumer inkjet printers, as well as dot matrix, receipt, thermal, labeling and barcode printers.&lt;br /&gt;
&lt;br /&gt;
===GDI/WIN===&lt;br /&gt;
Win(dos) or GDI printers are generally incompatible with BSD's or Linux. Printers that let the software from the computer run them completely are referred to as dumb printers.&lt;br /&gt;
&lt;br /&gt;
==Components==&lt;br /&gt;
The spool holds printing jobs to be printed in order. Print jobs are held in the {{file|/var/spool/}} directory.&lt;br /&gt;
&lt;br /&gt;
==References/Further Reading==&lt;br /&gt;
* FreeBSD 6 Unleashed&lt;br /&gt;
* Network Administration with FreeBSD 7&lt;br /&gt;
* Building a Server with FreeBSD 7&lt;br /&gt;
* The Complete FreeBSD (2006)&lt;br /&gt;
* https://www.cups.org/&lt;br /&gt;
* http://lprng.com&lt;br /&gt;
* http://www.wonkity.com/~wblock/docs/html/lpdprinting.html&lt;br /&gt;
* https://docs.freebsd.org/en/books/handbook/printing/&lt;br /&gt;
* https://docs.freebsd.org/en/articles/cups/&lt;br /&gt;
* https://www.informit.com/articles/article.aspx?p=167786&lt;br /&gt;
* https://www.cups.org/blog/2018-06-06-demystifying-cups-development.html&lt;br /&gt;
* https://ftp.pwg.org/pub/pwg/liaison/openprinting/presentations/cups-plenary-may-2021.pdf&lt;br /&gt;
* https://www.msweet.org/lprint/&lt;br /&gt;
* https://www.msweet.org/pappl/&lt;br /&gt;
(some references are out of date, but still have relevance)&lt;br /&gt;
&lt;br /&gt;
[[Category:New User Tips and FAQs]]&lt;br /&gt;
[[Category:Configuring FreeBSD]]&lt;br /&gt;
[[Category:FreeBSD for Workstations]]&lt;/div&gt;</summary>
		<author><name>Sidetone</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Printing,_about</id>
		<title>Printing, about</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Printing,_about"/>
				<updated>2021-06-21T21:49:56Z</updated>
		
		<summary type="html">&lt;p&gt;Sidetone: /* Modern CUPS specifications */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;About printing on FreeBSD: comparisons of printing protocols; about filters, Page Description Languages (PDL's) and printer specifications.&lt;br /&gt;
&lt;br /&gt;
==Protocols==&lt;br /&gt;
LPD (Line Printer Daemon) and IPP (Internet Printing Protocol) are printer protocols defined by IETF. LPD is described by RFC 1179 (not as a standard): it uses service port 515. IPP is defined by RFC 8011 and RFC 3510: it uses service port 631. Access control and security features are available on IPP that aren't on LPD. RFC 2569 is a memo on mapping between LPD and IPP.&lt;br /&gt;
&lt;br /&gt;
pdl-datastream on service port 9100 is for proprietary printers and proprietary local network printer servers. This is often used by JetDirect products.&lt;br /&gt;
&lt;br /&gt;
Printers can also use SMB (over Samba) as a protocol.&lt;br /&gt;
&lt;br /&gt;
==Comparison of print architectures==&lt;br /&gt;
===LPR, LPRng===&lt;br /&gt;
LPR is the default with FreeBSD. LPRng is a more advanced implementation of LPR. These two programs use and can alter {{man|printcap|5}}. LPR and LPRng both use the LPD protocol over service port 515.&lt;br /&gt;
&lt;br /&gt;
LPR and LPRng require manual set up through custom shell scripts of filters to convert plain text or other types of data, even between PostScript outputs to PostScript able printers. {{port|print/a2ps}} can simplify this task of converting ASCII to PostScript output. LPR's intended use was for text printing.&lt;br /&gt;
&lt;br /&gt;
LPRng (LPR Next Generation) is an advanced replacement for LPR. It is under the GPL and Artistic licenses. IFHP determines the format and does conversions, including by use of Ghostscript. LPRng takes care of format conversions through its filters, and of PostScript output through Ghostscript. LPRng was designed to be more secure than LPR. LPRng is found at {{port|sysutils/LPRng}}. It uses {{file|printcap}}, {{file|lpd.conf}}, and {{file|lpd.perms}} for configuration.&lt;br /&gt;
&lt;br /&gt;
lprng in services ({{file|rc.conf}}) requires that lpr and cupsd be disabled. LPR and LPRng daemons can be enabled or disabled through {{file|rc.conf}}. LPR compilation in the world build can be disabled through {{man|src.conf|5}}&lt;br /&gt;
&lt;br /&gt;
===CUPS===&lt;br /&gt;
The CUPS framework supports more printers than LPR and LPRng, and it is more advanced. PCL printers are more readily supported under CUPS. CUPS can be administered on the command line, through the web interface, and through a GUI.&lt;br /&gt;
&lt;br /&gt;
The default protocol that CUPS uses is IPP. In addition to IPP, CUPS also has protocol support for: LPD, SMB (Server Message Block) and pdl-datastream. CUPS originally started out over LPD. Samba is only needed for printing on LANs that include Windows computers.&lt;br /&gt;
&lt;br /&gt;
CUPS has its own implementation of LPR in under {{file|/usr/local/}}, as opposed to LPR's default location under {{file|/usr/}}. The LPR files that CUPS uses can be set in {{file|/usr/local/etc/cups/printcap}}. On the command line, CUPS uses BSD LPR style commands.&lt;br /&gt;
&lt;br /&gt;
The command cupsctl can adjust settings in cupsd.conf.&lt;br /&gt;
&lt;br /&gt;
CUPS supports encryption for administration and printing, which wasn't available in older versions. Kerberos will be replaced by OAuth and PAM for access control and security by CUPS 3.0.&lt;br /&gt;
&lt;br /&gt;
CUPS is compatible for use with Zeroconf.&lt;br /&gt;
&lt;br /&gt;
This print architecture uses Apache License 2.0. Legacy versions of CUPS were under GPL.&lt;br /&gt;
&lt;br /&gt;
===More===&lt;br /&gt;
CUPS and LPRng software conflicts so cannot be installed together. LPR and CUPS can coexist, but only one service is needed.&lt;br /&gt;
&lt;br /&gt;
Some programs, such as forks of OpenOffice (such as LibreOffice or Apache OpenOffice) provide their own drivers that output to LPR in place of already configured filters like Ghostscript. Their printing has to be set up independently from an already working CUPS or LPR print configuration.&lt;br /&gt;
&lt;br /&gt;
==Modern CUPS specifications==&lt;br /&gt;
As of future CUPS version 3.0, legacy drivers and PDL's will no longer be used. CUPS 2.3 already supports modern CUPS replacements for printer drivers.&lt;br /&gt;
&lt;br /&gt;
PWG Raster ('image/pwg-raster'), JPEG ('image/jpeg'), and PDF ('application/pdf') are modern formats directly supported by newer printers. PWG Raster and JPEG formats are supported by most new printers since 2010.&lt;br /&gt;
&lt;br /&gt;
There are also IPP-Everywhere compliant printers.&lt;br /&gt;
&lt;br /&gt;
Airprint is an alternate technology for Apple MacOS and i-products. It uses Apple Raster ('image/urf'). Mopria is a printer technology to print from Android, which is intended to be used with PAPPL.&lt;br /&gt;
&lt;br /&gt;
'text/plain' is supported by simple printers. 'application/octet-stream' tells capable printers which format to use. For printers without this capability, the format has to be specified through configuration or through print commands.&lt;br /&gt;
&lt;br /&gt;
The WiFi alliance has a printer specification.&lt;br /&gt;
&lt;br /&gt;
Industrial, label, legacy and other specialized printers don't have the capability for these modern printing formats. LPrint is intended for label printers to work with CUPS, and a few are already supported. The PAPPL framework could be the replacement for drivers of legacy, specialty and other printers to work with newer versions of CUPS.&lt;br /&gt;
&lt;br /&gt;
==Legacy specifications: filters/drivers/PDL's==&lt;br /&gt;
Postscript (PS) and PCL (Printer Command Language) are printer languages known as Page Description Languages (PDL's) supported by the majority of printers for interpreting and printing jobs. These two PDLs are alternate models developed by Adobe and HP respectively. PJL is another type of printer language for controlling features. These legacy specifications work up to CUPS version 2.4. Postscript is defined by 'application/postscript', and PCL is defined by 'application/vnd.hp-pcl'.&lt;br /&gt;
&lt;br /&gt;
Many programs simply output data as Postscript. A filter is often needed for different types of output formats (separate from the printer language), even when the printer understands the same printer language as a program's output (such as Postscript). Output formats that need to be converted to a printer language include: dvi, Fortran and Raster.&lt;br /&gt;
&lt;br /&gt;
Filters are useful for different types of output. Carriage returns are different for command line output from Bourne shells, MS DOS, text files and Postscript output. Without the right filters, printers can stair-step or text can otherwise be misaligned.&lt;br /&gt;
&lt;br /&gt;
Printer packaging lists its specs, often: supported PDLs, fonts and graphics formats.&lt;br /&gt;
&lt;br /&gt;
===PCL===&lt;br /&gt;
ASCII is a printer language which PCL is an extension of.&lt;br /&gt;
&lt;br /&gt;
===PostScript===&lt;br /&gt;
LPR in base, and CUPS from ports perform the same function of receiving PostScript output and sending it to PostScript capable printers. CUPS allows printers that use other PCL's to be used through PostScript via PPD (PostScript Printer Description) conversions.&lt;br /&gt;
&lt;br /&gt;
PostScript is the default for both CUPS and Apple. For the most common PDL's: PostScript is considered higher quality than PCL, so more preference is centered around it. There are also very high quality printers that don't use either of these two PDL's.&lt;br /&gt;
&lt;br /&gt;
PostScript printers cost more because of hardware and font license fees from Adobe. However, this company offers PostScript software drivers for free. (Opensource driver software is available as mentioned a few times.) HP computers that have M in the model for Macintosh are PostScript printers (one may want to confirm that the specifications say Postscript).&lt;br /&gt;
&lt;br /&gt;
Conversions for non-PostScript printers rely on PPD's, and filters.&lt;br /&gt;
&lt;br /&gt;
===Conversions===&lt;br /&gt;
Ghostscript is a substitution for PCL printers to work as if they were PostScript. Ghostscript, Foomatic and other printer suites act as filters on LPR. On CUPS, many of these filters plus Gutenprint are able to provide needed PPD's (Postscript Printer Descriptions) for varying printers. {{port|print/foomatic-filters}} may lack compatibility with CUPS, and it conflicts with a needed {{port|print/cups-filters}}.&lt;br /&gt;
&lt;br /&gt;
LPR is able to output to non-PostScript printers by using Ghostscript's {{cmd|gs}} as an input filter through printcap. Ghostscript offers a few conversion programs between Postscript and pdf files.&lt;br /&gt;
&lt;br /&gt;
Ghostscript (under AGPL) can convert PostScript outputs to printer languages which specific non-Postscript printers can interpret. In addition to PCL, Ghostscript makes ESC printers functional. LPRng includes Ghostscript for printer language conversion too. Ghostscript can be used with LPR, CUPS, or LPRng&lt;br /&gt;
&lt;br /&gt;
GhostViewer ({{port|print/gv}}) is a program for viewing Postscript output on the monitor.&lt;br /&gt;
&lt;br /&gt;
===ESC===&lt;br /&gt;
ESC/P (Epson's developed PDL) printers are used in consumer inkjet printers, as well as dot matrix, receipt, thermal, labeling and barcode printers.&lt;br /&gt;
&lt;br /&gt;
===GDI/WIN===&lt;br /&gt;
Win(dos) or GDI printers are generally incompatible with BSD's or Linux. Printers that let the software from the computer run them completely are referred to as dumb printers.&lt;br /&gt;
&lt;br /&gt;
==Components==&lt;br /&gt;
The spool holds printing jobs to be printed in order. Print jobs are held in the {{file|/var/spool/}} directory.&lt;br /&gt;
&lt;br /&gt;
==References/Further Reading==&lt;br /&gt;
* FreeBSD 6 Unleashed&lt;br /&gt;
* Network Administration with FreeBSD 7&lt;br /&gt;
* Building a Server with FreeBSD 7&lt;br /&gt;
* The Complete FreeBSD (2006)&lt;br /&gt;
* https://www.cups.org/&lt;br /&gt;
* http://lprng.com&lt;br /&gt;
* http://www.wonkity.com/~wblock/docs/html/lpdprinting.html&lt;br /&gt;
* https://docs.freebsd.org/en/books/handbook/printing/&lt;br /&gt;
* https://docs.freebsd.org/en/articles/cups/&lt;br /&gt;
* https://www.informit.com/articles/article.aspx?p=167786&lt;br /&gt;
* https://www.cups.org/blog/2018-06-06-demystifying-cups-development.html&lt;br /&gt;
* https://ftp.pwg.org/pub/pwg/liaison/openprinting/presentations/cups-plenary-may-2021.pdf&lt;br /&gt;
* https://www.msweet.org/lprint/&lt;br /&gt;
* https://www.msweet.org/pappl/&lt;br /&gt;
(some references are out of date, but still have relevance)&lt;br /&gt;
&lt;br /&gt;
[[Category:New User Tips and FAQs]]&lt;br /&gt;
[[Category:Configuring FreeBSD]]&lt;br /&gt;
[[Category:FreeBSD for Workstations]]&lt;/div&gt;</summary>
		<author><name>Sidetone</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Printing,_about</id>
		<title>Printing, about</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Printing,_about"/>
				<updated>2021-06-21T21:41:57Z</updated>
		
		<summary type="html">&lt;p&gt;Sidetone: /* References/Further Reading */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;About printing on FreeBSD: comparisons of printing protocols; about filters, Page Description Languages (PDL's) and printer specifications.&lt;br /&gt;
&lt;br /&gt;
==Protocols==&lt;br /&gt;
LPD (Line Printer Daemon) and IPP (Internet Printing Protocol) are printer protocols defined by IETF. LPD is described by RFC 1179 (not as a standard): it uses service port 515. IPP is defined by RFC 8011 and RFC 3510: it uses service port 631. Access control and security features are available on IPP that aren't on LPD. RFC 2569 is a memo on mapping between LPD and IPP.&lt;br /&gt;
&lt;br /&gt;
pdl-datastream on service port 9100 is for proprietary printers and proprietary local network printer servers. This is often used by JetDirect products.&lt;br /&gt;
&lt;br /&gt;
Printers can also use SMB (over Samba) as a protocol.&lt;br /&gt;
&lt;br /&gt;
==Comparison of print architectures==&lt;br /&gt;
===LPR, LPRng===&lt;br /&gt;
LPR is the default with FreeBSD. LPRng is a more advanced implementation of LPR. These two programs use and can alter {{man|printcap|5}}. LPR and LPRng both use the LPD protocol over service port 515.&lt;br /&gt;
&lt;br /&gt;
LPR and LPRng require manual set up through custom shell scripts of filters to convert plain text or other types of data, even between PostScript outputs to PostScript able printers. {{port|print/a2ps}} can simplify this task of converting ASCII to PostScript output. LPR's intended use was for text printing.&lt;br /&gt;
&lt;br /&gt;
LPRng (LPR Next Generation) is an advanced replacement for LPR. It is under the GPL and Artistic licenses. IFHP determines the format and does conversions, including by use of Ghostscript. LPRng takes care of format conversions through its filters, and of PostScript output through Ghostscript. LPRng was designed to be more secure than LPR. LPRng is found at {{port|sysutils/LPRng}}. It uses {{file|printcap}}, {{file|lpd.conf}}, and {{file|lpd.perms}} for configuration.&lt;br /&gt;
&lt;br /&gt;
lprng in services ({{file|rc.conf}}) requires that lpr and cupsd be disabled. LPR and LPRng daemons can be enabled or disabled through {{file|rc.conf}}. LPR compilation in the world build can be disabled through {{man|src.conf|5}}&lt;br /&gt;
&lt;br /&gt;
===CUPS===&lt;br /&gt;
The CUPS framework supports more printers than LPR and LPRng, and it is more advanced. PCL printers are more readily supported under CUPS. CUPS can be administered on the command line, through the web interface, and through a GUI.&lt;br /&gt;
&lt;br /&gt;
The default protocol that CUPS uses is IPP. In addition to IPP, CUPS also has protocol support for: LPD, SMB (Server Message Block) and pdl-datastream. CUPS originally started out over LPD. Samba is only needed for printing on LANs that include Windows computers.&lt;br /&gt;
&lt;br /&gt;
CUPS has its own implementation of LPR in under {{file|/usr/local/}}, as opposed to LPR's default location under {{file|/usr/}}. The LPR files that CUPS uses can be set in {{file|/usr/local/etc/cups/printcap}}. On the command line, CUPS uses BSD LPR style commands.&lt;br /&gt;
&lt;br /&gt;
The command cupsctl can adjust settings in cupsd.conf.&lt;br /&gt;
&lt;br /&gt;
CUPS supports encryption for administration and printing, which wasn't available in older versions. Kerberos will be replaced by OAuth and PAM for access control and security by CUPS 3.0.&lt;br /&gt;
&lt;br /&gt;
CUPS is compatible for use with Zeroconf.&lt;br /&gt;
&lt;br /&gt;
This print architecture uses Apache License 2.0. Legacy versions of CUPS were under GPL.&lt;br /&gt;
&lt;br /&gt;
===More===&lt;br /&gt;
CUPS and LPRng software conflicts so cannot be installed together. LPR and CUPS can coexist, but only one service is needed.&lt;br /&gt;
&lt;br /&gt;
Some programs, such as forks of OpenOffice (such as LibreOffice or Apache OpenOffice) provide their own drivers that output to LPR in place of already configured filters like Ghostscript. Their printing has to be set up independently from an already working CUPS or LPR print configuration.&lt;br /&gt;
&lt;br /&gt;
==Modern CUPS specifications==&lt;br /&gt;
As of future CUPS version 3.0, legacy drivers and PDL's will no longer be used. CUPS 2.3 already supports modern CUPS replacements for printer drivers.&lt;br /&gt;
&lt;br /&gt;
PWG Raster ('image/pwg-raster'), JPEG ('image/jpeg'), and PDF ('application/pdf') are modern formats directly supported by newer printers. PWG Raster and JPEG formats are supported by most new printers since 2010.&lt;br /&gt;
&lt;br /&gt;
There are also IPP-Everywhere compliant printers.&lt;br /&gt;
&lt;br /&gt;
Airprint is an alternate technology for Apple MacOS and i-products. It uses Apple Raster ('image/urf'). Mopria is a printer technology to print from Android, which is intended to be used with PAPPL.&lt;br /&gt;
&lt;br /&gt;
'text/plain' is supported by simple printers. 'application/octet-stream' tells capable printers which format to use. For printers without this capability, the format has to be specified through configuration or through print commands.&lt;br /&gt;
&lt;br /&gt;
The WiFi alliance has a printer specification.&lt;br /&gt;
&lt;br /&gt;
Industrial, label, legacy and other specialized printers don't have the capability for these modern printing formats. LPrint is intended for label printers to work with CUPS, and a few are supported. The PAPPL framework could possibly be the replacement for legacy, specialty and other printers to work with newer versions of CUPS.&lt;br /&gt;
&lt;br /&gt;
==Legacy specifications: filters/drivers/PDL's==&lt;br /&gt;
Postscript (PS) and PCL (Printer Command Language) are printer languages known as Page Description Languages (PDL's) supported by the majority of printers for interpreting and printing jobs. These two PDLs are alternate models developed by Adobe and HP respectively. PJL is another type of printer language for controlling features. These legacy specifications work up to CUPS version 2.4. Postscript is defined by 'application/postscript', and PCL is defined by 'application/vnd.hp-pcl'.&lt;br /&gt;
&lt;br /&gt;
Many programs simply output data as Postscript. A filter is often needed for different types of output formats (separate from the printer language), even when the printer understands the same printer language as a program's output (such as Postscript). Output formats that need to be converted to a printer language include: dvi, Fortran and Raster.&lt;br /&gt;
&lt;br /&gt;
Filters are useful for different types of output. Carriage returns are different for command line output from Bourne shells, MS DOS, text files and Postscript output. Without the right filters, printers can stair-step or text can otherwise be misaligned.&lt;br /&gt;
&lt;br /&gt;
Printer packaging lists its specs, often: supported PDLs, fonts and graphics formats.&lt;br /&gt;
&lt;br /&gt;
===PCL===&lt;br /&gt;
ASCII is a printer language which PCL is an extension of.&lt;br /&gt;
&lt;br /&gt;
===PostScript===&lt;br /&gt;
LPR in base, and CUPS from ports perform the same function of receiving PostScript output and sending it to PostScript capable printers. CUPS allows printers that use other PCL's to be used through PostScript via PPD (PostScript Printer Description) conversions.&lt;br /&gt;
&lt;br /&gt;
PostScript is the default for both CUPS and Apple. For the most common PDL's: PostScript is considered higher quality than PCL, so more preference is centered around it. There are also very high quality printers that don't use either of these two PDL's.&lt;br /&gt;
&lt;br /&gt;
PostScript printers cost more because of hardware and font license fees from Adobe. However, this company offers PostScript software drivers for free. (Opensource driver software is available as mentioned a few times.) HP computers that have M in the model for Macintosh are PostScript printers (one may want to confirm that the specifications say Postscript).&lt;br /&gt;
&lt;br /&gt;
Conversions for non-PostScript printers rely on PPD's, and filters.&lt;br /&gt;
&lt;br /&gt;
===Conversions===&lt;br /&gt;
Ghostscript is a substitution for PCL printers to work as if they were PostScript. Ghostscript, Foomatic and other printer suites act as filters on LPR. On CUPS, many of these filters plus Gutenprint are able to provide needed PPD's (Postscript Printer Descriptions) for varying printers. {{port|print/foomatic-filters}} may lack compatibility with CUPS, and it conflicts with a needed {{port|print/cups-filters}}.&lt;br /&gt;
&lt;br /&gt;
LPR is able to output to non-PostScript printers by using Ghostscript's {{cmd|gs}} as an input filter through printcap. Ghostscript offers a few conversion programs between Postscript and pdf files.&lt;br /&gt;
&lt;br /&gt;
Ghostscript (under AGPL) can convert PostScript outputs to printer languages which specific non-Postscript printers can interpret. In addition to PCL, Ghostscript makes ESC printers functional. LPRng includes Ghostscript for printer language conversion too. Ghostscript can be used with LPR, CUPS, or LPRng&lt;br /&gt;
&lt;br /&gt;
GhostViewer ({{port|print/gv}}) is a program for viewing Postscript output on the monitor.&lt;br /&gt;
&lt;br /&gt;
===ESC===&lt;br /&gt;
ESC/P (Epson's developed PDL) printers are used in consumer inkjet printers, as well as dot matrix, receipt, thermal, labeling and barcode printers.&lt;br /&gt;
&lt;br /&gt;
===GDI/WIN===&lt;br /&gt;
Win(dos) or GDI printers are generally incompatible with BSD's or Linux. Printers that let the software from the computer run them completely are referred to as dumb printers.&lt;br /&gt;
&lt;br /&gt;
==Components==&lt;br /&gt;
The spool holds printing jobs to be printed in order. Print jobs are held in the {{file|/var/spool/}} directory.&lt;br /&gt;
&lt;br /&gt;
==References/Further Reading==&lt;br /&gt;
* FreeBSD 6 Unleashed&lt;br /&gt;
* Network Administration with FreeBSD 7&lt;br /&gt;
* Building a Server with FreeBSD 7&lt;br /&gt;
* The Complete FreeBSD (2006)&lt;br /&gt;
* https://www.cups.org/&lt;br /&gt;
* http://lprng.com&lt;br /&gt;
* http://www.wonkity.com/~wblock/docs/html/lpdprinting.html&lt;br /&gt;
* https://docs.freebsd.org/en/books/handbook/printing/&lt;br /&gt;
* https://docs.freebsd.org/en/articles/cups/&lt;br /&gt;
* https://www.informit.com/articles/article.aspx?p=167786&lt;br /&gt;
* https://www.cups.org/blog/2018-06-06-demystifying-cups-development.html&lt;br /&gt;
* https://ftp.pwg.org/pub/pwg/liaison/openprinting/presentations/cups-plenary-may-2021.pdf&lt;br /&gt;
* https://www.msweet.org/lprint/&lt;br /&gt;
* https://www.msweet.org/pappl/&lt;br /&gt;
(some references are out of date, but still have relevance)&lt;br /&gt;
&lt;br /&gt;
[[Category:New User Tips and FAQs]]&lt;br /&gt;
[[Category:Configuring FreeBSD]]&lt;br /&gt;
[[Category:FreeBSD for Workstations]]&lt;/div&gt;</summary>
		<author><name>Sidetone</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Printing,_about</id>
		<title>Printing, about</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Printing,_about"/>
				<updated>2021-06-21T21:41:33Z</updated>
		
		<summary type="html">&lt;p&gt;Sidetone: /* Modern CUPS specifications */ LPrint&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;About printing on FreeBSD: comparisons of printing protocols; about filters, Page Description Languages (PDL's) and printer specifications.&lt;br /&gt;
&lt;br /&gt;
==Protocols==&lt;br /&gt;
LPD (Line Printer Daemon) and IPP (Internet Printing Protocol) are printer protocols defined by IETF. LPD is described by RFC 1179 (not as a standard): it uses service port 515. IPP is defined by RFC 8011 and RFC 3510: it uses service port 631. Access control and security features are available on IPP that aren't on LPD. RFC 2569 is a memo on mapping between LPD and IPP.&lt;br /&gt;
&lt;br /&gt;
pdl-datastream on service port 9100 is for proprietary printers and proprietary local network printer servers. This is often used by JetDirect products.&lt;br /&gt;
&lt;br /&gt;
Printers can also use SMB (over Samba) as a protocol.&lt;br /&gt;
&lt;br /&gt;
==Comparison of print architectures==&lt;br /&gt;
===LPR, LPRng===&lt;br /&gt;
LPR is the default with FreeBSD. LPRng is a more advanced implementation of LPR. These two programs use and can alter {{man|printcap|5}}. LPR and LPRng both use the LPD protocol over service port 515.&lt;br /&gt;
&lt;br /&gt;
LPR and LPRng require manual set up through custom shell scripts of filters to convert plain text or other types of data, even between PostScript outputs to PostScript able printers. {{port|print/a2ps}} can simplify this task of converting ASCII to PostScript output. LPR's intended use was for text printing.&lt;br /&gt;
&lt;br /&gt;
LPRng (LPR Next Generation) is an advanced replacement for LPR. It is under the GPL and Artistic licenses. IFHP determines the format and does conversions, including by use of Ghostscript. LPRng takes care of format conversions through its filters, and of PostScript output through Ghostscript. LPRng was designed to be more secure than LPR. LPRng is found at {{port|sysutils/LPRng}}. It uses {{file|printcap}}, {{file|lpd.conf}}, and {{file|lpd.perms}} for configuration.&lt;br /&gt;
&lt;br /&gt;
lprng in services ({{file|rc.conf}}) requires that lpr and cupsd be disabled. LPR and LPRng daemons can be enabled or disabled through {{file|rc.conf}}. LPR compilation in the world build can be disabled through {{man|src.conf|5}}&lt;br /&gt;
&lt;br /&gt;
===CUPS===&lt;br /&gt;
The CUPS framework supports more printers than LPR and LPRng, and it is more advanced. PCL printers are more readily supported under CUPS. CUPS can be administered on the command line, through the web interface, and through a GUI.&lt;br /&gt;
&lt;br /&gt;
The default protocol that CUPS uses is IPP. In addition to IPP, CUPS also has protocol support for: LPD, SMB (Server Message Block) and pdl-datastream. CUPS originally started out over LPD. Samba is only needed for printing on LANs that include Windows computers.&lt;br /&gt;
&lt;br /&gt;
CUPS has its own implementation of LPR in under {{file|/usr/local/}}, as opposed to LPR's default location under {{file|/usr/}}. The LPR files that CUPS uses can be set in {{file|/usr/local/etc/cups/printcap}}. On the command line, CUPS uses BSD LPR style commands.&lt;br /&gt;
&lt;br /&gt;
The command cupsctl can adjust settings in cupsd.conf.&lt;br /&gt;
&lt;br /&gt;
CUPS supports encryption for administration and printing, which wasn't available in older versions. Kerberos will be replaced by OAuth and PAM for access control and security by CUPS 3.0.&lt;br /&gt;
&lt;br /&gt;
CUPS is compatible for use with Zeroconf.&lt;br /&gt;
&lt;br /&gt;
This print architecture uses Apache License 2.0. Legacy versions of CUPS were under GPL.&lt;br /&gt;
&lt;br /&gt;
===More===&lt;br /&gt;
CUPS and LPRng software conflicts so cannot be installed together. LPR and CUPS can coexist, but only one service is needed.&lt;br /&gt;
&lt;br /&gt;
Some programs, such as forks of OpenOffice (such as LibreOffice or Apache OpenOffice) provide their own drivers that output to LPR in place of already configured filters like Ghostscript. Their printing has to be set up independently from an already working CUPS or LPR print configuration.&lt;br /&gt;
&lt;br /&gt;
==Modern CUPS specifications==&lt;br /&gt;
As of future CUPS version 3.0, legacy drivers and PDL's will no longer be used. CUPS 2.3 already supports modern CUPS replacements for printer drivers.&lt;br /&gt;
&lt;br /&gt;
PWG Raster ('image/pwg-raster'), JPEG ('image/jpeg'), and PDF ('application/pdf') are modern formats directly supported by newer printers. PWG Raster and JPEG formats are supported by most new printers since 2010.&lt;br /&gt;
&lt;br /&gt;
There are also IPP-Everywhere compliant printers.&lt;br /&gt;
&lt;br /&gt;
Airprint is an alternate technology for Apple MacOS and i-products. It uses Apple Raster ('image/urf'). Mopria is a printer technology to print from Android, which is intended to be used with PAPPL.&lt;br /&gt;
&lt;br /&gt;
'text/plain' is supported by simple printers. 'application/octet-stream' tells capable printers which format to use. For printers without this capability, the format has to be specified through configuration or through print commands.&lt;br /&gt;
&lt;br /&gt;
The WiFi alliance has a printer specification.&lt;br /&gt;
&lt;br /&gt;
Industrial, label, legacy and other specialized printers don't have the capability for these modern printing formats. LPrint is intended for label printers to work with CUPS, and a few are supported. The PAPPL framework could possibly be the replacement for legacy, specialty and other printers to work with newer versions of CUPS.&lt;br /&gt;
&lt;br /&gt;
==Legacy specifications: filters/drivers/PDL's==&lt;br /&gt;
Postscript (PS) and PCL (Printer Command Language) are printer languages known as Page Description Languages (PDL's) supported by the majority of printers for interpreting and printing jobs. These two PDLs are alternate models developed by Adobe and HP respectively. PJL is another type of printer language for controlling features. These legacy specifications work up to CUPS version 2.4. Postscript is defined by 'application/postscript', and PCL is defined by 'application/vnd.hp-pcl'.&lt;br /&gt;
&lt;br /&gt;
Many programs simply output data as Postscript. A filter is often needed for different types of output formats (separate from the printer language), even when the printer understands the same printer language as a program's output (such as Postscript). Output formats that need to be converted to a printer language include: dvi, Fortran and Raster.&lt;br /&gt;
&lt;br /&gt;
Filters are useful for different types of output. Carriage returns are different for command line output from Bourne shells, MS DOS, text files and Postscript output. Without the right filters, printers can stair-step or text can otherwise be misaligned.&lt;br /&gt;
&lt;br /&gt;
Printer packaging lists its specs, often: supported PDLs, fonts and graphics formats.&lt;br /&gt;
&lt;br /&gt;
===PCL===&lt;br /&gt;
ASCII is a printer language which PCL is an extension of.&lt;br /&gt;
&lt;br /&gt;
===PostScript===&lt;br /&gt;
LPR in base, and CUPS from ports perform the same function of receiving PostScript output and sending it to PostScript capable printers. CUPS allows printers that use other PCL's to be used through PostScript via PPD (PostScript Printer Description) conversions.&lt;br /&gt;
&lt;br /&gt;
PostScript is the default for both CUPS and Apple. For the most common PDL's: PostScript is considered higher quality than PCL, so more preference is centered around it. There are also very high quality printers that don't use either of these two PDL's.&lt;br /&gt;
&lt;br /&gt;
PostScript printers cost more because of hardware and font license fees from Adobe. However, this company offers PostScript software drivers for free. (Opensource driver software is available as mentioned a few times.) HP computers that have M in the model for Macintosh are PostScript printers (one may want to confirm that the specifications say Postscript).&lt;br /&gt;
&lt;br /&gt;
Conversions for non-PostScript printers rely on PPD's, and filters.&lt;br /&gt;
&lt;br /&gt;
===Conversions===&lt;br /&gt;
Ghostscript is a substitution for PCL printers to work as if they were PostScript. Ghostscript, Foomatic and other printer suites act as filters on LPR. On CUPS, many of these filters plus Gutenprint are able to provide needed PPD's (Postscript Printer Descriptions) for varying printers. {{port|print/foomatic-filters}} may lack compatibility with CUPS, and it conflicts with a needed {{port|print/cups-filters}}.&lt;br /&gt;
&lt;br /&gt;
LPR is able to output to non-PostScript printers by using Ghostscript's {{cmd|gs}} as an input filter through printcap. Ghostscript offers a few conversion programs between Postscript and pdf files.&lt;br /&gt;
&lt;br /&gt;
Ghostscript (under AGPL) can convert PostScript outputs to printer languages which specific non-Postscript printers can interpret. In addition to PCL, Ghostscript makes ESC printers functional. LPRng includes Ghostscript for printer language conversion too. Ghostscript can be used with LPR, CUPS, or LPRng&lt;br /&gt;
&lt;br /&gt;
GhostViewer ({{port|print/gv}}) is a program for viewing Postscript output on the monitor.&lt;br /&gt;
&lt;br /&gt;
===ESC===&lt;br /&gt;
ESC/P (Epson's developed PDL) printers are used in consumer inkjet printers, as well as dot matrix, receipt, thermal, labeling and barcode printers.&lt;br /&gt;
&lt;br /&gt;
===GDI/WIN===&lt;br /&gt;
Win(dos) or GDI printers are generally incompatible with BSD's or Linux. Printers that let the software from the computer run them completely are referred to as dumb printers.&lt;br /&gt;
&lt;br /&gt;
==Components==&lt;br /&gt;
The spool holds printing jobs to be printed in order. Print jobs are held in the {{file|/var/spool/}} directory.&lt;br /&gt;
&lt;br /&gt;
==References/Further Reading==&lt;br /&gt;
* FreeBSD 6 Unleashed&lt;br /&gt;
* Network Administration with FreeBSD 7&lt;br /&gt;
* Building a Server with FreeBSD 7&lt;br /&gt;
* The Complete FreeBSD (2006)&lt;br /&gt;
* https://www.cups.org/&lt;br /&gt;
* http://lprng.com&lt;br /&gt;
* http://www.wonkity.com/~wblock/docs/html/lpdprinting.html&lt;br /&gt;
* https://docs.freebsd.org/en/books/handbook/printing/&lt;br /&gt;
* https://docs.freebsd.org/en/articles/cups/&lt;br /&gt;
* https://www.informit.com/articles/article.aspx?p=167786&lt;br /&gt;
* https://www.cups.org/blog/2018-06-06-demystifying-cups-development.html&lt;br /&gt;
* https://ftp.pwg.org/pub/pwg/liaison/openprinting/presentations/cups-plenary-may-2021.pdf&lt;br /&gt;
* https://www.msweet.org/pappl/&lt;br /&gt;
(some references are out of date, but still have relevance)&lt;br /&gt;
&lt;br /&gt;
[[Category:New User Tips and FAQs]]&lt;br /&gt;
[[Category:Configuring FreeBSD]]&lt;br /&gt;
[[Category:FreeBSD for Workstations]]&lt;/div&gt;</summary>
		<author><name>Sidetone</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Printing,_about</id>
		<title>Printing, about</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Printing,_about"/>
				<updated>2021-06-21T17:33:00Z</updated>
		
		<summary type="html">&lt;p&gt;Sidetone: /* Modern CUPS specifications */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;About printing on FreeBSD: comparisons of printing protocols; about filters, Page Description Languages (PDL's) and printer specifications.&lt;br /&gt;
&lt;br /&gt;
==Protocols==&lt;br /&gt;
LPD (Line Printer Daemon) and IPP (Internet Printing Protocol) are printer protocols defined by IETF. LPD is described by RFC 1179 (not as a standard): it uses service port 515. IPP is defined by RFC 8011 and RFC 3510: it uses service port 631. Access control and security features are available on IPP that aren't on LPD. RFC 2569 is a memo on mapping between LPD and IPP.&lt;br /&gt;
&lt;br /&gt;
pdl-datastream on service port 9100 is for proprietary printers and proprietary local network printer servers. This is often used by JetDirect products.&lt;br /&gt;
&lt;br /&gt;
Printers can also use SMB (over Samba) as a protocol.&lt;br /&gt;
&lt;br /&gt;
==Comparison of print architectures==&lt;br /&gt;
===LPR, LPRng===&lt;br /&gt;
LPR is the default with FreeBSD. LPRng is a more advanced implementation of LPR. These two programs use and can alter {{man|printcap|5}}. LPR and LPRng both use the LPD protocol over service port 515.&lt;br /&gt;
&lt;br /&gt;
LPR and LPRng require manual set up through custom shell scripts of filters to convert plain text or other types of data, even between PostScript outputs to PostScript able printers. {{port|print/a2ps}} can simplify this task of converting ASCII to PostScript output. LPR's intended use was for text printing.&lt;br /&gt;
&lt;br /&gt;
LPRng (LPR Next Generation) is an advanced replacement for LPR. It is under the GPL and Artistic licenses. IFHP determines the format and does conversions, including by use of Ghostscript. LPRng takes care of format conversions through its filters, and of PostScript output through Ghostscript. LPRng was designed to be more secure than LPR. LPRng is found at {{port|sysutils/LPRng}}. It uses {{file|printcap}}, {{file|lpd.conf}}, and {{file|lpd.perms}} for configuration.&lt;br /&gt;
&lt;br /&gt;
lprng in services ({{file|rc.conf}}) requires that lpr and cupsd be disabled. LPR and LPRng daemons can be enabled or disabled through {{file|rc.conf}}. LPR compilation in the world build can be disabled through {{man|src.conf|5}}&lt;br /&gt;
&lt;br /&gt;
===CUPS===&lt;br /&gt;
The CUPS framework supports more printers than LPR and LPRng, and it is more advanced. PCL printers are more readily supported under CUPS. CUPS can be administered on the command line, through the web interface, and through a GUI.&lt;br /&gt;
&lt;br /&gt;
The default protocol that CUPS uses is IPP. In addition to IPP, CUPS also has protocol support for: LPD, SMB (Server Message Block) and pdl-datastream. CUPS originally started out over LPD. Samba is only needed for printing on LANs that include Windows computers.&lt;br /&gt;
&lt;br /&gt;
CUPS has its own implementation of LPR in under {{file|/usr/local/}}, as opposed to LPR's default location under {{file|/usr/}}. The LPR files that CUPS uses can be set in {{file|/usr/local/etc/cups/printcap}}. On the command line, CUPS uses BSD LPR style commands.&lt;br /&gt;
&lt;br /&gt;
The command cupsctl can adjust settings in cupsd.conf.&lt;br /&gt;
&lt;br /&gt;
CUPS supports encryption for administration and printing, which wasn't available in older versions. Kerberos will be replaced by OAuth and PAM for access control and security by CUPS 3.0.&lt;br /&gt;
&lt;br /&gt;
CUPS is compatible for use with Zeroconf.&lt;br /&gt;
&lt;br /&gt;
This print architecture uses Apache License 2.0. Legacy versions of CUPS were under GPL.&lt;br /&gt;
&lt;br /&gt;
===More===&lt;br /&gt;
CUPS and LPRng software conflicts so cannot be installed together. LPR and CUPS can coexist, but only one service is needed.&lt;br /&gt;
&lt;br /&gt;
Some programs, such as forks of OpenOffice (such as LibreOffice or Apache OpenOffice) provide their own drivers that output to LPR in place of already configured filters like Ghostscript. Their printing has to be set up independently from an already working CUPS or LPR print configuration.&lt;br /&gt;
&lt;br /&gt;
==Modern CUPS specifications==&lt;br /&gt;
As of future CUPS version 3.0, legacy drivers and PDL's will no longer be used. CUPS 2.3 already supports modern CUPS replacements for printer drivers.&lt;br /&gt;
&lt;br /&gt;
PWG Raster ('image/pwg-raster'), JPEG ('image/jpeg'), and PDF ('application/pdf') are modern formats directly supported by newer printers. PWG Raster and JPEG formats are supported by most new printers since 2010.&lt;br /&gt;
&lt;br /&gt;
There are also IPP-Everywhere compliant printers.&lt;br /&gt;
&lt;br /&gt;
Airprint is an alternate technology for Apple MacOS and i-products. It uses Apple Raster ('image/urf'). Mopria is a printer technology to print from Android, which is intended to be used with PAPPL.&lt;br /&gt;
&lt;br /&gt;
'text/plain' is supported by simple printers. 'application/octet-stream' tells capable printers which format to use. For printers without this capability, the format has to be specified through configuration or through print commands.&lt;br /&gt;
&lt;br /&gt;
The WiFi alliance has a printer specification.&lt;br /&gt;
&lt;br /&gt;
Industrial, label, legacy and other specialized printers don't have the capability for these modern printing formats. PAPPL could possibly be the replacement for these to work with newer versions of CUPS.&lt;br /&gt;
&lt;br /&gt;
==Legacy specifications: filters/drivers/PDL's==&lt;br /&gt;
Postscript (PS) and PCL (Printer Command Language) are printer languages known as Page Description Languages (PDL's) supported by the majority of printers for interpreting and printing jobs. These two PDLs are alternate models developed by Adobe and HP respectively. PJL is another type of printer language for controlling features. These legacy specifications work up to CUPS version 2.4. Postscript is defined by 'application/postscript', and PCL is defined by 'application/vnd.hp-pcl'.&lt;br /&gt;
&lt;br /&gt;
Many programs simply output data as Postscript. A filter is often needed for different types of output formats (separate from the printer language), even when the printer understands the same printer language as a program's output (such as Postscript). Output formats that need to be converted to a printer language include: dvi, Fortran and Raster.&lt;br /&gt;
&lt;br /&gt;
Filters are useful for different types of output. Carriage returns are different for command line output from Bourne shells, MS DOS, text files and Postscript output. Without the right filters, printers can stair-step or text can otherwise be misaligned.&lt;br /&gt;
&lt;br /&gt;
Printer packaging lists its specs, often: supported PDLs, fonts and graphics formats.&lt;br /&gt;
&lt;br /&gt;
===PCL===&lt;br /&gt;
ASCII is a printer language which PCL is an extension of.&lt;br /&gt;
&lt;br /&gt;
===PostScript===&lt;br /&gt;
LPR in base, and CUPS from ports perform the same function of receiving PostScript output and sending it to PostScript capable printers. CUPS allows printers that use other PCL's to be used through PostScript via PPD (PostScript Printer Description) conversions.&lt;br /&gt;
&lt;br /&gt;
PostScript is the default for both CUPS and Apple. For the most common PDL's: PostScript is considered higher quality than PCL, so more preference is centered around it. There are also very high quality printers that don't use either of these two PDL's.&lt;br /&gt;
&lt;br /&gt;
PostScript printers cost more because of hardware and font license fees from Adobe. However, this company offers PostScript software drivers for free. (Opensource driver software is available as mentioned a few times.) HP computers that have M in the model for Macintosh are PostScript printers (one may want to confirm that the specifications say Postscript).&lt;br /&gt;
&lt;br /&gt;
Conversions for non-PostScript printers rely on PPD's, and filters.&lt;br /&gt;
&lt;br /&gt;
===Conversions===&lt;br /&gt;
Ghostscript is a substitution for PCL printers to work as if they were PostScript. Ghostscript, Foomatic and other printer suites act as filters on LPR. On CUPS, many of these filters plus Gutenprint are able to provide needed PPD's (Postscript Printer Descriptions) for varying printers. {{port|print/foomatic-filters}} may lack compatibility with CUPS, and it conflicts with a needed {{port|print/cups-filters}}.&lt;br /&gt;
&lt;br /&gt;
LPR is able to output to non-PostScript printers by using Ghostscript's {{cmd|gs}} as an input filter through printcap. Ghostscript offers a few conversion programs between Postscript and pdf files.&lt;br /&gt;
&lt;br /&gt;
Ghostscript (under AGPL) can convert PostScript outputs to printer languages which specific non-Postscript printers can interpret. In addition to PCL, Ghostscript makes ESC printers functional. LPRng includes Ghostscript for printer language conversion too. Ghostscript can be used with LPR, CUPS, or LPRng&lt;br /&gt;
&lt;br /&gt;
GhostViewer ({{port|print/gv}}) is a program for viewing Postscript output on the monitor.&lt;br /&gt;
&lt;br /&gt;
===ESC===&lt;br /&gt;
ESC/P (Epson's developed PDL) printers are used in consumer inkjet printers, as well as dot matrix, receipt, thermal, labeling and barcode printers.&lt;br /&gt;
&lt;br /&gt;
===GDI/WIN===&lt;br /&gt;
Win(dos) or GDI printers are generally incompatible with BSD's or Linux. Printers that let the software from the computer run them completely are referred to as dumb printers.&lt;br /&gt;
&lt;br /&gt;
==Components==&lt;br /&gt;
The spool holds printing jobs to be printed in order. Print jobs are held in the {{file|/var/spool/}} directory.&lt;br /&gt;
&lt;br /&gt;
==References/Further Reading==&lt;br /&gt;
* FreeBSD 6 Unleashed&lt;br /&gt;
* Network Administration with FreeBSD 7&lt;br /&gt;
* Building a Server with FreeBSD 7&lt;br /&gt;
* The Complete FreeBSD (2006)&lt;br /&gt;
* https://www.cups.org/&lt;br /&gt;
* http://lprng.com&lt;br /&gt;
* http://www.wonkity.com/~wblock/docs/html/lpdprinting.html&lt;br /&gt;
* https://docs.freebsd.org/en/books/handbook/printing/&lt;br /&gt;
* https://docs.freebsd.org/en/articles/cups/&lt;br /&gt;
* https://www.informit.com/articles/article.aspx?p=167786&lt;br /&gt;
* https://www.cups.org/blog/2018-06-06-demystifying-cups-development.html&lt;br /&gt;
* https://ftp.pwg.org/pub/pwg/liaison/openprinting/presentations/cups-plenary-may-2021.pdf&lt;br /&gt;
* https://www.msweet.org/pappl/&lt;br /&gt;
(some references are out of date, but still have relevance)&lt;br /&gt;
&lt;br /&gt;
[[Category:New User Tips and FAQs]]&lt;br /&gt;
[[Category:Configuring FreeBSD]]&lt;br /&gt;
[[Category:FreeBSD for Workstations]]&lt;/div&gt;</summary>
		<author><name>Sidetone</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Printing,_about</id>
		<title>Printing, about</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Printing,_about"/>
				<updated>2021-06-21T17:29:47Z</updated>
		
		<summary type="html">&lt;p&gt;Sidetone: /* References/Further Reading */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;About printing on FreeBSD: comparisons of printing protocols; about filters, Page Description Languages (PDL's) and printer specifications.&lt;br /&gt;
&lt;br /&gt;
==Protocols==&lt;br /&gt;
LPD (Line Printer Daemon) and IPP (Internet Printing Protocol) are printer protocols defined by IETF. LPD is described by RFC 1179 (not as a standard): it uses service port 515. IPP is defined by RFC 8011 and RFC 3510: it uses service port 631. Access control and security features are available on IPP that aren't on LPD. RFC 2569 is a memo on mapping between LPD and IPP.&lt;br /&gt;
&lt;br /&gt;
pdl-datastream on service port 9100 is for proprietary printers and proprietary local network printer servers. This is often used by JetDirect products.&lt;br /&gt;
&lt;br /&gt;
Printers can also use SMB (over Samba) as a protocol.&lt;br /&gt;
&lt;br /&gt;
==Comparison of print architectures==&lt;br /&gt;
===LPR, LPRng===&lt;br /&gt;
LPR is the default with FreeBSD. LPRng is a more advanced implementation of LPR. These two programs use and can alter {{man|printcap|5}}. LPR and LPRng both use the LPD protocol over service port 515.&lt;br /&gt;
&lt;br /&gt;
LPR and LPRng require manual set up through custom shell scripts of filters to convert plain text or other types of data, even between PostScript outputs to PostScript able printers. {{port|print/a2ps}} can simplify this task of converting ASCII to PostScript output. LPR's intended use was for text printing.&lt;br /&gt;
&lt;br /&gt;
LPRng (LPR Next Generation) is an advanced replacement for LPR. It is under the GPL and Artistic licenses. IFHP determines the format and does conversions, including by use of Ghostscript. LPRng takes care of format conversions through its filters, and of PostScript output through Ghostscript. LPRng was designed to be more secure than LPR. LPRng is found at {{port|sysutils/LPRng}}. It uses {{file|printcap}}, {{file|lpd.conf}}, and {{file|lpd.perms}} for configuration.&lt;br /&gt;
&lt;br /&gt;
lprng in services ({{file|rc.conf}}) requires that lpr and cupsd be disabled. LPR and LPRng daemons can be enabled or disabled through {{file|rc.conf}}. LPR compilation in the world build can be disabled through {{man|src.conf|5}}&lt;br /&gt;
&lt;br /&gt;
===CUPS===&lt;br /&gt;
The CUPS framework supports more printers than LPR and LPRng, and it is more advanced. PCL printers are more readily supported under CUPS. CUPS can be administered on the command line, through the web interface, and through a GUI.&lt;br /&gt;
&lt;br /&gt;
The default protocol that CUPS uses is IPP. In addition to IPP, CUPS also has protocol support for: LPD, SMB (Server Message Block) and pdl-datastream. CUPS originally started out over LPD. Samba is only needed for printing on LANs that include Windows computers.&lt;br /&gt;
&lt;br /&gt;
CUPS has its own implementation of LPR in under {{file|/usr/local/}}, as opposed to LPR's default location under {{file|/usr/}}. The LPR files that CUPS uses can be set in {{file|/usr/local/etc/cups/printcap}}. On the command line, CUPS uses BSD LPR style commands.&lt;br /&gt;
&lt;br /&gt;
The command cupsctl can adjust settings in cupsd.conf.&lt;br /&gt;
&lt;br /&gt;
CUPS supports encryption for administration and printing, which wasn't available in older versions. Kerberos will be replaced by OAuth and PAM for access control and security by CUPS 3.0.&lt;br /&gt;
&lt;br /&gt;
CUPS is compatible for use with Zeroconf.&lt;br /&gt;
&lt;br /&gt;
This print architecture uses Apache License 2.0. Legacy versions of CUPS were under GPL.&lt;br /&gt;
&lt;br /&gt;
===More===&lt;br /&gt;
CUPS and LPRng software conflicts so cannot be installed together. LPR and CUPS can coexist, but only one service is needed.&lt;br /&gt;
&lt;br /&gt;
Some programs, such as forks of OpenOffice (such as LibreOffice or Apache OpenOffice) provide their own drivers that output to LPR in place of already configured filters like Ghostscript. Their printing has to be set up independently from an already working CUPS or LPR print configuration.&lt;br /&gt;
&lt;br /&gt;
==Modern CUPS specifications==&lt;br /&gt;
As of future CUPS version 3.0, legacy drivers and PDL's will no longer be used. CUPS 2.3 already supports modern CUPS replacements for printer drivers.&lt;br /&gt;
&lt;br /&gt;
PWG Raster ('image/pwg-raster'), JPEG ('image/jpeg'), and PDF ('application/pdf') are modern formats directly supported by newer printers. PWG Raster and JPEG formats are supported by most new printers since 2010.&lt;br /&gt;
&lt;br /&gt;
There are also IPP-Everywhere compliant printers.&lt;br /&gt;
&lt;br /&gt;
Airprint is an alternate technology for Apple MacOS and i-products. It uses Apple Raster ('image/urf'). Mopria is a printer technology to print from Android.&lt;br /&gt;
&lt;br /&gt;
'text/plain' is supported by simple printers. 'application/octet-stream' tells capable printers which format to use. For printers without this capability, the format has to be specified through configuration or through print commands.&lt;br /&gt;
&lt;br /&gt;
The WiFi alliance has a printer specification.&lt;br /&gt;
&lt;br /&gt;
Industrial, label, legacy and other specialized printers don't have the capability for these modern printing formats. PAPPL could possibly be the replacement for these to work with newer versions of CUPS.&lt;br /&gt;
&lt;br /&gt;
==Legacy specifications: filters/drivers/PDL's==&lt;br /&gt;
Postscript (PS) and PCL (Printer Command Language) are printer languages known as Page Description Languages (PDL's) supported by the majority of printers for interpreting and printing jobs. These two PDLs are alternate models developed by Adobe and HP respectively. PJL is another type of printer language for controlling features. These legacy specifications work up to CUPS version 2.4. Postscript is defined by 'application/postscript', and PCL is defined by 'application/vnd.hp-pcl'.&lt;br /&gt;
&lt;br /&gt;
Many programs simply output data as Postscript. A filter is often needed for different types of output formats (separate from the printer language), even when the printer understands the same printer language as a program's output (such as Postscript). Output formats that need to be converted to a printer language include: dvi, Fortran and Raster.&lt;br /&gt;
&lt;br /&gt;
Filters are useful for different types of output. Carriage returns are different for command line output from Bourne shells, MS DOS, text files and Postscript output. Without the right filters, printers can stair-step or text can otherwise be misaligned.&lt;br /&gt;
&lt;br /&gt;
Printer packaging lists its specs, often: supported PDLs, fonts and graphics formats.&lt;br /&gt;
&lt;br /&gt;
===PCL===&lt;br /&gt;
ASCII is a printer language which PCL is an extension of.&lt;br /&gt;
&lt;br /&gt;
===PostScript===&lt;br /&gt;
LPR in base, and CUPS from ports perform the same function of receiving PostScript output and sending it to PostScript capable printers. CUPS allows printers that use other PCL's to be used through PostScript via PPD (PostScript Printer Description) conversions.&lt;br /&gt;
&lt;br /&gt;
PostScript is the default for both CUPS and Apple. For the most common PDL's: PostScript is considered higher quality than PCL, so more preference is centered around it. There are also very high quality printers that don't use either of these two PDL's.&lt;br /&gt;
&lt;br /&gt;
PostScript printers cost more because of hardware and font license fees from Adobe. However, this company offers PostScript software drivers for free. (Opensource driver software is available as mentioned a few times.) HP computers that have M in the model for Macintosh are PostScript printers (one may want to confirm that the specifications say Postscript).&lt;br /&gt;
&lt;br /&gt;
Conversions for non-PostScript printers rely on PPD's, and filters.&lt;br /&gt;
&lt;br /&gt;
===Conversions===&lt;br /&gt;
Ghostscript is a substitution for PCL printers to work as if they were PostScript. Ghostscript, Foomatic and other printer suites act as filters on LPR. On CUPS, many of these filters plus Gutenprint are able to provide needed PPD's (Postscript Printer Descriptions) for varying printers. {{port|print/foomatic-filters}} may lack compatibility with CUPS, and it conflicts with a needed {{port|print/cups-filters}}.&lt;br /&gt;
&lt;br /&gt;
LPR is able to output to non-PostScript printers by using Ghostscript's {{cmd|gs}} as an input filter through printcap. Ghostscript offers a few conversion programs between Postscript and pdf files.&lt;br /&gt;
&lt;br /&gt;
Ghostscript (under AGPL) can convert PostScript outputs to printer languages which specific non-Postscript printers can interpret. In addition to PCL, Ghostscript makes ESC printers functional. LPRng includes Ghostscript for printer language conversion too. Ghostscript can be used with LPR, CUPS, or LPRng&lt;br /&gt;
&lt;br /&gt;
GhostViewer ({{port|print/gv}}) is a program for viewing Postscript output on the monitor.&lt;br /&gt;
&lt;br /&gt;
===ESC===&lt;br /&gt;
ESC/P (Epson's developed PDL) printers are used in consumer inkjet printers, as well as dot matrix, receipt, thermal, labeling and barcode printers.&lt;br /&gt;
&lt;br /&gt;
===GDI/WIN===&lt;br /&gt;
Win(dos) or GDI printers are generally incompatible with BSD's or Linux. Printers that let the software from the computer run them completely are referred to as dumb printers.&lt;br /&gt;
&lt;br /&gt;
==Components==&lt;br /&gt;
The spool holds printing jobs to be printed in order. Print jobs are held in the {{file|/var/spool/}} directory.&lt;br /&gt;
&lt;br /&gt;
==References/Further Reading==&lt;br /&gt;
* FreeBSD 6 Unleashed&lt;br /&gt;
* Network Administration with FreeBSD 7&lt;br /&gt;
* Building a Server with FreeBSD 7&lt;br /&gt;
* The Complete FreeBSD (2006)&lt;br /&gt;
* https://www.cups.org/&lt;br /&gt;
* http://lprng.com&lt;br /&gt;
* http://www.wonkity.com/~wblock/docs/html/lpdprinting.html&lt;br /&gt;
* https://docs.freebsd.org/en/books/handbook/printing/&lt;br /&gt;
* https://docs.freebsd.org/en/articles/cups/&lt;br /&gt;
* https://www.informit.com/articles/article.aspx?p=167786&lt;br /&gt;
* https://www.cups.org/blog/2018-06-06-demystifying-cups-development.html&lt;br /&gt;
* https://ftp.pwg.org/pub/pwg/liaison/openprinting/presentations/cups-plenary-may-2021.pdf&lt;br /&gt;
* https://www.msweet.org/pappl/&lt;br /&gt;
(some references are out of date, but still have relevance)&lt;br /&gt;
&lt;br /&gt;
[[Category:New User Tips and FAQs]]&lt;br /&gt;
[[Category:Configuring FreeBSD]]&lt;br /&gt;
[[Category:FreeBSD for Workstations]]&lt;/div&gt;</summary>
		<author><name>Sidetone</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Printing,_about</id>
		<title>Printing, about</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Printing,_about"/>
				<updated>2021-06-21T17:27:45Z</updated>
		
		<summary type="html">&lt;p&gt;Sidetone: /* Modern CUPS specifications */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;About printing on FreeBSD: comparisons of printing protocols; about filters, Page Description Languages (PDL's) and printer specifications.&lt;br /&gt;
&lt;br /&gt;
==Protocols==&lt;br /&gt;
LPD (Line Printer Daemon) and IPP (Internet Printing Protocol) are printer protocols defined by IETF. LPD is described by RFC 1179 (not as a standard): it uses service port 515. IPP is defined by RFC 8011 and RFC 3510: it uses service port 631. Access control and security features are available on IPP that aren't on LPD. RFC 2569 is a memo on mapping between LPD and IPP.&lt;br /&gt;
&lt;br /&gt;
pdl-datastream on service port 9100 is for proprietary printers and proprietary local network printer servers. This is often used by JetDirect products.&lt;br /&gt;
&lt;br /&gt;
Printers can also use SMB (over Samba) as a protocol.&lt;br /&gt;
&lt;br /&gt;
==Comparison of print architectures==&lt;br /&gt;
===LPR, LPRng===&lt;br /&gt;
LPR is the default with FreeBSD. LPRng is a more advanced implementation of LPR. These two programs use and can alter {{man|printcap|5}}. LPR and LPRng both use the LPD protocol over service port 515.&lt;br /&gt;
&lt;br /&gt;
LPR and LPRng require manual set up through custom shell scripts of filters to convert plain text or other types of data, even between PostScript outputs to PostScript able printers. {{port|print/a2ps}} can simplify this task of converting ASCII to PostScript output. LPR's intended use was for text printing.&lt;br /&gt;
&lt;br /&gt;
LPRng (LPR Next Generation) is an advanced replacement for LPR. It is under the GPL and Artistic licenses. IFHP determines the format and does conversions, including by use of Ghostscript. LPRng takes care of format conversions through its filters, and of PostScript output through Ghostscript. LPRng was designed to be more secure than LPR. LPRng is found at {{port|sysutils/LPRng}}. It uses {{file|printcap}}, {{file|lpd.conf}}, and {{file|lpd.perms}} for configuration.&lt;br /&gt;
&lt;br /&gt;
lprng in services ({{file|rc.conf}}) requires that lpr and cupsd be disabled. LPR and LPRng daemons can be enabled or disabled through {{file|rc.conf}}. LPR compilation in the world build can be disabled through {{man|src.conf|5}}&lt;br /&gt;
&lt;br /&gt;
===CUPS===&lt;br /&gt;
The CUPS framework supports more printers than LPR and LPRng, and it is more advanced. PCL printers are more readily supported under CUPS. CUPS can be administered on the command line, through the web interface, and through a GUI.&lt;br /&gt;
&lt;br /&gt;
The default protocol that CUPS uses is IPP. In addition to IPP, CUPS also has protocol support for: LPD, SMB (Server Message Block) and pdl-datastream. CUPS originally started out over LPD. Samba is only needed for printing on LANs that include Windows computers.&lt;br /&gt;
&lt;br /&gt;
CUPS has its own implementation of LPR in under {{file|/usr/local/}}, as opposed to LPR's default location under {{file|/usr/}}. The LPR files that CUPS uses can be set in {{file|/usr/local/etc/cups/printcap}}. On the command line, CUPS uses BSD LPR style commands.&lt;br /&gt;
&lt;br /&gt;
The command cupsctl can adjust settings in cupsd.conf.&lt;br /&gt;
&lt;br /&gt;
CUPS supports encryption for administration and printing, which wasn't available in older versions. Kerberos will be replaced by OAuth and PAM for access control and security by CUPS 3.0.&lt;br /&gt;
&lt;br /&gt;
CUPS is compatible for use with Zeroconf.&lt;br /&gt;
&lt;br /&gt;
This print architecture uses Apache License 2.0. Legacy versions of CUPS were under GPL.&lt;br /&gt;
&lt;br /&gt;
===More===&lt;br /&gt;
CUPS and LPRng software conflicts so cannot be installed together. LPR and CUPS can coexist, but only one service is needed.&lt;br /&gt;
&lt;br /&gt;
Some programs, such as forks of OpenOffice (such as LibreOffice or Apache OpenOffice) provide their own drivers that output to LPR in place of already configured filters like Ghostscript. Their printing has to be set up independently from an already working CUPS or LPR print configuration.&lt;br /&gt;
&lt;br /&gt;
==Modern CUPS specifications==&lt;br /&gt;
As of future CUPS version 3.0, legacy drivers and PDL's will no longer be used. CUPS 2.3 already supports modern CUPS replacements for printer drivers.&lt;br /&gt;
&lt;br /&gt;
PWG Raster ('image/pwg-raster'), JPEG ('image/jpeg'), and PDF ('application/pdf') are modern formats directly supported by newer printers. PWG Raster and JPEG formats are supported by most new printers since 2010.&lt;br /&gt;
&lt;br /&gt;
There are also IPP-Everywhere compliant printers.&lt;br /&gt;
&lt;br /&gt;
Airprint is an alternate technology for Apple MacOS and i-products. It uses Apple Raster ('image/urf'). Mopria is a printer technology to print from Android.&lt;br /&gt;
&lt;br /&gt;
'text/plain' is supported by simple printers. 'application/octet-stream' tells capable printers which format to use. For printers without this capability, the format has to be specified through configuration or through print commands.&lt;br /&gt;
&lt;br /&gt;
The WiFi alliance has a printer specification.&lt;br /&gt;
&lt;br /&gt;
Industrial, label, legacy and other specialized printers don't have the capability for these modern printing formats. PAPPL could possibly be the replacement for these to work with newer versions of CUPS.&lt;br /&gt;
&lt;br /&gt;
==Legacy specifications: filters/drivers/PDL's==&lt;br /&gt;
Postscript (PS) and PCL (Printer Command Language) are printer languages known as Page Description Languages (PDL's) supported by the majority of printers for interpreting and printing jobs. These two PDLs are alternate models developed by Adobe and HP respectively. PJL is another type of printer language for controlling features. These legacy specifications work up to CUPS version 2.4. Postscript is defined by 'application/postscript', and PCL is defined by 'application/vnd.hp-pcl'.&lt;br /&gt;
&lt;br /&gt;
Many programs simply output data as Postscript. A filter is often needed for different types of output formats (separate from the printer language), even when the printer understands the same printer language as a program's output (such as Postscript). Output formats that need to be converted to a printer language include: dvi, Fortran and Raster.&lt;br /&gt;
&lt;br /&gt;
Filters are useful for different types of output. Carriage returns are different for command line output from Bourne shells, MS DOS, text files and Postscript output. Without the right filters, printers can stair-step or text can otherwise be misaligned.&lt;br /&gt;
&lt;br /&gt;
Printer packaging lists its specs, often: supported PDLs, fonts and graphics formats.&lt;br /&gt;
&lt;br /&gt;
===PCL===&lt;br /&gt;
ASCII is a printer language which PCL is an extension of.&lt;br /&gt;
&lt;br /&gt;
===PostScript===&lt;br /&gt;
LPR in base, and CUPS from ports perform the same function of receiving PostScript output and sending it to PostScript capable printers. CUPS allows printers that use other PCL's to be used through PostScript via PPD (PostScript Printer Description) conversions.&lt;br /&gt;
&lt;br /&gt;
PostScript is the default for both CUPS and Apple. For the most common PDL's: PostScript is considered higher quality than PCL, so more preference is centered around it. There are also very high quality printers that don't use either of these two PDL's.&lt;br /&gt;
&lt;br /&gt;
PostScript printers cost more because of hardware and font license fees from Adobe. However, this company offers PostScript software drivers for free. (Opensource driver software is available as mentioned a few times.) HP computers that have M in the model for Macintosh are PostScript printers (one may want to confirm that the specifications say Postscript).&lt;br /&gt;
&lt;br /&gt;
Conversions for non-PostScript printers rely on PPD's, and filters.&lt;br /&gt;
&lt;br /&gt;
===Conversions===&lt;br /&gt;
Ghostscript is a substitution for PCL printers to work as if they were PostScript. Ghostscript, Foomatic and other printer suites act as filters on LPR. On CUPS, many of these filters plus Gutenprint are able to provide needed PPD's (Postscript Printer Descriptions) for varying printers. {{port|print/foomatic-filters}} may lack compatibility with CUPS, and it conflicts with a needed {{port|print/cups-filters}}.&lt;br /&gt;
&lt;br /&gt;
LPR is able to output to non-PostScript printers by using Ghostscript's {{cmd|gs}} as an input filter through printcap. Ghostscript offers a few conversion programs between Postscript and pdf files.&lt;br /&gt;
&lt;br /&gt;
Ghostscript (under AGPL) can convert PostScript outputs to printer languages which specific non-Postscript printers can interpret. In addition to PCL, Ghostscript makes ESC printers functional. LPRng includes Ghostscript for printer language conversion too. Ghostscript can be used with LPR, CUPS, or LPRng&lt;br /&gt;
&lt;br /&gt;
GhostViewer ({{port|print/gv}}) is a program for viewing Postscript output on the monitor.&lt;br /&gt;
&lt;br /&gt;
===ESC===&lt;br /&gt;
ESC/P (Epson's developed PDL) printers are used in consumer inkjet printers, as well as dot matrix, receipt, thermal, labeling and barcode printers.&lt;br /&gt;
&lt;br /&gt;
===GDI/WIN===&lt;br /&gt;
Win(dos) or GDI printers are generally incompatible with BSD's or Linux. Printers that let the software from the computer run them completely are referred to as dumb printers.&lt;br /&gt;
&lt;br /&gt;
==Components==&lt;br /&gt;
The spool holds printing jobs to be printed in order. Print jobs are held in the {{file|/var/spool/}} directory.&lt;br /&gt;
&lt;br /&gt;
==References/Further Reading==&lt;br /&gt;
* FreeBSD 6 Unleashed&lt;br /&gt;
* Network Administration with FreeBSD 7&lt;br /&gt;
* Building a Server with FreeBSD 7&lt;br /&gt;
* The Complete FreeBSD (2006)&lt;br /&gt;
* https://www.cups.org/&lt;br /&gt;
* http://lprng.com&lt;br /&gt;
* http://www.wonkity.com/~wblock/docs/html/lpdprinting.html&lt;br /&gt;
* https://docs.freebsd.org/en/books/handbook/printing/&lt;br /&gt;
* https://docs.freebsd.org/en/articles/cups/&lt;br /&gt;
* https://www.informit.com/articles/article.aspx?p=167786&lt;br /&gt;
* https://www.cups.org/blog/2018-06-06-demystifying-cups-development.html&lt;br /&gt;
* https://ftp.pwg.org/pub/pwg/liaison/openprinting/presentations/cups-plenary-may-2021.pdf&lt;br /&gt;
(some references are out of date, but still have relevance)&lt;br /&gt;
&lt;br /&gt;
[[Category:New User Tips and FAQs]]&lt;br /&gt;
[[Category:Configuring FreeBSD]]&lt;br /&gt;
[[Category:FreeBSD for Workstations]]&lt;/div&gt;</summary>
		<author><name>Sidetone</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Printing,_about</id>
		<title>Printing, about</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Printing,_about"/>
				<updated>2021-06-21T17:04:19Z</updated>
		
		<summary type="html">&lt;p&gt;Sidetone: /* References/Further Reading */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;About printing on FreeBSD: comparisons of printing protocols; about filters, Page Description Languages (PDL's) and printer specifications.&lt;br /&gt;
&lt;br /&gt;
==Protocols==&lt;br /&gt;
LPD (Line Printer Daemon) and IPP (Internet Printing Protocol) are printer protocols defined by IETF. LPD is described by RFC 1179 (not as a standard): it uses service port 515. IPP is defined by RFC 8011 and RFC 3510: it uses service port 631. Access control and security features are available on IPP that aren't on LPD. RFC 2569 is a memo on mapping between LPD and IPP.&lt;br /&gt;
&lt;br /&gt;
pdl-datastream on service port 9100 is for proprietary printers and proprietary local network printer servers. This is often used by JetDirect products.&lt;br /&gt;
&lt;br /&gt;
Printers can also use SMB (over Samba) as a protocol.&lt;br /&gt;
&lt;br /&gt;
==Comparison of print architectures==&lt;br /&gt;
===LPR, LPRng===&lt;br /&gt;
LPR is the default with FreeBSD. LPRng is a more advanced implementation of LPR. These two programs use and can alter {{man|printcap|5}}. LPR and LPRng both use the LPD protocol over service port 515.&lt;br /&gt;
&lt;br /&gt;
LPR and LPRng require manual set up through custom shell scripts of filters to convert plain text or other types of data, even between PostScript outputs to PostScript able printers. {{port|print/a2ps}} can simplify this task of converting ASCII to PostScript output. LPR's intended use was for text printing.&lt;br /&gt;
&lt;br /&gt;
LPRng (LPR Next Generation) is an advanced replacement for LPR. It is under the GPL and Artistic licenses. IFHP determines the format and does conversions, including by use of Ghostscript. LPRng takes care of format conversions through its filters, and of PostScript output through Ghostscript. LPRng was designed to be more secure than LPR. LPRng is found at {{port|sysutils/LPRng}}. It uses {{file|printcap}}, {{file|lpd.conf}}, and {{file|lpd.perms}} for configuration.&lt;br /&gt;
&lt;br /&gt;
lprng in services ({{file|rc.conf}}) requires that lpr and cupsd be disabled. LPR and LPRng daemons can be enabled or disabled through {{file|rc.conf}}. LPR compilation in the world build can be disabled through {{man|src.conf|5}}&lt;br /&gt;
&lt;br /&gt;
===CUPS===&lt;br /&gt;
The CUPS framework supports more printers than LPR and LPRng, and it is more advanced. PCL printers are more readily supported under CUPS. CUPS can be administered on the command line, through the web interface, and through a GUI.&lt;br /&gt;
&lt;br /&gt;
The default protocol that CUPS uses is IPP. In addition to IPP, CUPS also has protocol support for: LPD, SMB (Server Message Block) and pdl-datastream. CUPS originally started out over LPD. Samba is only needed for printing on LANs that include Windows computers.&lt;br /&gt;
&lt;br /&gt;
CUPS has its own implementation of LPR in under {{file|/usr/local/}}, as opposed to LPR's default location under {{file|/usr/}}. The LPR files that CUPS uses can be set in {{file|/usr/local/etc/cups/printcap}}. On the command line, CUPS uses BSD LPR style commands.&lt;br /&gt;
&lt;br /&gt;
The command cupsctl can adjust settings in cupsd.conf.&lt;br /&gt;
&lt;br /&gt;
CUPS supports encryption for administration and printing, which wasn't available in older versions. Kerberos will be replaced by OAuth and PAM for access control and security by CUPS 3.0.&lt;br /&gt;
&lt;br /&gt;
CUPS is compatible for use with Zeroconf.&lt;br /&gt;
&lt;br /&gt;
This print architecture uses Apache License 2.0. Legacy versions of CUPS were under GPL.&lt;br /&gt;
&lt;br /&gt;
===More===&lt;br /&gt;
CUPS and LPRng software conflicts so cannot be installed together. LPR and CUPS can coexist, but only one service is needed.&lt;br /&gt;
&lt;br /&gt;
Some programs, such as forks of OpenOffice (such as LibreOffice or Apache OpenOffice) provide their own drivers that output to LPR in place of already configured filters like Ghostscript. Their printing has to be set up independently from an already working CUPS or LPR print configuration.&lt;br /&gt;
&lt;br /&gt;
==Modern CUPS specifications==&lt;br /&gt;
As of future CUPS version 3.0, legacy drivers and PDL's will no longer be used. CUPS 2.3 already supports modern CUPS replacements for printer drivers.&lt;br /&gt;
&lt;br /&gt;
PWG Raster ('image/pwg-raster'), JPEG ('image/jpeg'), and PDF ('application/pdf') are modern formats directly supported by newer printers. PWG Raster and JPEG formats are supported by most new printers since 2010.&lt;br /&gt;
&lt;br /&gt;
There are also IPP-Everywhere compliant printers.&lt;br /&gt;
&lt;br /&gt;
Airprint is an alternate technology for Apple MacOS and i-products. It uses Apple Raster ('image/urf').&lt;br /&gt;
&lt;br /&gt;
'text/plain' is supported by simple printers. 'application/octet-stream' tells capable printers which format to use. For printers without this capability, the format has to be specified through configuration or through print commands.&lt;br /&gt;
&lt;br /&gt;
The WiFi alliance has a printer specification.&lt;br /&gt;
&lt;br /&gt;
==Legacy specifications: filters/drivers/PDL's==&lt;br /&gt;
Postscript (PS) and PCL (Printer Command Language) are printer languages known as Page Description Languages (PDL's) supported by the majority of printers for interpreting and printing jobs. These two PDLs are alternate models developed by Adobe and HP respectively. PJL is another type of printer language for controlling features. These legacy specifications work up to CUPS version 2.4. Postscript is defined by 'application/postscript', and PCL is defined by 'application/vnd.hp-pcl'.&lt;br /&gt;
&lt;br /&gt;
Many programs simply output data as Postscript. A filter is often needed for different types of output formats (separate from the printer language), even when the printer understands the same printer language as a program's output (such as Postscript). Output formats that need to be converted to a printer language include: dvi, Fortran and Raster.&lt;br /&gt;
&lt;br /&gt;
Filters are useful for different types of output. Carriage returns are different for command line output from Bourne shells, MS DOS, text files and Postscript output. Without the right filters, printers can stair-step or text can otherwise be misaligned.&lt;br /&gt;
&lt;br /&gt;
Printer packaging lists its specs, often: supported PDLs, fonts and graphics formats.&lt;br /&gt;
&lt;br /&gt;
===PCL===&lt;br /&gt;
ASCII is a printer language which PCL is an extension of.&lt;br /&gt;
&lt;br /&gt;
===PostScript===&lt;br /&gt;
LPR in base, and CUPS from ports perform the same function of receiving PostScript output and sending it to PostScript capable printers. CUPS allows printers that use other PCL's to be used through PostScript via PPD (PostScript Printer Description) conversions.&lt;br /&gt;
&lt;br /&gt;
PostScript is the default for both CUPS and Apple. For the most common PDL's: PostScript is considered higher quality than PCL, so more preference is centered around it. There are also very high quality printers that don't use either of these two PDL's.&lt;br /&gt;
&lt;br /&gt;
PostScript printers cost more because of hardware and font license fees from Adobe. However, this company offers PostScript software drivers for free. (Opensource driver software is available as mentioned a few times.) HP computers that have M in the model for Macintosh are PostScript printers (one may want to confirm that the specifications say Postscript).&lt;br /&gt;
&lt;br /&gt;
Conversions for non-PostScript printers rely on PPD's, and filters.&lt;br /&gt;
&lt;br /&gt;
===Conversions===&lt;br /&gt;
Ghostscript is a substitution for PCL printers to work as if they were PostScript. Ghostscript, Foomatic and other printer suites act as filters on LPR. On CUPS, many of these filters plus Gutenprint are able to provide needed PPD's (Postscript Printer Descriptions) for varying printers. {{port|print/foomatic-filters}} may lack compatibility with CUPS, and it conflicts with a needed {{port|print/cups-filters}}.&lt;br /&gt;
&lt;br /&gt;
LPR is able to output to non-PostScript printers by using Ghostscript's {{cmd|gs}} as an input filter through printcap. Ghostscript offers a few conversion programs between Postscript and pdf files.&lt;br /&gt;
&lt;br /&gt;
Ghostscript (under AGPL) can convert PostScript outputs to printer languages which specific non-Postscript printers can interpret. In addition to PCL, Ghostscript makes ESC printers functional. LPRng includes Ghostscript for printer language conversion too. Ghostscript can be used with LPR, CUPS, or LPRng&lt;br /&gt;
&lt;br /&gt;
GhostViewer ({{port|print/gv}}) is a program for viewing Postscript output on the monitor.&lt;br /&gt;
&lt;br /&gt;
===ESC===&lt;br /&gt;
ESC/P (Epson's developed PDL) printers are used in consumer inkjet printers, as well as dot matrix, receipt, thermal, labeling and barcode printers.&lt;br /&gt;
&lt;br /&gt;
===GDI/WIN===&lt;br /&gt;
Win(dos) or GDI printers are generally incompatible with BSD's or Linux. Printers that let the software from the computer run them completely are referred to as dumb printers.&lt;br /&gt;
&lt;br /&gt;
==Components==&lt;br /&gt;
The spool holds printing jobs to be printed in order. Print jobs are held in the {{file|/var/spool/}} directory.&lt;br /&gt;
&lt;br /&gt;
==References/Further Reading==&lt;br /&gt;
* FreeBSD 6 Unleashed&lt;br /&gt;
* Network Administration with FreeBSD 7&lt;br /&gt;
* Building a Server with FreeBSD 7&lt;br /&gt;
* The Complete FreeBSD (2006)&lt;br /&gt;
* https://www.cups.org/&lt;br /&gt;
* http://lprng.com&lt;br /&gt;
* http://www.wonkity.com/~wblock/docs/html/lpdprinting.html&lt;br /&gt;
* https://docs.freebsd.org/en/books/handbook/printing/&lt;br /&gt;
* https://docs.freebsd.org/en/articles/cups/&lt;br /&gt;
* https://www.informit.com/articles/article.aspx?p=167786&lt;br /&gt;
* https://www.cups.org/blog/2018-06-06-demystifying-cups-development.html&lt;br /&gt;
* https://ftp.pwg.org/pub/pwg/liaison/openprinting/presentations/cups-plenary-may-2021.pdf&lt;br /&gt;
(some references are out of date, but still have relevance)&lt;br /&gt;
&lt;br /&gt;
[[Category:New User Tips and FAQs]]&lt;br /&gt;
[[Category:Configuring FreeBSD]]&lt;br /&gt;
[[Category:FreeBSD for Workstations]]&lt;/div&gt;</summary>
		<author><name>Sidetone</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Printing,_about</id>
		<title>Printing, about</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Printing,_about"/>
				<updated>2021-06-21T17:04:08Z</updated>
		
		<summary type="html">&lt;p&gt;Sidetone: /* References/Further Reading */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;About printing on FreeBSD: comparisons of printing protocols; about filters, Page Description Languages (PDL's) and printer specifications.&lt;br /&gt;
&lt;br /&gt;
==Protocols==&lt;br /&gt;
LPD (Line Printer Daemon) and IPP (Internet Printing Protocol) are printer protocols defined by IETF. LPD is described by RFC 1179 (not as a standard): it uses service port 515. IPP is defined by RFC 8011 and RFC 3510: it uses service port 631. Access control and security features are available on IPP that aren't on LPD. RFC 2569 is a memo on mapping between LPD and IPP.&lt;br /&gt;
&lt;br /&gt;
pdl-datastream on service port 9100 is for proprietary printers and proprietary local network printer servers. This is often used by JetDirect products.&lt;br /&gt;
&lt;br /&gt;
Printers can also use SMB (over Samba) as a protocol.&lt;br /&gt;
&lt;br /&gt;
==Comparison of print architectures==&lt;br /&gt;
===LPR, LPRng===&lt;br /&gt;
LPR is the default with FreeBSD. LPRng is a more advanced implementation of LPR. These two programs use and can alter {{man|printcap|5}}. LPR and LPRng both use the LPD protocol over service port 515.&lt;br /&gt;
&lt;br /&gt;
LPR and LPRng require manual set up through custom shell scripts of filters to convert plain text or other types of data, even between PostScript outputs to PostScript able printers. {{port|print/a2ps}} can simplify this task of converting ASCII to PostScript output. LPR's intended use was for text printing.&lt;br /&gt;
&lt;br /&gt;
LPRng (LPR Next Generation) is an advanced replacement for LPR. It is under the GPL and Artistic licenses. IFHP determines the format and does conversions, including by use of Ghostscript. LPRng takes care of format conversions through its filters, and of PostScript output through Ghostscript. LPRng was designed to be more secure than LPR. LPRng is found at {{port|sysutils/LPRng}}. It uses {{file|printcap}}, {{file|lpd.conf}}, and {{file|lpd.perms}} for configuration.&lt;br /&gt;
&lt;br /&gt;
lprng in services ({{file|rc.conf}}) requires that lpr and cupsd be disabled. LPR and LPRng daemons can be enabled or disabled through {{file|rc.conf}}. LPR compilation in the world build can be disabled through {{man|src.conf|5}}&lt;br /&gt;
&lt;br /&gt;
===CUPS===&lt;br /&gt;
The CUPS framework supports more printers than LPR and LPRng, and it is more advanced. PCL printers are more readily supported under CUPS. CUPS can be administered on the command line, through the web interface, and through a GUI.&lt;br /&gt;
&lt;br /&gt;
The default protocol that CUPS uses is IPP. In addition to IPP, CUPS also has protocol support for: LPD, SMB (Server Message Block) and pdl-datastream. CUPS originally started out over LPD. Samba is only needed for printing on LANs that include Windows computers.&lt;br /&gt;
&lt;br /&gt;
CUPS has its own implementation of LPR in under {{file|/usr/local/}}, as opposed to LPR's default location under {{file|/usr/}}. The LPR files that CUPS uses can be set in {{file|/usr/local/etc/cups/printcap}}. On the command line, CUPS uses BSD LPR style commands.&lt;br /&gt;
&lt;br /&gt;
The command cupsctl can adjust settings in cupsd.conf.&lt;br /&gt;
&lt;br /&gt;
CUPS supports encryption for administration and printing, which wasn't available in older versions. Kerberos will be replaced by OAuth and PAM for access control and security by CUPS 3.0.&lt;br /&gt;
&lt;br /&gt;
CUPS is compatible for use with Zeroconf.&lt;br /&gt;
&lt;br /&gt;
This print architecture uses Apache License 2.0. Legacy versions of CUPS were under GPL.&lt;br /&gt;
&lt;br /&gt;
===More===&lt;br /&gt;
CUPS and LPRng software conflicts so cannot be installed together. LPR and CUPS can coexist, but only one service is needed.&lt;br /&gt;
&lt;br /&gt;
Some programs, such as forks of OpenOffice (such as LibreOffice or Apache OpenOffice) provide their own drivers that output to LPR in place of already configured filters like Ghostscript. Their printing has to be set up independently from an already working CUPS or LPR print configuration.&lt;br /&gt;
&lt;br /&gt;
==Modern CUPS specifications==&lt;br /&gt;
As of future CUPS version 3.0, legacy drivers and PDL's will no longer be used. CUPS 2.3 already supports modern CUPS replacements for printer drivers.&lt;br /&gt;
&lt;br /&gt;
PWG Raster ('image/pwg-raster'), JPEG ('image/jpeg'), and PDF ('application/pdf') are modern formats directly supported by newer printers. PWG Raster and JPEG formats are supported by most new printers since 2010.&lt;br /&gt;
&lt;br /&gt;
There are also IPP-Everywhere compliant printers.&lt;br /&gt;
&lt;br /&gt;
Airprint is an alternate technology for Apple MacOS and i-products. It uses Apple Raster ('image/urf').&lt;br /&gt;
&lt;br /&gt;
'text/plain' is supported by simple printers. 'application/octet-stream' tells capable printers which format to use. For printers without this capability, the format has to be specified through configuration or through print commands.&lt;br /&gt;
&lt;br /&gt;
The WiFi alliance has a printer specification.&lt;br /&gt;
&lt;br /&gt;
==Legacy specifications: filters/drivers/PDL's==&lt;br /&gt;
Postscript (PS) and PCL (Printer Command Language) are printer languages known as Page Description Languages (PDL's) supported by the majority of printers for interpreting and printing jobs. These two PDLs are alternate models developed by Adobe and HP respectively. PJL is another type of printer language for controlling features. These legacy specifications work up to CUPS version 2.4. Postscript is defined by 'application/postscript', and PCL is defined by 'application/vnd.hp-pcl'.&lt;br /&gt;
&lt;br /&gt;
Many programs simply output data as Postscript. A filter is often needed for different types of output formats (separate from the printer language), even when the printer understands the same printer language as a program's output (such as Postscript). Output formats that need to be converted to a printer language include: dvi, Fortran and Raster.&lt;br /&gt;
&lt;br /&gt;
Filters are useful for different types of output. Carriage returns are different for command line output from Bourne shells, MS DOS, text files and Postscript output. Without the right filters, printers can stair-step or text can otherwise be misaligned.&lt;br /&gt;
&lt;br /&gt;
Printer packaging lists its specs, often: supported PDLs, fonts and graphics formats.&lt;br /&gt;
&lt;br /&gt;
===PCL===&lt;br /&gt;
ASCII is a printer language which PCL is an extension of.&lt;br /&gt;
&lt;br /&gt;
===PostScript===&lt;br /&gt;
LPR in base, and CUPS from ports perform the same function of receiving PostScript output and sending it to PostScript capable printers. CUPS allows printers that use other PCL's to be used through PostScript via PPD (PostScript Printer Description) conversions.&lt;br /&gt;
&lt;br /&gt;
PostScript is the default for both CUPS and Apple. For the most common PDL's: PostScript is considered higher quality than PCL, so more preference is centered around it. There are also very high quality printers that don't use either of these two PDL's.&lt;br /&gt;
&lt;br /&gt;
PostScript printers cost more because of hardware and font license fees from Adobe. However, this company offers PostScript software drivers for free. (Opensource driver software is available as mentioned a few times.) HP computers that have M in the model for Macintosh are PostScript printers (one may want to confirm that the specifications say Postscript).&lt;br /&gt;
&lt;br /&gt;
Conversions for non-PostScript printers rely on PPD's, and filters.&lt;br /&gt;
&lt;br /&gt;
===Conversions===&lt;br /&gt;
Ghostscript is a substitution for PCL printers to work as if they were PostScript. Ghostscript, Foomatic and other printer suites act as filters on LPR. On CUPS, many of these filters plus Gutenprint are able to provide needed PPD's (Postscript Printer Descriptions) for varying printers. {{port|print/foomatic-filters}} may lack compatibility with CUPS, and it conflicts with a needed {{port|print/cups-filters}}.&lt;br /&gt;
&lt;br /&gt;
LPR is able to output to non-PostScript printers by using Ghostscript's {{cmd|gs}} as an input filter through printcap. Ghostscript offers a few conversion programs between Postscript and pdf files.&lt;br /&gt;
&lt;br /&gt;
Ghostscript (under AGPL) can convert PostScript outputs to printer languages which specific non-Postscript printers can interpret. In addition to PCL, Ghostscript makes ESC printers functional. LPRng includes Ghostscript for printer language conversion too. Ghostscript can be used with LPR, CUPS, or LPRng&lt;br /&gt;
&lt;br /&gt;
GhostViewer ({{port|print/gv}}) is a program for viewing Postscript output on the monitor.&lt;br /&gt;
&lt;br /&gt;
===ESC===&lt;br /&gt;
ESC/P (Epson's developed PDL) printers are used in consumer inkjet printers, as well as dot matrix, receipt, thermal, labeling and barcode printers.&lt;br /&gt;
&lt;br /&gt;
===GDI/WIN===&lt;br /&gt;
Win(dos) or GDI printers are generally incompatible with BSD's or Linux. Printers that let the software from the computer run them completely are referred to as dumb printers.&lt;br /&gt;
&lt;br /&gt;
==Components==&lt;br /&gt;
The spool holds printing jobs to be printed in order. Print jobs are held in the {{file|/var/spool/}} directory.&lt;br /&gt;
&lt;br /&gt;
==References/Further Reading==&lt;br /&gt;
* FreeBSD 6 Unleashed&lt;br /&gt;
* Network Administration with FreeBSD 7&lt;br /&gt;
* Building a Server with FreeBSD 7&lt;br /&gt;
* The Complete FreeBSD (2006)&lt;br /&gt;
* https://www.cups.org/&lt;br /&gt;
* http://lprng.com&lt;br /&gt;
* http://www.wonkity.com/~wblock/docs/html/lpdprinting.html&lt;br /&gt;
* https://docs.freebsd.org/en/books/handbook/printing/&lt;br /&gt;
* https://docs.freebsd.org/en/articles/cups/&lt;br /&gt;
* https://www.informit.com/articles/article.aspx?p=167786&lt;br /&gt;
* https://www.cups.org/doc/encryption.html&lt;br /&gt;
* https://www.cups.org/blog/2018-06-06-demystifying-cups-development.html&lt;br /&gt;
* https://ftp.pwg.org/pub/pwg/liaison/openprinting/presentations/cups-plenary-may-2021.pdf&lt;br /&gt;
(some references are out of date, but still have relevance)&lt;br /&gt;
&lt;br /&gt;
[[Category:New User Tips and FAQs]]&lt;br /&gt;
[[Category:Configuring FreeBSD]]&lt;br /&gt;
[[Category:FreeBSD for Workstations]]&lt;/div&gt;</summary>
		<author><name>Sidetone</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Printing,_about</id>
		<title>Printing, about</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Printing,_about"/>
				<updated>2021-06-21T16:35:39Z</updated>
		
		<summary type="html">&lt;p&gt;Sidetone: /* Modern CUPS specifications */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;About printing on FreeBSD: comparisons of printing protocols; about filters, Page Description Languages (PDL's) and printer specifications.&lt;br /&gt;
&lt;br /&gt;
==Protocols==&lt;br /&gt;
LPD (Line Printer Daemon) and IPP (Internet Printing Protocol) are printer protocols defined by IETF. LPD is described by RFC 1179 (not as a standard): it uses service port 515. IPP is defined by RFC 8011 and RFC 3510: it uses service port 631. Access control and security features are available on IPP that aren't on LPD. RFC 2569 is a memo on mapping between LPD and IPP.&lt;br /&gt;
&lt;br /&gt;
pdl-datastream on service port 9100 is for proprietary printers and proprietary local network printer servers. This is often used by JetDirect products.&lt;br /&gt;
&lt;br /&gt;
Printers can also use SMB (over Samba) as a protocol.&lt;br /&gt;
&lt;br /&gt;
==Comparison of print architectures==&lt;br /&gt;
===LPR, LPRng===&lt;br /&gt;
LPR is the default with FreeBSD. LPRng is a more advanced implementation of LPR. These two programs use and can alter {{man|printcap|5}}. LPR and LPRng both use the LPD protocol over service port 515.&lt;br /&gt;
&lt;br /&gt;
LPR and LPRng require manual set up through custom shell scripts of filters to convert plain text or other types of data, even between PostScript outputs to PostScript able printers. {{port|print/a2ps}} can simplify this task of converting ASCII to PostScript output. LPR's intended use was for text printing.&lt;br /&gt;
&lt;br /&gt;
LPRng (LPR Next Generation) is an advanced replacement for LPR. It is under the GPL and Artistic licenses. IFHP determines the format and does conversions, including by use of Ghostscript. LPRng takes care of format conversions through its filters, and of PostScript output through Ghostscript. LPRng was designed to be more secure than LPR. LPRng is found at {{port|sysutils/LPRng}}. It uses {{file|printcap}}, {{file|lpd.conf}}, and {{file|lpd.perms}} for configuration.&lt;br /&gt;
&lt;br /&gt;
lprng in services ({{file|rc.conf}}) requires that lpr and cupsd be disabled. LPR and LPRng daemons can be enabled or disabled through {{file|rc.conf}}. LPR compilation in the world build can be disabled through {{man|src.conf|5}}&lt;br /&gt;
&lt;br /&gt;
===CUPS===&lt;br /&gt;
The CUPS framework supports more printers than LPR and LPRng, and it is more advanced. PCL printers are more readily supported under CUPS. CUPS can be administered on the command line, through the web interface, and through a GUI.&lt;br /&gt;
&lt;br /&gt;
The default protocol that CUPS uses is IPP. In addition to IPP, CUPS also has protocol support for: LPD, SMB (Server Message Block) and pdl-datastream. CUPS originally started out over LPD. Samba is only needed for printing on LANs that include Windows computers.&lt;br /&gt;
&lt;br /&gt;
CUPS has its own implementation of LPR in under {{file|/usr/local/}}, as opposed to LPR's default location under {{file|/usr/}}. The LPR files that CUPS uses can be set in {{file|/usr/local/etc/cups/printcap}}. On the command line, CUPS uses BSD LPR style commands.&lt;br /&gt;
&lt;br /&gt;
The command cupsctl can adjust settings in cupsd.conf.&lt;br /&gt;
&lt;br /&gt;
CUPS supports encryption for administration and printing, which wasn't available in older versions. Kerberos will be replaced by OAuth and PAM for access control and security by CUPS 3.0.&lt;br /&gt;
&lt;br /&gt;
CUPS is compatible for use with Zeroconf.&lt;br /&gt;
&lt;br /&gt;
This print architecture uses Apache License 2.0. Legacy versions of CUPS were under GPL.&lt;br /&gt;
&lt;br /&gt;
===More===&lt;br /&gt;
CUPS and LPRng software conflicts so cannot be installed together. LPR and CUPS can coexist, but only one service is needed.&lt;br /&gt;
&lt;br /&gt;
Some programs, such as forks of OpenOffice (such as LibreOffice or Apache OpenOffice) provide their own drivers that output to LPR in place of already configured filters like Ghostscript. Their printing has to be set up independently from an already working CUPS or LPR print configuration.&lt;br /&gt;
&lt;br /&gt;
==Modern CUPS specifications==&lt;br /&gt;
As of future CUPS version 3.0, legacy drivers and PDL's will no longer be used. CUPS 2.3 already supports modern CUPS replacements for printer drivers.&lt;br /&gt;
&lt;br /&gt;
PWG Raster ('image/pwg-raster'), JPEG ('image/jpeg'), and PDF ('application/pdf') are modern formats directly supported by newer printers. PWG Raster and JPEG formats are supported by most new printers since 2010.&lt;br /&gt;
&lt;br /&gt;
There are also IPP-Everywhere compliant printers.&lt;br /&gt;
&lt;br /&gt;
Airprint is an alternate technology for Apple MacOS and i-products. It uses Apple Raster ('image/urf').&lt;br /&gt;
&lt;br /&gt;
'text/plain' is supported by simple printers. 'application/octet-stream' tells capable printers which format to use. For printers without this capability, the format has to be specified through configuration or through print commands.&lt;br /&gt;
&lt;br /&gt;
The WiFi alliance has a printer specification.&lt;br /&gt;
&lt;br /&gt;
==Legacy specifications: filters/drivers/PDL's==&lt;br /&gt;
Postscript (PS) and PCL (Printer Command Language) are printer languages known as Page Description Languages (PDL's) supported by the majority of printers for interpreting and printing jobs. These two PDLs are alternate models developed by Adobe and HP respectively. PJL is another type of printer language for controlling features. These legacy specifications work up to CUPS version 2.4. Postscript is defined by 'application/postscript', and PCL is defined by 'application/vnd.hp-pcl'.&lt;br /&gt;
&lt;br /&gt;
Many programs simply output data as Postscript. A filter is often needed for different types of output formats (separate from the printer language), even when the printer understands the same printer language as a program's output (such as Postscript). Output formats that need to be converted to a printer language include: dvi, Fortran and Raster.&lt;br /&gt;
&lt;br /&gt;
Filters are useful for different types of output. Carriage returns are different for command line output from Bourne shells, MS DOS, text files and Postscript output. Without the right filters, printers can stair-step or text can otherwise be misaligned.&lt;br /&gt;
&lt;br /&gt;
Printer packaging lists its specs, often: supported PDLs, fonts and graphics formats.&lt;br /&gt;
&lt;br /&gt;
===PCL===&lt;br /&gt;
ASCII is a printer language which PCL is an extension of.&lt;br /&gt;
&lt;br /&gt;
===PostScript===&lt;br /&gt;
LPR in base, and CUPS from ports perform the same function of receiving PostScript output and sending it to PostScript capable printers. CUPS allows printers that use other PCL's to be used through PostScript via PPD (PostScript Printer Description) conversions.&lt;br /&gt;
&lt;br /&gt;
PostScript is the default for both CUPS and Apple. For the most common PDL's: PostScript is considered higher quality than PCL, so more preference is centered around it. There are also very high quality printers that don't use either of these two PDL's.&lt;br /&gt;
&lt;br /&gt;
PostScript printers cost more because of hardware and font license fees from Adobe. However, this company offers PostScript software drivers for free. (Opensource driver software is available as mentioned a few times.) HP computers that have M in the model for Macintosh are PostScript printers (one may want to confirm that the specifications say Postscript).&lt;br /&gt;
&lt;br /&gt;
Conversions for non-PostScript printers rely on PPD's, and filters.&lt;br /&gt;
&lt;br /&gt;
===Conversions===&lt;br /&gt;
Ghostscript is a substitution for PCL printers to work as if they were PostScript. Ghostscript, Foomatic and other printer suites act as filters on LPR. On CUPS, many of these filters plus Gutenprint are able to provide needed PPD's (Postscript Printer Descriptions) for varying printers. {{port|print/foomatic-filters}} may lack compatibility with CUPS, and it conflicts with a needed {{port|print/cups-filters}}.&lt;br /&gt;
&lt;br /&gt;
LPR is able to output to non-PostScript printers by using Ghostscript's {{cmd|gs}} as an input filter through printcap. Ghostscript offers a few conversion programs between Postscript and pdf files.&lt;br /&gt;
&lt;br /&gt;
Ghostscript (under AGPL) can convert PostScript outputs to printer languages which specific non-Postscript printers can interpret. In addition to PCL, Ghostscript makes ESC printers functional. LPRng includes Ghostscript for printer language conversion too. Ghostscript can be used with LPR, CUPS, or LPRng&lt;br /&gt;
&lt;br /&gt;
GhostViewer ({{port|print/gv}}) is a program for viewing Postscript output on the monitor.&lt;br /&gt;
&lt;br /&gt;
===ESC===&lt;br /&gt;
ESC/P (Epson's developed PDL) printers are used in consumer inkjet printers, as well as dot matrix, receipt, thermal, labeling and barcode printers.&lt;br /&gt;
&lt;br /&gt;
===GDI/WIN===&lt;br /&gt;
Win(dos) or GDI printers are generally incompatible with BSD's or Linux. Printers that let the software from the computer run them completely are referred to as dumb printers.&lt;br /&gt;
&lt;br /&gt;
==Components==&lt;br /&gt;
The spool holds printing jobs to be printed in order. Print jobs are held in the {{file|/var/spool/}} directory.&lt;br /&gt;
&lt;br /&gt;
==References/Further Reading==&lt;br /&gt;
* FreeBSD 6 Unleashed&lt;br /&gt;
* Network Administration with FreeBSD 7&lt;br /&gt;
* Building a Server with FreeBSD 7&lt;br /&gt;
* The Complete FreeBSD (2006)&lt;br /&gt;
* https://www.cups.org/&lt;br /&gt;
* http://lprng.com&lt;br /&gt;
* http://www.wonkity.com/~wblock/docs/html/lpdprinting.html&lt;br /&gt;
* https://docs.freebsd.org/en/books/handbook/printing/&lt;br /&gt;
* https://docs.freebsd.org/en/articles/cups/&lt;br /&gt;
* https://www.informit.com/articles/article.aspx?p=167786&lt;br /&gt;
(some references are out of date, but still have relevance)&lt;br /&gt;
&lt;br /&gt;
[[Category:New User Tips and FAQs]]&lt;br /&gt;
[[Category:Configuring FreeBSD]]&lt;br /&gt;
[[Category:FreeBSD for Workstations]]&lt;/div&gt;</summary>
		<author><name>Sidetone</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Printing,_about</id>
		<title>Printing, about</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Printing,_about"/>
				<updated>2021-06-21T16:35:23Z</updated>
		
		<summary type="html">&lt;p&gt;Sidetone: /* Modern CUPS specifications */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;About printing on FreeBSD: comparisons of printing protocols; about filters, Page Description Languages (PDL's) and printer specifications.&lt;br /&gt;
&lt;br /&gt;
==Protocols==&lt;br /&gt;
LPD (Line Printer Daemon) and IPP (Internet Printing Protocol) are printer protocols defined by IETF. LPD is described by RFC 1179 (not as a standard): it uses service port 515. IPP is defined by RFC 8011 and RFC 3510: it uses service port 631. Access control and security features are available on IPP that aren't on LPD. RFC 2569 is a memo on mapping between LPD and IPP.&lt;br /&gt;
&lt;br /&gt;
pdl-datastream on service port 9100 is for proprietary printers and proprietary local network printer servers. This is often used by JetDirect products.&lt;br /&gt;
&lt;br /&gt;
Printers can also use SMB (over Samba) as a protocol.&lt;br /&gt;
&lt;br /&gt;
==Comparison of print architectures==&lt;br /&gt;
===LPR, LPRng===&lt;br /&gt;
LPR is the default with FreeBSD. LPRng is a more advanced implementation of LPR. These two programs use and can alter {{man|printcap|5}}. LPR and LPRng both use the LPD protocol over service port 515.&lt;br /&gt;
&lt;br /&gt;
LPR and LPRng require manual set up through custom shell scripts of filters to convert plain text or other types of data, even between PostScript outputs to PostScript able printers. {{port|print/a2ps}} can simplify this task of converting ASCII to PostScript output. LPR's intended use was for text printing.&lt;br /&gt;
&lt;br /&gt;
LPRng (LPR Next Generation) is an advanced replacement for LPR. It is under the GPL and Artistic licenses. IFHP determines the format and does conversions, including by use of Ghostscript. LPRng takes care of format conversions through its filters, and of PostScript output through Ghostscript. LPRng was designed to be more secure than LPR. LPRng is found at {{port|sysutils/LPRng}}. It uses {{file|printcap}}, {{file|lpd.conf}}, and {{file|lpd.perms}} for configuration.&lt;br /&gt;
&lt;br /&gt;
lprng in services ({{file|rc.conf}}) requires that lpr and cupsd be disabled. LPR and LPRng daemons can be enabled or disabled through {{file|rc.conf}}. LPR compilation in the world build can be disabled through {{man|src.conf|5}}&lt;br /&gt;
&lt;br /&gt;
===CUPS===&lt;br /&gt;
The CUPS framework supports more printers than LPR and LPRng, and it is more advanced. PCL printers are more readily supported under CUPS. CUPS can be administered on the command line, through the web interface, and through a GUI.&lt;br /&gt;
&lt;br /&gt;
The default protocol that CUPS uses is IPP. In addition to IPP, CUPS also has protocol support for: LPD, SMB (Server Message Block) and pdl-datastream. CUPS originally started out over LPD. Samba is only needed for printing on LANs that include Windows computers.&lt;br /&gt;
&lt;br /&gt;
CUPS has its own implementation of LPR in under {{file|/usr/local/}}, as opposed to LPR's default location under {{file|/usr/}}. The LPR files that CUPS uses can be set in {{file|/usr/local/etc/cups/printcap}}. On the command line, CUPS uses BSD LPR style commands.&lt;br /&gt;
&lt;br /&gt;
The command cupsctl can adjust settings in cupsd.conf.&lt;br /&gt;
&lt;br /&gt;
CUPS supports encryption for administration and printing, which wasn't available in older versions. Kerberos will be replaced by OAuth and PAM for access control and security by CUPS 3.0.&lt;br /&gt;
&lt;br /&gt;
CUPS is compatible for use with Zeroconf.&lt;br /&gt;
&lt;br /&gt;
This print architecture uses Apache License 2.0. Legacy versions of CUPS were under GPL.&lt;br /&gt;
&lt;br /&gt;
===More===&lt;br /&gt;
CUPS and LPRng software conflicts so cannot be installed together. LPR and CUPS can coexist, but only one service is needed.&lt;br /&gt;
&lt;br /&gt;
Some programs, such as forks of OpenOffice (such as LibreOffice or Apache OpenOffice) provide their own drivers that output to LPR in place of already configured filters like Ghostscript. Their printing has to be set up independently from an already working CUPS or LPR print configuration.&lt;br /&gt;
&lt;br /&gt;
==Modern CUPS specifications==&lt;br /&gt;
As of future CUPS version 3.0, legacy drivers and PDL's will no longer be used. CUPS 2.3 already supports modern CUPS replacements for printer drivers.&lt;br /&gt;
&lt;br /&gt;
PWG Raster ('image/pwg-raster'), JPEG ('image/jpeg'), and PDF ('application/pdf') are modern formats directly supported by printers. PWG Raster and JPEG formats are supported by most new printers since 2010.&lt;br /&gt;
&lt;br /&gt;
There are also IPP-Everywhere compliant printers.&lt;br /&gt;
&lt;br /&gt;
Airprint is an alternate technology for Apple MacOS and i-products. It uses Apple Raster ('image/urf').&lt;br /&gt;
&lt;br /&gt;
'text/plain' is supported by simple printers. 'application/octet-stream' tells capable printers which format to use. For printers without this capability, the format has to be specified through configuration or through print commands.&lt;br /&gt;
&lt;br /&gt;
The WiFi alliance has a printer specification.&lt;br /&gt;
&lt;br /&gt;
==Legacy specifications: filters/drivers/PDL's==&lt;br /&gt;
Postscript (PS) and PCL (Printer Command Language) are printer languages known as Page Description Languages (PDL's) supported by the majority of printers for interpreting and printing jobs. These two PDLs are alternate models developed by Adobe and HP respectively. PJL is another type of printer language for controlling features. These legacy specifications work up to CUPS version 2.4. Postscript is defined by 'application/postscript', and PCL is defined by 'application/vnd.hp-pcl'.&lt;br /&gt;
&lt;br /&gt;
Many programs simply output data as Postscript. A filter is often needed for different types of output formats (separate from the printer language), even when the printer understands the same printer language as a program's output (such as Postscript). Output formats that need to be converted to a printer language include: dvi, Fortran and Raster.&lt;br /&gt;
&lt;br /&gt;
Filters are useful for different types of output. Carriage returns are different for command line output from Bourne shells, MS DOS, text files and Postscript output. Without the right filters, printers can stair-step or text can otherwise be misaligned.&lt;br /&gt;
&lt;br /&gt;
Printer packaging lists its specs, often: supported PDLs, fonts and graphics formats.&lt;br /&gt;
&lt;br /&gt;
===PCL===&lt;br /&gt;
ASCII is a printer language which PCL is an extension of.&lt;br /&gt;
&lt;br /&gt;
===PostScript===&lt;br /&gt;
LPR in base, and CUPS from ports perform the same function of receiving PostScript output and sending it to PostScript capable printers. CUPS allows printers that use other PCL's to be used through PostScript via PPD (PostScript Printer Description) conversions.&lt;br /&gt;
&lt;br /&gt;
PostScript is the default for both CUPS and Apple. For the most common PDL's: PostScript is considered higher quality than PCL, so more preference is centered around it. There are also very high quality printers that don't use either of these two PDL's.&lt;br /&gt;
&lt;br /&gt;
PostScript printers cost more because of hardware and font license fees from Adobe. However, this company offers PostScript software drivers for free. (Opensource driver software is available as mentioned a few times.) HP computers that have M in the model for Macintosh are PostScript printers (one may want to confirm that the specifications say Postscript).&lt;br /&gt;
&lt;br /&gt;
Conversions for non-PostScript printers rely on PPD's, and filters.&lt;br /&gt;
&lt;br /&gt;
===Conversions===&lt;br /&gt;
Ghostscript is a substitution for PCL printers to work as if they were PostScript. Ghostscript, Foomatic and other printer suites act as filters on LPR. On CUPS, many of these filters plus Gutenprint are able to provide needed PPD's (Postscript Printer Descriptions) for varying printers. {{port|print/foomatic-filters}} may lack compatibility with CUPS, and it conflicts with a needed {{port|print/cups-filters}}.&lt;br /&gt;
&lt;br /&gt;
LPR is able to output to non-PostScript printers by using Ghostscript's {{cmd|gs}} as an input filter through printcap. Ghostscript offers a few conversion programs between Postscript and pdf files.&lt;br /&gt;
&lt;br /&gt;
Ghostscript (under AGPL) can convert PostScript outputs to printer languages which specific non-Postscript printers can interpret. In addition to PCL, Ghostscript makes ESC printers functional. LPRng includes Ghostscript for printer language conversion too. Ghostscript can be used with LPR, CUPS, or LPRng&lt;br /&gt;
&lt;br /&gt;
GhostViewer ({{port|print/gv}}) is a program for viewing Postscript output on the monitor.&lt;br /&gt;
&lt;br /&gt;
===ESC===&lt;br /&gt;
ESC/P (Epson's developed PDL) printers are used in consumer inkjet printers, as well as dot matrix, receipt, thermal, labeling and barcode printers.&lt;br /&gt;
&lt;br /&gt;
===GDI/WIN===&lt;br /&gt;
Win(dos) or GDI printers are generally incompatible with BSD's or Linux. Printers that let the software from the computer run them completely are referred to as dumb printers.&lt;br /&gt;
&lt;br /&gt;
==Components==&lt;br /&gt;
The spool holds printing jobs to be printed in order. Print jobs are held in the {{file|/var/spool/}} directory.&lt;br /&gt;
&lt;br /&gt;
==References/Further Reading==&lt;br /&gt;
* FreeBSD 6 Unleashed&lt;br /&gt;
* Network Administration with FreeBSD 7&lt;br /&gt;
* Building a Server with FreeBSD 7&lt;br /&gt;
* The Complete FreeBSD (2006)&lt;br /&gt;
* https://www.cups.org/&lt;br /&gt;
* http://lprng.com&lt;br /&gt;
* http://www.wonkity.com/~wblock/docs/html/lpdprinting.html&lt;br /&gt;
* https://docs.freebsd.org/en/books/handbook/printing/&lt;br /&gt;
* https://docs.freebsd.org/en/articles/cups/&lt;br /&gt;
* https://www.informit.com/articles/article.aspx?p=167786&lt;br /&gt;
(some references are out of date, but still have relevance)&lt;br /&gt;
&lt;br /&gt;
[[Category:New User Tips and FAQs]]&lt;br /&gt;
[[Category:Configuring FreeBSD]]&lt;br /&gt;
[[Category:FreeBSD for Workstations]]&lt;/div&gt;</summary>
		<author><name>Sidetone</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Printing,_about</id>
		<title>Printing, about</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Printing,_about"/>
				<updated>2021-06-21T16:33:00Z</updated>
		
		<summary type="html">&lt;p&gt;Sidetone: /* Modern CUPS Specifications */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;About printing on FreeBSD: comparisons of printing protocols; about filters, Page Description Languages (PDL's) and printer specifications.&lt;br /&gt;
&lt;br /&gt;
==Protocols==&lt;br /&gt;
LPD (Line Printer Daemon) and IPP (Internet Printing Protocol) are printer protocols defined by IETF. LPD is described by RFC 1179 (not as a standard): it uses service port 515. IPP is defined by RFC 8011 and RFC 3510: it uses service port 631. Access control and security features are available on IPP that aren't on LPD. RFC 2569 is a memo on mapping between LPD and IPP.&lt;br /&gt;
&lt;br /&gt;
pdl-datastream on service port 9100 is for proprietary printers and proprietary local network printer servers. This is often used by JetDirect products.&lt;br /&gt;
&lt;br /&gt;
Printers can also use SMB (over Samba) as a protocol.&lt;br /&gt;
&lt;br /&gt;
==Comparison of print architectures==&lt;br /&gt;
===LPR, LPRng===&lt;br /&gt;
LPR is the default with FreeBSD. LPRng is a more advanced implementation of LPR. These two programs use and can alter {{man|printcap|5}}. LPR and LPRng both use the LPD protocol over service port 515.&lt;br /&gt;
&lt;br /&gt;
LPR and LPRng require manual set up through custom shell scripts of filters to convert plain text or other types of data, even between PostScript outputs to PostScript able printers. {{port|print/a2ps}} can simplify this task of converting ASCII to PostScript output. LPR's intended use was for text printing.&lt;br /&gt;
&lt;br /&gt;
LPRng (LPR Next Generation) is an advanced replacement for LPR. It is under the GPL and Artistic licenses. IFHP determines the format and does conversions, including by use of Ghostscript. LPRng takes care of format conversions through its filters, and of PostScript output through Ghostscript. LPRng was designed to be more secure than LPR. LPRng is found at {{port|sysutils/LPRng}}. It uses {{file|printcap}}, {{file|lpd.conf}}, and {{file|lpd.perms}} for configuration.&lt;br /&gt;
&lt;br /&gt;
lprng in services ({{file|rc.conf}}) requires that lpr and cupsd be disabled. LPR and LPRng daemons can be enabled or disabled through {{file|rc.conf}}. LPR compilation in the world build can be disabled through {{man|src.conf|5}}&lt;br /&gt;
&lt;br /&gt;
===CUPS===&lt;br /&gt;
The CUPS framework supports more printers than LPR and LPRng, and it is more advanced. PCL printers are more readily supported under CUPS. CUPS can be administered on the command line, through the web interface, and through a GUI.&lt;br /&gt;
&lt;br /&gt;
The default protocol that CUPS uses is IPP. In addition to IPP, CUPS also has protocol support for: LPD, SMB (Server Message Block) and pdl-datastream. CUPS originally started out over LPD. Samba is only needed for printing on LANs that include Windows computers.&lt;br /&gt;
&lt;br /&gt;
CUPS has its own implementation of LPR in under {{file|/usr/local/}}, as opposed to LPR's default location under {{file|/usr/}}. The LPR files that CUPS uses can be set in {{file|/usr/local/etc/cups/printcap}}. On the command line, CUPS uses BSD LPR style commands.&lt;br /&gt;
&lt;br /&gt;
The command cupsctl can adjust settings in cupsd.conf.&lt;br /&gt;
&lt;br /&gt;
CUPS supports encryption for administration and printing, which wasn't available in older versions. Kerberos will be replaced by OAuth and PAM for access control and security by CUPS 3.0.&lt;br /&gt;
&lt;br /&gt;
CUPS is compatible for use with Zeroconf.&lt;br /&gt;
&lt;br /&gt;
This print architecture uses Apache License 2.0. Legacy versions of CUPS were under GPL.&lt;br /&gt;
&lt;br /&gt;
===More===&lt;br /&gt;
CUPS and LPRng software conflicts so cannot be installed together. LPR and CUPS can coexist, but only one service is needed.&lt;br /&gt;
&lt;br /&gt;
Some programs, such as forks of OpenOffice (such as LibreOffice or Apache OpenOffice) provide their own drivers that output to LPR in place of already configured filters like Ghostscript. Their printing has to be set up independently from an already working CUPS or LPR print configuration.&lt;br /&gt;
&lt;br /&gt;
==Modern CUPS specifications==&lt;br /&gt;
As of future CUPS version 3.0, legacy drivers and PDL's will no longer be used. CUPS 2.3 already supports modern CUPS replacements for printer drivers.&lt;br /&gt;
&lt;br /&gt;
PWG Raster ('image/pwg-raster'), JPEG ('image/jpeg'), and PDF ('application/pdf') are modern formats. PWG Raster and JPEG formats are supported by most new printers since 2010.&lt;br /&gt;
&lt;br /&gt;
There are also IPP-Everywhere compliant printers.&lt;br /&gt;
&lt;br /&gt;
Airprint is an alternate technology for Apple MacOS and i-products. It uses Apple Raster ('image/urf').&lt;br /&gt;
&lt;br /&gt;
'text/plain' is supported by simple printers. 'application/octet-stream' tells capable printers which format to use. For printers without this capability, the format has to be specified through configuration or through print commands.&lt;br /&gt;
&lt;br /&gt;
The WiFi alliance has a printer specification.&lt;br /&gt;
&lt;br /&gt;
==Legacy specifications: filters/drivers/PDL's==&lt;br /&gt;
Postscript (PS) and PCL (Printer Command Language) are printer languages known as Page Description Languages (PDL's) supported by the majority of printers for interpreting and printing jobs. These two PDLs are alternate models developed by Adobe and HP respectively. PJL is another type of printer language for controlling features. These legacy specifications work up to CUPS version 2.4. Postscript is defined by 'application/postscript', and PCL is defined by 'application/vnd.hp-pcl'.&lt;br /&gt;
&lt;br /&gt;
Many programs simply output data as Postscript. A filter is often needed for different types of output formats (separate from the printer language), even when the printer understands the same printer language as a program's output (such as Postscript). Output formats that need to be converted to a printer language include: dvi, Fortran and Raster.&lt;br /&gt;
&lt;br /&gt;
Filters are useful for different types of output. Carriage returns are different for command line output from Bourne shells, MS DOS, text files and Postscript output. Without the right filters, printers can stair-step or text can otherwise be misaligned.&lt;br /&gt;
&lt;br /&gt;
Printer packaging lists its specs, often: supported PDLs, fonts and graphics formats.&lt;br /&gt;
&lt;br /&gt;
===PCL===&lt;br /&gt;
ASCII is a printer language which PCL is an extension of.&lt;br /&gt;
&lt;br /&gt;
===PostScript===&lt;br /&gt;
LPR in base, and CUPS from ports perform the same function of receiving PostScript output and sending it to PostScript capable printers. CUPS allows printers that use other PCL's to be used through PostScript via PPD (PostScript Printer Description) conversions.&lt;br /&gt;
&lt;br /&gt;
PostScript is the default for both CUPS and Apple. For the most common PDL's: PostScript is considered higher quality than PCL, so more preference is centered around it. There are also very high quality printers that don't use either of these two PDL's.&lt;br /&gt;
&lt;br /&gt;
PostScript printers cost more because of hardware and font license fees from Adobe. However, this company offers PostScript software drivers for free. (Opensource driver software is available as mentioned a few times.) HP computers that have M in the model for Macintosh are PostScript printers (one may want to confirm that the specifications say Postscript).&lt;br /&gt;
&lt;br /&gt;
Conversions for non-PostScript printers rely on PPD's, and filters.&lt;br /&gt;
&lt;br /&gt;
===Conversions===&lt;br /&gt;
Ghostscript is a substitution for PCL printers to work as if they were PostScript. Ghostscript, Foomatic and other printer suites act as filters on LPR. On CUPS, many of these filters plus Gutenprint are able to provide needed PPD's (Postscript Printer Descriptions) for varying printers. {{port|print/foomatic-filters}} may lack compatibility with CUPS, and it conflicts with a needed {{port|print/cups-filters}}.&lt;br /&gt;
&lt;br /&gt;
LPR is able to output to non-PostScript printers by using Ghostscript's {{cmd|gs}} as an input filter through printcap. Ghostscript offers a few conversion programs between Postscript and pdf files.&lt;br /&gt;
&lt;br /&gt;
Ghostscript (under AGPL) can convert PostScript outputs to printer languages which specific non-Postscript printers can interpret. In addition to PCL, Ghostscript makes ESC printers functional. LPRng includes Ghostscript for printer language conversion too. Ghostscript can be used with LPR, CUPS, or LPRng&lt;br /&gt;
&lt;br /&gt;
GhostViewer ({{port|print/gv}}) is a program for viewing Postscript output on the monitor.&lt;br /&gt;
&lt;br /&gt;
===ESC===&lt;br /&gt;
ESC/P (Epson's developed PDL) printers are used in consumer inkjet printers, as well as dot matrix, receipt, thermal, labeling and barcode printers.&lt;br /&gt;
&lt;br /&gt;
===GDI/WIN===&lt;br /&gt;
Win(dos) or GDI printers are generally incompatible with BSD's or Linux. Printers that let the software from the computer run them completely are referred to as dumb printers.&lt;br /&gt;
&lt;br /&gt;
==Components==&lt;br /&gt;
The spool holds printing jobs to be printed in order. Print jobs are held in the {{file|/var/spool/}} directory.&lt;br /&gt;
&lt;br /&gt;
==References/Further Reading==&lt;br /&gt;
* FreeBSD 6 Unleashed&lt;br /&gt;
* Network Administration with FreeBSD 7&lt;br /&gt;
* Building a Server with FreeBSD 7&lt;br /&gt;
* The Complete FreeBSD (2006)&lt;br /&gt;
* https://www.cups.org/&lt;br /&gt;
* http://lprng.com&lt;br /&gt;
* http://www.wonkity.com/~wblock/docs/html/lpdprinting.html&lt;br /&gt;
* https://docs.freebsd.org/en/books/handbook/printing/&lt;br /&gt;
* https://docs.freebsd.org/en/articles/cups/&lt;br /&gt;
* https://www.informit.com/articles/article.aspx?p=167786&lt;br /&gt;
(some references are out of date, but still have relevance)&lt;br /&gt;
&lt;br /&gt;
[[Category:New User Tips and FAQs]]&lt;br /&gt;
[[Category:Configuring FreeBSD]]&lt;br /&gt;
[[Category:FreeBSD for Workstations]]&lt;/div&gt;</summary>
		<author><name>Sidetone</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Printing,_about</id>
		<title>Printing, about</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Printing,_about"/>
				<updated>2021-06-21T15:07:53Z</updated>
		
		<summary type="html">&lt;p&gt;Sidetone: /* Specifications, Filters, PDL's */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;About printing on FreeBSD: comparisons of printing protocols; about filters, Page Description Languages (PDL's) and printer specifications.&lt;br /&gt;
&lt;br /&gt;
==Protocols==&lt;br /&gt;
LPD (Line Printer Daemon) and IPP (Internet Printing Protocol) are printer protocols defined by IETF. LPD is described by RFC 1179 (not as a standard): it uses service port 515. IPP is defined by RFC 8011 and RFC 3510: it uses service port 631. Access control and security features are available on IPP that aren't on LPD. RFC 2569 is a memo on mapping between LPD and IPP.&lt;br /&gt;
&lt;br /&gt;
pdl-datastream on service port 9100 is for proprietary printers and proprietary local network printer servers. This is often used by JetDirect products.&lt;br /&gt;
&lt;br /&gt;
Printers can also use SMB (over Samba) as a protocol.&lt;br /&gt;
&lt;br /&gt;
==Comparison of print architectures==&lt;br /&gt;
===LPR, LPRng===&lt;br /&gt;
LPR is the default with FreeBSD. LPRng is a more advanced implementation of LPR. These two programs use and can alter {{man|printcap|5}}. LPR and LPRng both use the LPD protocol over service port 515.&lt;br /&gt;
&lt;br /&gt;
LPR and LPRng require manual set up through custom shell scripts of filters to convert plain text or other types of data, even between PostScript outputs to PostScript able printers. {{port|print/a2ps}} can simplify this task of converting ASCII to PostScript output. LPR's intended use was for text printing.&lt;br /&gt;
&lt;br /&gt;
LPRng (LPR Next Generation) is an advanced replacement for LPR. It is under the GPL and Artistic licenses. IFHP determines the format and does conversions, including by use of Ghostscript. LPRng takes care of format conversions through its filters, and of PostScript output through Ghostscript. LPRng was designed to be more secure than LPR. LPRng is found at {{port|sysutils/LPRng}}. It uses {{file|printcap}}, {{file|lpd.conf}}, and {{file|lpd.perms}} for configuration.&lt;br /&gt;
&lt;br /&gt;
lprng in services ({{file|rc.conf}}) requires that lpr and cupsd be disabled. LPR and LPRng daemons can be enabled or disabled through {{file|rc.conf}}. LPR compilation in the world build can be disabled through {{man|src.conf|5}}&lt;br /&gt;
&lt;br /&gt;
===CUPS===&lt;br /&gt;
The CUPS framework supports more printers than LPR and LPRng, and it is more advanced. PCL printers are more readily supported under CUPS. CUPS can be administered on the command line, through the web interface, and through a GUI.&lt;br /&gt;
&lt;br /&gt;
The default protocol that CUPS uses is IPP. In addition to IPP, CUPS also has protocol support for: LPD, SMB (Server Message Block) and pdl-datastream. CUPS originally started out over LPD. Samba is only needed for printing on LANs that include Windows computers.&lt;br /&gt;
&lt;br /&gt;
CUPS has its own implementation of LPR in under {{file|/usr/local/}}, as opposed to LPR's default location under {{file|/usr/}}. The LPR files that CUPS uses can be set in {{file|/usr/local/etc/cups/printcap}}. On the command line, CUPS uses BSD LPR style commands.&lt;br /&gt;
&lt;br /&gt;
The command cupsctl can adjust settings in cupsd.conf.&lt;br /&gt;
&lt;br /&gt;
CUPS supports encryption for administration and printing, which wasn't available in older versions. Kerberos will be replaced by OAuth and PAM for access control and security by CUPS 3.0.&lt;br /&gt;
&lt;br /&gt;
CUPS is compatible for use with Zeroconf.&lt;br /&gt;
&lt;br /&gt;
This print architecture uses Apache License 2.0. Legacy versions of CUPS were under GPL.&lt;br /&gt;
&lt;br /&gt;
===More===&lt;br /&gt;
CUPS and LPRng software conflicts so cannot be installed together. LPR and CUPS can coexist, but only one service is needed.&lt;br /&gt;
&lt;br /&gt;
Some programs, such as forks of OpenOffice (such as LibreOffice or Apache OpenOffice) provide their own drivers that output to LPR in place of already configured filters like Ghostscript. Their printing has to be set up independently from an already working CUPS or LPR print configuration.&lt;br /&gt;
&lt;br /&gt;
==Legacy Specifications: filters/drivers/PDL's==&lt;br /&gt;
Postscript (PS) and PCL (Printer Command Language) are printer languages known as Page Description Languages (PDL's) supported by the majority of printers for interpreting and printing jobs. These two PDLs are alternate models developed by Adobe and HP respectively. PJL is another type of printer language for controlling features.&lt;br /&gt;
&lt;br /&gt;
Many programs simply output data as Postscript. A filter is often needed for different types of output formats (separate from the printer language), even when the printer understands the same printer language as a program's output (such as Postscript). Output formats that need to be converted to a printer language include: dvi, Fortran and Raster.&lt;br /&gt;
&lt;br /&gt;
Filters are useful for different types of output. Carriage returns are different for command line output from Bourne shells, MS DOS, text files and Postscript output. Without the right filters, printers can stair-step or text can otherwise be misaligned.&lt;br /&gt;
&lt;br /&gt;
Printer packaging lists its specs, often: supported PDLs, fonts and graphics formats.&lt;br /&gt;
&lt;br /&gt;
===PCL===&lt;br /&gt;
ASCII is a printer language which PCL is an extension of.&lt;br /&gt;
&lt;br /&gt;
===PostScript===&lt;br /&gt;
LPR in base, and CUPS from ports perform the same function of receiving PostScript output and sending it to PostScript capable printers. CUPS allows printers that use other PCL's to be used through PostScript via PPD (PostScript Printer Description) conversions.&lt;br /&gt;
&lt;br /&gt;
PostScript is the default for both CUPS and Apple. For the most common PDL's: PostScript is considered higher quality than PCL, so more preference is centered around it. There are also very high quality printers that don't use either of these two PDL's.&lt;br /&gt;
&lt;br /&gt;
PostScript printers cost more because of hardware and font license fees from Adobe. However, this company offers PostScript software drivers for free. (Opensource driver software is available as mentioned a few times.) HP computers that have M in the model for Macintosh are PostScript printers (one may want to confirm that the specifications say Postscript).&lt;br /&gt;
&lt;br /&gt;
Conversions for non-PostScript printers rely on PPD's, and filters.&lt;br /&gt;
&lt;br /&gt;
===Conversions===&lt;br /&gt;
Ghostscript is a substitution for PCL printers to work as if they were PostScript. Ghostscript, Foomatic and other printer suites act as filters on LPR. On CUPS, many of these filters plus Gutenprint are able to provide needed PPD's (Postscript Printer Descriptions) for varying printers. {{port|print/foomatic-filters}} may lack compatibility with CUPS, and it conflicts with a needed {{port|print/cups-filters}}.&lt;br /&gt;
&lt;br /&gt;
LPR is able to output to non-PostScript printers by using Ghostscript's {{cmd|gs}} as an input filter through printcap. Ghostscript offers a few conversion programs between Postscript and pdf files.&lt;br /&gt;
&lt;br /&gt;
Ghostscript (under AGPL) can convert PostScript outputs to printer languages which specific non-Postscript printers can interpret. In addition to PCL, Ghostscript makes ESC printers functional. LPRng includes Ghostscript for printer language conversion too. Ghostscript can be used with LPR, CUPS, or LPRng&lt;br /&gt;
&lt;br /&gt;
GhostViewer ({{port|print/gv}}) is a program for viewing Postscript output on the monitor.&lt;br /&gt;
&lt;br /&gt;
===ESC===&lt;br /&gt;
ESC/P (Epson's developed PDL) printers are used in consumer inkjet printers, as well as dot matrix, receipt, thermal, labeling and barcode printers.&lt;br /&gt;
&lt;br /&gt;
===GDI/WIN===&lt;br /&gt;
Win(dos) or GDI printers are generally incompatible with BSD's or Linux. Printers that let the software from the computer run them completely are referred to as dumb printers.&lt;br /&gt;
&lt;br /&gt;
==Components==&lt;br /&gt;
The spool holds printing jobs to be printed in order. Print jobs are held in the {{file|/var/spool/}} directory.&lt;br /&gt;
&lt;br /&gt;
==References/Further Reading==&lt;br /&gt;
* FreeBSD 6 Unleashed&lt;br /&gt;
* Network Administration with FreeBSD 7&lt;br /&gt;
* Building a Server with FreeBSD 7&lt;br /&gt;
* The Complete FreeBSD (2006)&lt;br /&gt;
* https://www.cups.org/&lt;br /&gt;
* http://lprng.com&lt;br /&gt;
* http://www.wonkity.com/~wblock/docs/html/lpdprinting.html&lt;br /&gt;
* https://docs.freebsd.org/en/books/handbook/printing/&lt;br /&gt;
* https://docs.freebsd.org/en/articles/cups/&lt;br /&gt;
* https://www.informit.com/articles/article.aspx?p=167786&lt;br /&gt;
(some references are out of date, but still have relevance)&lt;br /&gt;
&lt;br /&gt;
[[Category:New User Tips and FAQs]]&lt;br /&gt;
[[Category:Configuring FreeBSD]]&lt;br /&gt;
[[Category:FreeBSD for Workstations]]&lt;/div&gt;</summary>
		<author><name>Sidetone</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Printing,_about</id>
		<title>Printing, about</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Printing,_about"/>
				<updated>2021-06-21T15:04:57Z</updated>
		
		<summary type="html">&lt;p&gt;Sidetone: /* CUPS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;About printing on FreeBSD: comparisons of printing protocols; about filters, Page Description Languages (PDL's) and printer specifications.&lt;br /&gt;
&lt;br /&gt;
==Protocols==&lt;br /&gt;
LPD (Line Printer Daemon) and IPP (Internet Printing Protocol) are printer protocols defined by IETF. LPD is described by RFC 1179 (not as a standard): it uses service port 515. IPP is defined by RFC 8011 and RFC 3510: it uses service port 631. Access control and security features are available on IPP that aren't on LPD. RFC 2569 is a memo on mapping between LPD and IPP.&lt;br /&gt;
&lt;br /&gt;
pdl-datastream on service port 9100 is for proprietary printers and proprietary local network printer servers. This is often used by JetDirect products.&lt;br /&gt;
&lt;br /&gt;
Printers can also use SMB (over Samba) as a protocol.&lt;br /&gt;
&lt;br /&gt;
==Comparison of print architectures==&lt;br /&gt;
===LPR, LPRng===&lt;br /&gt;
LPR is the default with FreeBSD. LPRng is a more advanced implementation of LPR. These two programs use and can alter {{man|printcap|5}}. LPR and LPRng both use the LPD protocol over service port 515.&lt;br /&gt;
&lt;br /&gt;
LPR and LPRng require manual set up through custom shell scripts of filters to convert plain text or other types of data, even between PostScript outputs to PostScript able printers. {{port|print/a2ps}} can simplify this task of converting ASCII to PostScript output. LPR's intended use was for text printing.&lt;br /&gt;
&lt;br /&gt;
LPRng (LPR Next Generation) is an advanced replacement for LPR. It is under the GPL and Artistic licenses. IFHP determines the format and does conversions, including by use of Ghostscript. LPRng takes care of format conversions through its filters, and of PostScript output through Ghostscript. LPRng was designed to be more secure than LPR. LPRng is found at {{port|sysutils/LPRng}}. It uses {{file|printcap}}, {{file|lpd.conf}}, and {{file|lpd.perms}} for configuration.&lt;br /&gt;
&lt;br /&gt;
lprng in services ({{file|rc.conf}}) requires that lpr and cupsd be disabled. LPR and LPRng daemons can be enabled or disabled through {{file|rc.conf}}. LPR compilation in the world build can be disabled through {{man|src.conf|5}}&lt;br /&gt;
&lt;br /&gt;
===CUPS===&lt;br /&gt;
The CUPS framework supports more printers than LPR and LPRng, and it is more advanced. PCL printers are more readily supported under CUPS. CUPS can be administered on the command line, through the web interface, and through a GUI.&lt;br /&gt;
&lt;br /&gt;
The default protocol that CUPS uses is IPP. In addition to IPP, CUPS also has protocol support for: LPD, SMB (Server Message Block) and pdl-datastream. CUPS originally started out over LPD. Samba is only needed for printing on LANs that include Windows computers.&lt;br /&gt;
&lt;br /&gt;
CUPS has its own implementation of LPR in under {{file|/usr/local/}}, as opposed to LPR's default location under {{file|/usr/}}. The LPR files that CUPS uses can be set in {{file|/usr/local/etc/cups/printcap}}. On the command line, CUPS uses BSD LPR style commands.&lt;br /&gt;
&lt;br /&gt;
The command cupsctl can adjust settings in cupsd.conf.&lt;br /&gt;
&lt;br /&gt;
CUPS supports encryption for administration and printing, which wasn't available in older versions. Kerberos will be replaced by OAuth and PAM for access control and security by CUPS 3.0.&lt;br /&gt;
&lt;br /&gt;
CUPS is compatible for use with Zeroconf.&lt;br /&gt;
&lt;br /&gt;
This print architecture uses Apache License 2.0. Legacy versions of CUPS were under GPL.&lt;br /&gt;
&lt;br /&gt;
===More===&lt;br /&gt;
CUPS and LPRng software conflicts so cannot be installed together. LPR and CUPS can coexist, but only one service is needed.&lt;br /&gt;
&lt;br /&gt;
Some programs, such as forks of OpenOffice (such as LibreOffice or Apache OpenOffice) provide their own drivers that output to LPR in place of already configured filters like Ghostscript. Their printing has to be set up independently from an already working CUPS or LPR print configuration.&lt;br /&gt;
&lt;br /&gt;
==Specifications, Filters, PDL's==&lt;br /&gt;
Postscript (PS) and PCL (Printer Command Language) are printer languages known as Page Description Languages (PDL's) supported by the majority of printers for interpreting and printing jobs. These two PDLs are alternate models developed by Adobe and HP respectively. PJL is another type of printer language for controlling features.&lt;br /&gt;
&lt;br /&gt;
Many programs simply output data as Postscript. A filter is often needed for different types of output formats (separate from the printer language), even when the printer understands the same printer language as a program's output (such as Postscript). Output formats that need to be converted to a printer language include: dvi, Fortran and Raster.&lt;br /&gt;
&lt;br /&gt;
Filters are useful for different types of output. Carriage returns are different for command line output from Bourne shells, MS DOS, text files and Postscript output. Without the right filters, printers can stair-step or text can otherwise be misaligned.&lt;br /&gt;
&lt;br /&gt;
Printer packaging lists its specs, often: supported PDLs, fonts and graphics formats.&lt;br /&gt;
&lt;br /&gt;
===PCL===&lt;br /&gt;
ASCII is a printer language which PCL is an extension of.&lt;br /&gt;
&lt;br /&gt;
===Postscript===&lt;br /&gt;
LPR in base, and CUPS from ports perform the same function of receiving Postscript output and sending it to Postscript capable printers. CUPS allows printers that use other PCL's to be used through Postscript via PPD (Postscript Printer Description) conversions.&lt;br /&gt;
&lt;br /&gt;
Postscript is the default for both CUPS and Apple. For the most common PDL's: Postscript is considered higher quality than PCL, so more preference is centered around it. There are also very high quality printers that don't use either of these two PDL's.&lt;br /&gt;
&lt;br /&gt;
Postscript printers cost more because of hardware and font license fees from Adobe. However, this company offers Postscript software drivers for free. (Opensource driver software is available as mentioned a few times.) HP computers that have M in the model for Macintosh are Postscript printers (one may want to confirm that the specifications say Postscript).&lt;br /&gt;
&lt;br /&gt;
Conversions for non-Postscript printers rely on PPD's, and filters.&lt;br /&gt;
&lt;br /&gt;
===Conversions===&lt;br /&gt;
Ghostscript is a substitution for PCL printers to work as if they were Postscript. Ghostscript, Foomatic and other printer suites act as filters on LPR. On CUPS, many of these filters plus Gutenprint are able to provide needed PPD's (Postscript Printer Descriptions) for varying printers. {{port|print/foomatic-filters}} may lack compatibility with CUPS, and it conflicts with a needed {{port|print/cups-filters}}.&lt;br /&gt;
&lt;br /&gt;
LPR is able to output to non-Postscript printers by using Ghostscript's {{cmd|gs}} as an input filter through printcap. Ghostscript offers a few conversion programs between Postscript and pdf files.&lt;br /&gt;
&lt;br /&gt;
Ghostscript (under AGPL) can convert Postscript outputs to printer languages which specific non-Postscript printers can interpret. In addition to PCL, Ghostscript makes ESC printers functional. LPRng includes Ghostscript for printer language conversion too. Ghostscript can be used with LPR, CUPS, or LPRng&lt;br /&gt;
&lt;br /&gt;
GhostViewer ({{port|print/gv}}) is a program for viewing Postscript output on the monitor.&lt;br /&gt;
&lt;br /&gt;
===ESC===&lt;br /&gt;
ESC/P (Epson's developed PDL) printers are used in consumer inkjet printers, as well as dot matrix, receipt, thermal, labeling and barcode printers.&lt;br /&gt;
&lt;br /&gt;
===GDI/WIN===&lt;br /&gt;
Win(dos) or GDI printers are generally incompatible with BSD's or Linux. Printers that let the software from the computer run them completely are referred to as dumb printers.&lt;br /&gt;
&lt;br /&gt;
==Components==&lt;br /&gt;
The spool holds printing jobs to be printed in order. Print jobs are held in the {{file|/var/spool/}} directory.&lt;br /&gt;
&lt;br /&gt;
==References/Further Reading==&lt;br /&gt;
* FreeBSD 6 Unleashed&lt;br /&gt;
* Network Administration with FreeBSD 7&lt;br /&gt;
* Building a Server with FreeBSD 7&lt;br /&gt;
* The Complete FreeBSD (2006)&lt;br /&gt;
* https://www.cups.org/&lt;br /&gt;
* http://lprng.com&lt;br /&gt;
* http://www.wonkity.com/~wblock/docs/html/lpdprinting.html&lt;br /&gt;
* https://docs.freebsd.org/en/books/handbook/printing/&lt;br /&gt;
* https://docs.freebsd.org/en/articles/cups/&lt;br /&gt;
* https://www.informit.com/articles/article.aspx?p=167786&lt;br /&gt;
(some references are out of date, but still have relevance)&lt;br /&gt;
&lt;br /&gt;
[[Category:New User Tips and FAQs]]&lt;br /&gt;
[[Category:Configuring FreeBSD]]&lt;br /&gt;
[[Category:FreeBSD for Workstations]]&lt;/div&gt;</summary>
		<author><name>Sidetone</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Printing,_about</id>
		<title>Printing, about</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Printing,_about"/>
				<updated>2021-06-21T14:57:10Z</updated>
		
		<summary type="html">&lt;p&gt;Sidetone: /* Comparison of: LPR, LPRng, CUPS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;About printing on FreeBSD: comparisons of printing protocols; about filters, Page Description Languages (PDL's) and printer specifications.&lt;br /&gt;
&lt;br /&gt;
==Protocols==&lt;br /&gt;
LPD (Line Printer Daemon) and IPP (Internet Printing Protocol) are printer protocols defined by IETF. LPD is described by RFC 1179 (not as a standard): it uses service port 515. IPP is defined by RFC 8011 and RFC 3510: it uses service port 631. Access control and security features are available on IPP that aren't on LPD. RFC 2569 is a memo on mapping between LPD and IPP.&lt;br /&gt;
&lt;br /&gt;
pdl-datastream on service port 9100 is for proprietary printers and proprietary local network printer servers. This is often used by JetDirect products.&lt;br /&gt;
&lt;br /&gt;
Printers can also use SMB (over Samba) as a protocol.&lt;br /&gt;
&lt;br /&gt;
==Comparison of print architectures==&lt;br /&gt;
===LPR, LPRng===&lt;br /&gt;
LPR is the default with FreeBSD. LPRng is a more advanced implementation of LPR. These two programs use and can alter {{man|printcap|5}}. LPR and LPRng both use the LPD protocol over service port 515.&lt;br /&gt;
&lt;br /&gt;
LPR and LPRng require manual set up through custom shell scripts of filters to convert plain text or other types of data, even between PostScript outputs to PostScript able printers. {{port|print/a2ps}} can simplify this task of converting ASCII to PostScript output. LPR's intended use was for text printing.&lt;br /&gt;
&lt;br /&gt;
LPRng (LPR Next Generation) is an advanced replacement for LPR. It is under the GPL and Artistic licenses. IFHP determines the format and does conversions, including by use of Ghostscript. LPRng takes care of format conversions through its filters, and of PostScript output through Ghostscript. LPRng was designed to be more secure than LPR. LPRng is found at {{port|sysutils/LPRng}}. It uses {{file|printcap}}, {{file|lpd.conf}}, and {{file|lpd.perms}} for configuration.&lt;br /&gt;
&lt;br /&gt;
lprng in services ({{file|rc.conf}}) requires that lpr and cupsd be disabled. LPR and LPRng daemons can be enabled or disabled through {{file|rc.conf}}. LPR compilation in the world build can be disabled through {{man|src.conf|5}}&lt;br /&gt;
&lt;br /&gt;
===CUPS===&lt;br /&gt;
The CUPS framework supports more printers than LPR and LPRng, and it is more advanced. PCL printers are more readily supported under CUPS. CUPS can be administered on the command line, through the web interface, and through a GUI.&lt;br /&gt;
&lt;br /&gt;
The default protocol that CUPS uses is IPP. In addition to IPP, CUPS also has protocol support for: LPD, SMB (Server Message Block) and pdl-datastream. CUPS originally started out over LPD. Samba is only needed for printing on LANs that include Windows computers.&lt;br /&gt;
&lt;br /&gt;
CUPS has its own implementation of LPR in under {{file|/usr/local/}}, as opposed to LPR's default location under {{file|/usr/}}. The LPR files that CUPS uses can be set in {{file|/usr/local/etc/cups/printcap}}. On the command line, CUPS uses BSD LPR style commands.&lt;br /&gt;
&lt;br /&gt;
The command cupsctl can adjust settings in cupsd.conf.&lt;br /&gt;
&lt;br /&gt;
This print architecture uses Apache License 2.0. Legacy versions of CUPS were under GPL.&lt;br /&gt;
&lt;br /&gt;
===More===&lt;br /&gt;
CUPS and LPRng software conflicts so cannot be installed together. LPR and CUPS can coexist, but only one service is needed.&lt;br /&gt;
&lt;br /&gt;
Some programs, such as forks of OpenOffice (such as LibreOffice or Apache OpenOffice) provide their own drivers that output to LPR in place of already configured filters like Ghostscript. Their printing has to be set up independently from an already working CUPS or LPR print configuration.&lt;br /&gt;
&lt;br /&gt;
==Specifications, Filters, PDL's==&lt;br /&gt;
Postscript (PS) and PCL (Printer Command Language) are printer languages known as Page Description Languages (PDL's) supported by the majority of printers for interpreting and printing jobs. These two PDLs are alternate models developed by Adobe and HP respectively. PJL is another type of printer language for controlling features.&lt;br /&gt;
&lt;br /&gt;
Many programs simply output data as Postscript. A filter is often needed for different types of output formats (separate from the printer language), even when the printer understands the same printer language as a program's output (such as Postscript). Output formats that need to be converted to a printer language include: dvi, Fortran and Raster.&lt;br /&gt;
&lt;br /&gt;
Filters are useful for different types of output. Carriage returns are different for command line output from Bourne shells, MS DOS, text files and Postscript output. Without the right filters, printers can stair-step or text can otherwise be misaligned.&lt;br /&gt;
&lt;br /&gt;
Printer packaging lists its specs, often: supported PDLs, fonts and graphics formats.&lt;br /&gt;
&lt;br /&gt;
===PCL===&lt;br /&gt;
ASCII is a printer language which PCL is an extension of.&lt;br /&gt;
&lt;br /&gt;
===Postscript===&lt;br /&gt;
LPR in base, and CUPS from ports perform the same function of receiving Postscript output and sending it to Postscript capable printers. CUPS allows printers that use other PCL's to be used through Postscript via PPD (Postscript Printer Description) conversions.&lt;br /&gt;
&lt;br /&gt;
Postscript is the default for both CUPS and Apple. For the most common PDL's: Postscript is considered higher quality than PCL, so more preference is centered around it. There are also very high quality printers that don't use either of these two PDL's.&lt;br /&gt;
&lt;br /&gt;
Postscript printers cost more because of hardware and font license fees from Adobe. However, this company offers Postscript software drivers for free. (Opensource driver software is available as mentioned a few times.) HP computers that have M in the model for Macintosh are Postscript printers (one may want to confirm that the specifications say Postscript).&lt;br /&gt;
&lt;br /&gt;
Conversions for non-Postscript printers rely on PPD's, and filters.&lt;br /&gt;
&lt;br /&gt;
===Conversions===&lt;br /&gt;
Ghostscript is a substitution for PCL printers to work as if they were Postscript. Ghostscript, Foomatic and other printer suites act as filters on LPR. On CUPS, many of these filters plus Gutenprint are able to provide needed PPD's (Postscript Printer Descriptions) for varying printers. {{port|print/foomatic-filters}} may lack compatibility with CUPS, and it conflicts with a needed {{port|print/cups-filters}}.&lt;br /&gt;
&lt;br /&gt;
LPR is able to output to non-Postscript printers by using Ghostscript's {{cmd|gs}} as an input filter through printcap. Ghostscript offers a few conversion programs between Postscript and pdf files.&lt;br /&gt;
&lt;br /&gt;
Ghostscript (under AGPL) can convert Postscript outputs to printer languages which specific non-Postscript printers can interpret. In addition to PCL, Ghostscript makes ESC printers functional. LPRng includes Ghostscript for printer language conversion too. Ghostscript can be used with LPR, CUPS, or LPRng&lt;br /&gt;
&lt;br /&gt;
GhostViewer ({{port|print/gv}}) is a program for viewing Postscript output on the monitor.&lt;br /&gt;
&lt;br /&gt;
===ESC===&lt;br /&gt;
ESC/P (Epson's developed PDL) printers are used in consumer inkjet printers, as well as dot matrix, receipt, thermal, labeling and barcode printers.&lt;br /&gt;
&lt;br /&gt;
===GDI/WIN===&lt;br /&gt;
Win(dos) or GDI printers are generally incompatible with BSD's or Linux. Printers that let the software from the computer run them completely are referred to as dumb printers.&lt;br /&gt;
&lt;br /&gt;
==Components==&lt;br /&gt;
The spool holds printing jobs to be printed in order. Print jobs are held in the {{file|/var/spool/}} directory.&lt;br /&gt;
&lt;br /&gt;
==References/Further Reading==&lt;br /&gt;
* FreeBSD 6 Unleashed&lt;br /&gt;
* Network Administration with FreeBSD 7&lt;br /&gt;
* Building a Server with FreeBSD 7&lt;br /&gt;
* The Complete FreeBSD (2006)&lt;br /&gt;
* https://www.cups.org/&lt;br /&gt;
* http://lprng.com&lt;br /&gt;
* http://www.wonkity.com/~wblock/docs/html/lpdprinting.html&lt;br /&gt;
* https://docs.freebsd.org/en/books/handbook/printing/&lt;br /&gt;
* https://docs.freebsd.org/en/articles/cups/&lt;br /&gt;
* https://www.informit.com/articles/article.aspx?p=167786&lt;br /&gt;
(some references are out of date, but still have relevance)&lt;br /&gt;
&lt;br /&gt;
[[Category:New User Tips and FAQs]]&lt;br /&gt;
[[Category:Configuring FreeBSD]]&lt;br /&gt;
[[Category:FreeBSD for Workstations]]&lt;/div&gt;</summary>
		<author><name>Sidetone</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Printing,_about</id>
		<title>Printing, about</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Printing,_about"/>
				<updated>2021-06-14T07:04:30Z</updated>
		
		<summary type="html">&lt;p&gt;Sidetone: /* Conversions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;About printing on FreeBSD: comparisons of printing protocols; about filters, Page Description Languages (PDL's) and printer specifications.&lt;br /&gt;
&lt;br /&gt;
==Protocols==&lt;br /&gt;
LPD (Line Printer Daemon) and IPP (Internet Printing Protocol) are printer protocols defined by IETF. LPD is described by RFC 1179 (not as a standard): it uses service port 515. IPP is defined by RFC 8011 and RFC 3510: it uses service port 631. Access control and security features are available on IPP that aren't on LPD. RFC 2569 is a memo on mapping between LPD and IPP.&lt;br /&gt;
&lt;br /&gt;
pdl-datastream on service port 9100 is for proprietary printers and proprietary local network printer servers. This is often used by JetDirect products.&lt;br /&gt;
&lt;br /&gt;
Printers can also use SMB (over Samba) as a protocol.&lt;br /&gt;
&lt;br /&gt;
==Comparison of: LPR, LPRng, CUPS==&lt;br /&gt;
LPR is the default with FreeBSD. LPRng and CUPS are successors to this legacy protocol, which have their own implementations of LPR included. These three programs use and can alter {{man|printcap|5}}. LPR and LPRng both use the LPD protocol over service port 515. The CUPS framework supports more printers than LPR and LPRng. PCL printers are more readily supported under CUPS. &lt;br /&gt;
&lt;br /&gt;
LPR requires manual set up through custom shell scripts of filters to convert plain text or other types of data, even between Postscript outputs to Postscript able printers. {{port|print/a2ps}} can simplify this task of converting ASCII to Postscript output. LPR's intended use was for text printing.&lt;br /&gt;
&lt;br /&gt;
LPRng (LPR Next Generation) is an advanced replacement for LPR, and is an alternative to CUPS. It is under the GPL and Artistic licenses. IFHP determines the format and does conversions, including by use of Ghostscript. LPRng takes care of format conversions through its filters, and of Postscript output through Ghostscript. LPRng was designed to be more secure than LPR. LPRng is found at {{port|sysutils/LPRng}}. It uses {{file|printcap}}, {{file|lpd.conf}}, and {{file|lpd.perms}} for configuration.&lt;br /&gt;
&lt;br /&gt;
The default protocol that CUPS uses is IPP. In addition to IPP, CUPS also has protocol support for: LPD, SMB (Server Message Block) and pdl-datastream. CUPS originally started out over LPD.&lt;br /&gt;
&lt;br /&gt;
LPRng and CUPS software conflicts so cannot be installed together. lprng in services ({{file|rc.conf}}) requires that lpr and cupsd be disabled. LPR, LPRng and CUPS daemons can be enabled or disabled through {{file|rc.conf}}. LPR and CUPS can coexist, but only one service is needed. CUPS has its own implementation of LPR in under {{file|/usr/local/}}, as opposed to LPR's default location under {{file|/usr/}}. The LPR files that CUPS uses can be set in {{file|printcap}}. LPR compilation in the world build can be disabled through {{man|src.conf|5}}&lt;br /&gt;
&lt;br /&gt;
Some programs, such as forks of OpenOffice (such as LibreOffice or Apache OpenOffice) provide their own drivers that output to LPR in place of already configured filters like Ghostscript. Their printing has to be set up independently from an already working CUPS or LPR configuration.&lt;br /&gt;
&lt;br /&gt;
==Specifications, Filters, PDL's==&lt;br /&gt;
Postscript (PS) and PCL (Printer Command Language) are printer languages known as Page Description Languages (PDL's) supported by the majority of printers for interpreting and printing jobs. These two PDLs are alternate models developed by Adobe and HP respectively. PJL is another type of printer language for controlling features.&lt;br /&gt;
&lt;br /&gt;
Many programs simply output data as Postscript. A filter is often needed for different types of output formats (separate from the printer language), even when the printer understands the same printer language as a program's output (such as Postscript). Output formats that need to be converted to a printer language include: dvi, Fortran and Raster.&lt;br /&gt;
&lt;br /&gt;
Filters are useful for different types of output. Carriage returns are different for command line output from Bourne shells, MS DOS, text files and Postscript output. Without the right filters, printers can stair-step or text can otherwise be misaligned.&lt;br /&gt;
&lt;br /&gt;
Printer packaging lists its specs, often: supported PDLs, fonts and graphics formats.&lt;br /&gt;
&lt;br /&gt;
===PCL===&lt;br /&gt;
ASCII is a printer language which PCL is an extension of.&lt;br /&gt;
&lt;br /&gt;
===Postscript===&lt;br /&gt;
LPR in base, and CUPS from ports perform the same function of receiving Postscript output and sending it to Postscript capable printers. CUPS allows printers that use other PCL's to be used through Postscript via PPD (Postscript Printer Description) conversions.&lt;br /&gt;
&lt;br /&gt;
Postscript is the default for both CUPS and Apple. For the most common PDL's: Postscript is considered higher quality than PCL, so more preference is centered around it. There are also very high quality printers that don't use either of these two PDL's.&lt;br /&gt;
&lt;br /&gt;
Postscript printers cost more because of hardware and font license fees from Adobe. However, this company offers Postscript software drivers for free. (Opensource driver software is available as mentioned a few times.) HP computers that have M in the model for Macintosh are Postscript printers (one may want to confirm that the specifications say Postscript).&lt;br /&gt;
&lt;br /&gt;
Conversions for non-Postscript printers rely on PPD's, and filters.&lt;br /&gt;
&lt;br /&gt;
===Conversions===&lt;br /&gt;
Ghostscript is a substitution for PCL printers to work as if they were Postscript. Ghostscript, Foomatic and other printer suites act as filters on LPR. On CUPS, many of these filters plus Gutenprint are able to provide needed PPD's (Postscript Printer Descriptions) for varying printers. {{port|print/foomatic-filters}} may lack compatibility with CUPS, and it conflicts with a needed {{port|print/cups-filters}}.&lt;br /&gt;
&lt;br /&gt;
LPR is able to output to non-Postscript printers by using Ghostscript's {{cmd|gs}} as an input filter through printcap. Ghostscript offers a few conversion programs between Postscript and pdf files.&lt;br /&gt;
&lt;br /&gt;
Ghostscript (under AGPL) can convert Postscript outputs to printer languages which specific non-Postscript printers can interpret. In addition to PCL, Ghostscript makes ESC printers functional. LPRng includes Ghostscript for printer language conversion too. Ghostscript can be used with LPR, CUPS, or LPRng&lt;br /&gt;
&lt;br /&gt;
GhostViewer ({{port|print/gv}}) is a program for viewing Postscript output on the monitor.&lt;br /&gt;
&lt;br /&gt;
===ESC===&lt;br /&gt;
ESC/P (Epson's developed PDL) printers are used in consumer inkjet printers, as well as dot matrix, receipt, thermal, labeling and barcode printers.&lt;br /&gt;
&lt;br /&gt;
===GDI/WIN===&lt;br /&gt;
Win(dos) or GDI printers are generally incompatible with BSD's or Linux. Printers that let the software from the computer run them completely are referred to as dumb printers.&lt;br /&gt;
&lt;br /&gt;
==Components==&lt;br /&gt;
The spool holds printing jobs to be printed in order. Print jobs are held in the {{file|/var/spool/}} directory.&lt;br /&gt;
&lt;br /&gt;
==References/Further Reading==&lt;br /&gt;
* FreeBSD 6 Unleashed&lt;br /&gt;
* Network Administration with FreeBSD 7&lt;br /&gt;
* Building a Server with FreeBSD 7&lt;br /&gt;
* The Complete FreeBSD (2006)&lt;br /&gt;
* https://www.cups.org/&lt;br /&gt;
* http://lprng.com&lt;br /&gt;
* http://www.wonkity.com/~wblock/docs/html/lpdprinting.html&lt;br /&gt;
* https://docs.freebsd.org/en/books/handbook/printing/&lt;br /&gt;
* https://docs.freebsd.org/en/articles/cups/&lt;br /&gt;
* https://www.informit.com/articles/article.aspx?p=167786&lt;br /&gt;
(some references are out of date, but still have relevance)&lt;br /&gt;
&lt;br /&gt;
[[Category:New User Tips and FAQs]]&lt;br /&gt;
[[Category:Configuring FreeBSD]]&lt;br /&gt;
[[Category:FreeBSD for Workstations]]&lt;/div&gt;</summary>
		<author><name>Sidetone</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Printing,_about</id>
		<title>Printing, about</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Printing,_about"/>
				<updated>2021-06-14T07:03:26Z</updated>
		
		<summary type="html">&lt;p&gt;Sidetone: /* Conversions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;About printing on FreeBSD: comparisons of printing protocols; about filters, Page Description Languages (PDL's) and printer specifications.&lt;br /&gt;
&lt;br /&gt;
==Protocols==&lt;br /&gt;
LPD (Line Printer Daemon) and IPP (Internet Printing Protocol) are printer protocols defined by IETF. LPD is described by RFC 1179 (not as a standard): it uses service port 515. IPP is defined by RFC 8011 and RFC 3510: it uses service port 631. Access control and security features are available on IPP that aren't on LPD. RFC 2569 is a memo on mapping between LPD and IPP.&lt;br /&gt;
&lt;br /&gt;
pdl-datastream on service port 9100 is for proprietary printers and proprietary local network printer servers. This is often used by JetDirect products.&lt;br /&gt;
&lt;br /&gt;
Printers can also use SMB (over Samba) as a protocol.&lt;br /&gt;
&lt;br /&gt;
==Comparison of: LPR, LPRng, CUPS==&lt;br /&gt;
LPR is the default with FreeBSD. LPRng and CUPS are successors to this legacy protocol, which have their own implementations of LPR included. These three programs use and can alter {{man|printcap|5}}. LPR and LPRng both use the LPD protocol over service port 515. The CUPS framework supports more printers than LPR and LPRng. PCL printers are more readily supported under CUPS. &lt;br /&gt;
&lt;br /&gt;
LPR requires manual set up through custom shell scripts of filters to convert plain text or other types of data, even between Postscript outputs to Postscript able printers. {{port|print/a2ps}} can simplify this task of converting ASCII to Postscript output. LPR's intended use was for text printing.&lt;br /&gt;
&lt;br /&gt;
LPRng (LPR Next Generation) is an advanced replacement for LPR, and is an alternative to CUPS. It is under the GPL and Artistic licenses. IFHP determines the format and does conversions, including by use of Ghostscript. LPRng takes care of format conversions through its filters, and of Postscript output through Ghostscript. LPRng was designed to be more secure than LPR. LPRng is found at {{port|sysutils/LPRng}}. It uses {{file|printcap}}, {{file|lpd.conf}}, and {{file|lpd.perms}} for configuration.&lt;br /&gt;
&lt;br /&gt;
The default protocol that CUPS uses is IPP. In addition to IPP, CUPS also has protocol support for: LPD, SMB (Server Message Block) and pdl-datastream. CUPS originally started out over LPD.&lt;br /&gt;
&lt;br /&gt;
LPRng and CUPS software conflicts so cannot be installed together. lprng in services ({{file|rc.conf}}) requires that lpr and cupsd be disabled. LPR, LPRng and CUPS daemons can be enabled or disabled through {{file|rc.conf}}. LPR and CUPS can coexist, but only one service is needed. CUPS has its own implementation of LPR in under {{file|/usr/local/}}, as opposed to LPR's default location under {{file|/usr/}}. The LPR files that CUPS uses can be set in {{file|printcap}}. LPR compilation in the world build can be disabled through {{man|src.conf|5}}&lt;br /&gt;
&lt;br /&gt;
Some programs, such as forks of OpenOffice (such as LibreOffice or Apache OpenOffice) provide their own drivers that output to LPR in place of already configured filters like Ghostscript. Their printing has to be set up independently from an already working CUPS or LPR configuration.&lt;br /&gt;
&lt;br /&gt;
==Specifications, Filters, PDL's==&lt;br /&gt;
Postscript (PS) and PCL (Printer Command Language) are printer languages known as Page Description Languages (PDL's) supported by the majority of printers for interpreting and printing jobs. These two PDLs are alternate models developed by Adobe and HP respectively. PJL is another type of printer language for controlling features.&lt;br /&gt;
&lt;br /&gt;
Many programs simply output data as Postscript. A filter is often needed for different types of output formats (separate from the printer language), even when the printer understands the same printer language as a program's output (such as Postscript). Output formats that need to be converted to a printer language include: dvi, Fortran and Raster.&lt;br /&gt;
&lt;br /&gt;
Filters are useful for different types of output. Carriage returns are different for command line output from Bourne shells, MS DOS, text files and Postscript output. Without the right filters, printers can stair-step or text can otherwise be misaligned.&lt;br /&gt;
&lt;br /&gt;
Printer packaging lists its specs, often: supported PDLs, fonts and graphics formats.&lt;br /&gt;
&lt;br /&gt;
===PCL===&lt;br /&gt;
ASCII is a printer language which PCL is an extension of.&lt;br /&gt;
&lt;br /&gt;
===Postscript===&lt;br /&gt;
LPR in base, and CUPS from ports perform the same function of receiving Postscript output and sending it to Postscript capable printers. CUPS allows printers that use other PCL's to be used through Postscript via PPD (Postscript Printer Description) conversions.&lt;br /&gt;
&lt;br /&gt;
Postscript is the default for both CUPS and Apple. For the most common PDL's: Postscript is considered higher quality than PCL, so more preference is centered around it. There are also very high quality printers that don't use either of these two PDL's.&lt;br /&gt;
&lt;br /&gt;
Postscript printers cost more because of hardware and font license fees from Adobe. However, this company offers Postscript software drivers for free. (Opensource driver software is available as mentioned a few times.) HP computers that have M in the model for Macintosh are Postscript printers (one may want to confirm that the specifications say Postscript).&lt;br /&gt;
&lt;br /&gt;
Conversions for non-Postscript printers rely on PPD's, and filters.&lt;br /&gt;
&lt;br /&gt;
===Conversions===&lt;br /&gt;
Ghostscript is a substitution for PCL printers to work as if they were Postscript. Ghostscript, Foomatic and other printer suites act as filters on LPR. On CUPS, many of these filters plus Gutenprint are able to provide needed PPD's (Postscript Printer Descriptions) for varying printers. {{port|print/foomatic-filters}} may lack compatibility with CUPS, and it conflicts with {{port|print/cups-filters}}.&lt;br /&gt;
&lt;br /&gt;
LPR is able to output to non-Postscript printers by using Ghostscript's {{cmd|gs}} as an input filter through printcap. Ghostscript offers a few conversion programs between Postscript and pdf files.&lt;br /&gt;
&lt;br /&gt;
Ghostscript (under AGPL) can convert Postscript outputs to printer languages which specific non-Postscript printers can interpret. In addition to PCL, Ghostscript makes ESC printers functional. LPRng includes Ghostscript for printer language conversion too. Ghostscript can be used with LPR, CUPS, or LPRng&lt;br /&gt;
&lt;br /&gt;
GhostViewer ({{port|print/gv}}) is a program for viewing Postscript output on the monitor.&lt;br /&gt;
&lt;br /&gt;
===ESC===&lt;br /&gt;
ESC/P (Epson's developed PDL) printers are used in consumer inkjet printers, as well as dot matrix, receipt, thermal, labeling and barcode printers.&lt;br /&gt;
&lt;br /&gt;
===GDI/WIN===&lt;br /&gt;
Win(dos) or GDI printers are generally incompatible with BSD's or Linux. Printers that let the software from the computer run them completely are referred to as dumb printers.&lt;br /&gt;
&lt;br /&gt;
==Components==&lt;br /&gt;
The spool holds printing jobs to be printed in order. Print jobs are held in the {{file|/var/spool/}} directory.&lt;br /&gt;
&lt;br /&gt;
==References/Further Reading==&lt;br /&gt;
* FreeBSD 6 Unleashed&lt;br /&gt;
* Network Administration with FreeBSD 7&lt;br /&gt;
* Building a Server with FreeBSD 7&lt;br /&gt;
* The Complete FreeBSD (2006)&lt;br /&gt;
* https://www.cups.org/&lt;br /&gt;
* http://lprng.com&lt;br /&gt;
* http://www.wonkity.com/~wblock/docs/html/lpdprinting.html&lt;br /&gt;
* https://docs.freebsd.org/en/books/handbook/printing/&lt;br /&gt;
* https://docs.freebsd.org/en/articles/cups/&lt;br /&gt;
* https://www.informit.com/articles/article.aspx?p=167786&lt;br /&gt;
(some references are out of date, but still have relevance)&lt;br /&gt;
&lt;br /&gt;
[[Category:New User Tips and FAQs]]&lt;br /&gt;
[[Category:Configuring FreeBSD]]&lt;br /&gt;
[[Category:FreeBSD for Workstations]]&lt;/div&gt;</summary>
		<author><name>Sidetone</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Printing,_about</id>
		<title>Printing, about</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Printing,_about"/>
				<updated>2021-06-14T07:02:16Z</updated>
		
		<summary type="html">&lt;p&gt;Sidetone: lpr's intended use was text printing. clarification on foomatic filters&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;About printing on FreeBSD: comparisons of printing protocols; about filters, Page Description Languages (PDL's) and printer specifications.&lt;br /&gt;
&lt;br /&gt;
==Protocols==&lt;br /&gt;
LPD (Line Printer Daemon) and IPP (Internet Printing Protocol) are printer protocols defined by IETF. LPD is described by RFC 1179 (not as a standard): it uses service port 515. IPP is defined by RFC 8011 and RFC 3510: it uses service port 631. Access control and security features are available on IPP that aren't on LPD. RFC 2569 is a memo on mapping between LPD and IPP.&lt;br /&gt;
&lt;br /&gt;
pdl-datastream on service port 9100 is for proprietary printers and proprietary local network printer servers. This is often used by JetDirect products.&lt;br /&gt;
&lt;br /&gt;
Printers can also use SMB (over Samba) as a protocol.&lt;br /&gt;
&lt;br /&gt;
==Comparison of: LPR, LPRng, CUPS==&lt;br /&gt;
LPR is the default with FreeBSD. LPRng and CUPS are successors to this legacy protocol, which have their own implementations of LPR included. These three programs use and can alter {{man|printcap|5}}. LPR and LPRng both use the LPD protocol over service port 515. The CUPS framework supports more printers than LPR and LPRng. PCL printers are more readily supported under CUPS. &lt;br /&gt;
&lt;br /&gt;
LPR requires manual set up through custom shell scripts of filters to convert plain text or other types of data, even between Postscript outputs to Postscript able printers. {{port|print/a2ps}} can simplify this task of converting ASCII to Postscript output. LPR's intended use was for text printing.&lt;br /&gt;
&lt;br /&gt;
LPRng (LPR Next Generation) is an advanced replacement for LPR, and is an alternative to CUPS. It is under the GPL and Artistic licenses. IFHP determines the format and does conversions, including by use of Ghostscript. LPRng takes care of format conversions through its filters, and of Postscript output through Ghostscript. LPRng was designed to be more secure than LPR. LPRng is found at {{port|sysutils/LPRng}}. It uses {{file|printcap}}, {{file|lpd.conf}}, and {{file|lpd.perms}} for configuration.&lt;br /&gt;
&lt;br /&gt;
The default protocol that CUPS uses is IPP. In addition to IPP, CUPS also has protocol support for: LPD, SMB (Server Message Block) and pdl-datastream. CUPS originally started out over LPD.&lt;br /&gt;
&lt;br /&gt;
LPRng and CUPS software conflicts so cannot be installed together. lprng in services ({{file|rc.conf}}) requires that lpr and cupsd be disabled. LPR, LPRng and CUPS daemons can be enabled or disabled through {{file|rc.conf}}. LPR and CUPS can coexist, but only one service is needed. CUPS has its own implementation of LPR in under {{file|/usr/local/}}, as opposed to LPR's default location under {{file|/usr/}}. The LPR files that CUPS uses can be set in {{file|printcap}}. LPR compilation in the world build can be disabled through {{man|src.conf|5}}&lt;br /&gt;
&lt;br /&gt;
Some programs, such as forks of OpenOffice (such as LibreOffice or Apache OpenOffice) provide their own drivers that output to LPR in place of already configured filters like Ghostscript. Their printing has to be set up independently from an already working CUPS or LPR configuration.&lt;br /&gt;
&lt;br /&gt;
==Specifications, Filters, PDL's==&lt;br /&gt;
Postscript (PS) and PCL (Printer Command Language) are printer languages known as Page Description Languages (PDL's) supported by the majority of printers for interpreting and printing jobs. These two PDLs are alternate models developed by Adobe and HP respectively. PJL is another type of printer language for controlling features.&lt;br /&gt;
&lt;br /&gt;
Many programs simply output data as Postscript. A filter is often needed for different types of output formats (separate from the printer language), even when the printer understands the same printer language as a program's output (such as Postscript). Output formats that need to be converted to a printer language include: dvi, Fortran and Raster.&lt;br /&gt;
&lt;br /&gt;
Filters are useful for different types of output. Carriage returns are different for command line output from Bourne shells, MS DOS, text files and Postscript output. Without the right filters, printers can stair-step or text can otherwise be misaligned.&lt;br /&gt;
&lt;br /&gt;
Printer packaging lists its specs, often: supported PDLs, fonts and graphics formats.&lt;br /&gt;
&lt;br /&gt;
===PCL===&lt;br /&gt;
ASCII is a printer language which PCL is an extension of.&lt;br /&gt;
&lt;br /&gt;
===Postscript===&lt;br /&gt;
LPR in base, and CUPS from ports perform the same function of receiving Postscript output and sending it to Postscript capable printers. CUPS allows printers that use other PCL's to be used through Postscript via PPD (Postscript Printer Description) conversions.&lt;br /&gt;
&lt;br /&gt;
Postscript is the default for both CUPS and Apple. For the most common PDL's: Postscript is considered higher quality than PCL, so more preference is centered around it. There are also very high quality printers that don't use either of these two PDL's.&lt;br /&gt;
&lt;br /&gt;
Postscript printers cost more because of hardware and font license fees from Adobe. However, this company offers Postscript software drivers for free. (Opensource driver software is available as mentioned a few times.) HP computers that have M in the model for Macintosh are Postscript printers (one may want to confirm that the specifications say Postscript).&lt;br /&gt;
&lt;br /&gt;
Conversions for non-Postscript printers rely on PPD's, and filters.&lt;br /&gt;
&lt;br /&gt;
===Conversions===&lt;br /&gt;
Ghostscript is a substitution for PCL printers to work as if they were Postscript. Ghostscript, Foomatic and other printer suites act as filters on LPR. On CUPS, many of these filters plus Gutenprint are able to provide needed PPD's (Postscript Printer Descriptions) for varying printers. {{ports|print/foomatic-filters}} may lack compatibility with CUPS, and it conflicts with {{ports|print/cups-filters}}.&lt;br /&gt;
&lt;br /&gt;
LPR is able to output to non-Postscript printers by using Ghostscript's {{cmd|gs}} as an input filter through printcap. Ghostscript offers a few conversion programs between Postscript and pdf files.&lt;br /&gt;
&lt;br /&gt;
Ghostscript (under AGPL) can convert Postscript outputs to printer languages which specific non-Postscript printers can interpret. In addition to PCL, Ghostscript makes ESC printers functional. LPRng includes Ghostscript for printer language conversion too. Ghostscript can be used with LPR, CUPS, or LPRng&lt;br /&gt;
&lt;br /&gt;
GhostViewer ({{port|print/gv}}) is a program for viewing Postscript output on the monitor.&lt;br /&gt;
&lt;br /&gt;
===ESC===&lt;br /&gt;
ESC/P (Epson's developed PDL) printers are used in consumer inkjet printers, as well as dot matrix, receipt, thermal, labeling and barcode printers.&lt;br /&gt;
&lt;br /&gt;
===GDI/WIN===&lt;br /&gt;
Win(dos) or GDI printers are generally incompatible with BSD's or Linux. Printers that let the software from the computer run them completely are referred to as dumb printers.&lt;br /&gt;
&lt;br /&gt;
==Components==&lt;br /&gt;
The spool holds printing jobs to be printed in order. Print jobs are held in the {{file|/var/spool/}} directory.&lt;br /&gt;
&lt;br /&gt;
==References/Further Reading==&lt;br /&gt;
* FreeBSD 6 Unleashed&lt;br /&gt;
* Network Administration with FreeBSD 7&lt;br /&gt;
* Building a Server with FreeBSD 7&lt;br /&gt;
* The Complete FreeBSD (2006)&lt;br /&gt;
* https://www.cups.org/&lt;br /&gt;
* http://lprng.com&lt;br /&gt;
* http://www.wonkity.com/~wblock/docs/html/lpdprinting.html&lt;br /&gt;
* https://docs.freebsd.org/en/books/handbook/printing/&lt;br /&gt;
* https://docs.freebsd.org/en/articles/cups/&lt;br /&gt;
* https://www.informit.com/articles/article.aspx?p=167786&lt;br /&gt;
(some references are out of date, but still have relevance)&lt;br /&gt;
&lt;br /&gt;
[[Category:New User Tips and FAQs]]&lt;br /&gt;
[[Category:Configuring FreeBSD]]&lt;br /&gt;
[[Category:FreeBSD for Workstations]]&lt;/div&gt;</summary>
		<author><name>Sidetone</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Printing,_about</id>
		<title>Printing, about</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Printing,_about"/>
				<updated>2021-06-13T19:00:23Z</updated>
		
		<summary type="html">&lt;p&gt;Sidetone: /* Protocols */ IPP has access control and security features&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;About printing on FreeBSD: comparisons of printing protocols; about filters, Page Description Languages (PDL's) and printer specifications.&lt;br /&gt;
&lt;br /&gt;
==Protocols==&lt;br /&gt;
LPD (Line Printer Daemon) and IPP (Internet Printing Protocol) are printer protocols defined by IETF. LPD is described by RFC 1179 (not as a standard): it uses service port 515. IPP is defined by RFC 8011 and RFC 3510: it uses service port 631. Access control and security features are available on IPP that aren't on LPD. RFC 2569 is a memo on mapping between LPD and IPP.&lt;br /&gt;
&lt;br /&gt;
pdl-datastream on service port 9100 is for proprietary printers and proprietary local network printer servers. This is often used by JetDirect products.&lt;br /&gt;
&lt;br /&gt;
Printers can also use SMB (over Samba) as a protocol.&lt;br /&gt;
&lt;br /&gt;
==Comparison of: LPR, LPRng, CUPS==&lt;br /&gt;
LPR is the default with FreeBSD. LPRng and CUPS are successors to this legacy protocol, which have their own implementations of LPR included. These three programs use and can alter {{man|printcap|5}}. LPR and LPRng both use the LPD protocol over service port 515. The CUPS framework supports more printers than LPR and LPRng. PCL printers are more readily supported under CUPS. &lt;br /&gt;
&lt;br /&gt;
LPR requires manual set up through custom shell scripts of filters to convert plain text or other types of data, even between Postscript outputs to Postscript able printers. {{port|print/a2ps}} can simplify this task of converting ASCII to Postscript output.&lt;br /&gt;
&lt;br /&gt;
LPRng (LPR Next Generation) is an advanced replacement for LPR, and is an alternative to CUPS. It is under the GPL and Artistic licenses. IFHP determines the format and does conversions, including by use of Ghostscript. LPRng takes care of format conversions through its filters, and of Postscript output through Ghostscript. LPRng was designed to be more secure than LPR. LPRng is found at {{port|sysutils/LPRng}}. It uses {{file|printcap}}, {{file|lpd.conf}}, and {{file|lpd.perms}} for configuration.&lt;br /&gt;
&lt;br /&gt;
The default protocol that CUPS uses is IPP. In addition to IPP, CUPS also has protocol support for: LPD, SMB (Server Message Block) and pdl-datastream. CUPS originally started out over LPD.&lt;br /&gt;
&lt;br /&gt;
LPRng and CUPS software conflicts so cannot be installed together. lprng in services ({{file|rc.conf}}) requires that lpr and cupsd be disabled. LPR, LPRng and CUPS daemons can be enabled or disabled through {{file|rc.conf}}. LPR and CUPS can coexist, but only one service is needed. CUPS has its own implementation of LPR in under {{file|/usr/local/}}, as opposed to LPR's default location under {{file|/usr/}}. The LPR files that CUPS uses can be set in {{file|printcap}}. LPR compilation in the world build can be disabled through {{man|src.conf|5}}&lt;br /&gt;
&lt;br /&gt;
Some programs, such as forks of OpenOffice (such as LibreOffice or Apache OpenOffice) provide their own drivers that output to LPR in place of already configured filters like Ghostscript. Their printing has to be set up independently from an already working CUPS or LPR configuration.&lt;br /&gt;
&lt;br /&gt;
==Specifications, Filters, PDL's==&lt;br /&gt;
Postscript (PS) and PCL (Printer Command Language) are printer languages known as Page Description Languages (PDL's) supported by the majority of printers for interpreting and printing jobs. These two PDLs are alternate models developed by Adobe and HP respectively. PJL is another type of printer language for controlling features.&lt;br /&gt;
&lt;br /&gt;
Many programs simply output data as Postscript. A filter is often needed for different types of output formats (separate from the printer language), even when the printer understands the same printer language as a program's output (such as Postscript). Output formats that need to be converted to a printer language include: dvi, Fortran and Raster.&lt;br /&gt;
&lt;br /&gt;
Filters are useful for different types of output. Carriage returns are different for command line output from Bourne shells, MS DOS, text files and Postscript output. Without the right filters, printers can stair-step or text can otherwise be misaligned.&lt;br /&gt;
&lt;br /&gt;
Printer packaging lists its specs, often: supported PDLs, fonts and graphics formats.&lt;br /&gt;
&lt;br /&gt;
===PCL===&lt;br /&gt;
ASCII is a printer language which PCL is an extension of.&lt;br /&gt;
&lt;br /&gt;
===Postscript===&lt;br /&gt;
LPR in base, and CUPS from ports perform the same function of receiving Postscript output and sending it to Postscript capable printers. CUPS allows printers that use other PCL's to be used through Postscript via PPD (Postscript Printer Description) conversions.&lt;br /&gt;
&lt;br /&gt;
Postscript is the default for both CUPS and Apple. For the most common PDL's: Postscript is considered higher quality than PCL, so more preference is centered around it. There are also very high quality printers that don't use either of these two PDL's.&lt;br /&gt;
&lt;br /&gt;
Postscript printers cost more because of hardware and font license fees from Adobe. However, this company offers Postscript software drivers for free. (Opensource driver software is available as mentioned a few times.) HP computers that have M in the model for Macintosh are Postscript printers (one may want to confirm that the specifications say Postscript).&lt;br /&gt;
&lt;br /&gt;
Conversions for non-Postscript printers rely on PPD's, and filters.&lt;br /&gt;
&lt;br /&gt;
===Conversions===&lt;br /&gt;
Ghostscript is a substitution for PCL printers to work as if they were Postscript. Ghostscript, Foomatic and other printer suites act as filters on LPR. On CUPS, these plus Gutenprint are able to provide needed PPD's (Postscript Printer Descriptions) for varying printers.&lt;br /&gt;
&lt;br /&gt;
LPR is able to output to non-Postscript printers by using Ghostscript's {{cmd|gs}} as an input filter through printcap. Ghostscript offers a few conversion programs between Postscript and pdf files.&lt;br /&gt;
&lt;br /&gt;
Ghostscript (under AGPL) can convert Postscript outputs to printer languages which specific non-Postscript printers can interpret. In addition to PCL, Ghostscript makes ESC printers functional. LPRng includes Ghostscript for printer language conversion too. Ghostscript can be used with LPR, CUPS, or LPRng&lt;br /&gt;
&lt;br /&gt;
GhostViewer ({{port|print/gv}}) is a program for viewing Postscript output on the monitor.&lt;br /&gt;
&lt;br /&gt;
===ESC===&lt;br /&gt;
ESC/P (Epson's developed PDL) printers are used in consumer inkjet printers, as well as dot matrix, receipt, thermal, labeling and barcode printers.&lt;br /&gt;
&lt;br /&gt;
===GDI/WIN===&lt;br /&gt;
Win(dos) or GDI printers are generally incompatible with BSD's or Linux. Printers that let the software from the computer run them completely are referred to as dumb printers.&lt;br /&gt;
&lt;br /&gt;
==Components==&lt;br /&gt;
The spool holds printing jobs to be printed in order. Print jobs are held in the {{file|/var/spool/}} directory.&lt;br /&gt;
&lt;br /&gt;
==References/Further Reading==&lt;br /&gt;
* FreeBSD 6 Unleashed&lt;br /&gt;
* Network Administration with FreeBSD 7&lt;br /&gt;
* Building a Server with FreeBSD 7&lt;br /&gt;
* The Complete FreeBSD (2006)&lt;br /&gt;
* https://www.cups.org/&lt;br /&gt;
* http://lprng.com&lt;br /&gt;
* http://www.wonkity.com/~wblock/docs/html/lpdprinting.html&lt;br /&gt;
* https://docs.freebsd.org/en/books/handbook/printing/&lt;br /&gt;
* https://docs.freebsd.org/en/articles/cups/&lt;br /&gt;
* https://www.informit.com/articles/article.aspx?p=167786&lt;br /&gt;
(some references are out of date, but still have relevance)&lt;br /&gt;
&lt;br /&gt;
[[Category:New User Tips and FAQs]]&lt;br /&gt;
[[Category:Configuring FreeBSD]]&lt;br /&gt;
[[Category:FreeBSD for Workstations]]&lt;/div&gt;</summary>
		<author><name>Sidetone</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Printing,_about</id>
		<title>Printing, about</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Printing,_about"/>
				<updated>2021-06-13T09:51:35Z</updated>
		
		<summary type="html">&lt;p&gt;Sidetone: Office application drivers&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;About printing on FreeBSD: comparisons of printing protocols; about filters, Page Description Languages (PDL's) and printer specifications.&lt;br /&gt;
&lt;br /&gt;
==Protocols==&lt;br /&gt;
LPD (Line Printer Daemon) and IPP (Internet Printing Protocol) are printer protocols defined by IETF. LPD is described by RFC 1179 (not as a standard): it uses service port 515. IPP is defined by RFC 8011 and RFC 3510: it uses service port 631. RFC 2569 is a memo on mapping between LPD and IPP.&lt;br /&gt;
&lt;br /&gt;
pdl-datastream on service port 9100 is for proprietary printers and proprietary local network printer servers. This is often used by JetDirect products.&lt;br /&gt;
&lt;br /&gt;
Printers can also use SMB (over Samba) as a protocol.&lt;br /&gt;
&lt;br /&gt;
==Comparison of: LPR, LPRng, CUPS==&lt;br /&gt;
LPR is the default with FreeBSD. LPRng and CUPS are successors to this legacy protocol, which have their own implementations of LPR included. These three programs use and can alter {{man|printcap|5}}. LPR and LPRng both use the LPD protocol over service port 515. The CUPS framework supports more printers than LPR and LPRng. PCL printers are more readily supported under CUPS. &lt;br /&gt;
&lt;br /&gt;
LPR requires manual set up through custom shell scripts of filters to convert plain text or other types of data, even between Postscript outputs to Postscript able printers. {{port|print/a2ps}} can simplify this task of converting ASCII to Postscript output.&lt;br /&gt;
&lt;br /&gt;
LPRng (LPR Next Generation) is an advanced replacement for LPR, and is an alternative to CUPS. It is under the GPL and Artistic licenses. IFHP determines the format and does conversions, including by use of Ghostscript. LPRng takes care of format conversions through its filters, and of Postscript output through Ghostscript. LPRng was designed to be more secure than LPR. LPRng is found at {{port|sysutils/LPRng}}. It uses {{file|printcap}}, {{file|lpd.conf}}, and {{file|lpd.perms}} for configuration.&lt;br /&gt;
&lt;br /&gt;
The default protocol that CUPS uses is IPP. In addition to IPP, CUPS also has protocol support for: LPD, SMB (Server Message Block) and pdl-datastream. CUPS originally started out over LPD.&lt;br /&gt;
&lt;br /&gt;
LPRng and CUPS software conflicts so cannot be installed together. lprng in services ({{file|rc.conf}}) requires that lpr and cupsd be disabled. LPR, LPRng and CUPS daemons can be enabled or disabled through {{file|rc.conf}}. LPR and CUPS can coexist, but only one service is needed. CUPS has its own implementation of LPR in under {{file|/usr/local/}}, as opposed to LPR's default location under {{file|/usr/}}. The LPR files that CUPS uses can be set in {{file|printcap}}. LPR compilation in the world build can be disabled through {{man|src.conf|5}}&lt;br /&gt;
&lt;br /&gt;
Some programs, such as forks of OpenOffice (such as LibreOffice or Apache OpenOffice) provide their own drivers that output to LPR in place of already configured filters like Ghostscript. Their printing has to be set up independently from an already working CUPS or LPR configuration.&lt;br /&gt;
&lt;br /&gt;
==Specifications, Filters, PDL's==&lt;br /&gt;
Postscript (PS) and PCL (Printer Command Language) are printer languages known as Page Description Languages (PDL's) supported by the majority of printers for interpreting and printing jobs. These two PDLs are alternate models developed by Adobe and HP respectively. PJL is another type of printer language for controlling features.&lt;br /&gt;
&lt;br /&gt;
Many programs simply output data as Postscript. A filter is often needed for different types of output formats (separate from the printer language), even when the printer understands the same printer language as a program's output (such as Postscript). Output formats that need to be converted to a printer language include: dvi, Fortran and Raster.&lt;br /&gt;
&lt;br /&gt;
Filters are useful for different types of output. Carriage returns are different for command line output from Bourne shells, MS DOS, text files and Postscript output. Without the right filters, printers can stair-step or text can otherwise be misaligned.&lt;br /&gt;
&lt;br /&gt;
Printer packaging lists its specs, often: supported PDLs, fonts and graphics formats.&lt;br /&gt;
&lt;br /&gt;
===PCL===&lt;br /&gt;
ASCII is a printer language which PCL is an extension of.&lt;br /&gt;
&lt;br /&gt;
===Postscript===&lt;br /&gt;
LPR in base, and CUPS from ports perform the same function of receiving Postscript output and sending it to Postscript capable printers. CUPS allows printers that use other PCL's to be used through Postscript via PPD (Postscript Printer Description) conversions.&lt;br /&gt;
&lt;br /&gt;
Postscript is the default for both CUPS and Apple. For the most common PDL's: Postscript is considered higher quality than PCL, so more preference is centered around it. There are also very high quality printers that don't use either of these two PDL's.&lt;br /&gt;
&lt;br /&gt;
Postscript printers cost more because of hardware and font license fees from Adobe. However, this company offers Postscript software drivers for free. (Opensource driver software is available as mentioned a few times.) HP computers that have M in the model for Macintosh are Postscript printers (one may want to confirm that the specifications say Postscript).&lt;br /&gt;
&lt;br /&gt;
Conversions for non-Postscript printers rely on PPD's, and filters.&lt;br /&gt;
&lt;br /&gt;
===Conversions===&lt;br /&gt;
Ghostscript is a substitution for PCL printers to work as if they were Postscript. Ghostscript, Foomatic and other printer suites act as filters on LPR. On CUPS, these plus Gutenprint are able to provide needed PPD's (Postscript Printer Descriptions) for varying printers.&lt;br /&gt;
&lt;br /&gt;
LPR is able to output to non-Postscript printers by using Ghostscript's {{cmd|gs}} as an input filter through printcap. Ghostscript offers a few conversion programs between Postscript and pdf files.&lt;br /&gt;
&lt;br /&gt;
Ghostscript (under AGPL) can convert Postscript outputs to printer languages which specific non-Postscript printers can interpret. In addition to PCL, Ghostscript makes ESC printers functional. LPRng includes Ghostscript for printer language conversion too. Ghostscript can be used with LPR, CUPS, or LPRng&lt;br /&gt;
&lt;br /&gt;
GhostViewer ({{port|print/gv}}) is a program for viewing Postscript output on the monitor.&lt;br /&gt;
&lt;br /&gt;
===ESC===&lt;br /&gt;
ESC/P (Epson's developed PDL) printers are used in consumer inkjet printers, as well as dot matrix, receipt, thermal, labeling and barcode printers.&lt;br /&gt;
&lt;br /&gt;
===GDI/WIN===&lt;br /&gt;
Win(dos) or GDI printers are generally incompatible with BSD's or Linux. Printers that let the software from the computer run them completely are referred to as dumb printers.&lt;br /&gt;
&lt;br /&gt;
==Components==&lt;br /&gt;
The spool holds printing jobs to be printed in order. Print jobs are held in the {{file|/var/spool/}} directory.&lt;br /&gt;
&lt;br /&gt;
==References/Further Reading==&lt;br /&gt;
* FreeBSD 6 Unleashed&lt;br /&gt;
* Network Administration with FreeBSD 7&lt;br /&gt;
* Building a Server with FreeBSD 7&lt;br /&gt;
* The Complete FreeBSD (2006)&lt;br /&gt;
* https://www.cups.org/&lt;br /&gt;
* http://lprng.com&lt;br /&gt;
* http://www.wonkity.com/~wblock/docs/html/lpdprinting.html&lt;br /&gt;
* https://docs.freebsd.org/en/books/handbook/printing/&lt;br /&gt;
* https://docs.freebsd.org/en/articles/cups/&lt;br /&gt;
* https://www.informit.com/articles/article.aspx?p=167786&lt;br /&gt;
(some references are out of date, but still have relevance)&lt;br /&gt;
&lt;br /&gt;
[[Category:New User Tips and FAQs]]&lt;br /&gt;
[[Category:Configuring FreeBSD]]&lt;br /&gt;
[[Category:FreeBSD for Workstations]]&lt;/div&gt;</summary>
		<author><name>Sidetone</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Printing,_about</id>
		<title>Printing, about</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Printing,_about"/>
				<updated>2021-06-13T06:31:13Z</updated>
		
		<summary type="html">&lt;p&gt;Sidetone: correction about pdl-datastream; add category: workstation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;About printing on FreeBSD: comparisons of printing protocols; about filters, Page Description Languages (PDL's) and printer specifications.&lt;br /&gt;
&lt;br /&gt;
==Protocols==&lt;br /&gt;
LPD (Line Printer Daemon) and IPP (Internet Printing Protocol) are printer protocols defined by IETF. LPD is described by RFC 1179 (not as a standard): it uses service port 515. IPP is defined by RFC 8011 and RFC 3510: it uses service port 631. RFC 2569 is a memo on mapping between LPD and IPP.&lt;br /&gt;
&lt;br /&gt;
pdl-datastream on service port 9100 is for proprietary printers and proprietary local network printer servers. This is often used by JetDirect products.&lt;br /&gt;
&lt;br /&gt;
Printers can also use SMB (over Samba) as a protocol.&lt;br /&gt;
&lt;br /&gt;
==Comparison of: LPR, LPRng, CUPS==&lt;br /&gt;
LPR is the default with FreeBSD. LPRng and CUPS are successors to this legacy protocol, which have their own implementations of LPR included. These three programs use and can alter {{man|printcap|5}}. LPR and LPRng both use the LPD protocol over service port 515. The CUPS framework supports more printers than LPR and LPRng. PCL printers are more readily supported under CUPS. &lt;br /&gt;
&lt;br /&gt;
LPR requires manual set up through custom shell scripts of filters to convert plain text or other types of data, even between Postscript outputs to Postscript able printers. {{port|print/a2ps}} can simplify this task of converting ASCII to Postscript output.&lt;br /&gt;
&lt;br /&gt;
LPRng (LPR Next Generation) is an advanced replacement for LPR, and is an alternative to CUPS. It is under the GPL and Artistic licenses. IFHP determines the format and does conversions, including by use of Ghostscript. LPRng takes care of format conversions through its filters, and of Postscript output through Ghostscript. LPRng was designed to be more secure than LPR. LPRng is found at {{port|sysutils/LPRng}}. It uses {{file|printcap}}, {{file|lpd.conf}}, and {{file|lpd.perms}} for configuration.&lt;br /&gt;
&lt;br /&gt;
The default protocol that CUPS uses is IPP. In addition to IPP, CUPS also has protocol support for: LPD, SMB (Server Message Block) and pdl-datastream. CUPS originally started out over LPD.&lt;br /&gt;
&lt;br /&gt;
LPRng and CUPS software conflicts so cannot be installed together. lprng in services ({{file|rc.conf}}) requires that lpr and cupsd be disabled. LPR, LPRng and CUPS daemons can be enabled or disabled through {{file|rc.conf}}. LPR and CUPS can coexist, but only one service is needed. CUPS has its own implementation of LPR in under {{file|/usr/local/}}, as opposed to LPR's default location under {{file|/usr/}}. The LPR files that CUPS uses can be set in {{file|printcap}}. LPR compilation in the world build can be disabled through {{man|src.conf|5}}&lt;br /&gt;
&lt;br /&gt;
Some programs, such as forks of OpenOffice provide their own drivers, so their printing has to be set up independently from an already working CUPS or LPR configuration.&lt;br /&gt;
&lt;br /&gt;
==Specifications, Filters, PDL's==&lt;br /&gt;
Postscript (PS) and PCL (Printer Command Language) are printer languages known as Page Description Languages (PDL's) supported by the majority of printers for interpreting and printing jobs. These two PDLs are alternate models developed by Adobe and HP respectively. PJL is another type of printer language for controlling features.&lt;br /&gt;
&lt;br /&gt;
Many programs simply output data as Postscript. A filter is often needed for different types of output formats (separate from the printer language), even when the printer understands the same printer language as a program's output (such as Postscript). Output formats that need to be converted to a printer language include: dvi, Fortran and Raster.&lt;br /&gt;
&lt;br /&gt;
Filters are useful for different types of output. Carriage returns are different for command line output from Bourne shells, MS DOS, text files and Postscript output. Without the right filters, printers can stair-step or text can otherwise be misaligned.&lt;br /&gt;
&lt;br /&gt;
Printer packaging lists its specs, often: supported PDLs, fonts and graphics formats.&lt;br /&gt;
&lt;br /&gt;
===PCL===&lt;br /&gt;
ASCII is a printer language which PCL is an extension of.&lt;br /&gt;
&lt;br /&gt;
===Postscript===&lt;br /&gt;
LPR in base, and CUPS from ports perform the same function of receiving Postscript output and sending it to Postscript capable printers. CUPS allows printers that use other PCL's to be used through Postscript via PPD (Postscript Printer Description) conversions.&lt;br /&gt;
&lt;br /&gt;
Postscript is the default for both CUPS and Apple. For the most common PDL's: Postscript is considered higher quality than PCL, so more preference is centered around it. There are also very high quality printers that don't use either of these two PDL's.&lt;br /&gt;
&lt;br /&gt;
Postscript printers cost more because of hardware and font license fees from Adobe. However, this company offers Postscript software drivers for free. (Opensource driver software is available as mentioned a few times.) HP computers that have M in the model for Macintosh are Postscript printers (one may want to confirm that the specifications say Postscript).&lt;br /&gt;
&lt;br /&gt;
Conversions for non-Postscript printers rely on PPD's, and filters.&lt;br /&gt;
&lt;br /&gt;
===Conversions===&lt;br /&gt;
Ghostscript is a substitution for PCL printers to work as if they were Postscript. Ghostscript, Foomatic and other printer suites act as filters on LPR. On CUPS, these plus Gutenprint are able to provide needed PPD's (Postscript Printer Descriptions) for varying printers.&lt;br /&gt;
&lt;br /&gt;
LPR is able to output to non-Postscript printers by using Ghostscript's {{cmd|gs}} as an input filter through printcap. Ghostscript offers a few conversion programs between Postscript and pdf files.&lt;br /&gt;
&lt;br /&gt;
Ghostscript (under AGPL) can convert Postscript outputs to printer languages which specific non-Postscript printers can interpret. In addition to PCL, Ghostscript makes ESC printers functional. LPRng includes Ghostscript for printer language conversion too. Ghostscript can be used with LPR, CUPS, or LPRng&lt;br /&gt;
&lt;br /&gt;
GhostViewer ({{port|print/gv}}) is a program for viewing Postscript output on the monitor.&lt;br /&gt;
&lt;br /&gt;
===ESC===&lt;br /&gt;
ESC/P (Epson's developed PDL) printers are used in consumer inkjet printers, as well as dot matrix, receipt, thermal, labeling and barcode printers.&lt;br /&gt;
&lt;br /&gt;
===GDI/WIN===&lt;br /&gt;
Win(dos) or GDI printers are generally incompatible with BSD's or Linux. Printers that let the software from the computer run them completely are referred to as dumb printers.&lt;br /&gt;
&lt;br /&gt;
==Components==&lt;br /&gt;
The spool holds printing jobs to be printed in order. Print jobs are held in the {{file|/var/spool}} directory.&lt;br /&gt;
&lt;br /&gt;
==References/Further Reading==&lt;br /&gt;
* FreeBSD 6 Unleashed&lt;br /&gt;
* Network Administration with FreeBSD 7&lt;br /&gt;
* Building a Server with FreeBSD 7&lt;br /&gt;
* The Complete FreeBSD (2006)&lt;br /&gt;
* https://www.cups.org/&lt;br /&gt;
* http://lprng.com&lt;br /&gt;
* http://www.wonkity.com/~wblock/docs/html/lpdprinting.html&lt;br /&gt;
* https://docs.freebsd.org/en/books/handbook/printing/&lt;br /&gt;
* https://docs.freebsd.org/en/articles/cups/&lt;br /&gt;
* https://www.informit.com/articles/article.aspx?p=167786&lt;br /&gt;
(some references are out of date, but still have relevance)&lt;br /&gt;
&lt;br /&gt;
[[Category:New User Tips and FAQs]]&lt;br /&gt;
[[Category:Configuring FreeBSD]]&lt;br /&gt;
[[Category:FreeBSD for Workstations]]&lt;/div&gt;</summary>
		<author><name>Sidetone</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Printing,_about</id>
		<title>Printing, about</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Printing,_about"/>
				<updated>2021-06-09T08:53:18Z</updated>
		
		<summary type="html">&lt;p&gt;Sidetone: /* References/Further Reading */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;About printing on FreeBSD: comparisons of printing protocols; about filters, Page Description Languages (PDL's) and printer specifications.&lt;br /&gt;
&lt;br /&gt;
==Protocols==&lt;br /&gt;
LPD (Line Printer Daemon), IPP (Internet Printing Protocol) and pdl-datastream are printer protocols defined by IETF. LPD is described by RFC 1179 (not as a standard): it uses service port 515. IPP is defined by RFC 8011 and RFC 3510: it uses service port 631. RFC 2569 is a memo on mapping between LPD and IPP. pdl-datastream on service port 9100 is for proprietary printers and proprietary local network printer servers.&lt;br /&gt;
&lt;br /&gt;
Printers can also use SMB (over Samba) as a protocol.&lt;br /&gt;
&lt;br /&gt;
==Comparison of: LPR, LPRng, CUPS==&lt;br /&gt;
LPR is the default with FreeBSD. LPRng and CUPS are successors to this legacy protocol, which have their own implementations of LPR included. These three programs use and can alter {{man|printcap|5}}. LPR and LPRng both use the LPD protocol over service port 515. The CUPS framework supports more printers than LPR and LPRng. PCL printers are more readily supported under CUPS. &lt;br /&gt;
&lt;br /&gt;
LPR requires manual set up through custom shell scripts of filters to convert plain text or other types of data, even between Postscript outputs to Postscript able printers. {{port|print/a2ps}} can simplify this task of converting ASCII to Postscript output.&lt;br /&gt;
&lt;br /&gt;
LPRng (LPR Next Generation) is an advanced replacement for LPR, and is an alternative to CUPS. It is under the GPL and Artistic licenses. IFHP determines the format and does conversions, including by use of Ghostscript. LPRng takes care of format conversions through its filters, and of Postscript output through Ghostscript. LPRng was designed to be more secure than LPR. LPRng is found at {{port|sysutils/LPRng}}. It uses {{file|printcap}}, {{file|lpd.conf}}, and {{file|lpd.perms}} for configuration.&lt;br /&gt;
&lt;br /&gt;
The default protocol that CUPS uses is IPP. In addition to IPP, CUPS also has protocol support for: LPD, SMB (Server Message Block) and pdl-datastream. CUPS originally started out over LPD.&lt;br /&gt;
&lt;br /&gt;
LPRng and CUPS software conflicts so cannot be installed together. lprng in services ({{file|rc.conf}}) requires that lpr and cupsd be disabled. LPR, LPRng and CUPS daemons can be enabled or disabled through {{file|rc.conf}}. LPR and CUPS can coexist, but only one service is needed. CUPS has its own implementation of LPR in under {{file|/usr/local/}}, as opposed to LPR's default location under {{file|/usr/}}. The LPR files that CUPS uses can be set in {{file|printcap}}. LPR compilation in the world build can be disabled through {{man|src.conf|5}}&lt;br /&gt;
&lt;br /&gt;
Some programs, such as forks of OpenOffice provide their own drivers, so their printing has to be set up independently from an already working CUPS or LPR configuration.&lt;br /&gt;
&lt;br /&gt;
==Specifications, Filters, PDL's==&lt;br /&gt;
Postscript (PS) and PCL (Printer Command Language) are printer languages known as Page Description Languages (PDL's) supported by the majority of printers for interpreting and printing jobs. These two PDLs are alternate models developed by Adobe and HP respectively. PJL is another type of printer language for controlling features.&lt;br /&gt;
&lt;br /&gt;
Many programs simply output data as Postscript. A filter is often needed for different types of output formats (separate from the printer language), even when the printer understands the same printer language as a program's output (such as Postscript). Output formats that need to be converted to a printer language include: dvi, Fortran and Raster.&lt;br /&gt;
&lt;br /&gt;
Filters are useful for different types of output. Carriage returns are different for command line output from Bourne shells, MS DOS, text files and Postscript output. Without the right filters, printers can stair-step or text can otherwise be misaligned.&lt;br /&gt;
&lt;br /&gt;
Printer packaging lists its specs, often: supported PDLs, fonts and graphics formats.&lt;br /&gt;
&lt;br /&gt;
===PCL===&lt;br /&gt;
ASCII is a printer language which PCL is an extension of.&lt;br /&gt;
&lt;br /&gt;
===Postscript===&lt;br /&gt;
LPR in base, and CUPS from ports perform the same function of receiving Postscript output and sending it to Postscript capable printers. CUPS allows printers that use other PCL's to be used through Postscript via PPD (Postscript Printer Description) conversions.&lt;br /&gt;
&lt;br /&gt;
Postscript is the default for both CUPS and Apple. For the most common PDL's: Postscript is considered higher quality than PCL, so more preference is centered around it. There are also very high quality printers that don't use either of these two PDL's.&lt;br /&gt;
&lt;br /&gt;
Postscript printers cost more because of hardware and font license fees from Adobe. However, this company offers Postscript software drivers for free. (Opensource driver software is available as mentioned a few times.) HP computers that have M in the model for Macintosh are Postscript printers (one may want to confirm that the specifications say Postscript).&lt;br /&gt;
&lt;br /&gt;
Conversions for non-Postscript printers rely on PPD's, and filters.&lt;br /&gt;
&lt;br /&gt;
===Conversions===&lt;br /&gt;
Ghostscript is a substitution for PCL printers to work as if they were Postscript. Ghostscript, Foomatic and other printer suites act as filters on LPR. On CUPS, these plus Gutenprint are able to provide needed PPD's (Postscript Printer Descriptions) for varying printers.&lt;br /&gt;
&lt;br /&gt;
LPR is able to output to non-Postscript printers by using Ghostscript's {{cmd|gs}} as an input filter through printcap. Ghostscript offers a few conversion programs between Postscript and pdf files.&lt;br /&gt;
&lt;br /&gt;
Ghostscript (under AGPL) can convert Postscript outputs to printer languages which specific non-Postscript printers can interpret. In addition to PCL, Ghostscript makes ESC printers functional. LPRng includes Ghostscript for printer language conversion too. Ghostscript can be used with LPR, CUPS, or LPRng&lt;br /&gt;
&lt;br /&gt;
GhostViewer ({{port|print/gv}}) is a program for viewing Postscript output on the monitor.&lt;br /&gt;
&lt;br /&gt;
===ESC===&lt;br /&gt;
ESC/P (Epson's developed PDL) printers are used in consumer inkjet printers, as well as dot matrix, receipt, thermal, labeling and barcode printers.&lt;br /&gt;
&lt;br /&gt;
===GDI/WIN===&lt;br /&gt;
Win(dos) or GDI printers are generally incompatible with BSD's or Linux. Printers that let the software from the computer run them completely are referred to as dumb printers.&lt;br /&gt;
&lt;br /&gt;
==Components==&lt;br /&gt;
The spool holds printing jobs to be printed in order. Print jobs are held in the {{file|/var/spool}} directory.&lt;br /&gt;
&lt;br /&gt;
==References/Further Reading==&lt;br /&gt;
* FreeBSD 6 Unleashed&lt;br /&gt;
* Network Administration with FreeBSD 7&lt;br /&gt;
* Building a Server with FreeBSD 7&lt;br /&gt;
* The Complete FreeBSD (2006)&lt;br /&gt;
* https://www.cups.org/&lt;br /&gt;
* http://lprng.com&lt;br /&gt;
* http://www.wonkity.com/~wblock/docs/html/lpdprinting.html&lt;br /&gt;
* https://docs.freebsd.org/en/books/handbook/printing/&lt;br /&gt;
* https://docs.freebsd.org/en/articles/cups/&lt;br /&gt;
* https://www.informit.com/articles/article.aspx?p=167786&lt;br /&gt;
(some references are out of date, but still have relevance)&lt;br /&gt;
&lt;br /&gt;
[[Category:New User Tips and FAQs]]&lt;br /&gt;
[[Category:Configuring FreeBSD]]&lt;/div&gt;</summary>
		<author><name>Sidetone</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Printing,_about</id>
		<title>Printing, about</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Printing,_about"/>
				<updated>2021-06-09T08:47:39Z</updated>
		
		<summary type="html">&lt;p&gt;Sidetone: /* Specifications, Filters, PDL's */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;About printing on FreeBSD: comparisons of printing protocols; about filters, Page Description Languages (PDL's) and printer specifications.&lt;br /&gt;
&lt;br /&gt;
==Protocols==&lt;br /&gt;
LPD (Line Printer Daemon), IPP (Internet Printing Protocol) and pdl-datastream are printer protocols defined by IETF. LPD is described by RFC 1179 (not as a standard): it uses service port 515. IPP is defined by RFC 8011 and RFC 3510: it uses service port 631. RFC 2569 is a memo on mapping between LPD and IPP. pdl-datastream on service port 9100 is for proprietary printers and proprietary local network printer servers.&lt;br /&gt;
&lt;br /&gt;
Printers can also use SMB (over Samba) as a protocol.&lt;br /&gt;
&lt;br /&gt;
==Comparison of: LPR, LPRng, CUPS==&lt;br /&gt;
LPR is the default with FreeBSD. LPRng and CUPS are successors to this legacy protocol, which have their own implementations of LPR included. These three programs use and can alter {{man|printcap|5}}. LPR and LPRng both use the LPD protocol over service port 515. The CUPS framework supports more printers than LPR and LPRng. PCL printers are more readily supported under CUPS. &lt;br /&gt;
&lt;br /&gt;
LPR requires manual set up through custom shell scripts of filters to convert plain text or other types of data, even between Postscript outputs to Postscript able printers. {{port|print/a2ps}} can simplify this task of converting ASCII to Postscript output.&lt;br /&gt;
&lt;br /&gt;
LPRng (LPR Next Generation) is an advanced replacement for LPR, and is an alternative to CUPS. It is under the GPL and Artistic licenses. IFHP determines the format and does conversions, including by use of Ghostscript. LPRng takes care of format conversions through its filters, and of Postscript output through Ghostscript. LPRng was designed to be more secure than LPR. LPRng is found at {{port|sysutils/LPRng}}. It uses {{file|printcap}}, {{file|lpd.conf}}, and {{file|lpd.perms}} for configuration.&lt;br /&gt;
&lt;br /&gt;
The default protocol that CUPS uses is IPP. In addition to IPP, CUPS also has protocol support for: LPD, SMB (Server Message Block) and pdl-datastream. CUPS originally started out over LPD.&lt;br /&gt;
&lt;br /&gt;
LPRng and CUPS software conflicts so cannot be installed together. lprng in services ({{file|rc.conf}}) requires that lpr and cupsd be disabled. LPR, LPRng and CUPS daemons can be enabled or disabled through {{file|rc.conf}}. LPR and CUPS can coexist, but only one service is needed. CUPS has its own implementation of LPR in under {{file|/usr/local/}}, as opposed to LPR's default location under {{file|/usr/}}. The LPR files that CUPS uses can be set in {{file|printcap}}. LPR compilation in the world build can be disabled through {{man|src.conf|5}}&lt;br /&gt;
&lt;br /&gt;
Some programs, such as forks of OpenOffice provide their own drivers, so their printing has to be set up independently from an already working CUPS or LPR configuration.&lt;br /&gt;
&lt;br /&gt;
==Specifications, Filters, PDL's==&lt;br /&gt;
Postscript (PS) and PCL (Printer Command Language) are printer languages known as Page Description Languages (PDL's) supported by the majority of printers for interpreting and printing jobs. These two PDLs are alternate models developed by Adobe and HP respectively. PJL is another type of printer language for controlling features.&lt;br /&gt;
&lt;br /&gt;
Many programs simply output data as Postscript. A filter is often needed for different types of output formats (separate from the printer language), even when the printer understands the same printer language as a program's output (such as Postscript). Output formats that need to be converted to a printer language include: dvi, Fortran and Raster.&lt;br /&gt;
&lt;br /&gt;
Filters are useful for different types of output. Carriage returns are different for command line output from Bourne shells, MS DOS, text files and Postscript output. Without the right filters, printers can stair-step or text can otherwise be misaligned.&lt;br /&gt;
&lt;br /&gt;
Printer packaging lists its specs, often: supported PDLs, fonts and graphics formats.&lt;br /&gt;
&lt;br /&gt;
===PCL===&lt;br /&gt;
ASCII is a printer language which PCL is an extension of.&lt;br /&gt;
&lt;br /&gt;
===Postscript===&lt;br /&gt;
LPR in base, and CUPS from ports perform the same function of receiving Postscript output and sending it to Postscript capable printers. CUPS allows printers that use other PCL's to be used through Postscript via PPD (Postscript Printer Description) conversions.&lt;br /&gt;
&lt;br /&gt;
Postscript is the default for both CUPS and Apple. For the most common PDL's: Postscript is considered higher quality than PCL, so more preference is centered around it. There are also very high quality printers that don't use either of these two PDL's.&lt;br /&gt;
&lt;br /&gt;
Postscript printers cost more because of hardware and font license fees from Adobe. However, this company offers Postscript software drivers for free. (Opensource driver software is available as mentioned a few times.) HP computers that have M in the model for Macintosh are Postscript printers (one may want to confirm that the specifications say Postscript).&lt;br /&gt;
&lt;br /&gt;
Conversions for non-Postscript printers rely on PPD's, and filters.&lt;br /&gt;
&lt;br /&gt;
===Conversions===&lt;br /&gt;
Ghostscript is a substitution for PCL printers to work as if they were Postscript. Ghostscript, Foomatic and other printer suites act as filters on LPR. On CUPS, these plus Gutenprint are able to provide needed PPD's (Postscript Printer Descriptions) for varying printers.&lt;br /&gt;
&lt;br /&gt;
LPR is able to output to non-Postscript printers by using Ghostscript's {{cmd|gs}} as an input filter through printcap. Ghostscript offers a few conversion programs between Postscript and pdf files.&lt;br /&gt;
&lt;br /&gt;
Ghostscript (under AGPL) can convert Postscript outputs to printer languages which specific non-Postscript printers can interpret. In addition to PCL, Ghostscript makes ESC printers functional. LPRng includes Ghostscript for printer language conversion too. Ghostscript can be used with LPR, CUPS, or LPRng&lt;br /&gt;
&lt;br /&gt;
GhostViewer ({{port|print/gv}}) is a program for viewing Postscript output on the monitor.&lt;br /&gt;
&lt;br /&gt;
===ESC===&lt;br /&gt;
ESC/P (Epson's developed PDL) printers are used in consumer inkjet printers, as well as dot matrix, receipt, thermal, labeling and barcode printers.&lt;br /&gt;
&lt;br /&gt;
===GDI/WIN===&lt;br /&gt;
Win(dos) or GDI printers are generally incompatible with BSD's or Linux. Printers that let the software from the computer run them completely are referred to as dumb printers.&lt;br /&gt;
&lt;br /&gt;
==Components==&lt;br /&gt;
The spool holds printing jobs to be printed in order. Print jobs are held in the {{file|/var/spool}} directory.&lt;br /&gt;
&lt;br /&gt;
==References/Further Reading==&lt;br /&gt;
* FreeBSD 6 Unleashed&lt;br /&gt;
* Network Administration with FreeBSD 7&lt;br /&gt;
* Building a Server with FreeBSD 7&lt;br /&gt;
* The Complete FreeBSD (2006)&lt;br /&gt;
* https://www.cups.org/&lt;br /&gt;
* http://lprng.com&lt;br /&gt;
* http://www.wonkity.com/~wblock/docs/html/lpdprinting.html&lt;br /&gt;
* https://docs.freebsd.org/en/books/handbook/printing/&lt;br /&gt;
* https://docs.freebsd.org/en/articles/cups/&lt;br /&gt;
* https://www.informit.com/articles/article.aspx?p=167786&lt;br /&gt;
(some are out of date, but still have relevance)&lt;br /&gt;
&lt;br /&gt;
[[Category:New User Tips and FAQs]]&lt;br /&gt;
[[Category:Configuring FreeBSD]]&lt;/div&gt;</summary>
		<author><name>Sidetone</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Printing,_about</id>
		<title>Printing, about</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Printing,_about"/>
				<updated>2021-06-09T08:44:44Z</updated>
		
		<summary type="html">&lt;p&gt;Sidetone: /* Comparison of: LPR, LPRng, CUPS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;About printing on FreeBSD: comparisons of printing protocols; about filters, Page Description Languages (PDL's) and printer specifications.&lt;br /&gt;
&lt;br /&gt;
==Protocols==&lt;br /&gt;
LPD (Line Printer Daemon), IPP (Internet Printing Protocol) and pdl-datastream are printer protocols defined by IETF. LPD is described by RFC 1179 (not as a standard): it uses service port 515. IPP is defined by RFC 8011 and RFC 3510: it uses service port 631. RFC 2569 is a memo on mapping between LPD and IPP. pdl-datastream on service port 9100 is for proprietary printers and proprietary local network printer servers.&lt;br /&gt;
&lt;br /&gt;
Printers can also use SMB (over Samba) as a protocol.&lt;br /&gt;
&lt;br /&gt;
==Comparison of: LPR, LPRng, CUPS==&lt;br /&gt;
LPR is the default with FreeBSD. LPRng and CUPS are successors to this legacy protocol, which have their own implementations of LPR included. These three programs use and can alter {{man|printcap|5}}. LPR and LPRng both use the LPD protocol over service port 515. The CUPS framework supports more printers than LPR and LPRng. PCL printers are more readily supported under CUPS. &lt;br /&gt;
&lt;br /&gt;
LPR requires manual set up through custom shell scripts of filters to convert plain text or other types of data, even between Postscript outputs to Postscript able printers. {{port|print/a2ps}} can simplify this task of converting ASCII to Postscript output.&lt;br /&gt;
&lt;br /&gt;
LPRng (LPR Next Generation) is an advanced replacement for LPR, and is an alternative to CUPS. It is under the GPL and Artistic licenses. IFHP determines the format and does conversions, including by use of Ghostscript. LPRng takes care of format conversions through its filters, and of Postscript output through Ghostscript. LPRng was designed to be more secure than LPR. LPRng is found at {{port|sysutils/LPRng}}. It uses {{file|printcap}}, {{file|lpd.conf}}, and {{file|lpd.perms}} for configuration.&lt;br /&gt;
&lt;br /&gt;
The default protocol that CUPS uses is IPP. In addition to IPP, CUPS also has protocol support for: LPD, SMB (Server Message Block) and pdl-datastream. CUPS originally started out over LPD.&lt;br /&gt;
&lt;br /&gt;
LPRng and CUPS software conflicts so cannot be installed together. lprng in services ({{file|rc.conf}}) requires that lpr and cupsd be disabled. LPR, LPRng and CUPS daemons can be enabled or disabled through {{file|rc.conf}}. LPR and CUPS can coexist, but only one service is needed. CUPS has its own implementation of LPR in under {{file|/usr/local/}}, as opposed to LPR's default location under {{file|/usr/}}. The LPR files that CUPS uses can be set in {{file|printcap}}. LPR compilation in the world build can be disabled through {{man|src.conf|5}}&lt;br /&gt;
&lt;br /&gt;
Some programs, such as forks of OpenOffice provide their own drivers, so their printing has to be set up independently from an already working CUPS or LPR configuration.&lt;br /&gt;
&lt;br /&gt;
==Specifications, Filters, PDL's==&lt;br /&gt;
Postscript (PS) and PCL (Printer Command Language) are printer languages known as Page Description Languages (PDL's) supported by the majority of printers for interpreting and printing jobs. These two PDLs are alternate models developed by Adobe and HP respectively. PJL is another type of printer language for controlling features.&lt;br /&gt;
&lt;br /&gt;
Many programs simply output data as Postscript. A filter is often needed for different types of output formats (separate from the printer language), even when the printer understands the same printer language as a program's output (such as Postscript). Output formats that need to be converted to a printer language include: dvi, Fortran and Raster.&lt;br /&gt;
&lt;br /&gt;
Filters are useful for different types of output. Carriage returns are different for command line output from Bourne shells, MS DOS, text files and Postscript output. Without the right filters, printers can stair-step or text can otherwise be misaligned.&lt;br /&gt;
&lt;br /&gt;
Printer packaging lists its specs, often: supported PDLs, fonts and graphics formats.&lt;br /&gt;
&lt;br /&gt;
===PCL===&lt;br /&gt;
ASCII is a printer language which PCL is an extension of.&lt;br /&gt;
&lt;br /&gt;
===Postscript===&lt;br /&gt;
LPR in base, and CUPS from ports perform the same function of receiving Postscript output and sending it to Postscript capable printers. CUPS allows printers that use other PCL's to be used through Postscript via PPD conversions.&lt;br /&gt;
&lt;br /&gt;
Postscript is the default for both CUPS and Apple. For the most common PDL's: Postscript is considered higher quality than PCL, so more preference is centered around it. There are also very high quality printers that don't use either of these two PDL's.&lt;br /&gt;
&lt;br /&gt;
Postscript printers cost more because of hardware and font license fees from Adobe. However, this company offers Postscript software drivers for free. (Opensource driver software is available as mentioned a few times.) HP computers that have M in the model for Macintosh are Postscript printers (one may want to confirm that the specifications say Postscript).&lt;br /&gt;
&lt;br /&gt;
Conversions for non-Postscript printers rely on PPD's, and filters.&lt;br /&gt;
&lt;br /&gt;
===Conversions===&lt;br /&gt;
Ghostscript is a substitution for PCL printers to work as if they were Postscript. Ghostscript, Foomatic and other printer suites act as filters on LPR. On CUPS, these plus Gutenprint are able to provide needed PPD's for varying printers.&lt;br /&gt;
&lt;br /&gt;
LPR is able to output to non-Postscript printers by using Ghostscript's {{cmd|gs}} as an input filter through printcap. Ghostscript offers a few conversion programs between Postscript and pdf files.&lt;br /&gt;
&lt;br /&gt;
Ghostscript (under AGPL) can convert Postscript outputs to printer languages which specific non-Postscript printers can interpret. In addition to PCL, Ghostscript makes ESC printers functional. LPRng includes Ghostscript for printer language conversion too. Ghostscript can be used with LPR, CUPS, or LPRng&lt;br /&gt;
&lt;br /&gt;
GhostViewer ({{port|print/gv}}) is a program for viewing Postscript output on the monitor.&lt;br /&gt;
&lt;br /&gt;
===ESC===&lt;br /&gt;
ESC/P (Epson's developed PDL) printers are used in consumer inkjet printers, as well as dot matrix, receipt, thermal, labeling and barcode printers.&lt;br /&gt;
&lt;br /&gt;
===GDI/WIN===&lt;br /&gt;
Win(dos) or GDI printers are generally incompatible with BSD's or Linux. Printers that let the software from the computer run them completely are referred to as dumb printers.&lt;br /&gt;
&lt;br /&gt;
==Components==&lt;br /&gt;
The spool holds printing jobs to be printed in order. Print jobs are held in the {{file|/var/spool}} directory.&lt;br /&gt;
&lt;br /&gt;
==References/Further Reading==&lt;br /&gt;
* FreeBSD 6 Unleashed&lt;br /&gt;
* Network Administration with FreeBSD 7&lt;br /&gt;
* Building a Server with FreeBSD 7&lt;br /&gt;
* The Complete FreeBSD (2006)&lt;br /&gt;
* https://www.cups.org/&lt;br /&gt;
* http://lprng.com&lt;br /&gt;
* http://www.wonkity.com/~wblock/docs/html/lpdprinting.html&lt;br /&gt;
* https://docs.freebsd.org/en/books/handbook/printing/&lt;br /&gt;
* https://docs.freebsd.org/en/articles/cups/&lt;br /&gt;
* https://www.informit.com/articles/article.aspx?p=167786&lt;br /&gt;
(some are out of date, but still have relevance)&lt;br /&gt;
&lt;br /&gt;
[[Category:New User Tips and FAQs]]&lt;br /&gt;
[[Category:Configuring FreeBSD]]&lt;/div&gt;</summary>
		<author><name>Sidetone</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Printing,_about</id>
		<title>Printing, about</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Printing,_about"/>
				<updated>2021-06-09T08:24:45Z</updated>
		
		<summary type="html">&lt;p&gt;Sidetone: /* Conversions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;About printing on FreeBSD: comparisons of printing protocols; about filters, Page Description Languages (PDL's) and printer specifications.&lt;br /&gt;
&lt;br /&gt;
==Protocols==&lt;br /&gt;
LPD (Line Printer Daemon), IPP (Internet Printing Protocol) and pdl-datastream are printer protocols defined by IETF. LPD is described by RFC 1179 (not as a standard): it uses service port 515. IPP is defined by RFC 8011 and RFC 3510: it uses service port 631. RFC 2569 is a memo on mapping between LPD and IPP. pdl-datastream on service port 9100 is for proprietary printers and proprietary local network printer servers.&lt;br /&gt;
&lt;br /&gt;
Printers can also use SMB (over Samba) as a protocol.&lt;br /&gt;
&lt;br /&gt;
==Comparison of: LPR, LPRng, CUPS==&lt;br /&gt;
LPR is the default with FreeBSD. LPRng and CUPS are successors to this legacy protocol, which have their own implementations of LPR included. These three programs use and can alter {{man|printcap|5}}. LPR and LPRng both use the LPD protocol over service port 515. The CUPS framework supports more printers than LPR and LPRng. PCL printers are more readily supported under CUPS. &lt;br /&gt;
&lt;br /&gt;
LPR requires manual set up through custom shell scripts of filters to convert plain text or other types of data, even between Postscript outputs to Postscript able printers. {{port|print/a2ps}} can simplify this task of converting ASCII to Postscript output.&lt;br /&gt;
&lt;br /&gt;
LPRng (LPR Next Generation) is an advanced replacement for LPR, and is an alternative to CUPS. It is under the GPL and Artistic licenses. IFHP determines the format and does conversions, including by use of Ghostscript. LPRng takes care of format conversions through its filters, and of Postscript output through Ghostscript. LPRng was designed to be more secure than LPR. LPRng is found at {{port|sysutils/LPRng}}. It uses {{file|printcap}}, {{file|lpd.conf}}, and {{file|lpd.perms}} for configuration.&lt;br /&gt;
&lt;br /&gt;
The default protocol that CUPS uses is IPP. In addition to IPP, CUPS also has protocol support for: LPD, SMB (Server Message Block) and pdl-datastream. CUPS originally started out over LPD.&lt;br /&gt;
&lt;br /&gt;
LPRng and CUPS software conflicts so cannot be installed together. lprng in services ({{file|rc.conf}}) requires that lpr and cupsd be disabled. LPR, LPRng and CUPS daemons can be enabled or disabled through {{file|rc.conf}}. LPR and CUPS can coexist, but only one service is needed. LPR compilation in the world build can be disabled through {{man|src.conf|5}}&lt;br /&gt;
&lt;br /&gt;
Some programs, such as forks of OpenOffice provide their own drivers, so their printing has to be set up independently from an already working CUPS or LPR configuration.&lt;br /&gt;
&lt;br /&gt;
==Specifications, Filters, PDL's==&lt;br /&gt;
Postscript (PS) and PCL (Printer Command Language) are printer languages known as Page Description Languages (PDL's) supported by the majority of printers for interpreting and printing jobs. These two PDLs are alternate models developed by Adobe and HP respectively. PJL is another type of printer language for controlling features.&lt;br /&gt;
&lt;br /&gt;
Many programs simply output data as Postscript. A filter is often needed for different types of output formats (separate from the printer language), even when the printer understands the same printer language as a program's output (such as Postscript). Output formats that need to be converted to a printer language include: dvi, Fortran and Raster.&lt;br /&gt;
&lt;br /&gt;
Filters are useful for different types of output. Carriage returns are different for command line output from Bourne shells, MS DOS, text files and Postscript output. Without the right filters, printers can stair-step or text can otherwise be misaligned.&lt;br /&gt;
&lt;br /&gt;
Printer packaging lists its specs, often: supported PDLs, fonts and graphics formats.&lt;br /&gt;
&lt;br /&gt;
===PCL===&lt;br /&gt;
ASCII is a printer language which PCL is an extension of.&lt;br /&gt;
&lt;br /&gt;
===Postscript===&lt;br /&gt;
LPR in base, and CUPS from ports perform the same function of receiving Postscript output and sending it to Postscript capable printers. CUPS allows printers that use other PCL's to be used through Postscript via PPD conversions.&lt;br /&gt;
&lt;br /&gt;
Postscript is the default for both CUPS and Apple. For the most common PDL's: Postscript is considered higher quality than PCL, so more preference is centered around it. There are also very high quality printers that don't use either of these two PDL's.&lt;br /&gt;
&lt;br /&gt;
Postscript printers cost more because of hardware and font license fees from Adobe. However, this company offers Postscript software drivers for free. (Opensource driver software is available as mentioned a few times.) HP computers that have M in the model for Macintosh are Postscript printers (one may want to confirm that the specifications say Postscript).&lt;br /&gt;
&lt;br /&gt;
Conversions for non-Postscript printers rely on PPD's, and filters.&lt;br /&gt;
&lt;br /&gt;
===Conversions===&lt;br /&gt;
Ghostscript is a substitution for PCL printers to work as if they were Postscript. Ghostscript, Foomatic and other printer suites act as filters on LPR. On CUPS, these plus Gutenprint are able to provide needed PPD's for varying printers.&lt;br /&gt;
&lt;br /&gt;
LPR is able to output to non-Postscript printers by using Ghostscript's {{cmd|gs}} as an input filter through printcap. Ghostscript offers a few conversion programs between Postscript and pdf files.&lt;br /&gt;
&lt;br /&gt;
Ghostscript (under AGPL) can convert Postscript outputs to printer languages which specific non-Postscript printers can interpret. In addition to PCL, Ghostscript makes ESC printers functional. LPRng includes Ghostscript for printer language conversion too. Ghostscript can be used with LPR, CUPS, or LPRng&lt;br /&gt;
&lt;br /&gt;
GhostViewer ({{port|print/gv}}) is a program for viewing Postscript output on the monitor.&lt;br /&gt;
&lt;br /&gt;
===ESC===&lt;br /&gt;
ESC/P (Epson's developed PDL) printers are used in consumer inkjet printers, as well as dot matrix, receipt, thermal, labeling and barcode printers.&lt;br /&gt;
&lt;br /&gt;
===GDI/WIN===&lt;br /&gt;
Win(dos) or GDI printers are generally incompatible with BSD's or Linux. Printers that let the software from the computer run them completely are referred to as dumb printers.&lt;br /&gt;
&lt;br /&gt;
==Components==&lt;br /&gt;
The spool holds printing jobs to be printed in order. Print jobs are held in the {{file|/var/spool}} directory.&lt;br /&gt;
&lt;br /&gt;
==References/Further Reading==&lt;br /&gt;
* FreeBSD 6 Unleashed&lt;br /&gt;
* Network Administration with FreeBSD 7&lt;br /&gt;
* Building a Server with FreeBSD 7&lt;br /&gt;
* The Complete FreeBSD (2006)&lt;br /&gt;
* https://www.cups.org/&lt;br /&gt;
* http://lprng.com&lt;br /&gt;
* http://www.wonkity.com/~wblock/docs/html/lpdprinting.html&lt;br /&gt;
* https://docs.freebsd.org/en/books/handbook/printing/&lt;br /&gt;
* https://docs.freebsd.org/en/articles/cups/&lt;br /&gt;
* https://www.informit.com/articles/article.aspx?p=167786&lt;br /&gt;
(some are out of date, but still have relevance)&lt;br /&gt;
&lt;br /&gt;
[[Category:New User Tips and FAQs]]&lt;br /&gt;
[[Category:Configuring FreeBSD]]&lt;/div&gt;</summary>
		<author><name>Sidetone</name></author>	</entry>

	</feed>