summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--hardcopy/XPRINT/Xprint_FAQ.html3080
-rw-r--r--hardcopy/XPRINT/Xprint_FAQ.txt3113
-rw-r--r--hardcopy/XPRINT/Xprint_FAQ.xml4698
-rw-r--r--hardcopy/XPRINT/Xprint_old_FAQ.txt1634
-rw-r--r--hardcopy/XPRINT/docbook.css570
-rw-r--r--hardcopy/XPRINT/dtprint_fspec.PS.gzbin0 -> 268569 bytes
6 files changed, 13095 insertions, 0 deletions
diff --git a/hardcopy/XPRINT/Xprint_FAQ.html b/hardcopy/XPRINT/Xprint_FAQ.html
new file mode 100644
index 0000000..cfeaa57
--- /dev/null
+++ b/hardcopy/XPRINT/Xprint_FAQ.html
@@ -0,0 +1,3080 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Xprint Frequently Asked Questions</title><meta name="generator" content="DocBook XSL Stylesheets V1.62.4"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="article" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="id2873366"></a>Xprint Frequently Asked Questions</h1></div></div><div></div><hr></div><div xmlns:ns1="" class="abstract"><a name="about"></a><p class="title"><b>About this FAQ</b></p><p>
+ Archive-name: Xprint/FAQ
+ </p><p>
+ Version: 0.9
+ </p><p>
+ Last-Modified: 2004/02/16 04:15:16
+ </p><p>
+ Maintained-by:
+ <span class="othercredit"><span class="firstname">Roland</span> <span class="surname">Mainz</span></span>
+ <tt class="email">&lt;<a href="mailto:roland.mainz@nrubsig.org">roland.mainz@nrubsig.org</a>&gt;</tt>
+ </p><p>
+ The following is a list of questions that are frequently asked about
+ Xprint.
+ </p><p>
+ You can help make it an even better-quality FAQ by writing a short
+ contribution or update and sending it BY EMAIL ONLY to me.
+ A contribution should consist of a question and an answer, and increasing
+ number of people sends me contributions of the form &quot;I don't know the
+ answer to this, but it must be a FAQ, please answer it for me&quot;. Please
+ read the FAQ first (including the item &quot;<a href="#getting_help">Getting Help</a>&quot;)
+ and then feel free to ask me if it is not in the FAQ.
+ </p><p>
+ Thanks!
+ </p><p>
+ The latest Xprint FAQ and some other goodies can be obtained through http from
+ <a href="http://xprint.mozdev.org/lxr/http/source/xprint/src/xprint_main/xc/doc/hardcopy/XPRINT/Xprint_FAQ.html" target="_top">
+ http://xprint.mozdev.org/lxr/http/source/xprint/src/xprint_main/xc/doc/hardcopy/XPRINT/Xprint_FAQ.html
+ </a>
+ or
+ <a href="http://xprint.mozdev.org/lxr/http/source/xprint/src/xprint_main/xc/doc/hardcopy/XPRINT/Xprint_FAQ.txt" target="_top">
+ http://xprint.mozdev.org/lxr/http/source/xprint/src/xprint_main/xc/doc/hardcopy/XPRINT/Xprint_FAQ.txt
+ </a>
+ (the DocBook/XML master source file is
+ <a href="http://xprint.mozdev.org/lxr/http/source/xprint/src/xprint_main/xc/doc/hardcopy/XPRINT/Xprint_FAQ.xml" target="_top">
+ http://xprint.mozdev.org/lxr/http/source/xprint/src/xprint_main/xc/doc/hardcopy/XPRINT/Xprint_FAQ.xml
+ </a>).
+ </p><p>
+ </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
+ Note that the FAQ has not been finished yet (nor is it half-finished...),
+ many items marked with &quot;XXX&quot; as the answer have still to be written (or have
+ to be copy&amp;pasted from my item collection... <tt class="literal">:)</tt>
+ </p></div><p>
+ </p></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="faq"></a>Frequently Asked Questions with Answers</h2></div></div><div></div></div><div class="qandaset"><dl><dt>1. <a href="#faq_general">General</a></dt><dd><dl><dt>Q: <a href="#what_is_xprint">
+ What is &quot;Xprint&quot; ?
+ </a></dt><dt>Q: <a href="#where_can_i_get_xprint_from">
+ Where can I get Xprint/Xprt from ?
+ </a></dt><dt>Q: <a href="#what_is_xprt">
+ What is &quot;Xprt&quot; ?
+ </a></dt><dt>Q: <a href="#getting_help">
+ Where can I get help for problems with Xprint ?
+ </a></dt><dt>Q: <a href="#advantages_of_xprint">
+ &quot;Why do some people like Xprint ?&quot; / &quot;What are the advantages of Xprint ?&quot;
+ </a></dt><dt>Q: <a href="#contra_xprint">
+ Why do some people dislike Xprint ?
+ </a></dt><dt>Q: <a href="#does_xprint_support_anti_aliased_fonts">
+ Does Xprint support anti-aliased fonts ?
+ </a></dt><dt>Q: <a href="#id2808353">
+ How can I check if Xprint is working and should be used ?
+ </a></dt><dt>Q: <a href="#how_can_i_view_postscript_files">
+ How can I view PS(=PostScript) files ?
+ </a></dt><dt>Q: <a href="#how_can_i_view_pcl_files">
+ How can I view PCL files ?
+ </a></dt><dt>Q: <a href="#id2808532">
+ How does Xprt find fonts ?
+ </a></dt><dt>Q: <a href="#id2808607">
+ How can I print TrueType fonts with Xprint ?
+ </a></dt><dt>Q: <a href="#what_does_ddx_mean">
+ What does &quot;DDX&quot; mean ?
+ </a></dt><dt>Q: <a href="#what_does_dix_mean">
+ What does &quot;DIX&quot; mean ?
+ </a></dt><dt>Q: <a href="#what_does_pdl_mean">
+ What does &quot;PDL&quot; mean ?
+ </a></dt><dt>Q: <a href="#id2808848">
+ I have twenty printers installed on my system - but Xprt only shows two
+ screens. Where are all the other printers ?
+ </a></dt><dt>Q: <a href="#platforms_supported_by_xprint">
+ Which platforms support Xprint ?
+ </a></dt><dt>Q: <a href="#id2808945">
+ I have the broken Xfree86 Xprt binary on my system. Do I need a new
+ version of libXp.so (the client side X11 extension library for Xprint),
+ too ?
+ </a></dt><dt>Q: <a href="#who_do_i_spell_xprint">
+ Which spelling is correct - &quot;Xprint&quot;, &quot;XPrint&quot;, &quot;Xprinter&quot; or Xprt&quot; ?
+ </a></dt><dt>Q: <a href="#id2809018">
+ Which applications support Xprint ?
+ </a></dt><dt>Q: <a href="#is_xprint_only_for_mozilla">
+ Is &quot;Xprint&quot; &quot;mozilla&quot;-only (I saw that it's hosted by mozdev.org) ?
+ </a></dt><dt>Q: <a href="#id2809195">
+ Under which license is the source code from xprint.mozdev.org distributed under ?
+ </a></dt></dl></dd><dt>2. <a href="#faq_usage">Usage</a></dt><dd><dl><dt>Q: <a href="#id2809283">
+ How do I configure Xprint on the client side ?
+ </a></dt><dt>Q: <a href="#how_do_i_start_xprt">
+ How do I start Xprt ?
+ </a></dt><dt>Q: <a href="#id2874114">
+ How can I get a list of printers managed by Xprint ?
+ </a></dt><dt>Q: <a href="#id2874216">
+ How can I start Xprt at boot time ?
+ </a></dt><dt>Q: <a href="#id2874249">
+ How can I start Xprt per-user ?
+ </a></dt><dt>Q: <a href="#id2874282">
+ How can I start Xprt only for one application ?
+ </a></dt><dt>Q: <a href="#id2874315">
+ How can I filter the font path which should be passed to Xprt for
+ certain fonts ?
+ </a></dt><dt>Q: <a href="#id2874337">
+ How can I manage access control to the Xprt server ?
+ </a></dt><dt>Q: <a href="#id2874435">
+ How can I log access to the Xprt server ?
+ </a></dt><dt>Q: <a href="#id2874468">
+ Does it require &quot;root&quot; permissions to use Xprt/Xprint ?
+ </a></dt><dt>Q: <a href="#id2874511">
+ How can I see the attributes of a printer managed by Xprint ?
+ </a></dt><dt>Q: <a href="#how_can_i_list_the_font_path_used_by_xprint">
+ How can I list the font path used by a Xprt server ?
+ </a></dt><dt>Q: <a href="#id2874641">
+ &quot;xset q&quot; lists all model-specific font dirs (like
+ PRINTER:/myxpcfg/C/print/models/SPSPARC2/fonts/&quot;) - is that a bug ?
+ </a></dt><dt>Q: <a href="#id2874690">
+ My application lists a printer called &quot;xp_ps_spooldir_tmp_Xprintjobs&quot; /
+ &quot;xp_pdf_spooldir_tmp_Xprintjobs&quot; / &quot;spooldir_tmp_Xprintjobs&quot; / in the
+ print dialog but I do not have such a print queue installed anywhere.
+ What is that for a thing ?!
+ </a></dt><dt>Q: <a href="#manual_xprint_forwarding_via_ssh">
+ How can I forward Xprint services when logging-in via ssh to another machine ?
+ </a></dt></dl></dd><dt>3. <a href="#faq_configuration">Configuration</a></dt><dd><dl><dt>Q: <a href="#id2875040">
+ How do I change the defaults for double-sided/single-sided/etc.
+ printing ?
+ </a></dt><dt>Q: <a href="#id2875227">
+ I am in America and I don't have any ISO A4 paper. How do I change the
+ default paper size to 8.5 inch x 11 inch (US-Letter) ?
+ </a></dt><dt>Q: <a href="#id2875790">
+ How do I change the default printer resolution ?
+ </a></dt><dt>Q: <a href="#id2876121">
+ How do I change the default settings for &quot;portrait&quot;/&quot;landscape&quot;/&quot;seascape&quot; (=page orientation) ?
+ </a></dt><dt>Q: <a href="#id2876311">
+ How can I prevent Xprt from using any bitmap(=gfx) fonts ?
+ </a></dt><dt>Q: <a href="#configure_manual_list_of_printers">
+ I want only my manually added printers managed by Xprint. How can I
+ prevent Xprt from looking-up the printer names automatically ?
+ </a></dt><dt>Q: <a href="#configure_custom_script_to_enumerate_system_printers">
+ How can I specify an own program/script to enumerate the printers on my system ?
+ </a></dt><dt>Q: <a href="#id2876663">
+ Which program is used by default by Xprt to enumerate the printers on my system ?
+ </a></dt><dt>Q: <a href="#id2876920">
+ Where can I get more PostScript Type1 fonts from ?
+ </a></dt><dt>Q: <a href="#id2877269">
+ What are PMF fonts (e.g. the *.pmf fonts in
+ ${XPCONFIGDIR}/C/print/models/%model_name%/fonts/ (or
+ ${XPCONFIGDIR}/${LANG}/print/models/%model_name%/fonts/)) ?
+ </a></dt><dt>Q: <a href="#id2877348">
+ Can I use the fontserver (&quot;xfs&quot;) with Xprt ?
+ </a></dt><dt>Q: <a href="#id2877411">
+ What is a &quot;model-config&quot; ?
+ </a></dt><dt>Q: <a href="#id2877522">
+ Where can I store the default values for printers ?
+ </a></dt><dt>Q: <a href="#id2877544">
+ How can I create my own model-config ?
+ </a></dt><dt>Q: <a href="#id2877566">
+ How can I create my own PMF &quot;fonts&quot; ?
+ </a></dt><dt>Q: <a href="#id2877607">
+ Where can I get more model-configs from ?
+ </a></dt><dt>Q: <a href="#id2877668">
+ If I install Xprt &amp;co. as &quot;root&quot; in the default location and don't need
+ to set ${XPCONFIGDIR} - where are my configuration files located then ?
+ </a></dt><dt>Q: <a href="#id2877813">
+ Are config files and/or the PMF fonts architecture dependent ?
+ </a></dt><dt>Q: <a href="#id2877882">
+ Can I localise my Xprint/Xprt configuration (l10n) ?
+ </a></dt><dt>Q: <a href="#id2878167">
+ Can I execute my own scripts to process the PostScript files generated
+ by Xprt ?
+ </a></dt><dt>Q: <a href="#id2878373">
+ How can I disable &quot;xp_ps_spooldir_tmp_Xprintjobs&quot; / &quot;xp_pdf_spooldir_tmp_Xprintjobs&quot; printer targets ?
+ </a></dt></dl></dd><dt>4. <a href="#faq_troubleshooting">Troubleshooting</a></dt><dd><dl><dt>Q: <a href="#id2878443">
+ Xprt refuses to start with the message &quot;sh: lpc: command not found&quot; on
+ my Linux machine. What does that mean ?
+ </a></dt><dt>Q: <a href="#id2878532">
+ When the application (=client side) tries to connect to the Xprt
+ (Xserver) side it fails with a
+
+Xlib: connection to &quot;meridian:52.0&quot; refused by server
+Xlib: Client is not authorized to connect to Server
+
+ What does that mean ?
+ </a></dt><dt>Q: <a href="#id2878802">
+ Xprt refuses to start with the message &quot;failed to set default font path
+ '...' Fatal server error: could not open default font 'fixed'&quot;.
+ What does that mean ?
+ </a></dt><dt>Q: <a href="#id2878900">
+ Just copying my fonts into a directory and adding the path to my Xprt
+ command line didn't work - I always get &quot;Fatal server error: could not
+ open default font 'fixed'&quot;. What am I doing wrong ?
+ </a></dt><dt>Q: <a href="#id2879012">
+ Xprt refuses to start with the message &quot;Fatal server error: Cannot
+ establish any listening sockets - Make sure an X server isn't already
+ running&quot;. What does that mean ?
+ </a></dt><dt>Q: <a href="#id2879040">
+ Xprt refuses to start with the message &quot;Fatal server error: Failed to
+ establish all listening sockets&quot;. What does that mean ?
+ </a></dt><dt>Q: <a href="#id2879085">
+ Xprt refuses to start with the message &quot;Fatal server error: could not
+ open default font 'fixed'&quot; or &quot;Fatal server error: could not open default
+ cursor font 'cursor'&quot;.
+ </a></dt><dt>Q: <a href="#id2879112">
+ Xprt refuses to start with the message &quot;Fatal server error: no screens
+ found&quot;. What does that mean ?
+ </a></dt><dt>Q: <a href="#printout_only_covers_1_4_of_the_paper">
+ &quot;Printing itself works but the printout covers only 1/4 of the paper - what am I doing wrong ?&quot;
+ </a></dt><dt>Q: <a href="#id2879502">
+ &quot;Printing works but I get large borders/margins...&quot; / &quot;[Top] margin is too small&quot; /
+ &quot;Margins are wrong&quot; / etc.
+ </a></dt><dt>Q: <a href="#id2879587">
+ Xprt prints a warning like &quot;Xp Extension: could not find config dir
+ /usr/X11R6/lib/X11/C/print&quot; - what does that mean ?
+ </a></dt><dt>Q: <a href="#id2879661">
+ Xprt crashes with &quot;Fatal server error: Beziers this big not yet supported&quot;
+ What does that mean ?
+ </a></dt><dt>Q: <a href="#id2879688">
+ &quot;My PS Type1 font does not work with my Xserver - how can I fix this ?&quot;
+ </a></dt><dt>Q: <a href="#id2879800">
+ I can't get it working. I have set ${DISPLAY} correctly to point to the
+ Xprt display and... ... What is going wrong ?
+ </a></dt><dt>Q: <a href="#id2879847">
+ When I try to print via Xprint I get the message &quot;Fatal server error:
+ unable to exec '/usr/bin/lp'&quot;. What is going wrong here ?
+ </a></dt><dt>Q: <a href="#id2879888">
+ The Solaris Xprt prints some error messages about PostScript fonts like
+ &quot;FOOBAR not found, using Courier. CMEX0123 not found, using Courier.&quot;
+ etc. and uses &quot;Courier&quot; instead of these fonts...
+ </a></dt><dt>Q: <a href="#id2880176">
+ &quot;Xprt refused to start, complaining about a missing dir
+ (/etc/X11/xserver/C/print/ directory)... I created it by hand (empty) and
+ started Xprt but it still does not work properly...&quot;
+ </a></dt><dt>Q: <a href="#id2880231">
+ My Linux system already shipps with a '/usr/X11R6/bin/Xprt'-binary.
+ Do I need the binary distribution from http://xprint.mozdev.org/ ?
+ </a></dt><dt>Q: <a href="#id2880316">
+ I am getting the error message &quot;error opening security policy file
+ /usr/X11R6/lib/X11/xserver/SecurityPolicy&quot;. What does that mean ?
+ </a></dt><dt>Q: <a href="#id2880368">
+ I have modified the &quot;HPLJ4family&quot; [or &quot;HPDJ1600C&quot; etc.] printer model to
+ work with my PostScript printer, but when I print I get empty places
+ where some text should be - what am I doing wrong here ?
+ </a></dt><dt>Q: <a href="#id2880421">
+ Xprt outputs warning messages like:
+
+
+Xp Extension: Can't load driver XP-PCL-MONO
+ init function missing
+Xp Extension: Can't load driver XP-RASTER
+ init function missing
+
+
+ What does that mean ?
+ </a></dt><dt>Q: <a href="#bug_solaris_xprt_removes_spaces_between_words">
+ Printing on Solaris with Mozilla/Eclipse [or any other Xprint client]
+ removes spaces between words. What is going wrong ?
+ </a></dt><dt>Q: <a href="#id2881185">
+ Installation of the &quot;GISWxprint&quot; / &quot;GISWxprintglue&quot; packages fails like this:
+# pkgadd -d /space/staging/xprint/GISWxprint.pkg
+pkgadd: ERROR: no packages were found in &lt;/var/tmp/dstreAAA5Jayyz&gt;
+ Any idea what I am doing wrong ?
+ </a></dt><dt>Q: <a href="#multiple_leading_blank_pages">
+ Printing page results in [two/three/.../16] leading blank pages, followed by a correct (but offset) page.
+ Any idea what is going wrong ?
+ </a></dt></dl></dd><dt>5. <a href="#faq_development">Software development</a></dt><dd><dl><dt>Q: <a href="#id2881454">
+ How does the X print server (Xprt) and the Xlib client side differ
+ from the &quot;normal&quot; video Xserver/video client side ?
+ </a></dt><dt>Q: <a href="#id2881903">
+ How can I get the printable area (e.g. the portion of the page on which
+ the printer is physically capable of placing ink) of the paper after I
+ have chosen a paper ?
+ </a></dt><dt>Q: <a href="#id2881952">
+ Do &quot;offscreen&quot; pixmaps work on Xprt ?
+ </a></dt><dt>Q: <a href="#id2881974">
+ How can I get the DPI value for the current Xprt server ? Can I use the
+ values from &quot;xdpyinfo&quot; ?
+ </a></dt><dt>Q: <a href="#id2882044">
+ Why does Xprt not offer the MIT-SHM protocol extension ?
+ </a></dt><dt>Q: <a href="#id2882142">
+ Does Xprint/Xprt support font rotation ?
+ </a></dt><dt>Q: <a href="#id2882261">
+ When I render something on my window and call XpStartPage all the
+ rendered stuff is gone, I only get a white, empty paper.
+ What is going wrong here ?
+ </a></dt><dt>Q: <a href="#id2882357">
+ What is XpStartDoc for ?
+ </a></dt><dt>Q: <a href="#id2882447">
+ How does the XLFD for printer-builtin fonts look like ? / How can I find/identify printer-builtin fonts ?
+ </a></dt><dt>Q: <a href="#id2882520">
+ How can I scale images using the Xprint API ?
+ </a></dt><dt>Q: <a href="#id2882542">
+ Can I pass my own PostScript code (fragment) to the print spooler instead of letting
+ Xprt's PostScript DDX generate it ?
+ </a></dt><dt>Q: <a href="#id2882568">
+ When I use XpPutDocumentData I get a
+ BadValue X protocol error. Any idea what am I doing wrong ?
+ </a></dt><dt>Q: <a href="#id2882608">
+ How do I use the XprintUtil library ?
+ </a></dt><dt>Q: <a href="#why_does_xgetimage_not_work">
+ Why does the XGetImage not work for Xprt ?
+ </a></dt><dt>Q: <a href="#id2882766">
+ How to print with Xt/Athena widgets ?
+ </a></dt><dt>Q: <a href="#id2882858">
+ How to print with Xt/Motif widgets ?
+ </a></dt><dt>Q: <a href="#id2882883">
+ What are the differences between normal display and Xprint display ?
+ </a></dt><dt>Q: <a href="#id2882905">
+ How do I scale images ?
+ </a></dt><dt>Q: <a href="#id2882926">
+ libXp Image scaling vs. max. request size ?
+ </a></dt><dt>Q: <a href="#id2882948">
+ How can I use XprintUtils ?
+ </a></dt><dt>Q: <a href="#id2882970">
+ How do I calculate the DPI values for Xprt DDX screens ?
+ </a></dt><dt>Q: <a href="#id2882992">
+ How do I find scaleable fonts ?
+ </a></dt><dt>Q: <a href="#id2883014">
+ How do I find printer-builtin fonts ?
+ </a></dt><dt>Q: <a href="#id2883035">
+ The XLFD for Printer-builtin fonts look like bitmap fonts - is that bad ?
+ </a></dt><dt>Q: <a href="#id2883066">
+ When printing using the XawPrintShell/XmPrintShell print shells my PostScript output
+ is always corrupt. What am I doing wrong ?
+ </a></dt><dt>Q: <a href="#id2883134">
+ When printing using the XawPrintShell/XmPrintShell
+ print shells I always get a grey/dithered background on paper.
+ Any idea how to change that to &quot;white&quot; ?
+ </a></dt><dt>Q: <a href="#id2883170">
+ Are there any caveats/suggestions when printing via Xt/Motif2 widgets ?
+ </a></dt><dt>Q: <a href="#id2883723">
+ Can I change the paper size/resolution/page orientation/etc. when printing using the
+ XawPrintShell/XmPrintShell print shells ?
+ </a></dt></dl></dd></dl><table border="0" summary="Q and A Set"><col align="left" width="1%"><tbody><tr class="qandadiv"><td align="left" valign="top" colspan="2"><a name="faq_general"></a><h4 class="title"><a name="faq_general"></a>1. General</h4></td></tr><tr class="toc" colspan="2"><td align="left" valign="top" colspan="2"><dl><dt>Q: <a href="#what_is_xprint">
+ What is &quot;Xprint&quot; ?
+ </a></dt><dt>Q: <a href="#where_can_i_get_xprint_from">
+ Where can I get Xprint/Xprt from ?
+ </a></dt><dt>Q: <a href="#what_is_xprt">
+ What is &quot;Xprt&quot; ?
+ </a></dt><dt>Q: <a href="#getting_help">
+ Where can I get help for problems with Xprint ?
+ </a></dt><dt>Q: <a href="#advantages_of_xprint">
+ &quot;Why do some people like Xprint ?&quot; / &quot;What are the advantages of Xprint ?&quot;
+ </a></dt><dt>Q: <a href="#contra_xprint">
+ Why do some people dislike Xprint ?
+ </a></dt><dt>Q: <a href="#does_xprint_support_anti_aliased_fonts">
+ Does Xprint support anti-aliased fonts ?
+ </a></dt><dt>Q: <a href="#id2808353">
+ How can I check if Xprint is working and should be used ?
+ </a></dt><dt>Q: <a href="#how_can_i_view_postscript_files">
+ How can I view PS(=PostScript) files ?
+ </a></dt><dt>Q: <a href="#how_can_i_view_pcl_files">
+ How can I view PCL files ?
+ </a></dt><dt>Q: <a href="#id2808532">
+ How does Xprt find fonts ?
+ </a></dt><dt>Q: <a href="#id2808607">
+ How can I print TrueType fonts with Xprint ?
+ </a></dt><dt>Q: <a href="#what_does_ddx_mean">
+ What does &quot;DDX&quot; mean ?
+ </a></dt><dt>Q: <a href="#what_does_dix_mean">
+ What does &quot;DIX&quot; mean ?
+ </a></dt><dt>Q: <a href="#what_does_pdl_mean">
+ What does &quot;PDL&quot; mean ?
+ </a></dt><dt>Q: <a href="#id2808848">
+ I have twenty printers installed on my system - but Xprt only shows two
+ screens. Where are all the other printers ?
+ </a></dt><dt>Q: <a href="#platforms_supported_by_xprint">
+ Which platforms support Xprint ?
+ </a></dt><dt>Q: <a href="#id2808945">
+ I have the broken Xfree86 Xprt binary on my system. Do I need a new
+ version of libXp.so (the client side X11 extension library for Xprint),
+ too ?
+ </a></dt><dt>Q: <a href="#who_do_i_spell_xprint">
+ Which spelling is correct - &quot;Xprint&quot;, &quot;XPrint&quot;, &quot;Xprinter&quot; or Xprt&quot; ?
+ </a></dt><dt>Q: <a href="#id2809018">
+ Which applications support Xprint ?
+ </a></dt><dt>Q: <a href="#is_xprint_only_for_mozilla">
+ Is &quot;Xprint&quot; &quot;mozilla&quot;-only (I saw that it's hosted by mozdev.org) ?
+ </a></dt><dt>Q: <a href="#id2809195">
+ Under which license is the source code from xprint.mozdev.org distributed under ?
+ </a></dt></dl></td></tr><tr class="question"><td align="left" valign="top"><a name="what_is_xprint"></a><a name="id2807302"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ What is &quot;Xprint&quot; ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ In short, &quot;Xprint&quot; is an advanced printing system which enables X11
+ applications to use devices like printers, FAX or create documents in
+ formats like PostScript, PDF or SVGprint.
+ </p><p>
+ In long, &quot;Xprint&quot; is a very flexible, extensible, scaleable, client/server
+ print system based on ISO 10175 (and some other specs) and the X11
+ rendering protocol.
+ Using Xprint an application can search, query and use devices like
+ printers, FAX machines or create documents in formats like PDF or SVGprint.
+ In particular, an application can seek a printer, query supported
+ attributes (like paper size, trays, fonts etc.), configure the printer
+ device to match it's needs and print on it like on any other X device
+ reusing parts of the code which is used for the video card Xserver...
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="where_can_i_get_xprint_from"></a><a name="id2807345"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ Where can I get Xprint/Xprt from ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td xmlns:ns3="" align="left" valign="top"><p>
+ Xprint is client-server based, therefore two answers:
+ </p><div class="itemizedlist"><ul type="disc"><li xmlns:ns2=""><p>
+ The server side is available by default on Solaris (see
+ <a href="#where_can_i_get_xprint_from_giswxprint_package_note">Note</a>
+ below) and HP-UX (Xfree86 ships a &quot;Xprt&quot; binary, but that is broken and the server config files
+ are missing, too).
+ For those platforms who do not have a (working) Xprt server the you
+ can get source, binary tarballs and Linux RPMs from
+ <a href="http://xprint.mozdev.org/" target="_top">http://xprint.mozdev.org/</a>,
+ Debian Linux has a package based on the
+ same sources (see
+ <a href="http://packages.qa.debian.org/x/xprint-xprintorg.html" target="_top">http://packages.qa.debian.org/x/xprint-xprintorg.html</a>).
+
+ </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="where_can_i_get_xprint_from_giswxprint_package_note"></a>Note</h3><p>
+ For Solaris &gt;= 2.7 <a href="http://xprint.mozdev.org/" target="_top">http://xprint.mozdev.org/</a>
+ provides the &quot;GISWxprintglue&quot;
+ and &quot;GISWxprint&quot; packages (available from
+ <a href="http://xprint.mozdev.org/download.html" target="_top">http://xprint.mozdev.org/download.html</a>)
+ which provides a single-step
+ drop-in way to configure and start Xprint at system startup and/or
+ per-user for all applications and users (the package provides only
+ startup scripts and some config data and uses the Xprt binary provided
+ with Solaris (<tt class="filename">/usr/openwin/bin/Xprt</tt>)).
+ </p></div><p>
+ </p></li><li><p>
+ The client-side Xprint support library (<tt class="filename">libXp.so</tt>) is available on all
+ X11 platforms &gt;=R6.4, including Linux, Solaris, HP-UX, AIX, FreeBSD, NetBSD, etc.
+ </p><p>
+ If you do not have it you can build it from the sources available at
+ <a href="http://xprint.mozdev.org/" target="_top">http://xprint.mozdev.org/</a>.
+ </p></li></ul></div><p>
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="what_is_xprt"></a><a name="id2807546"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ What is &quot;Xprt&quot; ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ Xprt is the server-side of Xprint. It's just like any other Xserver - it
+ uses only an other kind of output device (printer instead of framebuffer)
+ and implements an extra X11 extension (&quot;XpExtension&quot;) to handle the
+ special features/requirements of a &quot;paged device&quot;(=printer etc.).
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="getting_help"></a><a name="id2807577"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ Where can I get help for problems with Xprint ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ The current main site for the Xprint development is <a href="http://xprint.mozdev.org/" target="_top">http://xprint.mozdev.org/</a>
+ which hosts various resources including a <a href="http://xprint.mozdev.org/list.html" target="_top">mailinglist</a>
+ (please subscribe before posting) for end-users, admin and developers.
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="advantages_of_xprint"></a><a name="id2807636"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ &quot;Why do some people like Xprint ?&quot; / &quot;What are the advantages of Xprint ?&quot;
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td xmlns:ns4="" align="left" valign="top"><p>
+ </p><div class="itemizedlist"><ul type="disc"><li><p>
+ Xprint allows an application to query what features (paper size, trays,
+ orientation, resolutions, plexes, fonts and much more) a printer supports.
+ For example it is avoidable that a user accidently prints DIN-A4 on a
+ DIN-A0 poster printer (the print dialog would only offer DIN-A0 as paper
+ size, e.g. offers only choices which are valid for this printer).
+ </p></li><li><p>
+ Server-side, localizeable configuration - changes to the server
+ config apply to all users without the need to change/updating anything
+ on the user side (the user may still start his/her own Xprt instance
+ using his/her preferred configuration).
+ </p></li><li><p>
+ Small footprint - ideal for for mobile devices (client side does not
+ need to process any fonts - that's the job of the server side).
+ </p></li><li><p>
+ API not restriced to PostScript (X11R6.5.1 comes with PCL and Raster
+ implementations - and PDF/G3-FAX/SVG would be possible without problems).
+ </p></li><li><p>
+ Scaleable - Xprint can use as many Xprt servers as the user/admin wants.
+ </p></li><li><p>
+ &quot;Xprint is designed for the enterprise&quot;, e.g. Xprint was designed to
+ match the needs of large company networks.
+ </p></li><li><p>
+ Automatic font handling - font download or the existence of
+ printer-builtin fonts is automagically handled by Xprt - the application
+ does not need to know/handle any details (but the application can
+ optionally get information and control the usage of printer builtin
+ fonts).
+ </p></li><li><p>
+ You can print anything what you can render on the framebuffer(=video
+ card) Xserver.
+ </p></li><li><p>
+ Existing code can be reused 1:1 for printing - which means reduced
+ development costs.
+ </p></li><li><p>
+ Easy support for I18N (internationalization) - you simply render any
+ fonts in any language with Xprint.
+ </p></li><li><p>
+ Network-transparent design - Client can use local or remote Xprt servers
+ like any other Xserver.
+ </p></li><li><p>
+ Uses the X11 protocol - easy adoption of existing code to implement
+ printer support. And all the network goodies like firewall proxies,
+ compressors etc. can be used for Xprint without modifications.
+ </p></li><li><p>
+ Security: Xprint can use all authentification schemes available in X11
+ (like Kerberos5, SecureRPC, MIT-MAGIC-COOKIE or host-based
+ authentification).
+ </p></li><li><p>
+ Enhachements on the server side (Xprt) to not require the change of
+ client-side code.
+ </p></li><li><p>
+ Optimized job output (like the PostScript created by the PostScript DDX)
+ is usually a lot smaller than the PS code created by other PostScript
+ engines.
+ </p></li></ul></div><p>
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="contra_xprint"></a><a name="id2807847"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ Why do some people dislike Xprint ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ There are a few common misconceptions about Xprint.
+ Let's take a look some of these &quot;myths&quot;, some background - and the facts:
+ </p><div class="blockquote"><blockquote class="blockquote"><div class="qandaset"><dl><dt>Myth: <a href="#id2807878">
+
+ Xprint prints just a XWD dump of the Xserver bitmap
+
+ </a></dt><dt>Myth: <a href="#id2808002">
+
+ Xprint cannot handle non-'ISO Latin 1' chars
+
+ </a></dt><dt>Myth: <a href="#id2808043">
+
+ Xprint uses a 1024x768 screen resolution to render the stuff on
+ the paper - therefore it will never be able to do high-resolution
+ stuff
+
+ </a></dt><dt>Myth: <a href="#id2808091">
+
+ Xprint prints only graphics(=bitmap/gfx) fonts
+
+ </a></dt><dt>Myth: <a href="#id2808170">
+
+ Xprint does not support pages sizes larger than DIN-A4
+
+ </a></dt><dt>Myth: <a href="#id2808217">
+
+ Xprint does not support rotated text
+
+ </a></dt></dl><table border="0" summary="Q and A Set"><col align="left" width="1%"><tbody><tr class="question"><td align="left" valign="top"><a name="id2807878"></a><a name="id2807881"></a><b>Myth:</b></td><td align="left" valign="top"><p>
+ &#8220;<span class="quote">
+ Xprint prints just a XWD dump of the Xserver bitmap
+ </span>&#8221;
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>Fact:</b></td><td xmlns:ns5="" align="left" valign="top"><p>
+ Whoever says Xprint simply does an &quot;xwd&quot;-like dump is wrong.
+ </p><p>
+
+ In short, Xprint <span class="emphasis"><em>currently</em></span> (X11R6.5.1) supports *four* drivers:
+ </p><div class="orderedlist"><ol type="1"><li><p>
+ X to native Postscript
+ </p></li><li><p>
+ X to native PCL5
+ </p></li><li><p>
+ X to native PCL3
+ </p></li><li><p>
+ X to a raster which is then feed to something like xpr to
+ create PS or PCL5 wrapped rasters.
+ </p></li></ol></div><p>
+ </p><p>
+ In long, the original X Print Service (&quot;XPS&quot;) was attempted
+ during CDE 1.0, and they only got so far as the &quot;raster&quot; driver.
+ </p><p>
+ As CDE 2.0 came around, Bob Schiefler and others at the X
+ Consortium agreed that the X Consortium would work on a X to
+ native PS Level 2 driver and HP would work on a X to native
+ PCL5 driver.
+ </p><p>
+ It was probably the CDE 1.0 effect that left many people with
+ the impression that Xprint is all about xwd-like window dumps.
+ NO! Xprint has native PostScript and PCL5 printing and more
+ drivers (like PDF and SVGprint DDXs etc.) are in the development.
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2808002"></a><a name="id2808005"></a><b>Myth:</b></td><td align="left" valign="top"><p>
+ &#8220;<span class="quote">
+ Xprint cannot handle non-'ISO Latin 1' chars
+ </span>&#8221;
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>Fact:</b></td><td align="left" valign="top"><p>
+ Xprint can print any chars incl. those required for MathML,
+ Hebrew, Arabic, Japanese etc. etc.
+ For example - the Xprint module for Mozilla5 is the only print
+ module which can proprtly print MathML.
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2808043"></a><a name="id2808046"></a><b>Myth:</b></td><td align="left" valign="top"><p>
+ &#8220;<span class="quote">
+ Xprint uses a 1024x768 screen resolution to render the stuff on
+ the paper - therefore it will never be able to do high-resolution
+ stuff
+ </span>&#8221;
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>Fact:</b></td><td align="left" valign="top"><p>
+ Xprt uses the screen resolution requested by the application or
+ the printers default resolution.
+ For example a 300 DPI printer which supports paper sizes up to
+ DIN-A4 will get a screen with 3300x3300 pixels (screen width and
+ height are usually equal to support per-page changes in the
+ orientation (potrait/landscape etc.), the window size would be
+ 2400x3149 for &quot;portrait&quot; orientation) - and larger resolutions
+ will result in larger screens.
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2808091"></a><a name="id2808094"></a><b>Myth:</b></td><td align="left" valign="top"><p>
+ &#8220;<span class="quote">
+ Xprint prints only graphics(=bitmap/gfx) fonts
+ </span>&#8221;
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>Fact:</b></td><td align="left" valign="top"><p>
+ In short, Xprt supports printer-builtin fonts and can
+ download fonts to the printer if they do not exist on the printer.
+ </p><p>
+ In long, this myth seems to have it's root in a <span class="emphasis"><em>feature</em></span> of
+ Xprt which can - if Xprt gets misconfigured - disable the use of
+ printer-builtin fonts and the ability to download fonts.
+ </p><p>
+ Xprt's PostScript and PCL DDX have the <span class="emphasis"><em>unique</em></span> feature to create
+ font glyphs from bitmap fonts if they are not available as
+ printer-builtin fonts nor as PostScipt Type1 fonts. However this
+ is the fallback - the <span class="emphasis"><em>last</em></span> option used by Xprt. Used if
+ everything else fails.
+ But when someone does not pass any PS Type1 fonts with the font
+ path nor configures a printer model-config (which contains a
+ description of the features&amp;fonts supported by the printer) Xprt
+ will never have a chance to use them. And if everything else
+ fails it has no other option than using what has been left - the
+ bitmap fonts...
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2808170"></a><a name="id2808173"></a><b>Myth:</b></td><td align="left" valign="top"><p>
+ &#8220;<span class="quote">
+ Xprint does not support pages sizes larger than DIN-A4
+ </span>&#8221;
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>Fact:</b></td><td align="left" valign="top"><p>
+ There is no such limitation.
+ The only limit is the 16bit coordinate system of the X11
+ protocol - which is large enougth that Xprint can support paper
+ sizes <span class="emphasis"><em>larger</em></span> than DIN-A0 oversize papers. There is no problem
+ with creating your own monster-size DIN-A0 posters using
+ Xprint-based applications.
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2808217"></a><a name="id2808220"></a><b>Myth:</b></td><td align="left" valign="top"><p>
+ &#8220;<span class="quote">
+ Xprint does not support rotated text
+ </span>&#8221;
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>Fact:</b></td><td align="left" valign="top"><p>
+ Xprint and all it's drivers support the X11 matrix XLFD
+ enhancement introduced in X11R6 (and future versions of Xprint will
+ support the <a href="http://stsf.sourceforge.net/" target="_top">STSF</a> font API which supports
+ matrix transformations as well).
+ Fonts can be rotated at any angle. Take a look at the
+ <a href="#faq_development">SOFTWARE DEVELOPMENT</a> section in
+ this FAQ for examples...
+ </p></td></tr></tbody></table></div></blockquote></div></td></tr><tr class="question"><td align="left" valign="top"><a name="does_xprint_support_anti_aliased_fonts"></a><a name="id2808312"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ Does Xprint support anti-aliased fonts ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ Question back: When do we need anti-aliased fonts ?
+ Anti-aliasing is a &quot;hack&quot; to work around the limitations caused by the
+ low resolution of monitors - they usually operate between 72 DPI and
+ 150 DPI.
+ </p><p>
+ But Xprint operates on printers where the usual <span class="emphasis"><em>minimum</em></span> resolution is
+ 300 DPI (today's normal office printers support resolutions ranging from
+ 300 DPI up to 2400 DPI depending on the model; most common is 600 DPI).
+ Anti-aliasing at those resolutions is not required anymore.
+ Additionally many printers support their own font anti-aliasing at lower
+ resolutions which is far better and faster than it could be &quot;done&quot; on the
+ client side.
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2808353"></a><a name="id2808356"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ How can I check if Xprint is working and should be used ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ Check whether the <tt class="envar">${XPSERVERLIST}</tt> env var is set or not.
+ If <tt class="envar">${XPSERVERLIST}</tt> is set then Xprint is available and should be used.
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="how_can_i_view_postscript_files"></a><a name="id2808392"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ How can I view PS(=PostScript) files ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td xmlns:ns8="" align="left" valign="top"><p>
+ </p><div class="itemizedlist"><ul type="disc"><li xmlns:ns6=""><p>
+ On Unix/Linux (general):
+ </p><div class="itemizedlist"><ul type="circle"><li><p>
+ GhostScript (&quot;gs&quot;) and GhostView (&quot;gv&quot; and it's KDE- and Gnome-specific versions &quot;kghostview&quot; and &quot;ggv&quot;)
+ </p></li></ul></div><p>
+ </p></li></ul></div><p>
+ </p><div class="itemizedlist"><ul type="disc"><li xmlns:ns7=""><p>
+ Solaris:
+ </p><div class="itemizedlist"><ul type="circle"><li><p>
+ <tt class="filename">/usr/dt/bin/sdtimage</tt> (DPS-based image viewer for CDE)
+ </p></li><li><p>
+ <tt class="filename">/usr/openwin/bin/pageview</tt> (DPS-based image viewer for OpenWindows)
+ </p></li></ul></div><p>
+ </p></li></ul></div><p>
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="how_can_i_view_pcl_files"></a><a name="id2808499"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ How can I view PCL files ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ XXX - <a href="http://xprint.mozdev.org/bugs/show_bug.cgi?id=2261" target="_top">xprint.mozdev.org bug 2261</a>
+ has been filed for that issue.
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2808532"></a><a name="id2808535"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ How does Xprt find fonts ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td xmlns:ns9="" align="left" valign="top"><p>
+
+ Lookup-rule for Xprt's PostScript DDX to find fonts:
+ </p><div class="orderedlist"><ol type="1"><li><p>
+ Printer-builtin fonts (defined by the fonts/-dir in the model-config)
+ </p></li><li><p>
+ PostScript fonts (will be downloaded via generated print job)
+ </p></li><li><p>
+ GFX-fonts build from X11 scaleable fonts
+ </p></li><li><p>
+ GFX-fonts build from X11 bitmap fonts
+ </p></li></ol></div><p>
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2808607"></a><a name="id2808610"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ How can I print TrueType fonts with Xprint ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td xmlns:ns10="" align="left" valign="top"><p>
+ </p><div class="orderedlist"><ol type="1"><li><p>
+ Linux Xprt build from <a href="http://xprint.mozdev.org" target="_top">http://xprint.mozdev.org/</a>'s source supports
+ TrueType fonts out-of-the-box (starting with the 008 development tree;
+ xprint.mozdev.org's releases &lt;= 007 do not support TrueType fonts) and
+ and does not require any special actions.
+ </p></li><li><p>
+ Sun's Xprt on Solaris (<tt class="filename">/usr/openwin/bin/Xprt</tt>) has TrueType font
+ support out-of-the-box and does not require any special actions.
+ </p></li><li><p>
+ You can setup a TTF-aware X font server (&quot;xfs&quot;, see
+ <span class="citerefentry"><span class="refentrytitle">xfs</span>(1x)</span>)
+ with the matching TrueType fonts and add the font server location to Xprt's font path.
+ </p></li><li><p>
+ Sourceforge has a TrueType to PostScript Type 1 converter project,
+ see <a href="http://ttf2pt1.sourceforge.net/download.html" target="_top">http://ttf2pt1.sourceforge.net/download.html</a>.
+ You may convert the TTF files into PT1 files that Xprt can download them
+ to the printer on demand...
+ </p></li></ol></div><p>
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="what_does_ddx_mean"></a><a name="id2808742"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ What does &quot;DDX&quot; mean ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ &quot;DDX&quot; is a short term for &quot;Device Dependent X&quot; - the device-specific layer
+ of a Xserver (<a href="#what_does_dix_mean">&quot;DIX&quot;</a>(=&quot;Device Independent X&quot;) is the counterpart).
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="what_does_dix_mean"></a><a name="id2808785"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ What does &quot;DIX&quot; mean ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ &quot;DIX&quot; is a short term for &quot;Device Independent X&quot; - the non-device specific
+ code of a Xserver (<a href="#what_does_ddx_mean">&quot;DDX&quot;</a>(=&quot;Device Dependent X&quot;) is the counterpart).
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="what_does_pdl_mean"></a><a name="id2808828"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ What does &quot;PDL&quot; mean ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ &quot;PDL&quot; is a short term for &quot;Page Description Language&quot;. Examples for PDLs are
+ PostScript, PCL, PDF and SVGprint.
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2808848"></a><a name="id2808851"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ I have twenty printers installed on my system - but Xprt only shows two
+ screens. Where are all the other printers ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ A Xprt screen does not represent a single printer. A Xprt screen
+ represents a single DDX (currently supported are PostScript, PCL3/5 color,
+ PCL mono and &quot;raster&quot; output(=1bit deep bitmap).
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="platforms_supported_by_xprint"></a><a name="id2808884"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ Which platforms support Xprint ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ All platforms which support X11 &gt;= R6.4 can use Xprint. The client side
+ (<tt class="filename">libXp.so</tt>) is available on Linux/FreeBSD(=Xfree86), Solaris, HP-UX and AIX
+ and the Xprt server side is available by default on Solaris and HP-UX
+ (Xfree86 shipps with a Xprt binary - but that is broken and unuseable).
+ The client-side extension library (<tt class="filename">libXp.so</tt>) can be compiled on any
+ platform, the Xprt server needs minor adjustments for the specific
+ platforms...
+ If your platform does not have Xprint (client-side and/or server-side)
+ you can get the sources from <a href="http://xprint.mozdev.org/" target="_top">http://xprint.mozdev.org/</a>.
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2808945"></a><a name="id2808948"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ I have the broken Xfree86 Xprt binary on my system. Do I need a new
+ version of <tt class="filename">libXp.so</tt> (the client side X11 extension library for Xprint),
+ too ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ No, the <tt class="filename">libXp.so</tt> shared library shipped with Xfree86 or build from
+ Xfree86 sources is not broken, only the server side (&quot;Xprt&quot;) is buggy.
+ There is no need to replace the library.
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="who_do_i_spell_xprint"></a><a name="id2808995"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ Which spelling is correct - &quot;Xprint&quot;, &quot;XPrint&quot;, &quot;Xprinter&quot; or Xprt&quot; ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ &quot;Xprint&quot; is the correct one - &quot;XPrint&quot; is just a typo, &quot;Xprinter&quot; is a
+ complety different product not related to X11/Xprint and &quot;Xprt&quot; is only
+ the &quot;X11 print server&quot;(=the server side of Xprint).
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2809018"></a><a name="id2809021"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ Which applications support Xprint ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td xmlns:ns11="" align="left" valign="top"><p>
+ There are various applications which support Xprint:
+ </p><div class="itemizedlist"><ul type="disc"><li><p>
+ Motif/LessTif (full framework incl. special widgets like <tt class="function">XmPrintShell</tt>)
+ </p></li><li><p>
+ <a href="http://www.opengroup.org/cde/" target="_top">Common Desktop Environment (CDE) 2.x</a>
+ </p></li><li><p>
+ <a href="http://www.mozilla.org/projects/xprint/" target="_top">Mozilla</a>
+ </p></li><li><p>
+ Eclipse
+ </p></li><li><p>
+ KDE/Qt support is comming is planned for the end of Dec/2003
+ </p></li><li><p>
+ StarOffice 5.x
+ </p></li><li><p>
+ etc.
+ </p></li></ul></div><p>
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="is_xprint_only_for_mozilla"></a><a name="id2809152"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ Is &quot;Xprint&quot; &quot;mozilla&quot;-only (I saw that it's hosted by mozdev.org) ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ No, Xprint is a general-purpose print API based on the X11 API used by
+ many applications (<a href="http://www.mozdev.org/" target="_top">mozdev.org</a> is just
+ hosting the development area, but this does not mean the project is limited to mozilla...
+ <tt class="literal">:)</tt>).
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2809195"></a><a name="id2809198"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ Under which license is the source code from xprint.mozdev.org distributed under ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td xmlns:ns12="" align="left" valign="top"><p>
+ That's the plain &quot;MIT&quot; license, the same as used by Xfree86.org and X.org:
+</p><pre class="programlisting">
+Copyright (c) &lt;year&gt; &lt;copyright holders&gt;
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software
+and associated documentation files (the &quot;Software&quot;), to deal in the Software without
+restriction, including without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or
+substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+</pre><p>
+ </p></td></tr><tr class="qandadiv"><td align="left" valign="top" colspan="2"><a name="faq_usage"></a><h4 class="title"><a name="faq_usage"></a>2. Usage</h4></td></tr><tr class="toc" colspan="2"><td align="left" valign="top" colspan="2"><dl><dt>Q: <a href="#id2809283">
+ How do I configure Xprint on the client side ?
+ </a></dt><dt>Q: <a href="#how_do_i_start_xprt">
+ How do I start Xprt ?
+ </a></dt><dt>Q: <a href="#id2874114">
+ How can I get a list of printers managed by Xprint ?
+ </a></dt><dt>Q: <a href="#id2874216">
+ How can I start Xprt at boot time ?
+ </a></dt><dt>Q: <a href="#id2874249">
+ How can I start Xprt per-user ?
+ </a></dt><dt>Q: <a href="#id2874282">
+ How can I start Xprt only for one application ?
+ </a></dt><dt>Q: <a href="#id2874315">
+ How can I filter the font path which should be passed to Xprt for
+ certain fonts ?
+ </a></dt><dt>Q: <a href="#id2874337">
+ How can I manage access control to the Xprt server ?
+ </a></dt><dt>Q: <a href="#id2874435">
+ How can I log access to the Xprt server ?
+ </a></dt><dt>Q: <a href="#id2874468">
+ Does it require &quot;root&quot; permissions to use Xprt/Xprint ?
+ </a></dt><dt>Q: <a href="#id2874511">
+ How can I see the attributes of a printer managed by Xprint ?
+ </a></dt><dt>Q: <a href="#how_can_i_list_the_font_path_used_by_xprint">
+ How can I list the font path used by a Xprt server ?
+ </a></dt><dt>Q: <a href="#id2874641">
+ &quot;xset q&quot; lists all model-specific font dirs (like
+ PRINTER:/myxpcfg/C/print/models/SPSPARC2/fonts/&quot;) - is that a bug ?
+ </a></dt><dt>Q: <a href="#id2874690">
+ My application lists a printer called &quot;xp_ps_spooldir_tmp_Xprintjobs&quot; /
+ &quot;xp_pdf_spooldir_tmp_Xprintjobs&quot; / &quot;spooldir_tmp_Xprintjobs&quot; / in the
+ print dialog but I do not have such a print queue installed anywhere.
+ What is that for a thing ?!
+ </a></dt><dt>Q: <a href="#manual_xprint_forwarding_via_ssh">
+ How can I forward Xprint services when logging-in via ssh to another machine ?
+ </a></dt></dl></td></tr><tr class="question"><td align="left" valign="top"><a name="id2809283"></a><a name="id2809286"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ How do I configure Xprint on the client side ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td xmlns:ns17="" align="left" valign="top"><p>
+ There are two env vars which control Xprint on the client side:
+ </p><div class="orderedlist"><ol type="1"><li xmlns:ns13=""><p>
+ The env variable <tt class="envar">${XPSERVERLIST}</tt> contains a list of display identifiers
+ (seperated by whitespace) to tell the application where it can find
+ the Xprt servers.
+ Usually <tt class="envar">${XPSERVERLIST}</tt> is set by the profile startup scripts (e.g.
+ <tt class="filename">/etc/profile</tt> or <tt class="filename">/etc/profile.d/xprint.sh</tt>) using the output of
+ &quot;/etc/init.d/xprint get_xpserverlist&quot;.
+ Example:
+</p><pre class="screen">
+ % <b class="userinput"><tt>export XPSERVERLIST=&quot;`/etc/init.d/xprint get_xpserverlist`&quot;</tt></b>
+</pre><p>
+ Alternativly <tt class="envar">${XPSERVERLIST}</tt> can be set manually:
+ </p><p>
+ Example:
+</p><pre class="screen">
+ % <b class="userinput"><tt>export XPSERVERLIST=&quot;littlecat:80 bitdog:72&quot;</tt></b>
+</pre><p>
+ instructs an application to look at the displays 80 on the machine
+ &quot;littlecat&quot; and display 72 on the machine bigdog to look for Xprt
+ servers.
+ </p></li><li xmlns:ns16=""><p>
+ The env variable <tt class="envar">${XPRINTER}</tt> defines the default printer used by print
+ applications. The syntax is either &lt;printername&gt; or
+ &lt;printername&gt;@&lt;display&gt;
+
+ </p><div class="orderedlist"><p class="title"><b>Examples:</b></p><ol type="a"><li xmlns:ns14=""><p>
+</p><pre class="screen">
+ % <b class="userinput"><tt>export XPRINTER=ps003</tt></b>
+</pre><p>
+ tells an application to look for the first printer named &quot;ps003&quot; on
+ all Xprt servers.
+ </p></li><li xmlns:ns15=""><p>
+</p><pre class="screen">
+ % <b class="userinput"><tt>export XPRINTER=&quot;hplaser19@littlecat:80&quot;</tt></b>
+</pre><p>
+ tells an application to look for the printer &quot;hplaser19&quot; on the Xprt
+ display &quot;littlecat:80&quot;.
+ </p></li></ol></div><p>
+ </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note:</h3><p>
+ If <tt class="envar">${XPRINTER}</tt> is not set the applications will examine the values of
+ the <tt class="envar">${PDPRINTER}</tt>, <tt class="envar">${LPDEST}</tt>, and
+ <tt class="envar">${PRINTER}</tt> env vars (in that order).
+ </p></div><p>
+ </p></li></ol></div><p>
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="how_do_i_start_xprt"></a><a name="id2809516"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ How do I start Xprt ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td xmlns:ns25="" align="left" valign="top"><p>
+ </p><div class="orderedlist"><ol type="1"><li><p><a name="starting_xprt_on_linux_rpm"></a>
+ Linux RPM installations on Mandrake/RedHat/SuSE Linux:
+ Binary RPM packages provided by xprint.mozdev.org (or based on the same
+ source :) will install <tt class="filename">/etc/init.d/xprint</tt> and related glue
+ (see <a href="#starting_xprt_general">[4]</a>)
+ automatically; after a reboot a Xprt instance will be started at system
+ startup and <tt class="envar">${XPSERVERLIST}</tt> should be populated for all users.
+ Note that you can start/stop per-user instances using <tt class="filename">/etc/init.d/xprint</tt>
+ (see <a href="#starting_xprt_general">[4]</a>), too...
+ </p></li><li xmlns:ns18=""><p><a name="starting_xprt_on_debian_linux"></a>
+ Debian Linux:
+ Same as <a href="#starting_xprt_on_linux_rpm">[1]</a>, however Debian does not support
+ <tt class="filename">/etc/profile.d/</tt> - you have to add the following line to <tt class="filename">/etc/profile</tt>
+ (for sh/ksh/bash) to populate <tt class="envar">${XPSERVERLIST}</tt>:
+</p><pre class="screen">
+ <b class="userinput"><tt>export XPSERVERLIST=&quot;`/bin/sh /etc/init.d/xprint get_xpserverlist`&quot;</tt></b>
+</pre><p>
+ See <a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=171174" target="_top">bugs.debian.org bug 171174</a>
+ ('&quot;xprint-xprintorg&quot; should automatically populate <tt class="envar">$XPSERVERLIST</tt>') for
+ further details on this issue...
+ </p></li><li><a name="starting_xprt_on_solaris"></a><div class="orderedlist"><ol type="a"><li><p><a name="starting_xprt_on_solaris_using_giswxprintglue"></a>
+ Solaris using the &quot;GISWxprintglue&quot; package:
+ <a href="http://xprint.mozdev.org/" target="_top">http://xprint.mozdev.org/</a>
+ provides a Solaris package called &quot;GISWxprintglue&quot;
+ which contains all the neccesary configuration files and startup scripts
+ to use Xprint; after a reboot a Xprt instance will be started at system
+ startup and <tt class="envar">${XPSERVERLIST}</tt> should be populated for all users.
+ Note that you can start/stop per-user instances using <tt class="filename">/etc/init.d/xprint</tt>
+ (see <a href="#starting_xprt_general">[4]</a>), too...
+ </p></li><li><p><a name="starting_xprt_on_solaris_using_giswxprint"></a>
+ Solaris using the &quot;GISWxprint&quot; package:
+ <a href="http://xprint.mozdev.org/" target="_top">http://xprint.mozdev.org/</a>
+ provides a Solaris package called &quot;GISWxprint&quot;
+ which is technically identical to the &quot;GISWxprintglue&quot;
+ (see <a href="#starting_xprt_on_solaris_using_giswxprintglue">[3a]</a>) but
+ provides a Xprt binary build from the xprint.mozdve.org sources
+ (&quot;GISWxprintglue&quot; uses the <tt class="filename">/usr/openwin/bin/Xprt</tt> binary provided by Solaris).
+ </p></li></ol></div></li><li xmlns:ns19=""><p><a name="starting_xprt_general"></a>
+ General: Using <tt class="filename">/etc/init.d/xprint</tt> and related glue:
+ There are startup/shutdown scripts in <tt class="filename">xc/programs/Xserver/Xprint/etc/</tt>
+ to start/stop/restart Xprt per-machine and/or per-user and to populate the
+ <tt class="envar">${XPSERVERLIST}</tt> env var:
+ </p><div class="itemizedlist"><ul type="disc"><li><p>
+ &quot;<tt class="filename">xc/programs/Xserver/Xprint/etc/init.d/xprint</tt>&quot; is a script for SystemV
+ and Linux to start/stop/restart Xprt. The script includes installation
+ and usage details and can be used by both &quot;root&quot; (to start Xprt for all
+ users) or by a single (non-priviledged, plain) user (to start Xprt
+ instances only for his/her own use)
+ </p></li><li><p>
+ &quot;<tt class="filename">xc/programs/Xserver/Xprint/etc/profile.d/xprint.csh</tt>&quot; and
+ &quot;<tt class="filename">xc/programs/Xserver/Xprint/etc/profile.d/xprint.sh</tt>&quot; are scripts for
+ Linux (which support <tt class="filename">/etc/profile.d/</tt> ; note that this does not include
+ Debian) to populate the <tt class="envar">${XPSERVERLIST}</tt> env var for each user.
+ </p></li></ul></div><p>
+ </p></li><li xmlns:ns20=""><p><a name="starting_xprt_manually"></a>
+ Starting Xprt &quot;manually&quot; (without using <tt class="filename">/etc/init.d/xprint</tt>):
+ Set the <tt class="envar">${XPCONFIGDIR}</tt> env variable to the directory where Xprt can find
+ it's configuration data.
+ </p><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">WARNING</h3><p>
+ If Xprt cannot find it's configuration data it will not be
+ able to use printer-builtin fonts (which are defined by the
+ model-config in the configuration dir). Without printer-builtin fonts
+ Xprt <span class="emphasis"><em>may</em></span> fall back to generate font glyphs from bitmap fonts (this
+ resulted in the MYTH that &quot;Xprt can only print gfx fonts&quot;. This is not
+ <span class="emphasis"><em>TRUE</em></span> - this only happens if Xprt is either misconfigured or no
+ matching builtin or PS Type1 font is available).
+ </p><p>
+ You may want to make a copy of the default configuration directory and
+ modify it to match your needs.
+ </p></div><p>
+ </p></li><li xmlns:ns21=""><p>
+ Starting Xprt is just as easy as starting any other Xserver:
+</p><pre class="screen">
+ % <b class="userinput"><tt>Xprt :12</tt></b>
+</pre><p>
+ will start Xprt on display 12 (e.g. set <tt class="envar">${XPSERVERLIST}</tt> to &quot;:12&quot; or
+ &quot;myhostname:12&quot;.
+ </p><p>
+ You may want to copy your framebuffer Xserver's font path to be able to
+ print all fonts which can be displayed on that Xserver.
+</p><pre class="screen">
+ % <b class="userinput"><tt>Xprt -fp $(xset q | awk &quot;/Font Path:/ { i=1 ; next } i==1 { print \$0 ; i=0 }&quot;) :12</tt></b>
+</pre><p>
+ </p></li></ol></div><p>
+ </p><div xmlns:ns24="" class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Notes:</h3><p>
+ </p><div class="itemizedlist"><ul type="disc"><li><p>
+ The <tt class="filename">/etc/init.d/xprint</tt> has a more advanched filtering scheme based on
+ regex patters to &quot;accept&quot; and/or &quot;reject&quot; font paths
+ </p></li><li xmlns:ns22=""><p>
+ 'xset q | awk &quot;/Font Path:/ { i=1 ; next } i==1 { print \$0 ; i=0 }&quot;'
+ may be too simple-minded if your Xserver does not support TrueType
+ fonts. The following statemement is better in this case since it
+ filters the font path and removes all path elements which have TrueType
+ fonts (*.ttf, *.TTF) or TrueType font collections (*.ttc, *.TTC) in
+ <tt class="filename">fonts.dir</tt>:
+</p><pre class="screen">
+ % <b class="userinput"><tt>xset q | awk &quot;/Font Path:/ { i=1 ; next } i==1 { print \$0 ; i=0 }&quot; |
+ tr &quot;,&quot; &quot;\n&quot; | while read i ; do \
+ if [ &quot;$(cat ${i}/fonts.dir | egrep -i &quot;ttf|ttc&quot; 2&gt;/dev/null)&quot; == &quot;&quot; ] \
+ ; then echo $i ; fi ; done | (fontpath=&quot;&quot; ; fpdelim=&quot;&quot;; while read i ; \
+ do fontpath=${fontpath}${fpdelim}${i} ; fpdelim=&quot;,&quot; ; done ; echo \
+ $fontpath)</tt></b>
+</pre><p>
+ </p></li><li xmlns:ns23=""><p>
+ It may be easier to just feed all available font paths to Xprt
+ (BTW: mozilla 1.0 had a bug in that case which resulted in the problem
+ that it used many many bitmap fonts in that case - this has been fixed
+ for 1.0.1 and Netscape 7 (that's the reason why the quickguides for
+ hebrew/cyrillic use the &quot;Xp_dummyfonts&quot; fonts instead of
+ <tt class="filename">/usr/openwin/lib/X11/fonts/misc/</tt> - to avoid that Mozilla finds bitmap
+ fonts for the same locale).
+ The following &quot;small&quot; one-liner finds all fonts (except printer builtin
+ fonts):
+</p><pre class="screen">
+ % <b class="userinput"><tt>find /usr/openwin -name fonts.dir | while read i ; do echo
+ ${i%/fonts.dir} ; done | fgrep -v &quot;models/&quot;</tt></b>
+</pre><p>
+ Plug it into the filter above to remove the Truetype fonts and you are
+ &quot;done&quot;... :)
+ </p></li></ul></div><p>
+ See <a href="#faq_troubleshooting">TROUBLESHOOTING</a> if you run into problems...
+ </p></div><p>
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2874114"></a><a name="id2874117"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ How can I get a list of printers managed by Xprint ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td xmlns:ns28="" align="left" valign="top"><p>
+ The tool &quot;xplsprinters&quot; is designed for that purpose. It can deliver both
+ list of printers and attributes supported for a specific list of printers.
+ Use % xplsprinters -h # to obtain usage information.
+ Example:
+ </p><div class="itemizedlist"><ul type="disc"><li xmlns:ns26=""><p>
+ Get list of available printers:
+</p><pre class="screen">
+% <b class="userinput"><tt>xplsprinters</tt></b>
+<tt class="computeroutput">printer: hplaserjet001@castor:19
+printer: hpcolor001@castor:19
+printer: laser1@jason:5
+printer: david_dj01@jason:5</tt>
+</pre><p>
+ </p></li><li xmlns:ns27=""><p>
+ Get information about the supported attrbites of printer &quot;ps002&quot;:
+</p><pre class="screen">
+% <b class="userinput"><tt>xplsprinters -printer ps002 -l</tt></b>
+<tt class="computeroutput">printer: ps002@castor:18
+ comment=
+ model-identifier=HPDJ1600C
+ default-medium=iso-a4
+ default-input-tray=
+ medium-source-sizes-supported=iso-a4 false 6.35 203.65 6.35 290.65
+ medium-source-sizes-supported=na-letter false 6.35 209.55 6.35 273.05
+ default-printer-resolution=300
+ resolution=300
+ default_orientation=
+ orientation=portrait
+ orientation=landscape
+ default_plex=
+ plex=simplex</tt>
+</pre><p>
+ </p></li></ul></div><p>
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2874216"></a><a name="id2874219"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ How can I start Xprt at boot time ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ &quot;<tt class="filename">xc/programs/Xserver/Xprint/etc/init.d/xprint</tt>&quot; is a script for SystemV
+ and Linux to start/stop/restart Xprt at system startup (e.g. per-machine)
+ or for a single user (e.g. per-user).
+ The script includes installation and usage details.
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2874249"></a><a name="id2874252"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ How can I start Xprt per-user ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ &quot;<tt class="filename">xc/programs/Xserver/Xprint/etc/init.d/xprint</tt>&quot; is a script for SystemV
+ and Linux to start/stop/restart Xprt at system startup (e.g. per-machine)
+ or for a single user (e.g. per-user).
+ The script includes installation and usage details.
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2874282"></a><a name="id2874285"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ How can I start Xprt only for one application ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ Create your own version/copy of <tt class="filename">/etc/init.d/xprint</tt> and modify it to fit
+ your requirements and then make sure that you issue a
+ &quot;my_xprint_startscript start&quot; before starting the application and a
+ &quot;my_xprint_startscript stop&quot; after leaving the application.
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2874315"></a><a name="id2874318"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ How can I filter the font path which should be passed to Xprt for
+ certain fonts ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ XXX
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2874337"></a><a name="id2874340"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ How can I manage access control to the Xprt server ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ Access control to Xprt is not differently as to any other Xserver and
+ can be handled in various ways - like per-cookie
+ (using MIT-MAGIC-COOKIE-1 authentification),
+ per-user (using SUN-DES-1 or MIT-KERBEROS-5 auth., see
+ (see <span class="citerefentry"><span class="refentrytitle">xhost</span>(1x)</span>))
+ and/or per-machine (using &quot;xhost&quot; (see <span class="citerefentry"><span class="refentrytitle">xhost</span>(1x)</span>) and/or
+ <tt class="filename">/etc/X&lt;dpy&gt;.hosts</tt> (&lt;dpy&gt; == display number,
+ e.g. <tt class="filename">/etc/X0.hosts</tt> for display 0) (see <span class="citerefentry"><span class="refentrytitle">Xserver</span>(1x)</span>))
+ Consult manual pages
+ <span class="citerefentry"><span class="refentrytitle">Xsecurity</span>(7)</span>,
+ <span class="citerefentry"><span class="refentrytitle">xhost</span>(1x)</span>,
+ <span class="citerefentry"><span class="refentrytitle">Xserver</span>(1x)</span>
+ etc. for further details.
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2874435"></a><a name="id2874438"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ How can I log access to the Xprt server ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ Logging access to Xprt can be done using the standard Xserver auditing,
+ see the <span class="citerefentry"><span class="refentrytitle">Xserver</span>(1x)</span>
+ manual page, option &quot;-audit&quot;
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2874468"></a><a name="id2874471"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ Does it require &quot;root&quot; permissions to use Xprt/Xprint ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ No, both Xprint clients and Xprint server(s) do not require root rights
+ to work.
+ </p><p>
+ Xprint clients are handled like any other X11 application and the Xprt
+ servers can run without any special requirements.
+ Solaris is an exception here since it requires to start any Xserver
+ (incl. Xprt) setgid &quot;root&quot; (set-group-id &quot;root&quot;, this is <span class="emphasis"><em>not</em></span>
+ set-user-id &quot;root&quot;) since the sockets/pipe files in /tmp/.X11-pipe/ and
+ /tmp/.X11-unix/ are only accessible for the group &quot;root&quot;.
+ The workaround is to start Xprt with the option &quot;-pn&quot;; therefore even
+ Xprt server binaries which are not setgid &quot;root&quot; can run without
+ problems).
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2874511"></a><a name="id2874514"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ How can I see the attributes of a printer managed by Xprint ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ &quot;xplsprinters -printer myprinter004 -l&quot; will do the job for printer
+ &quot;myprinter004&quot;.
+ </p><p>
+ See
+ <span class="citerefentry"><span class="refentrytitle">xplsprinters</span>(1x)</span>
+ for futher usage and a description of the output.
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="how_can_i_list_the_font_path_used_by_xprint"></a><a name="id2874560"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ How can I list the font path used by a Xprt server ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td xmlns:ns29="" align="left" valign="top"><p>
+ Figure out the display id of the server which should be queried (we are
+ using &quot;foobar:98&quot; in this example) and then try this:
+</p><pre class="screen">
+% <b class="userinput"><tt>(DISPLAY=foobar:98 xset q | \
+awk &quot;/Font Path:/ { i=1 ; next } i==1 { print \$0 ; i=0 }&quot; | \
+tr &quot;,&quot; &quot;[\n]&quot;)</tt></b>
+# Output may look like:
+<tt class="computeroutput">PRINTER:/usr/openwin/server/etc/XpConfig/C/print/models/HPDJ1600C/fonts/
+PRINTER:/usr/openwin/server/etc/XpConfig/C/print/models/SPSPARC2/fonts/
+PRINTER:/usr/openwin/server/etc/XpConfig/C/print/models/HPLJ3Si-PS/fonts/
+/usr/openwin/lib/X11/fonts/F3/
+/usr/openwin/lib/X11/fonts/F3bitmaps/
+/usr/openwin/lib/X11/fonts/Type1/
+/usr/openwin/lib/X11/fonts/Speedo/
+/usr/openwin/lib/X11/fonts/misc/
+/usr/openwin/lib/X11/fonts/75dpi/
+/usr/openwin/lib/X11/fonts/100dpi/</tt>
+</pre><p>
+ </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note:</h3><p>
+ Note that the font path items which start with &quot;PRINTER:&quot; are <span class="emphasis"><em>only</em></span> be
+ sourced <span class="emphasis"><em>after</em></span> the matching printer has been selected and configured
+ (for developers: After <tt class="function">XpSetContext</tt> has been called).
+ </p></div><p>
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2874641"></a><a name="id2874644"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ &quot;xset q&quot; lists all model-specific font dirs (like
+ PRINTER:/myxpcfg/C/print/models/SPSPARC2/fonts/&quot;) - is that a bug ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ No, this is normal. Xprt will add all fonts of all printer models to the
+ font path - but font path items starting with &quot;PRINTER:&quot; are <span class="emphasis"><em>only</em></span>
+ available for an application <span class="emphasis"><em>after</em></span> the matching printer has been
+ selected and configured (for developers: After <tt class="function">XpSetContext</tt> has been
+ called), <span class="emphasis"><em>before</em></span> that point fonts in these dirs are not available for
+ an application.
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2874690"></a><a name="id2874693"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ My application lists a printer called &quot;xp_ps_spooldir_tmp_Xprintjobs&quot; /
+ &quot;xp_pdf_spooldir_tmp_Xprintjobs&quot; / &quot;spooldir_tmp_Xprintjobs&quot; / in the
+ print dialog but I do not have such a print queue installed anywhere.
+ What is that for a thing ?!
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td xmlns:ns30="" align="left" valign="top"><p>
+ &quot;xp_ps_spooldir_tmp_Xprintjobs&quot; and &quot;xp_pdf_spooldir_tmp_Xprintjobs&quot;
+ (&quot;spooldir_tmp_Xprintjobs&quot; was the old, pre-009 name for &quot;xp_ps_spooldir_tmp_Xprintjobs&quot;)
+ are special Xprint printer targets which uses the &quot;PSspooldir&quot; / &quot;PS2PDFspooldir-GS&quot;
+ printer models. These model config sends PostScript or PDF jobs
+ to the <tt class="filename">/tmp/Xprintjobs/</tt> directory instead to a physical printer
+ (quite usefull for people who want to get the PostScript or PDF files as output instead
+ of printed pages).
+ </p><p><b>References: </b>
+ </p><div class="itemizedlist"><ul type="disc"><li><p><a href="http://xprint.mozdev.org/bugs/show_bug.cgi?id=5092" target="_top">xprint.mozdev.org bug 5092 (&quot;[PS2PDFspooldir-GS] RFE: Add printer model which sends PDF jobs to /tmp/Xprintjobs/&quot;)</a></p></li></ul></div><p>
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="manual_xprint_forwarding_via_ssh"></a><a name="id2874780"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ How can I forward Xprint services when logging-in via ssh to another machine ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td xmlns:ns33="" align="left" valign="top"><p>
+ You have to forward the X11 connection for the Xprint server(s) to the remote system
+ and set the <tt class="envar">XPSERVERLIST</tt> variable to direct the Xprint clients to the forwarded ports.
+
+ </p><div xmlns:ns31="" class="example"><a name="id2874804"></a><p class="title"><b>Example 1. Login to a remote host using slogin (assuming there is only one
+ Xprint server listed in <tt class="envar">XPSERVERLIST</tt>)</b></p><pre class="screen">% <b class="userinput"><tt>echo $XPSERVERLIST</tt></b></pre><pre class="screen"><tt class="computeroutput">west:33</tt></pre><p>Add 6000 to the display number (&quot;33&quot; in this example) to get the port number
+ (X11 port numbers start at port 6000. 6000 is display number &quot;0&quot;, 6001 is display number 6001 and so on)
+ and then ask slogin to forward the port:
+ </p><pre class="screen">% <b class="userinput"><tt>slogin -R6033:west:6033 -l nrubsig puzzle</tt></b></pre><p>
+ </p><pre class="screen"><tt class="computeroutput">nrubsig's password:
+Last login: Fri Jan 23 04:05:06 2004 from west.informatik.med.uni-giessen.de
+Have a lot of fun...
+</tt></pre><p>
+ </p><p>
+ Then set the <tt class="envar">XPSERVERLIST</tt> env var on the remote host to the forwarded
+ ports and you are done:
+ </p><pre class="screen">% <b class="userinput"><tt>export XPSERVERLIST=&quot;localhost:33 ${XPSERVERLIST}&quot;</tt></b></pre></div><p>
+
+ </p><div xmlns:ns32="" class="example"><a name="id2874908"></a><p class="title"><b>Example 2. Login to a remote host using slogin (assuming there are multiple
+ Xprint servers listed in <tt class="envar">XPSERVERLIST</tt>)</b></p><p>
+ The following small shell script will process the <tt class="envar">XPSERVERLIST</tt> env var and output the
+ parameters for calling slogin/ssh with all Xprint server ports forwarded:
+</p><pre class="programlisting">
+#!/bin/ksh
+# xp_print_slogin_args.ksh
+# Small example which parses $XPSERVERLIST and prints out how slogin/ssh
+# should be used to forward all local Xprint servers
+
+PORTARGS=&quot;&quot;
+REMOTE_XPSERVERLIST=&quot;&quot;
+spacer=&quot;&quot; # seperator
+remoteport=6100
+remotedisplaynum=100
+
+echo &quot;${XPSERVERLIST}&quot; | tr &quot; &quot; &quot;\n&quot; |
+ while read i ; do
+ [ &quot;$i&quot; = &quot;&quot; ] &amp;&amp; continue
+ displaynum=&quot;${i##*:}&quot;
+ port=&quot;$(( ${displaynum} + 6000 ))&quot;
+ hostname=&quot;${i%:*}&quot;
+ PORTARGS=&quot;${PORTARGS}${spacer}-R${remoteport}:${hostname}:${port}&quot;
+ REMOTE_XPSERVERLIST=&quot;${REMOTE_XPSERVERLIST}${spacer}localhost:${remotedisplaynum}&quot;
+
+ spacer=&quot; &quot;
+ remoteport=$((${remoteport} + 1))
+ remotedisplaynum=$((${remotedisplaynum} + 1))
+ done
+echo &quot;Log in with: % slogin ${PORTARGS} -l myloginname myremotehost&quot;
+echo &quot;Set remote XPSERVERLIST with % export XPSERVERLIST=\&quot;${REMOTE_XPSERVERLIST} \${XPSERVERLIST}\&quot;&quot;
+# EOF.
+</pre><p>
+ </p><p>Example usage:
+ </p><pre class="screen">% <b class="userinput"><tt>xp_print_slogin_args.ksh</tt></b></pre><p>
+ will print
+ </p><pre class="screen"><tt class="computeroutput">Log in with: % slogin -R6100:west:6033 -R6101:north:6033 -l myloginname myremotehost
+Set remote XPSERVERLIST with % export XPSERVERLIST=&quot;localhost:100 localhost:101 ${XPSERVERLIST}&quot;</tt></pre><p>
+ </p></div><p>
+ </p></td></tr><tr class="qandadiv"><td align="left" valign="top" colspan="2"><a name="faq_configuration"></a><h4 class="title"><a name="faq_configuration"></a>3. Configuration</h4></td></tr><tr class="toc" colspan="2"><td align="left" valign="top" colspan="2"><dl><dt>Q: <a href="#id2875040">
+ How do I change the defaults for double-sided/single-sided/etc.
+ printing ?
+ </a></dt><dt>Q: <a href="#id2875227">
+ I am in America and I don't have any ISO A4 paper. How do I change the
+ default paper size to 8.5 inch x 11 inch (US-Letter) ?
+ </a></dt><dt>Q: <a href="#id2875790">
+ How do I change the default printer resolution ?
+ </a></dt><dt>Q: <a href="#id2876121">
+ How do I change the default settings for &quot;portrait&quot;/&quot;landscape&quot;/&quot;seascape&quot; (=page orientation) ?
+ </a></dt><dt>Q: <a href="#id2876311">
+ How can I prevent Xprt from using any bitmap(=gfx) fonts ?
+ </a></dt><dt>Q: <a href="#configure_manual_list_of_printers">
+ I want only my manually added printers managed by Xprint. How can I
+ prevent Xprt from looking-up the printer names automatically ?
+ </a></dt><dt>Q: <a href="#configure_custom_script_to_enumerate_system_printers">
+ How can I specify an own program/script to enumerate the printers on my system ?
+ </a></dt><dt>Q: <a href="#id2876663">
+ Which program is used by default by Xprt to enumerate the printers on my system ?
+ </a></dt><dt>Q: <a href="#id2876920">
+ Where can I get more PostScript Type1 fonts from ?
+ </a></dt><dt>Q: <a href="#id2877269">
+ What are PMF fonts (e.g. the *.pmf fonts in
+ ${XPCONFIGDIR}/C/print/models/%model_name%/fonts/ (or
+ ${XPCONFIGDIR}/${LANG}/print/models/%model_name%/fonts/)) ?
+ </a></dt><dt>Q: <a href="#id2877348">
+ Can I use the fontserver (&quot;xfs&quot;) with Xprt ?
+ </a></dt><dt>Q: <a href="#id2877411">
+ What is a &quot;model-config&quot; ?
+ </a></dt><dt>Q: <a href="#id2877522">
+ Where can I store the default values for printers ?
+ </a></dt><dt>Q: <a href="#id2877544">
+ How can I create my own model-config ?
+ </a></dt><dt>Q: <a href="#id2877566">
+ How can I create my own PMF &quot;fonts&quot; ?
+ </a></dt><dt>Q: <a href="#id2877607">
+ Where can I get more model-configs from ?
+ </a></dt><dt>Q: <a href="#id2877668">
+ If I install Xprt &amp;co. as &quot;root&quot; in the default location and don't need
+ to set ${XPCONFIGDIR} - where are my configuration files located then ?
+ </a></dt><dt>Q: <a href="#id2877813">
+ Are config files and/or the PMF fonts architecture dependent ?
+ </a></dt><dt>Q: <a href="#id2877882">
+ Can I localise my Xprint/Xprt configuration (l10n) ?
+ </a></dt><dt>Q: <a href="#id2878167">
+ Can I execute my own scripts to process the PostScript files generated
+ by Xprt ?
+ </a></dt><dt>Q: <a href="#id2878373">
+ How can I disable &quot;xp_ps_spooldir_tmp_Xprintjobs&quot; / &quot;xp_pdf_spooldir_tmp_Xprintjobs&quot; printer targets ?
+ </a></dt></dl></td></tr><tr class="question"><td align="left" valign="top"><a name="id2875040"></a><a name="id2875043"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ How do I change the defaults for double-sided/single-sided/etc.
+ printing ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td xmlns:ns38="" align="left" valign="top"><p>
+ This is controlled via the &quot;plex&quot; attribute in the document attribute
+ pool <tt class="filename">(<tt class="envar">${XPCONFIGDIR}</tt>/<tt class="envar">${LANG}</tt>/print/attributes/document</tt> and/or
+ <tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/C/print/attributes/document</tt>).
+ Examples:
+ </p><div class="orderedlist"><ol type="1"><li xmlns:ns34=""><p>
+ Adding/modifying the following line to/in
+ <tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/C/print/attributes/document</tt> sets the default plex for
+ all printers to &quot;duplex&quot;:
+</p><pre class="screen">
+ *plex: duplex
+</pre><p>
+ </p></li><li xmlns:ns35=""><p>
+ Adding/modifying the following two lines to/in
+ <tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/C/print/attributes/document</tt> sets the default plex for
+ all printers to &quot;duplex&quot; except for printer &quot;ps003&quot; which should
+ default to &quot;simplex&quot;:
+</p><pre class="screen">
+ *plex: duplex
+ ps003.plex: simplex
+</pre><p>
+ </p></li></ol></div><p>
+
+ </p><div xmlns:ns37="" class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Notes:</h3><p>
+ </p><div class="itemizedlist"><ul type="disc"><li><p>
+ Not all printers support all plex modes. The model-config may restrict
+ the available plex modes.
+ </p></li><li><p>
+ Setting a plex mode which is not supported by either the DDX(=driver)
+ or not specified in the model-config will cause Xprt to not set a
+ default plex.
+ </p></li><li><p>
+ The PostScript DDX supports plex modes &quot;simplex&quot;, &quot;duplex&quot; and &quot;tumble&quot;.
+ </p></li><li xmlns:ns36=""><p>
+ Verification:
+ Use
+</p><pre class="programlisting">
+ xplsprinters -l | egrep &quot;^printer:|default_plex=|plex=&quot;
+</pre><p>
+ to view the plex settings for all printers.
+ </p></li></ul></div><p>
+ </p></div><p>
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2875227"></a><a name="id2875230"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ I am in America and I don't have any ISO A4 paper. How do I change the
+ default paper size to 8.5 inch x 11 inch (US-Letter) ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td xmlns:ns44="" align="left" valign="top"><p>
+ This is controlled via the &quot;default-medium&quot; attribute in the document
+ attribute pool (<tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/<tt class="envar">${LANG}</tt>/print/attributes/document</tt> and/or
+ <tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/C/print/attributes/document</tt>).
+ Examples:
+ </p><div class="orderedlist"><ol type="1"><li xmlns:ns39=""><p>
+ Adding/modifying the following line to/in
+ <tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/C/print/attributes/document</tt> sets the default paper size
+ for all printers to &quot;na-letter&quot;:
+</p><pre class="screen">
+ *default-medium: na-letter
+</pre><p>
+ </p></li><li xmlns:ns40=""><p>
+ Adding/modifying the following two lines to/in
+ <tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/C/print/attributes/document</tt> sets the default paper size
+ for all printers to &quot;na-letter&quot; except for printer &quot;ps003&quot; which should
+ default to &quot;iso-a4&quot;:
+</p><pre class="screen">
+ *default-medium: na-letter
+ ps003.default-medium: iso-a4
+</pre><p>
+ </p></li></ol></div><p>
+
+ </p><div xmlns:ns43="" class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Notes:</h3><p>
+ </p><div class="itemizedlist"><ul type="disc"><li><p>
+ xprint.mozdev.org releases &gt;= 007 provides a seperate &quot;document&quot;
+ attribute pool for en_US(-like) locales (see
+ <tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/en_US/print/attributes/document</tt>) which will override the
+ default ISO-A4 with US-Letter (this feature assumes that <tt class="envar">${LANG}</tt> is set
+ to &quot;en_US&quot; (or a locale which has similar defaults as &quot;en_US&quot;, those
+ are currently linked to &quot;en_US&quot; in <tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/</tt>))
+ </p></li><li><p>
+ Not all printers support all paper sizes. The model-config may restrict
+ the available paper sizes.
+ </p></li><li><p>
+ Setting a paper size which is not supported by either the DDX(=driver)
+ or not specified in the model-config will cause Xprt to not set a
+ default paper size.
+ </p></li><li xmlns:ns41=""><p>
+ The PostScript DDX supports the following paper sizes:
+ </p><div class="itemizedlist"><ul type="circle"><li><p>
+ X.org release 6.6 (X116.6):
+ <span class="simplelist">&quot;iso-a4&quot;, &quot;na-letter&quot;, &quot;na-legal&quot;, &quot;executive&quot;, &quot;iso-designated-long&quot;, &quot;na-number-10-envelope&quot;</span>
+ </p></li><li><p>
+ xprint.mozdev.org release &gt;= 006:
+ <span class="simplelist">&quot;na-letter&quot;, &quot;na-legal&quot;, &quot;executive&quot;, &quot;folio&quot;, &quot;invoice&quot;, &quot;ledger&quot;, &quot;quarto&quot;, &quot;a&quot;, &quot;b&quot;, &quot;c&quot;, &quot;d&quot;, &quot;e&quot;, &quot;na-6x9-envelope&quot;, &quot;na-10x15-envelope&quot;, &quot;monarch-envelope&quot;, &quot;na-10x13-envelope&quot;, &quot;na-9x12-envelope&quot;, &quot;na-number-10-envelope&quot;, &quot;na-7x9-envelope&quot;, &quot;na-9x11-envelope&quot;, &quot;na-10x14-envelope&quot;, &quot;na-number-9-envelope&quot;, &quot;iso-a0&quot;, &quot;iso-a1&quot;, &quot;iso-a2&quot;, &quot;iso-a3&quot;, &quot;iso-a4&quot;, &quot;iso-a5&quot;, &quot;iso-a6&quot;, &quot;iso-a7&quot;, &quot;iso-a8&quot;, &quot;iso-a9&quot;, &quot;iso-a10&quot;, &quot;iso-b1&quot;, &quot;iso-b2&quot;, &quot;iso-b3&quot;, &quot;iso-b4&quot;, &quot;iso-b5&quot;, &quot;iso-b6&quot;, &quot;iso-b7&quot;, &quot;iso-b8&quot;, &quot;iso-b9&quot;, &quot;iso-b10&quot;, &quot;jis-b1&quot;, &quot;jis-b2&quot;, &quot;jis-b3&quot;, &quot;jis-b4&quot;, &quot;jis-b5&quot;, &quot;jis-b6&quot;, &quot;jis-b7&quot;, &quot;jis-b8&quot;, &quot;jis-b9&quot;, &quot;jis-b10&quot;, &quot;iso-c3&quot;, &quot;iso-c4&quot;, &quot;iso-c5&quot;, &quot;iso-c6&quot;, &quot;iso-designated-long&quot;</span>
+ </p></li></ul></div><p>
+ </p></li><li xmlns:ns42=""><p>
+ Verification:
+ Use
+</p><pre class="programlisting">
+ xplsprinters -l | egrep &quot;^printer:|default-medium=|medium-source-sizes-supported=&quot;
+</pre><p>
+ to view the medium settings for all printers.
+ The 'medium-source-sizes-supported='-lines have the format XXX.
+ </p></li></ul></div><p>
+ </p></div><p>
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2875790"></a><a name="id2875793"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ How do I change the default printer resolution ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td xmlns:ns50="" align="left" valign="top"><p>
+ This is controlled via the &quot;default-printer-resolution&quot; attribute in the
+ document attribute pool (<tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/<tt class="envar">${LANG}</tt>/print/attributes/document</tt>
+ and/or <tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/C/print/attributes/document</tt>).
+ Examples:
+ </p><div class="orderedlist"><ol type="1"><li xmlns:ns45=""><p>
+ Adding/modifying the following line to/in
+ <tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/C/print/attributes/document</tt> sets the default
+ resolution for all printers to 600 DPI:
+</p><pre class="screen">
+ *default-printer-resolution: 600
+</pre><p>
+ </p></li><li xmlns:ns46=""><p>
+ Adding/modifying the following two lines to/in
+ <tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/C/print/attributes/document</tt> sets the default resolution
+ for all printers to 300 DPI except for printer &quot;tekcolor_ps&quot; which
+ should default to 1200 DPI:
+</p><pre class="screen">
+ *default-printer-resolution: 300
+ tekcolor_ps.default-printer-resolution: 1200
+</pre><p>
+ </p></li></ol></div><p>
+
+ </p><div xmlns:ns49="" class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Notes:</h3><p>
+ </p><div class="itemizedlist"><ul type="disc"><li><p>
+ Not all printers support all resolutions. The model-config may restrict
+ the available resolutions.
+ </p></li><li><p>
+ Setting a resolution which is not supported by either the
+ DDX(=driver) or not specified in the model-config will cause Xprt to
+ not set a default resolution.
+ </p></li><li xmlns:ns47=""><p>
+ The PostScript DDX supports the following default resolutions
+ </p><div class="itemizedlist"><ul type="circle"><li><p>
+ X.org release 6.6 (X116.6):
+ <span class="simplelist">300, 600, 720, 940, 1200, 1440, 2400</span>
+ </p></li><li><p>
+ xprint.mozdev.org release &gt;= 006:
+ <span class="simplelist">75, 100, 120, 150, 180, 200, 240, 300, 360, 400, 600, 720, 940, 1200, 1440, 2400</span>
+ </p></li></ul></div><p>
+
+ </p></li><li xmlns:ns48=""><p>
+ Verification:
+ Use
+</p><pre class="programlisting">
+ xplsprinters -l | egrep &quot;^printer:|default-printer-resolution=|resolution=&quot;
+</pre><p>
+ to view the resolution settings for all printers.
+ </p></li></ul></div><p>
+ </p></div><p>
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2876121"></a><a name="id2876124"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ How do I change the default settings for &quot;portrait&quot;/&quot;landscape&quot;/&quot;seascape&quot; (=page orientation) ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td xmlns:ns55="" align="left" valign="top"><p>
+ This is controlled via the &quot;content-orientation&quot; attribute in the
+ document attribute pool (<tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/<tt class="envar">${LANG}</tt>/print/attributes/document</tt>
+ and/or <tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/C/print/attributes/document</tt>).
+ Examples:
+ </p><div class="orderedlist"><ol type="1"><li xmlns:ns51=""><p>
+ Adding/modifying the following line to/in
+ <tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/C/print/attributes/document</tt> sets the default
+ orientation for all printers to &quot;portrait&quot;:
+</p><pre class="screen">
+ *content-orientation: portrait
+</pre><p>
+ </p></li><li xmlns:ns52=""><p>
+ Adding/modifying the following two lines to/in
+ <tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/C/print/attributes/document</tt> sets the default orientation
+ for all printers to &quot;portrait&quot; except for printer &quot;ps003&quot; which should
+ default to &quot;landscape&quot;:
+</p><pre class="screen">
+ *content-orientation: portrait
+ ps003.content-orientation: landscape
+</pre><p>
+ </p></li></ol></div><p>
+
+ </p><div xmlns:ns54="" class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Notes:</h3><p>
+ </p><div class="itemizedlist"><ul type="disc"><li><p>
+ Not all printers support all orientations. The model-config may
+ restrict the available orientations.
+ </p></li><li><p>
+ Setting an orientation which is not supported by either the
+ DDX(=driver) or not specified in the model-config will cause Xprt to
+ not set a default orientation.
+ </p></li><li><p>
+ The PostScript DDX supports the following orientations:
+ &quot;portrait&quot;, &quot;landscape&quot;, &quot;reverse-portrait&quot; and &quot;reverse-landscape&quot;.
+ </p></li><li xmlns:ns53=""><p>
+ Verification:
+ Use
+</p><pre class="programlisting">
+ xplsprinters -l | egrep &quot;^printer:|default_orientation=|orientation=&quot;
+</pre><p>
+ to view the orientation settings for all printers.
+ </p></li></ul></div><p>
+ </p></div><p>
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2876311"></a><a name="id2876314"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ How can I prevent Xprt from using any bitmap(=gfx) fonts ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td xmlns:ns61="" align="left" valign="top"><p>
+ Do not pass any bitmap fonts with the &quot;-fp&quot; (=font path) argument.
+ However you have to provide a 'fixed' and a 'cursor' font, a Xserver
+ can't start without having these fonts.
+ </p><div class="blockquote"><blockquote class="blockquote"><div class="procedure"><p class="title"><b>Procedure 1. Task list:</b></p><ol type="1"><li xmlns:ns56=""><p>
+ Create a new directory:
+</p><pre class="screen">
+% <b class="userinput"><tt>mkdir Xp_dummyfonts</tt></b>
+% <b class="userinput"><tt>cd Xp_dummyfonts</tt></b>
+</pre><p>
+ </p></li><li xmlns:ns57=""><p>
+ Create a <tt class="filename">fonts.alias</tt> file with the following content:
+</p><pre class="programlisting">
+! alias for &quot;fixed&quot; font
+! original from /usr/openwin/lib/X11/fonts/misc/fonts.alias looks like this:
+! fixed &quot;-misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1&quot;
+fixed -*-r-*--*-*-*-*-*-*-iso8859-1
+! EOF.
+</pre><p>
+ </p></li><li xmlns:ns58=""><p>
+ Copy or link &quot;<tt class="filename">6x13.pcf.Z</tt>&quot; and &quot;<tt class="filename">cursor.pcf.Z</tt>&quot; and create <tt class="filename">fonts.dir</tt>
+</p><pre class="screen">
+% <b class="userinput"><tt>ln -s /usr/openwin/lib/X11/fonts/misc/6x13.pcf.Z .</tt></b>
+% <b class="userinput"><tt>ln -s /usr/openwin/lib/X11/fonts/misc/cursor.pcf.Z .</tt></b>
+% <b class="userinput"><tt>mkfontdir $PWD</tt></b>
+</pre><p>
+ </p></li><li xmlns:ns59=""><p>
+ Verify: The directory should now look like this:
+</p><pre class="screen">
+% <b class="userinput"><tt>ls -1</tt></b>
+<tt class="computeroutput">6x13.pcf.Z
+cursor.pcf.Z
+fonts.alias
+fonts.dir</tt>
+</pre><p>
+ </p></li><li xmlns:ns60=""><p>
+ Add the full path (e.g. /home/xp/Xp_dummyfonts) as last element
+ of the font path when starting Xprt:
+</p><pre class="screen">
+ % <b class="userinput"><tt>Xprt -fp /usr/openwin/lib/X11/fonts/Type1/,/home/xp/Xp_dummyfonts :12</tt></b>
+</pre><p>
+ </p></li></ol></div></blockquote></div><p>
+
+
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="configure_manual_list_of_printers"></a><a name="id2876542"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ I want only my manually added printers managed by Xprint. How can I
+ prevent Xprt from looking-up the printer names automatically ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td xmlns:ns62="" align="left" valign="top"><p>
+ Add a line with &quot;Augment_Printer_List %none%&quot; to
+ <tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/C/print/Xprinters</tt> (or
+ <tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/<tt class="envar">${LANG}</tt>/print/Xprinters</tt>) and add lines with
+ &quot;Printer &lt;name&gt;&quot; for each printer &lt;name&gt;.
+ Example:
+</p><pre class="screen">
+Augment_Printer_List %none%
+Printer ps001
+Printer ps003
+Printer hplaser6
+</pre><p>
+ will add only the printers &quot;ps001&quot;, ps003&quot; and &quot;hplaser6&quot;.
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="configure_custom_script_to_enumerate_system_printers"></a><a name="id2876621"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ How can I specify an own program/script to enumerate the printers on my system ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ Add &quot;Augment_Printer_List my_script&quot; to <tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/C/print/Xprinters</tt> (or
+ <tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/<tt class="envar">${LANG</tt>}/print/Xprinters</tt>).
+ The script must return the printer names - one per line, ASCII-only - to stdout.
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2876663"></a><a name="id2876666"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ Which program is used by default by Xprt to enumerate the printers on my system ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td xmlns:ns69="" align="left" valign="top"><p>
+ This depends on the OS:
+ </p><div class="itemizedlist"><ul type="disc"><li xmlns:ns63=""><p>
+ On Solaris (and most other OSes exclusing AIX and Linux):
+</p><pre class="screen">
+% <b class="userinput"><tt>lpstat -a | cut -d &quot; &quot; -f 1</tt></b>
+</pre><p>
+ </p></li><li xmlns:ns66=""><p>
+ On Linux:
+ </p><div class="itemizedlist"><ul type="circle"><li xmlns:ns64=""><p>
+ For Xprt build from X11R6.x X.org sources:
+</p><pre class="screen">
+% <b class="userinput"><tt>lpc status | grep -v '^\t' | sed -e /:/s///</tt></b> # '\t' means TAB
+</pre><p>
+ </p></li><li xmlns:ns65=""><p>
+ For Xprt build from xprint.mozdev.org &lt;= release 008 sources (both lines are executed
+ to support both LPRng and CUPS (using the CUPS *BSD compatibility tools)):
+</p><pre class="screen">
+% <b class="userinput"><tt>lpc status | awk '/:$/ &amp;&amp; !/@/ { print $1 }' | sed -e /:/s/// ; \
+ lpc -a status | awk '/@/ &amp;&amp; !/:/ { split( $1, name, \&quot;@\&quot; ); print name[1]; }'</tt></b>
+</pre><p>
+ </p></li><li><p>
+ Xprt build from xprint.mozdev.org &gt;= release 009 sources uses a more flexible scheme
+ which tries to enumerate the print spoolers in the order &quot;CUPS&quot; (using the normal CUPS
+ (SYSV-like) commands), &quot;LPRng&quot; and finally &quot;*BSD&quot;, the first working (=print queues are
+ found) print spooler is chosen.
+ The spooler(s) being used (and the query order) can be changed by the &quot;-XpSpoolerType&quot;
+ command line option.
+ The list of commands used to enumerate the queues for a specific spooler type
+ can be found in <tt class="filename">xc/programs/Xserver/Xprint/spooler.c</tt>
+ </p></li></ul></div><p>
+ </p></li><li xmlns:ns67=""><p>
+ On AIX v4:
+</p><pre class="screen">
+% <b class="userinput"><tt>lsallq | grep -v '^bsh$'</tt></b>
+</pre><p>
+ </p></li></ul></div><p>
+ </p><div xmlns:ns68="" class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Notes:</h3><p>
+ </p><div class="itemizedlist"><ul type="disc"><li><p>
+ See <tt class="filename">xc/programs/Xserver/Xprint/Init.c</tt> (xprint.mozdev.org &gt;= release 009 uses
+ <tt class="filename">xc/programs/Xserver/Xprint/spooler.c</tt>) for a complete list of commands
+ used on the specific platforms to enumerate the printers.
+ </p></li><li><p>
+ Note that the output is always piped through &quot;sort&quot; to get an
+ alphabetical order (the &quot;default&quot; printer is not chosen/defined
+ here(=server side), the client side is responsible to choose a default
+ printer.
+ See FAQ item about the <tt class="envar">${XPRINTER}</tt> env var how to set your default
+ printer).
+ </p></li></ul></div><p>
+ </p></div><p>
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2876920"></a><a name="id2876923"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ Where can I get more PostScript Type1 fonts from ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td xmlns:ns73="" align="left" valign="top"><p>
+ Some sources:
+ </p><div class="itemizedlist"><ul type="disc"><li xmlns:ns71=""><p>
+ Adobe:
+
+ </p><div class="itemizedlist"><ul type="circle"><li><p>
+ Commercial fonts:
+ <a href="http://www.adobe.com/type/main.html" target="_top">http://www.adobe.com/type/main.html</a>
+ </p></li><li xmlns:ns70=""><p>
+ Free Euro font:
+ </p><div class="itemizedlist"><ul type="disc"><li><p>
+ Single-glyph (e.g. it contains <span class="emphasis"><em>only</em></span> the euro char) euro font:
+ <a href="http://www.adobe.com/type/eurofont.html" target="_top">http://www.adobe.com/type/eurofont.html</a> or
+ <a href="ftp://ftp.adobe.com/pub/adobe/type/win/all/" target="_top">ftp://ftp.adobe.com/pub/adobe/type/win/all/</a>
+ (&quot;eurofont.exe&quot; can be unzipped using &quot;unzip&quot;)
+ </p></li><li><p>
+ ISO8859-15:
+ XXX - WANTED!!
+ </p></li></ul></div><p>
+ </p></li></ul></div><p>
+ </p></li><li xmlns:ns72=""><p>
+ Solaris shipps with various PS Type 1 fonts:
+ </p><div class="itemizedlist"><ul type="circle"><li><p>
+ Arabic:
+ <tt class="filename">/usr/openwin/lib/locale/ar/X11/fonts/Type1/</tt>
+ (<tt class="filename">fonts.dir</tt> and <tt class="filename">fonts.scale</tt> missing, maybe they miss the
+ presentation forms a&amp;b, too [unconfirmed])
+ </p></li><li><p>
+ ISO-8859-13 (Latin 8):
+ <tt class="filename">/usr/openwin/lib/locale/iso_8859_13/X11/fonts/Type1/</tt>
+ </p></li><li><p>
+ ISO-8859-5 (Latin 5):
+ <tt class="filename">/usr/openwin/lib/locale/iso_8859_9/X11/fonts/Type1/</tt>
+ </p></li><li><p>
+ ISO-8859-8/Hebrew:
+ <tt class="filename">/usr/openwin/lib/locale/iso_8859_8/X11/fonts/Type1</tt>
+ (BROKEN, even &quot;type1fix&quot; cannot fix them. Use the hebrew fonts from
+
+ <a href="broken-link/PS_Type1_iso8859-8.tar.gz" target="_top">
+ broken-link-/PS_Type1_iso8859-8.tar.gz</a>)
+ </p></li><li><p>
+ ISO-8859-7/Modern greek:
+ <tt class="filename">/usr/openwin/lib/locale/iso_8859_7/X11/fonts/Type1/</tt>
+ </p></li><li><p>
+ ISO-8859-5/Cryrillic:
+ <tt class="filename">/usr/openwin/lib/locale/iso_8859_5/X11/fonts/Type1/</tt>
+ </p></li><li><p>
+ ISO-8859-4 (Latin 4):
+ <tt class="filename">/usr/openwin/lib/locale/iso_8859_4/X11/fonts/Type1/</tt>
+ </p></li><li><p>
+ ISO-8859-2 (Latin 2):
+ <tt class="filename">/usr/openwin/lib/locale/iso_8859_2/X11/fonts/Type1/</tt>
+ </p></li><li><p>
+ ISO-8859-1 (Latin 1) and Symbol fonts:
+ <tt class="filename">/usr/openwin/lib/X11/fonts/Type1/</tt>
+ </p></li></ul></div><p>
+ </p></li></ul></div><p>
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2877269"></a><a name="id2877272"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ What are PMF fonts (e.g. the *.pmf fonts in
+ <tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/C/print/models/%model_name%/fonts/</tt> (or
+ <tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/<tt class="envar">${LANG}</tt>/print/models/%model_name%/fonts/</tt>)) ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ PMF &quot;fonts&quot; are &quot;printer metric files&quot; (.pmf) that describe the metrics
+ of the fonts (which means they do not contain any data to render the
+ fonts - they contain only the plain metrics of a font) which are built
+ into the printer (ROM or via font catridge etc.).
+ The file format is identical to the PCF (&quot;Portable Compiled Format&quot;) font
+ format except that the bitmap data is not provided.
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2877348"></a><a name="id2877351"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ Can I use the fontserver (&quot;xfs&quot;) with Xprt ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ You can use Xprt with the font server (&quot;xfs&quot;) like with any other
+ Xserver - but it is not recommded since the font server protocol does
+ not allow access to the native font format and therefore disables font
+ download, e.g. both PS Type1 and TrueType fonts cannot be downloaded
+ anymore and Xprt will fall-back to embed them as bitmap glyphs in the
+ print job (e.g. the fonts will still appear correctly in the printout,
+ but the quality may be reduced since downloaded fonts are always better
+ than bitmap glyphs).
+ (users of xprint.mozdev.org-release &lt;= 006 may see
+ <a href="http://xprint.mozdev.org/bugs/show_bug.cgi?id=2092" target="_top">xprint.mozdev.org bug 2092</a>
+ if they use &quot;xfs&quot;; this has been fixed in the 007 release!)
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2877411"></a><a name="id2877414"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ What is a &quot;model-config&quot; ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td xmlns:ns74="" align="left" valign="top"><p>
+ The term &quot;model-config&quot; refers to the subdirs in
+ <tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/<tt class="envar">${LANG}</tt>/print/models/</tt>.
+ There subdirs contain information
+ about the attributes for a specific printer model or family/class of
+ printer models. In particular there are two kinds of information:
+
+ </p><div class="itemizedlist"><ul type="disc"><li><p>
+ &quot;<tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/<tt class="envar">${LANG}</tt>/print/models/${NAME_OF_MODEL}/model-config</tt>&quot;
+ this file defines a set of attributes supported by this specific printer
+ (-family/-class/etc.)
+ and
+ </p></li><li><p>
+ &quot;<tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/<tt class="envar">${LANG}</tt>/print/models/${NAME_OF_MODEL}/fonts/</tt>&quot; - a
+ directory which contains a set of PMF (printer metrics file) fonts
+ builtin into the printer itself (actually the PMF &quot;font&quot; format
+ contains only metrics information and no glyphs).
+ These fonts are only available to the application <span class="emphasis"><em>after</em></span> the
+ application has selected a printer and configured it (for developers:
+ After <tt class="function">XpSetContext</tt> has been called).
+ </p></li></ul></div><p>
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2877522"></a><a name="id2877525"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ Where can I store the default values for printers ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ XXX
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2877544"></a><a name="id2877547"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ How can I create my own model-config ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ XXX
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2877566"></a><a name="id2877569"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ How can I create my own PMF &quot;fonts&quot; ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ XXX - no solution yet, but
+ <a href="http://xprint.mozdev.org/bugs/show_bug.cgi?id=2430" target="_top">xprint.mozdev.org bug 2430
+ (&quot;RFE: Need tool to create PMF (printer metrics file) fonts&quot;)</a>
+ has been filed to create a freeware tool to create such fonts.
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2877607"></a><a name="id2877610"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ Where can I get more model-configs from ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ If you miss a model-config for your printer please open a bug/RFE at
+ <a href="http://xprint.freedesktop.org/cgi-bin/bugzilla/enter_bug.cgi?product=xprint&amp;component=Server%3A%2BConfig%3A%2Bmodel-configs" target="_top">
+ http://xprint.freedesktop.org/cgi-bin/bugzilla/enter_bug.cgi?product=xprint&amp;component=Server%3A+Config%3A+model-configs</a>
+ (e.g. <a href="http://xprint.freedesktop.org/cgi-bin/bugzilla/enter_bug.cgi" target="_top">http://xprint.freedesktop.org/cgi-bin/bugzilla/enter_bug.cgi</a>, product &quot;Xprint&quot;, component
+ &quot;Server Config: model-configs&quot;).
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2877668"></a><a name="id2877672"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ If I install Xprt &amp;co. as &quot;root&quot; in the default location and don't need
+ to set <tt class="envar">${XPCONFIGDIR}</tt> - where are my configuration files located then ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td xmlns:ns76="" align="left" valign="top"><p>
+ This is platform-specific, based on the &quot;XPrintDir&quot; Imake variable set
+ at build time. Default location for plain X11R6.x is
+ &quot;<tt class="filename">${XProjectRoot}/lib/X11/xserver</tt>&quot; (set at build time), but some
+ platforms modify &quot;XPrintDir&quot; to alternate locations:
+ </p><div class="itemizedlist"><ul type="disc"><li><p>
+ Solaris sets <tt class="envar">${XPCONFIGDIR}</tt> to <tt class="filename">/usr/openwin/server/etc/XpConfig/</tt>
+ </p></li><li><p>
+ Linux (non-Debian) sets <tt class="envar">${XPCONFIGDIR}</tt> to <tt class="filename">/usr/X11R6/lib/X11/xserver/</tt>
+ or <tt class="filename">/etc/X11/xserver/</tt>
+ </p></li><li><p>
+ Debian Linux sets <tt class="envar">${XPCONFIGDIR}</tt> to <tt class="filename">/usr/share/Xprint/xserver/</tt>
+ </p></li></ul></div><p>
+ </p><div xmlns:ns75="" class="tip" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Tip</h3><p>
+ If you don't know where the default location for <tt class="envar">${XPCONFIGDIR}</tt> is
+ located try
+</p><pre class="programlisting">
+ strings -a /usr/openwin/bin/Xprt | grep XPRINTDIR
+</pre><p> - it <span class="emphasis"><em>may</em></span>
+ return some debug info from the binary containing the builtin XpConfig
+ path.
+ </p></div><p>
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2877813"></a><a name="id2877816"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ Are config files and/or the PMF fonts architecture dependent ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ The PMF fonts are a variant of the PCF font format, they are
+ (like the PCF format) architecture-independent.
+ These fonts must be kept together with the other model config data since
+ they depend on the printer model (de facto
+ <tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/C/print/models/</tt> (and/or
+ <tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/<tt class="envar">${LANG}</tt>/print/models/</tt>) should be supplied by the printer
+ vendors (but most people will create their own models on demand since
+ I doubt that any vendor except HP, Sun and xprint.mozdev.org staff ever
+ looked at that stuff)).
+ Per definition they are read-only data supplied by the vendor, but
+ modifying them may be usefull, too.
+ I would say it is recommended to put treat all Xprint files in
+ <tt class="envar">${XPCONFIGDIR}</tt> as read-only vendor data; admins should create copies of
+ this tree on demand (and/or (soft-)link some files) and set
+ <tt class="envar">${XPCONFIGDIR}</tt> to the modified config data.
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2877882"></a><a name="id2877885"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ Can I localise my Xprint/Xprt configuration (l10n) ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td xmlns:ns78="" align="left" valign="top"><p>
+ Yes, Xprt supports localisation (&quot;l10n&quot;) by default. Default values for
+ all locales are stored in <tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/C/print/</tt>, locale-specific
+ settings can be set in <tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/<tt class="envar">${LANG}</tt>/print/</tt>
+ Rules:
+ </p><div class="itemizedlist"><ul type="disc"><li><p>
+ Attribute pools
+ (&quot;<tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/*/print/attributes/document</tt>&quot;,
+ &quot;<tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/*/print/attributes/job</tt>&quot;,
+ &quot;<tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/*/print/attributes/printer</tt>&quot; and
+ &quot;<tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/*/print/models/*/model-config</tt>&quot;):
+ &quot;document&quot;, &quot;job&quot; and &quot;printer&quot; attribute pools and printer
+ model-configs are sourced first from the
+ &quot;<tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/C/print/</tt>&quot;-directory, then they are overridden by any
+ attributes from the locale-specific pools (in
+ &quot;<tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/<tt class="envar">${LANG}</tt>/print/</tt>&quot;), e.g. any values set in
+ &quot;<tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/C/print/attributes/*</tt>&quot; and
+ &quot;<tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/C/print/models/*/model-config</tt>&quot; will automatically
+ apply to all other locales unless they are overridden by
+ locale-specific versions of these files
+ (&quot;<tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/<tt class="envar">${LANG}</tt>/print/attributes/*</tt>&quot;,
+ &quot;<tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/<tt class="envar">${LANG}</tt>/print/models/*/model-config</tt>&quot;)
+ </p></li><li><p>
+ &quot;Xprinters&quot; (list of printers):
+ If there is a locale-specific <tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/<tt class="envar">${LANG}</tt>/Xprinters</tt> present
+ it will be used instead of <tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/C/Xprinters</tt> (e.g. values set
+ in <tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/C/Xprinters</tt> will be ignored and the values from
+ <tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/<tt class="envar">${LANG}</tt>/Xprinters</tt> will be used instead).
+ </p></li><li xmlns:ns77=""><p>
+ Xprt will determinate the locale which should be used based on the
+ <tt class="envar">${LANG}</tt>-environment vaiable at startup time. If there is no such
+ variable set at that time LANG=&quot;C&quot; is assumed.
+ </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note:</h3><p>
+ Attribute values for paper names and orientation names refer to
+ builtin strings in the DDX code (which are itself based on
+ international standards), these cannot be changed to your own
+ &quot;inventions&quot; (it does it make sense to try to &quot;localize&quot; paper names -
+ &quot;ISO-A4&quot; is &quot;ISO-A4&quot; even in japanese/hebrew/german etc.).
+ Locale-spefific attribute pools can set their own, different values -
+ but only within the allowed range of values supported by the DDX and
+ printers's model-config.
+ </p></div><p>
+ </p></li></ul></div><p>
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2878167"></a><a name="id2878170"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ Can I execute my own scripts to process the PostScript files generated
+ by Xprt ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td xmlns:ns82="" align="left" valign="top"><p>
+ Yes, there are at least two possible solutions:
+ </p><div class="orderedlist"><ol type="1"><li><p>
+ Create your own model-config which uses a custom &quot;xp-spooler-command&quot;
+ value - the xprint.mozdev.org's
+ &quot;PSspooldir&quot; model config (see
+ &quot;<tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/C/print/models/PSspooldir/</tt>&quot; and
+ &quot;<tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/C/print/attributes/printer</tt>&quot; and
+ &quot;<tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/C/print/Xprinters</tt>&quot;)
+ and
+ &quot;PS2PDFspooldir-GS&quot; model config (see
+ &quot;<tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/C/print/models/PS2PDFspooldir-GS/</tt>&quot; and
+ &quot;<tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/C/print/attributes/printer</tt>&quot; and
+ &quot;<tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/C/print/Xprinters</tt>&quot;)
+ are good examples for that.
+ </p></li><li xmlns:ns81=""><p>
+ Use an existing &quot;model-config&quot; (which would normally send it's data to
+ a printer using the default print spooler command) and provide a
+ custom &quot;xp-spooler-command&quot;.
+ </p><div class="blockquote"><blockquote class="blockquote"><div class="procedure"><p class="title"><b>Procedure 2. 
+ Example (using &quot;SPSPARC2&quot; as printer model, <tt class="filename">/w/xp_conv</tt>
+ as the script to execute and &quot;myscriptprinter&quot; as name of the printer):
+ </b></p><ol type="1"><li xmlns:ns79=""><p>
+ Edit <tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/C/print/attributes/printer</tt> and add these lines
+ (Xprt will replace &quot;%printer-name%&quot; with the printer's name,
+ &quot;%copy-count%&quot; with the number of job copies, &quot;%job-name%&quot; with the
+ job's title and &quot;%options%&quot; with any custom spooler options):
+</p><pre class="screen">
+myscriptprinter.xp-model-identifier: SPSPARC2
+myscriptprinter.xp-spooler-command: /w/xp_conv -p %printer-name% -c %copy-count% -t %job-name% -o &quot;%options%&quot;
+</pre><p>
+ </p></li><li xmlns:ns80=""><p>
+ Edit <tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/C/print/Xprinters</tt> and append this line:
+</p><pre class="screen">
+Printer myscriptprinter
+</pre><p>
+ </p></li></ol></div></blockquote></div><p>
+
+ </p></li></ol></div><p>
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2878373"></a><a name="id2878376"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ How can I disable &quot;xp_ps_spooldir_tmp_Xprintjobs&quot; / &quot;xp_pdf_spooldir_tmp_Xprintjobs&quot; printer targets ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td xmlns:ns83="" align="left" valign="top"><p>
+ Edit <tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/C/print/Xprinters</tt> and
+ remove or comment-out (using '#') the lines &quot;Printer xp_ps_spooldir_tmp_Xprintjobs&quot;
+ and &quot;Printer xp_pdf_spooldir_tmp_Xprintjobs&quot;.
+
+ </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note:</h3><p>
+ Note that Xprt will <span class="emphasis"><em>NOT</em></span> start if this printer has been removed/disabled
+ and no other print queue is available (e.g. if &quot;xp_ps_spooldir_tmp_Xprintjobs&quot;
+ and &quot;Printer xp_pdf_spooldir_tmp_Xprintjobs&quot; are the only printer target available).
+ </p></div><p>
+ </p></td></tr><tr class="qandadiv"><td align="left" valign="top" colspan="2"><a name="faq_troubleshooting"></a><h4 class="title"><a name="faq_troubleshooting"></a>4. Troubleshooting</h4></td></tr><tr class="toc" colspan="2"><td align="left" valign="top" colspan="2"><dl><dt>Q: <a href="#id2878443">
+ Xprt refuses to start with the message &quot;sh: lpc: command not found&quot; on
+ my Linux machine. What does that mean ?
+ </a></dt><dt>Q: <a href="#id2878532">
+ When the application (=client side) tries to connect to the Xprt
+ (Xserver) side it fails with a
+
+Xlib: connection to &quot;meridian:52.0&quot; refused by server
+Xlib: Client is not authorized to connect to Server
+
+ What does that mean ?
+ </a></dt><dt>Q: <a href="#id2878802">
+ Xprt refuses to start with the message &quot;failed to set default font path
+ '...' Fatal server error: could not open default font 'fixed'&quot;.
+ What does that mean ?
+ </a></dt><dt>Q: <a href="#id2878900">
+ Just copying my fonts into a directory and adding the path to my Xprt
+ command line didn't work - I always get &quot;Fatal server error: could not
+ open default font 'fixed'&quot;. What am I doing wrong ?
+ </a></dt><dt>Q: <a href="#id2879012">
+ Xprt refuses to start with the message &quot;Fatal server error: Cannot
+ establish any listening sockets - Make sure an X server isn't already
+ running&quot;. What does that mean ?
+ </a></dt><dt>Q: <a href="#id2879040">
+ Xprt refuses to start with the message &quot;Fatal server error: Failed to
+ establish all listening sockets&quot;. What does that mean ?
+ </a></dt><dt>Q: <a href="#id2879085">
+ Xprt refuses to start with the message &quot;Fatal server error: could not
+ open default font 'fixed'&quot; or &quot;Fatal server error: could not open default
+ cursor font 'cursor'&quot;.
+ </a></dt><dt>Q: <a href="#id2879112">
+ Xprt refuses to start with the message &quot;Fatal server error: no screens
+ found&quot;. What does that mean ?
+ </a></dt><dt>Q: <a href="#printout_only_covers_1_4_of_the_paper">
+ &quot;Printing itself works but the printout covers only 1/4 of the paper - what am I doing wrong ?&quot;
+ </a></dt><dt>Q: <a href="#id2879502">
+ &quot;Printing works but I get large borders/margins...&quot; / &quot;[Top] margin is too small&quot; /
+ &quot;Margins are wrong&quot; / etc.
+ </a></dt><dt>Q: <a href="#id2879587">
+ Xprt prints a warning like &quot;Xp Extension: could not find config dir
+ /usr/X11R6/lib/X11/C/print&quot; - what does that mean ?
+ </a></dt><dt>Q: <a href="#id2879661">
+ Xprt crashes with &quot;Fatal server error: Beziers this big not yet supported&quot;
+ What does that mean ?
+ </a></dt><dt>Q: <a href="#id2879688">
+ &quot;My PS Type1 font does not work with my Xserver - how can I fix this ?&quot;
+ </a></dt><dt>Q: <a href="#id2879800">
+ I can't get it working. I have set ${DISPLAY} correctly to point to the
+ Xprt display and... ... What is going wrong ?
+ </a></dt><dt>Q: <a href="#id2879847">
+ When I try to print via Xprint I get the message &quot;Fatal server error:
+ unable to exec '/usr/bin/lp'&quot;. What is going wrong here ?
+ </a></dt><dt>Q: <a href="#id2879888">
+ The Solaris Xprt prints some error messages about PostScript fonts like
+ &quot;FOOBAR not found, using Courier. CMEX0123 not found, using Courier.&quot;
+ etc. and uses &quot;Courier&quot; instead of these fonts...
+ </a></dt><dt>Q: <a href="#id2880176">
+ &quot;Xprt refused to start, complaining about a missing dir
+ (/etc/X11/xserver/C/print/ directory)... I created it by hand (empty) and
+ started Xprt but it still does not work properly...&quot;
+ </a></dt><dt>Q: <a href="#id2880231">
+ My Linux system already shipps with a '/usr/X11R6/bin/Xprt'-binary.
+ Do I need the binary distribution from http://xprint.mozdev.org/ ?
+ </a></dt><dt>Q: <a href="#id2880316">
+ I am getting the error message &quot;error opening security policy file
+ /usr/X11R6/lib/X11/xserver/SecurityPolicy&quot;. What does that mean ?
+ </a></dt><dt>Q: <a href="#id2880368">
+ I have modified the &quot;HPLJ4family&quot; [or &quot;HPDJ1600C&quot; etc.] printer model to
+ work with my PostScript printer, but when I print I get empty places
+ where some text should be - what am I doing wrong here ?
+ </a></dt><dt>Q: <a href="#id2880421">
+ Xprt outputs warning messages like:
+
+
+Xp Extension: Can't load driver XP-PCL-MONO
+ init function missing
+Xp Extension: Can't load driver XP-RASTER
+ init function missing
+
+
+ What does that mean ?
+ </a></dt><dt>Q: <a href="#bug_solaris_xprt_removes_spaces_between_words">
+ Printing on Solaris with Mozilla/Eclipse [or any other Xprint client]
+ removes spaces between words. What is going wrong ?
+ </a></dt><dt>Q: <a href="#id2881185">
+ Installation of the &quot;GISWxprint&quot; / &quot;GISWxprintglue&quot; packages fails like this:
+# pkgadd -d /space/staging/xprint/GISWxprint.pkg
+pkgadd: ERROR: no packages were found in &lt;/var/tmp/dstreAAA5Jayyz&gt;
+ Any idea what I am doing wrong ?
+ </a></dt><dt>Q: <a href="#multiple_leading_blank_pages">
+ Printing page results in [two/three/.../16] leading blank pages, followed by a correct (but offset) page.
+ Any idea what is going wrong ?
+ </a></dt></dl></td></tr><tr class="question"><td align="left" valign="top"><a name="id2878443"></a><a name="id2878446"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ Xprt refuses to start with the message &quot;sh: lpc: command not found&quot; on
+ my Linux machine. What does that mean ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td xmlns:ns84="" align="left" valign="top"><p>
+ Some versions of Xprt look up printer queues using &quot;lpc&quot; on Linux.
+ In this case &quot;lpc&quot; cannot be found for some reason.
+ Solution:
+ Find the place where &quot;lpc&quot; is installed on your machine (some
+ distributions put it into <tt class="filename">/usr/sbin</tt>, some into <tt class="filename">/usr/bin/</tt>) and check
+ whether your <tt class="envar">PATH</tt> env var includes this directory.
+ Example (if &quot;lpc&quot; is located in <tt class="filename">/usr/sbin/</tt>):
+</p><pre class="screen">
+ % <b class="userinput"><tt>which lpc</tt></b>
+ <tt class="computeroutput">/usr/sbin/lpc</tt>
+ % <b class="userinput"><tt>export PATH=$PATH:/usr/sbin</tt></b>
+ # Start Xprt ...
+ % <b class="userinput"><tt>Xprt &lt;your-options-come-here&gt;</tt></b>
+</pre><p>
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2878532"></a><a name="id2878536"></a><b>Q:</b></td><td xmlns:ns85="" align="left" valign="top"><p>
+ When the application (=client side) tries to connect to the Xprt
+ (Xserver) side it fails with a
+</p><pre class="screen">
+<tt class="computeroutput">Xlib: connection to &quot;meridian:52.0&quot; refused by server
+Xlib: Client is not authorized to connect to Server</tt>
+</pre><p>
+ What does that mean ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td xmlns:ns90="" align="left" valign="top"><p>
+ X11 implements access control. You can have host-based, cookie-based (a
+ &quot;cookie&quot; is used like a passport) or user-based (SecureRPC or Kerberos5)
+ authentification. <span class="citerefentry"><span class="refentrytitle">Xsecurity</span>(7)</span>
+ has most of the details.
+ </p><div class="orderedlist"><ol type="1"><li xmlns:ns86=""><p><b>
+ No access control:
+ . </b>
+ If you do not want to use access control for Xprt then you can start it
+ with the option &quot;-ac&quot; (see <span class="citerefentry"><span class="refentrytitle">Xserver</span>(1x)</span>)
+ to disable the access control.
+ Example:
+</p><pre class="screen">
+ % <b class="userinput"><tt>Xprt -ac -audit 4 :12</tt></b>
+</pre><p>
+ will start Xprt with access control disabled and with auditing enabled
+ (e.g. the &quot;-audit 4&quot; option).
+ </p><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">
+ WARNING
+ </h3><p>
+ Disabling the access control will enable <span class="emphasis"><em>everyone</em></span> who can
+ access Xprt to print on your printers (that's why the above example
+ shows how to use auditing, too - that you can see who does something
+ with Xprt...) !!
+ </p></div><p>
+ </p></li><li xmlns:ns89=""><p><b>
+ Host-based access control:
+ . </b>
+ Host-based access control can be archived using <tt class="filename">/etc/X&lt;dpy&gt;.hosts</tt>
+ (&lt;dpy&gt; == display number, e.g. <tt class="filename">/etc/X0.hosts</tt> for display 0 (see
+ <span class="citerefentry"><span class="refentrytitle">Xserver</span>(1x)</span>
+ manual page for further details)).
+ </p><div class="blockquote"><blockquote class="blockquote"><div class="procedure"><p class="title"><b>Procedure 3. Example</b></p><ol type="1"><li xmlns:ns87=""><p>
+ Add the following line to `<tt class="filename">/etc/X12.hosts</tt>' (assuming you want that
+ the hosts 'merkur' and 'mars' should be able to access the Xprt
+ server running as display 12 on your host 'neptun'):
+</p><pre class="screen">
+INET:merkur
+INET:mars
+</pre><p>
+ </p></li><li><p>
+ Start Xprt
+ </p></li><li xmlns:ns88=""><p>
+ Verify that Xprt is correctly configured:
+</p><pre class="screen">
+% <b class="userinput"><tt>export DISPLAY=neptun:12</tt></b>
+% <b class="userinput"><tt>xhost</tt></b>
+<tt class="computeroutput">access control enabled, only authorized clients can connect
+INET:localhost
+LOCAL:
+INET:merkur
+INET:mars</tt>
+</pre><p>
+ </p></li></ol></div></blockquote></div><p>
+ </p></li></ol></div><p>
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2878802"></a><a name="id2878804"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ Xprt refuses to start with the message &quot;failed to set default font path
+ '...' Fatal server error: could not open default font 'fixed'&quot;.
+ What does that mean ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td xmlns:ns91="" align="left" valign="top"><p>
+ This means one or more components in the font path (set via the option
+ &quot;-fp&quot;) are either...
+ </p><div class="itemizedlist"><ul type="disc"><li><p>
+ ... not valid
+ </p></li><li><p>
+ ... contain fonts not supported by this Xserver (e.g. support has not
+ be compiled &quot;in&quot; (usually happens for TrueType (which are only support for Solaris version
+ of Xprt and xprint.mozdev.org releases &#8805; 008), OpenType (which are only supported by
+ xprint.mozdev.org releases 009 or higher) or F3 fonts (Sunsoft/F3 fonts are Solaris-specific
+ and <span class="emphasis"><em>not</em></span> supported by other vendors (AFAIK))
+ when support for these fonts was not enabled at build time))
+ </p></li><li><p>
+ ... no font or font alias in the font path matches the name &quot;fixed&quot;
+ </p></li><li><p>
+ ... an entry in <tt class="filename">fonts.dir</tt> or <tt class="filename">fonts.alias</tt>
+ with the name &quot;fixed&quot; which references a non-existing or non-readable file
+ </p></li></ul></div><p>
+
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2878900"></a><a name="id2878903"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ Just copying my fonts into a directory and adding the path to my Xprt
+ command line didn't work - I always get &quot;Fatal server error: could not
+ open default font 'fixed'&quot;. What am I doing wrong ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ Every Xserver needs an index file called <tt class="filename">fonts.dir</tt> to tell it which
+ fonts are available in this directory and which properties these fonts
+ have.
+ </p><p>
+ If you are lucky there may be already a <tt class="filename">fonts.scale</tt> file which can be
+ used by &quot;mkfontdir&quot; to create the <tt class="filename">fonts.dir</tt> file.
+ If there is no <tt class="filename">fonts.scale</tt> then you have to create your own
+ <tt class="filename">fonts.dir</tt>/<tt class="filename">fonts.scale</tt> either by hand or
+ via tools like &quot;mkfontscale&quot; (works for all types of scaleable fonts),
+ &quot;type1inst&quot; (for PS Type1 fonts; see
+ <a href="http://packages.debian.org/stable/utils/type1inst.html" target="_top">http://packages.debian.org/stable/utils/type1inst.html</a>)
+ or &quot;ttmkfdir&quot; (for TrueType fonts; see
+ <a href="http://packages.debian.org/stable/x11/ttmkfdir.html" target="_top">http://packages.debian.org/stable/x11/ttmkfdir.html</a>).
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2879012"></a><a name="id2879015"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ Xprt refuses to start with the message &quot;Fatal server error: Cannot
+ establish any listening sockets - Make sure an X server isn't already
+ running&quot;. What does that mean ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ There is already a Xserver running at the display ID you have specified
+ to start Xprt (for example your framebuffer Xserver runs at &quot;:0&quot; then
+ Xprt can't run at the same display display).
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2879040"></a><a name="id2879043"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ Xprt refuses to start with the message &quot;Fatal server error: Failed to
+ establish all listening sockets&quot;. What does that mean ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ This means that the Xserver could not open one of it's sockets. Check
+ the permission of /tmp/.X11-pipe and /tmp/.X11-unix (on Solaris a
+ Xserver must run set-gid &quot;root&quot; to access these directories).
+ Either fix the permission or start Xprt with the option &quot;-pn&quot;. Using this
+ option requires to access the server <span class="emphasis"><em>always</em></span> with
+ &lt;hostname&gt;:&lt;displaynum&gt; (see <span class="citerefentry"><span class="refentrytitle">Xserver</span>(1x)</span>
+ manual page for the side-effects of this option).
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2879085"></a><a name="id2879088"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ Xprt refuses to start with the message &quot;Fatal server error: could not
+ open default font 'fixed'&quot; or &quot;Fatal server error: could not open default
+ cursor font 'cursor'&quot;.
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ All Xservers at least two fonts as the minimum: One fixed-width font
+ (&quot;fixed&quot;) and one font for the cursor (&quot;cursor&quot;). Be sure that the font
+ path contains these fonts.
+
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2879112"></a><a name="id2879123"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ Xprt refuses to start with the message &quot;Fatal server error: no screens
+ found&quot;. What does that mean ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td xmlns:ns97="" align="left" valign="top"><p><b>Cause: </b>
+ This means that Xprt could not find any printers. Either there are no
+ printers installed, &quot;lpstat&quot;/&quot;lpc&quot; could not find any printers or the
+ configuration does not contain any manual printer configurations
+ (see Q/A item &quot;Which program is used by default by Xprt to enumerate the
+ printers on my system&quot; for further details...).
+ </p><p><b>Solution: </b>
+ Two solutions:
+ </p><div class="orderedlist"><ol type="1"><li xmlns:ns92=""><p><b>
+ Using &quot;PSspooldir&quot; model:
+ . </b>
+ Xprt releases from <a href="http://xprint.mozdev.org/" target="_top">http://xprint.mozdev.org/</a> provide the &quot;PSspooldir&quot;
+ model config for such cases. Just edit the &quot;<tt class="filename">Xprinters</tt>&quot; file and add
+ this line:
+</p><pre class="screen">
+Printer xp_ps_spooldir_tmp_Xprintjobs
+</pre><p>
+ this will add the pre-configured (see
+ <tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/C/print/attributes/printer</tt>) &quot;xp_ps_spooldir_tmp_Xprintjobs&quot;
+ printer which will send jobs to the directory &quot;/tmp/Xprintjobs/&quot;
+ instead to a printer queue.
+ (This feature was added in the xprint.mozdev.org release 007, see
+ <a href="http://xprint.mozdev.org/bugs/show_bug.cgi?id=2475" target="_top">xprint.mozdev.org bug 2475 (&quot;RFE: Need
+ model-config which spools print jobs in a predefined directory&quot;)</a>.)
+ </p></li><li xmlns:ns96=""><p><b>
+ Manual setup (task list):
+ . </b>
+ </p><div class="blockquote"><blockquote class="blockquote"><div class="procedure"><ol type="1"><li xmlns:ns93=""><p>
+ Provide a simple &quot;Xprinters&quot; spec file which contains a dummy
+ queue.
+ Example:
+</p><pre class="screen">
+# Create &quot;Xprinters_onlydummy&quot; file which turns autolookup of printers
+# OFF (using &quot;Augment_Printer_List %none%&quot;) and provides one dummy
+# queue called &quot;ps_myscript&quot; instead (using &quot;Printer ps_myscript&quot;)
+% <b class="userinput"><tt>echo &quot;Augment_Printer_List %none%&quot; &gt;Xprinters_onlydummy</tt></b>
+% <b class="userinput"><tt>echo &quot;Printer ps_myscript&quot; &gt;&gt;Xprinters_onlydummy</tt></b>
+</pre><p>
+ </p></li><li xmlns:ns94=""><p>
+ Edit <tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/C/print/attributes/printer</tt> and add these
+ two lines:
+</p><pre class="screen">
+ps_myscript.xp-model-identifier: PSdefault
+ps_myscript.xp-spooler-command: /home/sanja/xprint_test/my_xprt_cat_script.sh
+</pre><p>
+ This means that the printer &quot;ps_myscript&quot; now uses the &quot;PSdefault&quot;
+ printer model and it will feed the jobs to the script
+ &quot;/home/sanja/xprint_test/my_xprt_cat_script.sh&quot; (via stdin).
+ Note that the absolute path is required for &quot;*xp-spooler-command&quot;.
+ </p></li><li xmlns:ns95=""><p>
+ Start Xprt on display 18, passing the &quot;Xprinters_onlydummy&quot;
+ using the &quot;-XpFile&quot; option:
+</p><pre class="screen">
+% <b class="userinput"><tt>Xprt -XpFile ./Xprinters_onlydummy -pn -ac -audit 4 :18</tt></b>
+</pre><p>
+ </p></li></ol></div></blockquote></div><p>
+ </p></li></ol></div><p>
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="printout_only_covers_1_4_of_the_paper"></a><a name="id2879414"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ &quot;Printing itself works but the printout covers only 1/4 of the paper - what am I doing wrong ?&quot;
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ This is usually an indicator for a wrong DPI setting. The default
+ &quot;PSdefault&quot; model config uses 300 DPI but some printers only support
+ 600 DPI.
+ </p><p><b>Workaround: </b>
+ Edit <tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/C/print/attributes/document</tt> and replace the line
+ &quot;*default-printer-resolution: 300&quot; with
+ &quot;*default-printer-resolution: 600&quot;
+ (Note that locale-specific settings in
+ <tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/<tt class="envar">${LANG}</tt>/print/attributes/document</tt> always override values
+ set in <tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/C/print/attributes/document</tt>.)
+ </p><p><b>Solution: </b>
+ Create a model-config for your printer which only contains attributes
+ supported by your printer (&quot;printer-resolutions-supported&quot; is the
+ attribute in the &quot;model-config&quot; which holds the space-seperated list
+ of DPI values which are supported by the printer).
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2879502"></a><a name="id2879505"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ &quot;Printing works but I get large borders/margins...&quot; / &quot;[Top] margin is too small&quot; /
+ &quot;Margins are wrong&quot; / etc.
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td xmlns:ns98="" align="left" valign="top"><p>
+ Two possible causes:
+ </p><div class="itemizedlist"><ul type="disc"><li><p>
+ Usually same issue as &quot;Printing itself works but the printout covers
+ only 1/4 of the page&quot;-issue: Wrong DPI.
+ Solution: Check the DPI value and adjust it as described in the FAQ item
+ above. Common DPI values for the PostScript DDX are 240, 300, 360, 400
+ and 600 DPI.
+ </p></li><li><p>
+ You are trying to print &quot;US-letter&quot; on a &quot;DIN-A4&quot; paper or &quot;DIN-A4&quot; on
+ &quot;US-letter&quot;.
+ </p><p>
+ Solution: Check your paper settings
+ </p><p>
+ Note that the default papersize for Xprt depends on the locale
+ (e.g. on the env var <tt class="envar">${LANG}</tt>) Xprt is running in - &quot;en_US&quot;&amp;co. get
+ US-letter, all others use DIN-A4 (incl. german/austrian etc. locales)).
+ Exception from this rule: If the selected printer does not support the
+ default paper size it will set no default paper size for this printer
+ (then the application side has to make an explicit choice).
+ </p></li></ul></div><p>
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2879587"></a><a name="id2879590"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ Xprt prints a warning like &quot;Xp Extension: could not find config dir
+ /usr/X11R6/lib/X11/C/print&quot; - what does that mean ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td xmlns:ns99="" align="left" valign="top"><p>
+ This is actually the worst case what can happen.
+ The message indicates that Xprt was unable to find it's configuration
+ data.
+ </p><p><b>Solution: </b>
+ Two solutions are possible:
+ </p><div class="itemizedlist"><ul type="disc"><li><p>
+ Install the configuration data at the requested location
+ (<tt class="filename">/usr/X11R6/lib/X11/C/print/</tt> in this example)
+ </p></li><li><p>
+ Set the <tt class="envar">${XPCONFIGDIR}</tt> env var to the location of the Xprt
+ configuration directory.
+ </p></li></ul></div><p>
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2879661"></a><a name="id2879664"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ Xprt crashes with &quot;Fatal server error: Beziers this big not yet supported&quot;
+ What does that mean ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ This is a known issue in the X11R6.5.1 code. In rare cases some PostScript
+ Type1 fonts can trigger this.
+ See &quot;My PS Type1 font does not work with my Xserver&quot; ...
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2879688"></a><a name="id2879691"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ &quot;My PS Type1 font does not work with my Xserver - how can I fix this ?&quot;
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td xmlns:ns100="" align="left" valign="top"><p>
+ Some PS Type1 do not work out-of-the-box with all PS Type1 font engines -
+ some will work with the Adobe font engine (used in Solaris Xsun) but not
+ with the X.org font engine (or the other way round) or the fonts are
+ simply broken.
+
+ The following procedure will try to fix this problem:
+ Get the &quot;type1fix&quot; perl script the TeXTrace package
+ (<a href="http://www.inf.bme.hu/~pts/textrace-latest.tar.gz" target="_top">http://www.inf.bme.hu/~pts/textrace-latest.tar.gz</a>)
+ and run it over the fonts.
+
+ Example 1 (filter fonts):
+</p><pre class="screen">
+# Broken PFA fonts are in broken_fonts/
+% <b class="userinput"><tt>mkdir fixed_fonts ; cd fixed_fonts</tt></b>
+% <b class="userinput"><tt>for i in ../broken_fonts/*.pfa ; do
+ echo &quot; ------- $i&quot; ;
+ type1fix.pl --ofmt=pfa --infile=$i --outfile=$(basename ${i}) ;
+ done</tt></b>
+</pre><p>
+
+ Example 2 (filter fonts and convert them to PFB on-the-fly; do not forget
+ to update <tt class="filename">fonts.scale</tt> and run &quot;mkfontdir&quot; (to update <tt class="filename">fonts.dir</tt>) ;
+ systems which use the Adobe font engine (like Solaris/Xsun) may require
+ to run &quot;makepsres&quot;, too):
+</p><pre class="screen">
+# Broken PFA fonts are in broken_fonts/
+% <b class="userinput"><tt>mkdir fixed_fonts ; cd fixed_fonts</tt></b>
+% <b class="userinput"><tt>for i in ../broken_fonts/*.pfa ; do
+ echo &quot; ------- $i&quot; ;
+ type1fix.pl --ofmt=pfb --infile=$i --outfile=$(basename ${i%.pfa}.pfb) ;
+ done</tt></b>
+</pre><p>
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2879800"></a><a name="id2879803"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ I can't get it working. I have set <tt class="envar">${DISPLAY}</tt> correctly to point to the
+ Xprt display and... ... What is going wrong ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ Do not set <tt class="envar">${DISPLAY}</tt> to the Xprt server. You still need your normal
+ Xserver for your video card - Xprt is only for your printer(s).
+ Applications look up Xprt servers via the <tt class="envar">${XPSERVERLIST}</tt> env var, <span class="emphasis"><em>NOT</em></span>
+ via the <tt class="envar">${DISPLAY}</tt> env var.
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2879847"></a><a name="id2879850"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ When I try to print via Xprint I get the message &quot;Fatal server error:
+ unable to exec '/usr/bin/lp'&quot;. What is going wrong here ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ This usually means that the spooler application &quot;<tt class="filename">/usr/bin/lp</tt>&quot;
+ could not be launched. This is usually the result when
+ <tt class="filename">/usr/bin/lp</tt> does not exist or
+ cannot be executed (for example, shell scripts without the +x (executable) flag etc.).
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2879888"></a><a name="id2879892"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ The Solaris Xprt prints some error messages about PostScript fonts like
+ &quot;FOOBAR not found, using Courier. CMEX0123 not found, using Courier.&quot;
+ etc. and uses &quot;Courier&quot; instead of these fonts...
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td xmlns:ns105="" align="left" valign="top"><p><b>Cause: </b>
+ The Solaris (Adobe-based) PostScript font engine requires a &quot;PostScript
+ resource database&quot; file named &quot;<tt class="filename">PSres.upr</tt>&quot; to use the PostScript fonts
+ correctly.
+ </p><p><b>Solution: </b>
+ Create the missing <tt class="filename">PSres.upr</tt> database.
+ </p><div class="blockquote"><blockquote class="blockquote"><div class="procedure"><p class="title"><b>Procedure 5. Steps to create the missing &quot;<tt class="filename">PSres.upr</tt>&quot; file (task list):</b></p><ol type="1"><li xmlns:ns101=""><p>
+ Go to the location where the matching fonts are installed (we're using
+ <tt class="filename">/home/sanja/mathml_fonts/tex_cmps/Type1/</tt> in this example):
+</p><pre class="screen">
+% <b class="userinput"><tt>cd /home/sanja/mathml_fonts/tex_cmps/Type1//</tt></b>
+</pre><p>
+ </p></li><li xmlns:ns102=""><p>
+ Create &quot;<tt class="filename">PSres.upr</tt>&quot; using the &quot;makepsres&quot; command.
+</p><pre class="screen">
+% <b class="userinput"><tt>makepsres</tt></b>
+</pre><p>
+ </p></li><li xmlns:ns103=""><p>
+ Validation:
+ Make sure the file has been created:
+</p><pre class="screen">
+% <b class="userinput"><tt>ls -l PSres.upr</tt></b>
+</pre><p>
+ </p></li><li xmlns:ns104=""><p>
+ Restart Xprt server(s):
+</p><pre class="screen">
+% <b class="userinput"><tt>/etc/init.d/xprint restart</tt></b>
+</pre><p>
+ </p></li><li><p>
+ Restart application which uses these fonts
+ </p></li></ol></div></blockquote></div><p>
+ </p><p><b>References: </b>
+ </p><div class="itemizedlist"><ul type="disc"><li><p><span class="citerefentry"><span class="refentrytitle">makepsres</span>(1)</span> manual page</p></li><li><p><a href="http://bugzilla.mozilla.org/show_bug.cgi?id=120560" target="_top">bugzilla.mozilla.org 120560 (&quot;Solaris Xsun does not like CMEX10/CMSY10 Type1 fonts&quot;)</a></p></li><li><p><a href="http://bugzilla.mozilla.org/show_bug.cgi?id=142718" target="_top">bugzilla.mozilla.org 142718 (&quot;Document how to get the MathML fonts to work on Solaris&quot;)</a></p></li></ul></div><p>
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2880176"></a><a name="id2880179"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ &quot;Xprt refused to start, complaining about a missing dir
+ (<tt class="filename">/etc/X11/xserver/C/print/</tt> directory)... I created it by hand (empty) and
+ started Xprt but it still does not work properly...&quot;
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ Xprt expects some config data in this directory. Just making it an
+ existing but empty dir will work around the error message but will not
+ result in a properly working Xprt since it has no (usefull) builtins
+ which would make it possible to run the binary without the config data.
+ Your X11 binary distribution should always come with the config data
+ (for example <tt class="filename">/usr/openwin/server/etc/XpConfig/</tt> on Solaris) or you will not
+ be able to use Xprint (however it is possible to copy the config data
+ from another system :)
+ BTW: Source for the configs can be found under <tt class="filename">xc/programs/Xserver/XpConfig/</tt>
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2880231"></a><a name="id2880234"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ My Linux system already shipps with a '<tt class="filename">/usr/X11R6/bin/Xprt</tt>'-binary.
+ Do I need the binary distribution from <a href="http://xprint.mozdev.org/" target="_top">http://xprint.mozdev.org/</a> ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td xmlns:ns106="" align="left" valign="top"><p>
+ This depends on what is shipped with your Linux distribution.
+ Please check the &quot;vendor&quot; string of the Xprt server:
+</p><pre class="screen">
+% <b class="userinput"><tt>Xprt :10 &amp;</tt></b>
+% <b class="userinput"><tt>xdpyinfo -display :10 | grep -i &quot;vendor string&quot;</tt></b>
+</pre><p>
+ If this outputs a line like &quot;vendor string: The XFree86 Project, Inc&quot;
+ then you have the Xprt binary build from Xfree86 sources - which are
+ broken - even the newest version [I'll update this as soon as Xfree86
+ shipps with a working version].
+ Xprt from Solaris, HP-UX and my own builds (which identifies itself as
+ &quot;vendor string: xprint.mozdev.org&quot; for releases &gt;= 007, older releases
+ (e.g. &lt;= 006) identify itself as as &quot;vendor string: The X.Org Group&quot;)
+ are known to work proprtly.
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2880316"></a><a name="id2880318"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ I am getting the error message &quot;error opening security policy file
+ /usr/X11R6/lib/X11/xserver/SecurityPolicy&quot;. What does that mean ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ The policy file for the SECURITY extension cannot be found.
+ This is not serious unless you want to make use of features of the
+ SECURITY extensions (like treating clients as &quot;untrusted&quot;, e.g. restrict
+ their access to certain Xserver resources).
+ Normally the missing policy file is a problem with your Unix/Linux X11
+ distribution; consult your vendor where to get the missing file from.
+ Alternatively you can get the plain X11R6.6 security policy file from
+ <a href="ftp://ftp.x.org/pub/R6.6/xc/programs/Xserver/Xext/SecurityPolicy" target="_top">ftp://ftp.x.org/pub/R6.6/xc/programs/Xserver/Xext/SecurityPolicy</a>
+ (copy it to the matching location - but be sure that you do not overwrite any
+ existing security policy file).
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2880368"></a><a name="id2880372"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ I have modified the &quot;HPLJ4family&quot; [or &quot;HPDJ1600C&quot; etc.] printer model to
+ work with my PostScript printer, but when I print I get empty places
+ where some text should be - what am I doing wrong here ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ The &quot;HPLJ4family&quot; and &quot;HPDJ1600C&quot; models are PCL-only, check
+ the model-config spec
+ (<tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/C/print/models/${MODEL_NAME}/model-config</tt>) - if the
+ &quot;xp-ddx-identifier&quot; attribute says something with &quot;PCL&quot; (like
+ &quot;XP-PCL-MONO&quot; etc.) in the value string then this model-config is for
+ the PCL-DDX <span class="emphasis"><em>only</em></span> (e.g. their PMF fonts do not supply the neccesary
+ information (e.g. the &quot;_ADOBE_POSTSCRIPT_FONTNAME&quot; chunk is missing;
+ they only provide the &quot;PCL_FONT_NAME&quot; chunk) nor are these fonts
+ accessible via the PostScript-support in these printers.
+ A solution is to use the &quot;PSdefault&quot; model instead (and/or create your
+ customized own version of this model) - or look if there is a
+ model-config beginning with the same name and ending with &quot;PS&quot; (e.g.
+ &quot;HPLJ4family-PS&quot;).
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2880421"></a><a name="id2880424"></a><b>Q:</b></td><td xmlns:ns107="" align="left" valign="top"><p>
+ Xprt outputs warning messages like:
+</p><pre class="screen">
+<tt class="computeroutput">
+Xp Extension: Can't load driver XP-PCL-MONO
+ init function missing
+Xp Extension: Can't load driver XP-RASTER
+ init function missing
+</tt>
+</pre><p>
+ What does that mean ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td xmlns:ns109="" align="left" valign="top"><p>
+ Two possible problems:
+ </p><div class="orderedlist"><ol type="1"><li xmlns:ns108=""><p>
+ The requested driver is not supported by that version of Xprt.
+ For example Solaris 2.7 Xprt does not support XP-PCL-MONO nor the
+ XP-RASTER driver.
+ Valid values for the &quot;xp-ddx-identifier&quot; attribute in
+ <tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/*/print/attributes/printers</tt> and/or
+ <tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/*/print/models/*/model-config</tt> are
+ </p><div class="itemizedlist"><ul type="disc"><li><p>
+ Solaris 2.7: XP-POSTSCRIPT and XP-PCL-COLOR
+ </p></li><li><p>
+ Solaris &gt;=2.8: XP-POSTSCRIPT, XP-PCL-COLOR, XP-PCL-MONO and XP-RASTER
+ </p></li><li><p>
+ HP-UX: XP-POSTSCRIPT, XP-PCL-COLOR, XP-PCL-MONO, XP-PCL-LJ3,
+ XP-PCL-DJ1200 and XP-RASTER
+ </p></li><li><p>
+ xprint.mozdev.org release 007: XP-POSTSCRIPT and XP-RASTER
+ </p></li><li><p>
+ xprint.mozdev.org release 008: XP-POSTSCRIPT, XP-PCL-COLOR,
+ XP-PCL-MONO, XP-PCL-LJ3 and XP-RASTER
+ </p></li><li><p>
+ xprint.mozdev.org release &gt;=2.0 (planned): XP-POSTSCRIPT, XP-PCL-COLOR,
+ XP-PCL-MONO, XP-PCL-LJ3, XP-RASTER, XP-PDF and XP-SVGPRINT.
+ </p></li></ul></div><p>
+ </p></li><li><p>
+ There may be too many drivers loaded into one Xprt instance.
+ By default a single Xserver instance can only handle three screens - and
+ since one Xprint DDX maps to one Xserver screen this limit applies to
+ the number of loaded Xprt drivers, too.
+ Starting with xprint.mozdev.org release 008 the per-Xserver screen limit
+ was increased from &quot;3&quot; to &quot;8&quot; to avoid this issue...
+ Workaround: Start a 2nd instance of Xprt which handles the other
+ drivers which do not fit into the first instance.
+ </p></li></ol></div><p>
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="bug_solaris_xprt_removes_spaces_between_words"></a><a name="id2880607"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ Printing on Solaris with Mozilla/Eclipse [or any other Xprint client]
+ removes spaces between words. What is going wrong ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td xmlns:ns110="" align="left" valign="top"><p><b>Cause: </b>
+ This is a bug in the Solaris Xprint server binary (<tt class="filename">/usr/openwin/bin/Xprt</tt>).
+ Various bug reports have been filed, see
+ </p><div class="itemizedlist"><ul type="disc"><li><p>
+ <a href="http://xprint.mozdev.org/bugs/show_bug.cgi?id=3353" target="_top">xprint.mozdev.org bug 3353
+ (&quot;Solaris Xprt looses space when rendering with '-monotype-arial-*'-fonts&quot;)</a>
+ </p></li><li><p>
+ <a href="http://bugzilla.mozilla.org/show_bug.cgi?id=199957" target="_top">bugzilla.mozilla.org bug 199957 (&quot;Solaris 8 Mozilla
+ removes spaces for text within &lt;font face=&quot;Arial&quot;&gt;...&lt;/font&gt;&quot;</a>)
+ </p></li></ul></div><p>
+ </p><p><b>Solution: </b>
+ Solution:
+ Please apply the following OS patches from <a href="http://sunsolve.sun.com/" target="_top">http://sunsolve.sun.com/</a>:
+ </p><div class="table"><a name="id2880736"></a><p class="title"><b>Table 1. 
+ Solaris patches to fix <a href="http://xprint.mozdev.org/bugs/show_bug.cgi?id=3353" target="_top">xprint.mozdev.org bug 3353
+ (&quot;Solaris Xprt looses space when rendering with '-monotype-arial-*'-fonts&quot;)</a>
+ </b></p><table summary="
+ Solaris patches to fix xprint.mozdev.org bug 3353
+ (&quot;Solaris Xprt looses space when rendering with '-monotype-arial-*'-fonts&quot;)
+ " border="1"><colgroup><col><col><col><col><col><col></colgroup><thead><tr><th colspan="2" align="center">Solaris 2.7</th><th colspan="2" align="center">Solaris 2.8</th><th colspan="2" align="center">Solaris 2.9</th></tr><tr><th>SPARC</th><th>x86</th><th>SPARC</th><th>x86</th><th>SPARC</th><th>x86</th></tr></thead><tbody><tr><td><a href="#bug_solaris_xprt_removes_spaces_between_words_s27_no_patches_yet">n/a</a></td><td><a href="#bug_solaris_xprt_removes_spaces_between_words_s27_no_patches_yet">n/a</a></td><td><a href="http://sunsolve.sun.com/pub-cgi/retrieve.pl?patchid=108652&amp;collection=fpatches" target="_top">108652-73</a></td><td><a href="http://sunsolve.sun.com/pub-cgi/retrieve.pl?patchid=108653&amp;collection=fpatches" target="_top">108653-62</a></td><td><a href="http://sunsolve.sun.com/pub-cgi/retrieve.pl?patchid=112785&amp;collection=fpatches" target="_top">112785-21</a></td><td><a href="http://sunsolve.sun.com/pub-cgi/retrieve.pl?patchid=112786&amp;collection=fpatches" target="_top">112786-11</a></td></tr></tbody></table></div><p>
+
+ </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="bug_solaris_xprt_removes_spaces_between_words_s27_no_patches_yet"></a>Note</h3><p>
+ For Solaris 2.7 (both SPARC and x86 platforms) there are currently
+ <a href="http://xprint.mozdev.org/bugs/show_bug.cgi?id=3353#c24" target="_top">no patches available</a>...
+ <tt class="literal">;-(</tt>
+ </p></div><p>
+ </p><p><b>Known workarounds: </b>
+ </p><div class="itemizedlist"><ul type="disc"><li><p>
+ Remove the '-monotype-arial-*' fonts from the font path
+ </p></li><li><p>
+ Use an alternate Xprint server like available in the &quot;GISWxprint&quot; package
+ (this package is identical to the &quot;GISWxprintglue&quot; package except that it
+ uses a Xprint server build from xprint.mozdev.org sources and not the
+ <tt class="filename">/usr/openwin/bin/Xprt</tt> binary from Solaris)
+ </p></li><li xmlns:ns111=""><p>
+ Mozilla-only: Adding
+</p><pre class="programlisting">
+ user_pref(&quot;print.xprint.font.rejectfontpattern&quot;,
+ &quot;fname=-dt-.*;scalable=.*;outline_scaled=false;xdisplay=.*;xdpy=.*;ydpy=.*;xdevice=.*|&quot; +
+ &quot;fname=-monotype-arial.*;scalable=.*;outline_scaled=.*;xdisplay=.*;xdpy=.*;ydpy=.*;xdevice=.*&quot;);
+</pre><p>
+ to <tt class="filename">prefs.js</tt> works around the problem (see
+ <a href="http://bugzilla.mozilla.org/show_bug.cgi?id=199957#c6" target="_top">bugzilla.mozilla.org bug 199957 comment #6</a>,
+ too).
+ </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
+ Note that this workaround may render various locales completly
+ inaccessible for printing since many of them only employ MonoType fonts.
+ </p></div><p>
+ </p></li></ul></div><p>
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2881185"></a><a name="id2881188"></a><b>Q:</b></td><td xmlns:ns112="" align="left" valign="top"><p>
+ Installation of the &quot;GISWxprint&quot; / &quot;GISWxprintglue&quot; packages fails like this:
+</p><pre class="screen"># <b class="userinput"><tt>pkgadd -d /space/staging/xprint/GISWxprint.pkg</tt></b>
+<tt class="computeroutput">pkgadd: ERROR: no packages were found in &lt;/var/tmp/dstreAAA5Jayyz&gt;</tt></pre><p>
+ Any idea what I am doing wrong ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ The target machine misses a patch to cure SunSolve bug 4025718 (&quot;pkginfo: allow greater than nine characters for PKG parameter value&quot;).
+ Please apply the patches listed in the &quot;Installation Requirements&quot; section in the README
+ for the <a href="http://xprint.mozdev.org/lxr/http/source/xprint/src/xprint_main/xc/packager/solaris/GISWxprint/README" target="_top">GISWxprint</a> /
+ <a href="http://xprint.mozdev.org/lxr/http/source/xprint/src/xprint_main/xc/packager/solaris/GISWxprintglue/README" target="_top">GISWxprintglue</a> package.
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="multiple_leading_blank_pages"></a><a name="id2881276"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ Printing page results in [two/three/.../16] leading blank pages, followed by a correct (but offset) page.
+ Any idea what is going wrong ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td xmlns:ns113="" align="left" valign="top"><p>
+ This symptom depends on the CUPS GhostScript driver used, however the exact cause is currently unknown
+ (see comments in <a href="http://sdb.suse.de/en/sdb/html/jsmeix_print-81-cups-formfeed.html" target="_top">SuSE
+ support database entry SDB-2002/11/jsmeix_print-81-cups-formfeed (&quot;Blank Pages When Printing with
+ CUPS&quot;)</a>).
+ </p><p><b>Solution: </b>
+ Disable the CUPS accounting functionality in the cupsomatic filter by changing the line
+</p><pre class="programlisting">
+ my $ps_accounting = 1;
+</pre><p>
+ to
+</p><pre class="programlisting">
+ my $ps_accounting = 0;
+</pre><p>
+ in the filter script <tt class="filename">/usr/lib/cups/filter/cupsomatic</tt> as the user root.
+ If you use <tt class="filename">/etc/foomatic/filter.conf</tt>, disable ps_accounting there.
+ </p><p><b>References: </b>
+ </p><div class="itemizedlist"><ul type="disc"><li><p><a href="http://sdb.suse.de/en/sdb/html/jsmeix_print-81-cups-formfeed.html" target="_top">SuSE support database entry SDB-2002/11/jsmeix_print-81-cups-formfeed (&quot;Blank Pages When Printing with CUPS&quot;)</a></p></li><li><p><a href="http://xprint.mozdev.org/bugs/show_bug.cgi?id=4181" target="_top">xprint.mozdev.org bug 4181 (&quot;Two empty pages printed first&quot;)</a></p></li><li><p><a href="http://bugzilla.mozilla.org/show_bug.cgi?id=180602#c7" target="_top">bugzilla.mozilla.org bug 180602 comment #7 (&quot;Printing page results in 16 leading blank pages, followed by a correct, but offset, page&quot;)</a></p></li></ul></div><p>
+ </p></td></tr><tr class="qandadiv"><td align="left" valign="top" colspan="2"><a name="faq_development"></a><h4 class="title"><a name="faq_development"></a>5. Software development</h4></td></tr><tr class="toc" colspan="2"><td align="left" valign="top" colspan="2"><dl><dt>Q: <a href="#id2881454">
+ How does the X print server (Xprt) and the Xlib client side differ
+ from the &quot;normal&quot; video Xserver/video client side ?
+ </a></dt><dt>Q: <a href="#id2881903">
+ How can I get the printable area (e.g. the portion of the page on which
+ the printer is physically capable of placing ink) of the paper after I
+ have chosen a paper ?
+ </a></dt><dt>Q: <a href="#id2881952">
+ Do &quot;offscreen&quot; pixmaps work on Xprt ?
+ </a></dt><dt>Q: <a href="#id2881974">
+ How can I get the DPI value for the current Xprt server ? Can I use the
+ values from &quot;xdpyinfo&quot; ?
+ </a></dt><dt>Q: <a href="#id2882044">
+ Why does Xprt not offer the MIT-SHM protocol extension ?
+ </a></dt><dt>Q: <a href="#id2882142">
+ Does Xprint/Xprt support font rotation ?
+ </a></dt><dt>Q: <a href="#id2882261">
+ When I render something on my window and call XpStartPage all the
+ rendered stuff is gone, I only get a white, empty paper.
+ What is going wrong here ?
+ </a></dt><dt>Q: <a href="#id2882357">
+ What is XpStartDoc for ?
+ </a></dt><dt>Q: <a href="#id2882447">
+ How does the XLFD for printer-builtin fonts look like ? / How can I find/identify printer-builtin fonts ?
+ </a></dt><dt>Q: <a href="#id2882520">
+ How can I scale images using the Xprint API ?
+ </a></dt><dt>Q: <a href="#id2882542">
+ Can I pass my own PostScript code (fragment) to the print spooler instead of letting
+ Xprt's PostScript DDX generate it ?
+ </a></dt><dt>Q: <a href="#id2882568">
+ When I use XpPutDocumentData I get a
+ BadValue X protocol error. Any idea what am I doing wrong ?
+ </a></dt><dt>Q: <a href="#id2882608">
+ How do I use the XprintUtil library ?
+ </a></dt><dt>Q: <a href="#why_does_xgetimage_not_work">
+ Why does the XGetImage not work for Xprt ?
+ </a></dt><dt>Q: <a href="#id2882766">
+ How to print with Xt/Athena widgets ?
+ </a></dt><dt>Q: <a href="#id2882858">
+ How to print with Xt/Motif widgets ?
+ </a></dt><dt>Q: <a href="#id2882883">
+ What are the differences between normal display and Xprint display ?
+ </a></dt><dt>Q: <a href="#id2882905">
+ How do I scale images ?
+ </a></dt><dt>Q: <a href="#id2882926">
+ libXp Image scaling vs. max. request size ?
+ </a></dt><dt>Q: <a href="#id2882948">
+ How can I use XprintUtils ?
+ </a></dt><dt>Q: <a href="#id2882970">
+ How do I calculate the DPI values for Xprt DDX screens ?
+ </a></dt><dt>Q: <a href="#id2882992">
+ How do I find scaleable fonts ?
+ </a></dt><dt>Q: <a href="#id2883014">
+ How do I find printer-builtin fonts ?
+ </a></dt><dt>Q: <a href="#id2883035">
+ The XLFD for Printer-builtin fonts look like bitmap fonts - is that bad ?
+ </a></dt><dt>Q: <a href="#id2883066">
+ When printing using the XawPrintShell/XmPrintShell print shells my PostScript output
+ is always corrupt. What am I doing wrong ?
+ </a></dt><dt>Q: <a href="#id2883134">
+ When printing using the XawPrintShell/XmPrintShell
+ print shells I always get a grey/dithered background on paper.
+ Any idea how to change that to &quot;white&quot; ?
+ </a></dt><dt>Q: <a href="#id2883170">
+ Are there any caveats/suggestions when printing via Xt/Motif2 widgets ?
+ </a></dt><dt>Q: <a href="#id2883723">
+ Can I change the paper size/resolution/page orientation/etc. when printing using the
+ XawPrintShell/XmPrintShell print shells ?
+ </a></dt></dl></td></tr><tr class="question"><td align="left" valign="top"><a name="id2881454"></a><a name="id2881416"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ How does the X print server (Xprt) and the Xlib client side differ
+ from the &quot;normal&quot; video Xserver/video client side ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td xmlns:ns114="" align="left" valign="top"><p>
+ The X Print Service expands on the traditional X-Server and Xlib world
+ in the following ways:
+
+ </p><div class="orderedlist"><ol type="1"><li><p>
+ Most obvious is the use of &quot;print ddx drivers&quot; instead of
+ &quot;video ddx drivers&quot;. While a video ddx driver modifies pixels
+ in a video frame buffer, a print ddx driver generates &quot;page
+ description language (<a href="#what_does_pdl_mean">PDL</a>)&quot; output (such as PCL, PDF, PostScript, SVGprint, etc.)
+ or sends the print rendering instructions to a platform-specific
+ print API (like Win32/GDI).
+ </p><p>
+ Once a print ddx driver generates <a href="#what_does_pdl_mean">PDL</a> output, it can be sent to
+ a spooler
+ (using <tt class="function">XpuStartJobToSpooler</tt>)
+ or retrieved by the client (to implement functionality like &quot;print-to-file&quot;
+ with functions such as <tt class="function">XpuStartJobToFile</tt>).
+ </p></li><li><p>
+ Since printers support &quot;paged&quot; output, unlike video, a portion
+ of the Xp Extension supports APIs to delineate printed output
+ into a print job.
+ </p><p>
+ A &quot;print job&quot; in Xprint consists of one or more &quot;documents&quot; which itself
+ consists of one or more &quot;pages&quot;.
+ </p><p>
+ A client starts a job sequence with <tt class="function">XpStartJob</tt> and
+ ends it with <tt class="function">XpEndJob</tt> or <tt class="function">XpCancelJob</tt> to cancel the
+ generation of the current print job.
+ Any document-specific print attributes MUST be changed before <tt class="function">XpStartJob</tt>.
+ </p><p>
+ A client starts a document sequence with <tt class="function">XpStartDoc</tt> and
+ ends it with <tt class="function">XpEndDoc</tt> or <tt class="function">XpCancelDoc</tt> to cancel the
+ generation of the current document.
+ Any document-specific print attributes MUST be changed before <tt class="function">XpStartDoc</tt>
+ or after <tt class="function">XpEndDoc</tt> (to affect the following document).
+ </p><p>
+ A client starts a page sequence with <tt class="function">XpStartPage</tt> and
+ ends it with <tt class="function">XpEndPage</tt> or <tt class="function">XpCancelPage</tt> to cancel the
+ generation of the current page.
+ Any page-specific print attributes MUST be changed before <tt class="function">XpStartDoc</tt>
+ or after <tt class="function">XpEndDoc</tt> (to affect the following document).
+ </p></li><li><p>
+ Since printers have extensive capabilities, another portion of
+ the Xp Extension supports APIs to manipulate &quot;print contexts&quot;.
+ </p><p>
+ Once a printer is selected using the Xp Extension API, a print
+ context to represent it can be created. A print context
+ embodies the printer selected - it contains the printer's
+ default capabilities, selectable range of capabilities,
+ printer state, and generated output. Some &quot;attributes&quot; within
+ the print context can be modified by the user, and the
+ X-Server and print ddx driver will react accordingly. For
+ example, the attribute &quot;content-orientation&quot; can be set to
+ &quot;landscape&quot; or &quot;portrait&quot; (if the printer supports these
+ values - which can be queried using the Xprint API as well).
+ </p></li><li><p>
+ Since printers can have &quot;built in&quot; fonts, the Xp Extension in
+ the X-Server works with the print ddx drivers to make
+ available (for printing only) additional fonts on a per print
+ context basis.
+ </p><p>
+ When a print context is created and set for a given printer,
+ the X font calls may be able to access additional printer
+ fonts. To do this (typically), the X-Server must have access
+ to &quot;printer metric files&quot; (.pmf) that describe at minimum the
+ metrics of the built in fonts.
+ </p></li><li><p>
+ Since printers can have &quot;built in&quot; fonts, the Xp Extension in
+ the X-Server works with the print ddx drivers to make
+ available (for printing only) additional fonts on a per print
+ context basis.
+ </p><p>
+ When a print context is created and set for a given printer,
+ the X rendering calls use the resolution of the current page
+ (or if not given, the resolution of the current document or
+ the current resolution for this print job).
+ The screen's resolution is INVALID in this case.
+ XprintUtils has the functions <tt class="function">XpuGetResolution</tt>
+ (to get the current print resolution (searching page, document and
+ job level attributes (in that order)), <tt class="function">XpuSetPageResolution</tt>
+ (to set the current page resolution), <tt class="function">XpuSetDocResolution</tt>
+ (to set the current document resolution), <tt class="function">XpuGetResolutionList</tt> (to
+ get the list of all resolutions supported by this printer) and <tt class="function">XpuFindResolution</tt>
+ (to find a resolution in the list returned by <tt class="function">XpuGetResolutionList</tt>)
+ to support getting/setting/queries of resolutions.
+ </p><p>
+ When a print context is created and set for a given printer,
+ the X image rendering calls (such as <tt class="function">XPutImage</tt> support
+ scaling of images.
+ The Xp Extension API provides the functions <tt class="function">XpSetImageResolution</tt>
+ and <tt class="function">XpSetImageResolution</tt> to set and get an image resolution.
+ The scaling factor for an image printed on the paper can simply calculated via
+
+ <tt class="literal">scaling_factor = curr_print_resolution_resolution / image_resolution</tt>
+ where <tt class="varname">curr_print_resolution_resolution</tt> is the value returned by a function such as
+ <tt class="function">XpuGetResolution</tt>, <tt class="varname">image_resolution</tt> the resolution passed to
+ <tt class="function">XpSetImageResolution</tt> and <tt class="varname">scaling_factor</tt> the resulting scaling factor.
+ Note that <tt class="function">XpSetImageResolution</tt> will failure (=FALSE) when the print DDX
+ (for example the RASTER DDX) does not support scaling.
+ In that case the application has to scale the image manually.
+ </p></li></ol></div><p>
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2881903"></a><a name="id2881906"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ How can I get the printable area (e.g. the portion of the page on which
+ the printer is physically capable of placing ink) of the paper after I
+ have chosen a paper ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ The <tt class="function">XpGetPageDimensions</tt> function returns the printable area and other information
+ about the current page geometry.
+ Note that the page geometry changes when the page attributes such as <tt class="literal">content-orientation</tt>
+ or <tt class="literal">default-medium</tt> are changed by the application.
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2881952"></a><a name="id2881955"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ Do &quot;offscreen&quot; pixmaps work on Xprt ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ Yes, &quot;offscreen&quot; pixmaps are working on Xprt.
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2881974"></a><a name="id2881978"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ How can I get the DPI value for the current Xprt server ? Can I use the
+ values from &quot;xdpyinfo&quot; ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ The Xprt screen resolution defines only the maximum resolution configured
+ for the matching DDX, the printers real DPI is obtained via an another
+ API (XprintUtil has a bunch of functions to get/set the document/page
+ resolution, see <tt class="function">XpuGetResolutionList</tt>, <tt class="function">XpuFreeResolutionList</tt>,
+ <tt class="function">XpuGetResolution</tt>, <tt class="function">XpuSetPageResolution</tt>,
+ <tt class="function">XpuSetDocResolution</tt> and <tt class="function">XpuFindResolution</tt>).
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2882044"></a><a name="id2882047"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ Why does Xprt not offer the MIT-SHM protocol extension ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ The MIT-SHM protocol extension is partially (<tt class="function">XShmPutImage</tt> would work,
+ but others like <tt class="function">XShmGetImage</tt> and esp. <tt class="function">XShmCreatePixmap</tt>
+ cannot be implemented properly) incompatible to the way how some of the Xprint DDX are implemented.
+ For example the PostScript, PDF, PCL and SVGprint DDX do not rasterize any images on their side - instead they convert the
+ stream of X11 rendering instructions into the matching <a href="#what_does_pdl_mean">PDL</a> instruction stream.
+ Only the printer side will (finally) do the rasterisation of the output image. This is the basically the same reason why
+ <a href="#why_does_xgetimage_not_work"><tt class="function">XGetImage</tt> does not work for those DDXs</a> - and
+ functions such as <tt class="function">XShmCreatePixmap</tt> would be useless since drawing operations on the shared
+ pixmap would not be applied to the application (e.g. Xprint client) as well.
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2882142"></a><a name="id2882145"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ Does Xprint/Xprt support font rotation ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td xmlns:ns117="" align="left" valign="top"><p>
+ Yes - Xprint/Xprt supports font rotation at any angle via the matrix XLFD
+ enhancement (this even works for printer-builtin fonts !!). For details
+ see the paper &quot;New Font Technology for X11R6&quot; by Nathan Meyers (a copy can be found in the
+ Xprint.org source tree under <tt class="filename">xc/doc/hardcopy/XLFD/x11r6_fonts_94_paper.PS.gz</tt>)
+ </p><p>
+ Short:
+ The transformation-matrix for rotation can be calculated like this:
+</p><pre class="programlisting">
++-- --+
+| cos(angle) sin(angle)|
+| |
+|-sin(angle) cos(angle)|
++-- --+
+</pre><p>
+ Examples:
+ </p><div class="orderedlist"><ol type="1"><li xmlns:ns115=""><p>
+ the following code fragment obtains a 180 degree rotated font (matrix [-1 0 0 -1]):
+</p><pre class="programlisting">
+ ... = XLoadQueryFont(..., &quot;-adobe-courier-bold-r-normal--*-[~24 0 0 ~24]-0-0-m-*-iso8859-1&quot;);
+</pre><p>
+ </p></li><li xmlns:ns116=""><p>
+ the following code fragment obtains a 90 degree rotated font (matrix [0 1 -1 0]):
+</p><pre class="programlisting">
+ ... = XLoadQueryFont(..., &quot;-adobe-courier-bold-r-normal--*-[0 24 ~24 0]-0-0-m-*-iso8859-1&quot;);
+</pre><p>
+ </p></li></ol></div><p>
+ </p><p>
+ Future versions of Xprint will support the <a href="http://stsf.sourceforge.net/" target="_top">STSF</a>
+ font API which supports matrix transformations as well.
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2882261"></a><a name="id2882264"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ When I render something on my window and call <tt class="function">XpStartPage</tt> all the
+ rendered stuff is gone, I only get a white, empty paper.
+ What is going wrong here ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td xmlns:ns118="" align="left" valign="top"><p>
+ Remember the rule that &quot;only those drawings are printed on the paper which
+ were rendered between <tt class="function">XpStartPage</tt> and <tt class="function">XpEndPage</tt>&quot;.
+ <tt class="function">XpStartPage</tt> clears the window you passed as argument, e.g. it creates
+ a new, blank sheet of paper where you can do your rendering stuff on.
+ <tt class="function">XpEndpage</tt> then pushes the &quot;paper sheet&quot; to the stash of papers from the
+ document in process.
+
+ </p><div class="tip" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Tip</h3><p>
+ If you want to render something once for multiple or all pages:
+ Render on a offscreen pixmap and copy (with <tt class="function">XCopyArea</tt>) the content to
+ the &quot;paper&quot; drawable (after calling <tt class="function">XpStartPage</tt>) - <tt class="function">XpStartpage</tt> only
+ affects the window passed as parameter.
+ </p></div><p>
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2882357"></a><a name="id2882360"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ What is <tt class="function">XpStartDoc</tt> for ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ ISO 10175 and some advanced printing systems by IBM and HP had set forth
+ the standard that a &quot;Job&quot; is made up of one or more &quot;Documents&quot;, and
+ each document is made up of one or more &quot;Pages&quot;. Xprint was designed that
+ in a true ISO 10175 environment/implementation (<span class="citerefentry"><span class="refentrytitle">lp</span>(1)</span> on steroids, and
+ with an API), Xprt can actually learn about all printers and their
+ capabilities though API's into the printer subsystem (vs. using config
+ files), map Job/Doc/Page directly into ISO 10175 equivalents, and use
+ APIs to view job status and kill jobs (vs.
+ <span class="citerefentry"><span class="refentrytitle">cancel</span>(1)</span>,
+ <span class="citerefentry"><span class="refentrytitle">lpcancel</span>(1)</span>,
+ <span class="citerefentry"><span class="refentrytitle">lpstatus</span>(1)</span>).
+ Because most applications of the day are only printing one document per
+ job, <tt class="function">XpStartPage</tt> was designed that it generates a &quot;synthetic&quot;
+ <tt class="function">XpStartDoc</tt> if it has not been called yet.
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2882447"></a><a name="id2882450"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ How does the XLFD for printer-builtin fonts look like ? / How can I find/identify printer-builtin fonts ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ There is no special XLFD scheme for printer-builtin fonts.
+ Instead the <tt class="literal">xp-listfonts-modes-supported</tt> is used to define
+ whether <tt class="function">XListFonts</tt> and co. return printer-builtin fonts or not.
+ By default the attribute looks is set to
+ <tt class="literal">*xp-listfonts-modes-supported: xp-list-internal-printer-fonts xp-list-glyph-fonts</tt> which defines
+ thaht <tt class="function">XListFonts</tt> and co. return both printer-builtin and normal fonts.
+ Removing <tt class="literal">xp-list-internal-printer-fonts</tt> will make printer-builtin fonts disappear,
+ removing <tt class="literal">xp-list-glyph-fonts</tt> will make normal glyph fonts disappear from font lists.
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2882520"></a><a name="id2882523"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ How can I scale images using the Xprint API ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ XXX
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2882542"></a><a name="id2882545"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ Can I pass my own PostScript code (fragment) to the print spooler instead of letting
+ Xprt's PostScript DDX generate it ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ XXX
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2882568"></a><a name="id2882571"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ When I use <tt class="function">XpPutDocumentData</tt> I get a
+ <tt class="literal">BadValue</tt> X protocol error. Any idea what am I doing wrong ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ XXX
+
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2882608"></a><a name="id2882611"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ How do I use the XprintUtil library ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ XXX
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="why_does_xgetimage_not_work"></a><a name="id2882638"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ Why does the <tt class="function">XGetImage</tt> not work for Xprt ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td xmlns:ns119="" align="left" valign="top"><p>
+ There are at least three reasons why <tt class="function">XGetImage</tt> does not work for Xprt:
+ </p><div class="orderedlist"><ol type="1"><li><p>
+ Most of the Xprt DDX implementations do not render itself on any
+ bitmaps like the framebuffer(=video) DDX do, they translate the
+ rendering commands into the matching commands of the printer language
+ (it is technically possible to implement such support for <tt class="function">XGetImage</tt>
+ even for those drivers - but there are more reasons:)
+ </p></li><li><p>
+ Xprt usually operates at high resolutions which results in very large
+ dimensions. If a client would request the 24bit TrueColor <span class="emphasis"><em>bitmap</em></span>
+ data for a <span class="emphasis"><em>whole</em></span> DIN-A4 page at 2400 DPI a data chunk of ~173
+ megabytes would be the response. This would be more or less a
+ DOS(=Denial of Service) for either the client, the network and/or the
+ server.
+ </p></li><li><p>
+ The printer-builtin fonts only provide metrics information - there is no real &quot;outline&quot;
+ information at that time (these fonts reside only in the printer's ROM and are only
+ available at the time the printer rasterizes the incoming <a href="#what_does_pdl_mean">PDL</a>
+ (e.g. PCL/PostScript) data stream) which could be used to rasterize the matching glyphs
+ (which means: A <tt class="function">XGetImage</tt> implementation would return image
+ data but glyphs rendered using the printer-builtin fonts would be missing).
+ </p></li></ol></div><p>
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2882766"></a><a name="id2882769"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ How to print with Xt/Athena widgets ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td xmlns:ns120="" align="left" valign="top"><p>
+ There are two examples in the Xprint.org source tree which demonstrate how to use Xprint using
+ Athena widgets:
+ </p><div class="orderedlist"><ol type="1"><li><p>
+ <tt class="filename">xc/programs/xphelloworld/xpawhelloworld/</tt> contains a simple
+ demo application which prints a Athena widget using the <tt class="function">XawPrintShell</tt> widget class.
+ </p></li><li><p>
+ <tt class="filename">xc/programs/xphelloworld/xpxthelloworld/</tt> contains a simple
+ demo application which prints a Athena widget without using a special print
+ widget class (however, if possible a print shell such as <tt class="function">XawPrintShell</tt> or
+ <tt class="function">XmPrintShell</tt> should be used since this is the easier way to add print
+ support to an Athena application).
+ </p></li></ol></div><p>
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2882858"></a><a name="id2882861"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ How to print with Xt/Motif widgets ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ The Xprint.org source tree contains the xpxmhelloworld (xc/programs/xphelloworld/xpxmhelloworld/)
+ application to demonstrate how to print using the Motif2 toolkit.
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2882883"></a><a name="id2882886"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ What are the differences between normal display and Xprint display ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ XXX
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2882905"></a><a name="id2882908"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ How do I scale images ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ XXX
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2882926"></a><a name="id2882930"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ libXp Image scaling vs. max. request size ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ XXX
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2882948"></a><a name="id2882951"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ How can I use XprintUtils ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ XXX
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2882970"></a><a name="id2882973"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ How do I calculate the DPI values for Xprt DDX screens ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ XXX
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2882992"></a><a name="id2882995"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ How do I find scaleable fonts ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ XXX
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2883014"></a><a name="id2883017"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ How do I find printer-builtin fonts ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ XXX
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2883035"></a><a name="id2883038"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ The XLFD for Printer-builtin fonts look like bitmap fonts - is that bad ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ No, this is not &quot;bad&quot;. The XLFD of a printer-builtin font only looks like a bitmap font since
+ the *.pmf (Printer metrics file) format is a PCF file format variant (the DPI values in the XLFD
+ AFAIK specifies the resolution which was used for generating the metrics) - however this does not
+ change the fact that the printer-builtin fonts are outline scaleable fonts these fonts reside in the
+ printer's ROM).
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2883066"></a><a name="id2883069"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ When printing using the <tt class="function">XawPrintShell</tt>/<tt class="function">XmPrintShell</tt> print shells my PostScript output
+ is always corrupt. What am I doing wrong ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td xmlns:ns121="" align="left" valign="top"><p>
+ Make sure the widgets (such as text input widgets) have the (blinking) cursor turned-off.
+ Setting the <tt class="literal">XmNcursorPositionVisible,</tt> to <tt class="literal">False</tt> usually
+ solves the problem (for Motif2 widgets).
+ Example:
+ </p><div class="informalexample"><pre class="programlisting">
+...
+XtSetArg(args[n], XmNcursorPositionVisible, False);
+...
+</pre></div><p>
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2883134"></a><a name="id2883137"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ When printing using the <tt class="function">XawPrintShell</tt>/<tt class="function">XmPrintShell</tt>
+ print shells I always get a grey/dithered background on paper.
+ Any idea how to change that to &quot;white&quot; ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ XXX
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2883170"></a><a name="id2883173"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ Are there any caveats/suggestions when printing via Xt/Motif2 widgets ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td xmlns:ns126="" align="left" valign="top"><p>
+ There are a couple of Xt resources which may likely differ from the normal values (e.g. those values
+ used for a video Xserver):
+ </p><div class="variablelist"><dl><dt><span class="term"><tt class="literal">Core</tt> class level</span></dt><dd xmlns:ns122=""><p>
+ </p><div class="variablelist"><dl><dt><span class="term"><tt class="literal">XmNbackground</tt> resource</span></dt><dd><p>
+ The application will probably want to set the <tt class="literal">XmNbackground</tt> resource
+ to &quot;white&quot; to match the default paper color.
+ </p></dd><dt><span class="term"><tt class="literal">XmNborderWidth</tt> resource</span></dt><dd><p>
+ The application will probably want to set the <tt class="literal">XmNborderWidth</tt> resource
+ to &quot;0&quot; (usually the default value) to avoid that a black border appears around the widget.
+ </p></dd></dl></div><p>
+ </p></dd><dt><span class="term"><tt class="function">XmPrimitive</tt> class</span></dt><dd xmlns:ns123=""><p>
+ </p><div class="variablelist"><dl><dt><span class="term"><tt class="literal">XmNshadowThickness</tt> and <tt class="literal">XmNhightlightThickness</tt> resources</span></dt><dd><p>
+ The application will probably want to set <tt class="literal">XmNshadowThickness</tt> and
+ <tt class="literal">XmNhightlightThickness</tt> to &quot;0&quot; (usually the default value) to avoid
+ 3D border effects on the printout (depends on application and author's preference...
+ <tt class="literal">:-)</tt>).
+ </p></dd></dl></div><p>
+ </p></dd><dt><span class="term"><tt class="function">XmText</tt> and <tt class="literal">XmTextField</tt> classes</span></dt><dd xmlns:ns124=""><p>
+ </p><div class="variablelist"><dl><dt><span class="term"><tt class="literal">XmNcursorPositionVisible</tt> resource</span></dt><dd><p>
+ The application will probably want to set <tt class="literal">XmNcursorPositionVisible</tt>
+ to <tt class="literal">False</tt> to avoid that the cursor is visible on printouts (and to avoid
+ problems with some nasty implementation details which may cause corrupted PostScript output).
+ </p></dd><dt><span class="term"><tt class="literal">XmNscrollHorizontal</tt> and <tt class="literal">XmNscrollVertical</tt> resources</span></dt><dd><p>
+ The application will probably want to set the <tt class="literal">XmNscrollHorizontal</tt> and
+ <tt class="literal">XmNscrollVertical</tt> resources to <tt class="literal">False</tt> to suppress printing
+ of scrollbars (on paper &quot;scrolling&quot; is replaced with &quot;pagination&quot; except for rare exceptions
+ (like 1:1 WYSIWYG-printing)).
+ </p></dd><dt><span class="term"><tt class="literal">XmNmarginWidth</tt> and <tt class="literal">XmNmarginHeight</tt> resources</span></dt><dd><p>
+ The application will probably want to recalculate the <tt class="literal">XmNmarginWidth</tt> and
+ <tt class="literal">XmNmarginHeight</tt> resources based on the (far) higher print resolution
+ (or reverse: set them to &quot;0&quot; - depending on what style matches
+ the application needs better...).
+ </p></dd></dl></div><p>
+ </p></dd><dt><span class="term"><tt class="function">XmLabel</tt> class</span></dt><dd xmlns:ns125=""><p>
+ </p><div class="variablelist"><dl><dt><span class="term"><tt class="literal">XmNmarginTop</tt>, <tt class="literal">XmNmarginBottom</tt>,
+ <tt class="literal">XmNmarginRight</tt>, <tt class="literal">XmNmarginLeft</tt>,
+ <tt class="literal">XmNmarginWidth</tt>, <tt class="literal">XmNmarginHeight</tt> and
+ <tt class="literal">XmNalignment</tt> resources</span></dt><dd><p>
+ The application will probably want to use different value for <tt class="literal">XmLabel</tt> class's
+ <tt class="literal">XmNmarginTop</tt>, <tt class="literal">XmNmarginBottom</tt>, <tt class="literal">XmNmarginRight</tt>,
+ <tt class="literal">XmNmarginLeft</tt>, <tt class="literal">XmNmarginWidth</tt>, <tt class="literal">XmNmarginHeight</tt> and
+ <tt class="literal">XmNalignment</tt> resources. These resources are mainly usefull when the widget holds a
+ border, highlight or shadow of some kind. If borders are not to be transferred there is no real need to transfer
+ a margin either.
+ </p></dd></dl></div><p>
+ </p></dd></dl></div><p>
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2883723"></a><a name="id2883726"></a><b>Q:</b></td><td align="left" valign="top"><p>
+ Can I change the paper size/resolution/page orientation/etc. when printing using the
+ <tt class="function">XawPrintShell</tt>/<tt class="function">XmPrintShell</tt> print shells ?
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
+ Yes, it is allowed to change the page attributes in the page setup callback
+ (e.g. <tt class="literal">XawNpageSetupCallback</tt> or <tt class="literal">XmNpageSetupCallback</tt>)
+ since this callback is always called before <tt class="function">XpStartPage</tt>
+ (for the 2nd and following pages: between <tt class="function">XpEndPage</tt> and
+ <tt class="function">XpStartPage</tt>).
+ Note that changing page attributes will automagically update the print shell widget size
+ (e.g. attributes <tt class="literal">XawNminX</tt>, <tt class="literal">XawNminY</tt>, <tt class="literal">XawNmaxX</tt> and <tt class="literal">XawNmaxX</tt> (<tt class="function">XawPrintShell</tt>)
+ or
+ <tt class="literal">XmNminX</tt>, <tt class="literal">XmNminY</tt>, <tt class="literal">XmNmaxX</tt> and <tt class="literal">XmNmaxX</tt> (<tt class="function">XmPrintShell</tt>) are updated based
+ on events send by the Xp Extension and then the print shell is resized based on the new values (<tt class="function">XawPrintShell</tt> is slightly more flexible
+ since the size mode can be defined using the <tt class="literal">XawNlayoutMode</tt> attribute)).
+ </p></td></tr></tbody></table></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="knownbugs"></a>Known bugs</h2></div></div><div></div></div><div class="qandaset"><dl><dt></dt><dd><dl><dt>Problem <a href="#id2883905">
+ Xprt build from Xfree86 sources is completely broken and unuseable.
+ </a></dt><dt>Problem <a href="#id2883961">
+ The code which matches XLFD names to PS Type1 font names is
+ case-sensitive in Xprts build from X.org X11R6.5.1/X11R6.6 and the
+ current Solaris Xprt. This may cause that the PS DDX refuses to
+ download PS Type1 fonts.
+ </a></dt><dt>Problem <a href="#id2883997">
+ Xprt build from X11R6.5.1/X11R6.6 sources and Solaris's version of
+ Xprt can only download PFA (PS ASCII font) fonts which ends of the
+ ending &quot;*.pfa&quot;.
+ </a></dt><dt>Problem <a href="#id2884049">
+ There is an issue how the Linux and Solaris Xprt handles the
+ &quot;copy-count&quot; of a print job. The result may be that a job with n
+ copies of a document end-up in n jobs with n copies (usually equals
+ to n^2 copies).
+ </a></dt></dl></dd></dl><table border="0" summary="Q and A Set"><col align="left" width="1%"><tbody><tr class="toc" colspan="2"><td align="left" valign="top" colspan="2"><dl><dt>Problem <a href="#id2883905">
+ Xprt build from Xfree86 sources is completely broken and unuseable.
+ </a></dt><dt>Problem <a href="#id2883961">
+ The code which matches XLFD names to PS Type1 font names is
+ case-sensitive in Xprts build from X.org X11R6.5.1/X11R6.6 and the
+ current Solaris Xprt. This may cause that the PS DDX refuses to
+ download PS Type1 fonts.
+ </a></dt><dt>Problem <a href="#id2883997">
+ Xprt build from X11R6.5.1/X11R6.6 sources and Solaris's version of
+ Xprt can only download PFA (PS ASCII font) fonts which ends of the
+ ending &quot;*.pfa&quot;.
+ </a></dt><dt>Problem <a href="#id2884049">
+ There is an issue how the Linux and Solaris Xprt handles the
+ &quot;copy-count&quot; of a print job. The result may be that a job with n
+ copies of a document end-up in n jobs with n copies (usually equals
+ to n^2 copies).
+ </a></dt></dl></td></tr><tr class="question"><td align="left" valign="top"><a name="id2883905"></a><a name="id2883908"></a><b>Problem</b></td><td align="left" valign="top"><p>
+ Xprt build from Xfree86 sources is completely broken and unuseable.
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>Solution</b></td><td align="left" valign="top"><p>
+ Build Xprt from the CVS tree at <a href="http://xprint.mozdev.org/" target="_top">http://xprint.mozdev.org/</a> or the
+ X.org X11R6.5.1 sources (note that the client side Xprint extension
+ library (&quot;<tt class="filename">libXp.so</tt>&quot;) from Xfree86 is not broken and do not need to be
+ replaced).
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2883961"></a><a name="id2883964"></a><b>Problem</b></td><td align="left" valign="top"><p>
+ The code which matches XLFD names to PS Type1 font names is
+ case-sensitive in Xprts build from X.org X11R6.5.1/X11R6.6 and the
+ current Solaris Xprt. This may cause that the PS DDX refuses to
+ download PS Type1 fonts.
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>Solution</b></td><td align="left" valign="top"><p>
+ Patch available, I am looking for a way to get the patch into the X11
+ and Solaris source trees...
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2883997"></a><a name="id2884000"></a><b>Problem</b></td><td align="left" valign="top"><p>
+ Xprt build from X11R6.5.1/X11R6.6 sources and Solaris's version of
+ Xprt can only download PFA (PS ASCII font) fonts which ends of the
+ ending &quot;*.pfa&quot;.
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>Solution</b></td><td align="left" valign="top"><p>
+ Either convert PFB (PS Type 1 binary font) to PFA format and adjust
+ the <tt class="filename">fonts.dir</tt> and <tt class="filename">fonts.scale</tt> file or get a patch for the sources.
+ I am looking for a way to get the patch into the X11 and Solaris
+ source trees (the fixed version can download both PFA/PFB fonts in
+ PFA format and even handles non-standard file extensions).
+ </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2884049"></a><a name="id2884052"></a><b>Problem</b></td><td align="left" valign="top"><p>
+ There is an issue how the Linux and Solaris Xprt handles the
+ &quot;copy-count&quot; of a print job. The result may be that a job with n
+ copies of a document end-up in n jobs with n copies (usually equals
+ to n^2 copies).
+ </p></td></tr><tr class="answer"><td align="left" valign="top"><b>Solution</b></td><td align="left" valign="top"><p>
+ Xprt build from xprint.mozdev.org sources has been fixed in release
+ 007, see <a href="http://xprint.mozdev.org/bugs/show_bug.cgi?id=1378" target="_top">xprint.mozdev.org bug 1378
+ (&quot;PS DDX creates n^2 copies of a job instead of n copies&quot;)</a> and
+ <a href="http://bugzilla.mozilla.org/show_bug.cgi?id=140030" target="_top">bugzilla.mozilla.org 140030
+ (&quot;Setting number of copies causes too many copies to print&quot;)</a> for details.
+ Solaris 2.7 Xprt still suffers from this issue... <tt class="literal">;-(</tt>
+ </p></td></tr></tbody></table></div></div><div xmlns:ns127="" class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="unanswered_questions"></a>Unanswered questions</h2></div></div><div></div></div><p>
+ (My small ToDo list what I will write soon; 379 items missing... <tt class="literal">=:-)</tt>
+ Email me if you want one of these answered &quot;now&quot; and/or to contribute
+ an answer... :)
+ </p><table class="simplelist" border="0" summary="Simple list"><tr><td>How do I create a model-config for my printer ?</td></tr><tr><td>How can I customize a model-config for my site/machine ?</td></tr><tr><td>Which attributes/values can be set in a model-config ?</td></tr><tr><td>Why can't I set default values (for my {paper size, resolution, ...}) in the model-config ?</td></tr><tr><td>Should I add the fonts in the model-config dir to the Xserver's font path ?</td></tr><tr><td>What are the fonts in the model-config dir for ?</td></tr><tr><td>Can I use a font server for all fonts instead of passing then directly to the Xprint server ?</td></tr><tr><td>Does the Xprint PostScript driver do full rasterisation of the print job ?</td></tr><tr><td>Is it possible to prepare a printer config entry so that the PS
+ output is piped to &quot;ps2pdf&quot; and will produce directly a PDF file?
+ It would be nice to have mozilla directly producing PDF files when
+ printing.
+ </td></tr><tr><td>Problem: I have changed the Xprt config - but &quot;xplsprinters -l&quot;</td></tr><tr><td>(or any other Xprint application) does not show the change.</td></tr><tr><td>Any idea what I am doing wrong ?</td></tr><tr><td>How can I add a font path to Xprt ?</td></tr><tr><td>Why does &quot;xset +fp path_to_font&quot; not work in some cases ?</td></tr><tr><td>How can I get a &quot;core&quot;-dump when Xprt crashes ?</td></tr><tr><td>How can I debug Xprt (hint: use &quot;-audit 4&quot;) ?</td></tr><tr><td>How can I debug Xprt with Sun Workshop (hint: &quot;check -access&quot;) ?</td></tr><tr><td>How can I check whether Xprint is &quot;active&quot; ? / How can I verify that a Xprint is working ?</td></tr></table><p>
+ </p></div><div xmlns:ns128="" class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="acknowledgements"></a>Acknowledgements</h2></div></div><div></div></div><p>
+ We'd like like to express their gratitude to the whole community for
+ providing insightful answers to innumerable questions. In particular,
+ the following people (listed alphabetically) have contributed to this
+ FAQ (apologies, in advance, if anyone has been forgotten):
+ </p><p>
+ </p><table class="simplelist" border="0" summary="Simple list"><tr><td><span class="othercredit"><span class="firstname">Alan</span> <span class="surname">Coopersmith</span></span> <tt class="email">&lt;<a href="mailto:alan.coopersmith@sun.com">alan.coopersmith@sun.com</a>&gt;</tt></td></tr><tr><td><span class="othercredit"><span class="firstname">Giuseppe</span> <span class="surname">Ghibò</span></span> <tt class="email">&lt;<a href="mailto:ghibo@mandrakesoft.com">ghibo@mandrakesoft.com</a>&gt;</tt></td></tr><tr><td><span class="othercredit"><span class="firstname">Thomas</span> <span class="surname">Gilg</span></span> <tt class="email">&lt;<a href="mailto:thomas_gilg@hp.com">thomas_gilg@hp.com</a>&gt;</tt></td></tr><tr><td><span class="othercredit"><span class="firstname">Jay</span> <span class="surname">Hobson</span></span> <tt class="email">&lt;<a href="mailto:jay.hobson@sun.com">jay.hobson@sun.com</a>&gt;</tt></td></tr><tr><td><span class="othercredit"><span class="firstname">Masaki</span> <span class="surname">Katakai</span></span> <tt class="email">&lt;<a href="mailto:katakai@japan.sun.com">katakai@japan.sun.com</a>&gt;</tt></td></tr><tr><td><span class="othercredit"><span class="firstname">Simon</span> <span class="surname">Montagu</span></span> <tt class="email">&lt;<a href="mailto:smontagu@smontagu.org">smontagu@smontagu.org</a>&gt;</tt></td></tr><tr><td><span class="othercredit"><span class="firstname">Drew</span> <span class="surname">Parsons</span></span> <tt class="email">&lt;<a href="mailto:dparsons@debian.org">dparsons@debian.org</a>&gt;</tt></td></tr><tr><td>(and many many others)</td></tr></table><p>
+ </p></div></div></body></html>
diff --git a/hardcopy/XPRINT/Xprint_FAQ.txt b/hardcopy/XPRINT/Xprint_FAQ.txt
new file mode 100644
index 0000000..1fc06eb
--- /dev/null
+++ b/hardcopy/XPRINT/Xprint_FAQ.txt
@@ -0,0 +1,3113 @@
+
+Xprint Frequently Asked Questions
+ _________________________________________________________________
+
+ About this FAQ
+
+ Archive-name: Xprint/FAQ
+
+ Version: 0.9
+
+ Last-Modified: 2004/02/16 04:15:16
+
+ Maintained-by: Roland Mainz <[1]roland.mainz@nrubsig.org>
+
+ The following is a list of questions that are frequently asked about
+ Xprint.
+
+ You can help make it an even better-quality FAQ by writing a short
+ contribution or update and sending it BY EMAIL ONLY to me. A
+ contribution should consist of a question and an answer, and
+ increasing number of people sends me contributions of the form "I
+ don't know the answer to this, but it must be a FAQ, please answer it
+ for me". Please read the FAQ first (including the item "[2]Getting
+ Help") and then feel free to ask me if it is not in the FAQ.
+
+ Thanks!
+
+ The latest Xprint FAQ and some other goodies can be obtained through
+ http from
+ [3]http://xprint.mozdev.org/lxr/http/source/xprint/src/xprint_main/xc/
+ doc/hardcopy/XPRINT/Xprint_FAQ.html or
+ [4]http://xprint.mozdev.org/lxr/http/source/xprint/src/xprint_main/xc/
+ doc/hardcopy/XPRINT/Xprint_FAQ.txt (the DocBook/XML master source file
+ is
+ [5]http://xprint.mozdev.org/lxr/http/source/xprint/src/xprint_main/xc/
+ doc/hardcopy/XPRINT/Xprint_FAQ.xml ).
+
+Note
+
+ Note that the FAQ has not been finished yet (nor is it
+ half-finished...), many items marked with "XXX" as the answer have
+ still to be written (or have to be copy&pasted from my item
+ collection... :)
+
+Frequently Asked Questions with Answers
+
+ 1. [6]General
+
+ Q: [7]What is "Xprint" ?
+ Q: [8]Where can I get Xprint/Xprt from ?
+ Q: [9]What is "Xprt" ?
+ Q: [10]Where can I get help for problems with Xprint ?
+ Q: [11]"Why do some people like Xprint ?" / "What are the
+ advantages of Xprint ?"
+
+ Q: [12]Why do some people dislike Xprint ?
+ Q: [13]Does Xprint support anti-aliased fonts ?
+ Q: [14]How can I check if Xprint is working and should be used ?
+ Q: [15]How can I view PS(=PostScript) files ?
+ Q: [16]How can I view PCL files ?
+ Q: [17]How does Xprt find fonts ?
+ Q: [18]How can I print TrueType fonts with Xprint ?
+ Q: [19]What does "DDX" mean ?
+ Q: [20]What does "DIX" mean ?
+ Q: [21]What does "PDL" mean ?
+ Q: [22]I have twenty printers installed on my system - but Xprt
+ only shows two screens. Where are all the other printers
+ ?
+
+ Q: [23]Which platforms support Xprint ?
+ Q: [24]I have the broken Xfree86 Xprt binary on my system. Do I
+ need a new version of libXp.so (the client side X11
+ extension library for Xprint), too ?
+
+ Q: [25]Which spelling is correct - "Xprint", "XPrint", "Xprinter"
+ or Xprt" ?
+
+ Q: [26]Which applications support Xprint ?
+ Q: [27]Is "Xprint" "mozilla"-only (I saw that it's hosted by
+ mozdev.org) ?
+
+ Q: [28]Under which license is the source code from
+ xprint.mozdev.org distributed under ?
+
+ 2. [29]Usage
+
+ Q: [30]How do I configure Xprint on the client side ?
+ Q: [31]How do I start Xprt ?
+ Q: [32]How can I get a list of printers managed by Xprint ?
+ Q: [33]How can I start Xprt at boot time ?
+ Q: [34]How can I start Xprt per-user ?
+ Q: [35]How can I start Xprt only for one application ?
+ Q: [36]How can I filter the font path which should be passed to
+ Xprt for certain fonts ?
+
+ Q: [37]How can I manage access control to the Xprt server ?
+ Q: [38]How can I log access to the Xprt server ?
+ Q: [39]Does it require "root" permissions to use Xprt/Xprint ?
+ Q: [40]How can I see the attributes of a printer managed by
+ Xprint ?
+
+ Q: [41]How can I list the font path used by a Xprt server ?
+ Q: [42]"xset q" lists all model-specific font dirs (like
+ PRINTER:/myxpcfg/C/print/models/SPSPARC2/fonts/") - is
+ that a bug ?
+
+ Q: [43]My application lists a printer called
+ "xp_ps_spooldir_tmp_Xprintjobs" /
+ "xp_pdf_spooldir_tmp_Xprintjobs" /
+ "spooldir_tmp_Xprintjobs" / in the print dialog but I do
+ not have such a print queue installed anywhere. What is
+ that for a thing ?!
+
+ Q: [44]How can I forward Xprint services when logging-in via ssh
+ to another machine ?
+
+ 3. [45]Configuration
+
+ Q: [46]How do I change the defaults for
+ double-sided/single-sided/etc. printing ?
+
+ Q: [47]I am in America and I don't have any ISO A4 paper. How do
+ I change the default paper size to 8.5 inch x 11 inch
+ (US-Letter) ?
+
+ Q: [48]How do I change the default printer resolution ?
+ Q: [49]How do I change the default settings for
+ "portrait"/"landscape"/"seascape" (=page orientation) ?
+
+ Q: [50]How can I prevent Xprt from using any bitmap(=gfx) fonts ?
+
+ Q: [51]I want only my manually added printers managed by Xprint.
+ How can I prevent Xprt from looking-up the printer names
+ automatically ?
+
+ Q: [52]How can I specify an own program/script to enumerate the
+ printers on my system ?
+
+ Q: [53]Which program is used by default by Xprt to enumerate the
+ printers on my system ?
+
+ Q: [54]Where can I get more PostScript Type1 fonts from ?
+ Q: [55]What are PMF fonts (e.g. the *.pmf fonts in
+ ${XPCONFIGDIR}/C/print/models/%model_name%/fonts/ (or
+ ${XPCONFIGDIR}/${LANG}/print/models/%model_name%/fonts/))
+ ?
+
+ Q: [56]Can I use the fontserver ("xfs") with Xprt ?
+ Q: [57]What is a "model-config" ?
+ Q: [58]Where can I store the default values for printers ?
+ Q: [59]How can I create my own model-config ?
+ Q: [60]How can I create my own PMF "fonts" ?
+ Q: [61]Where can I get more model-configs from ?
+ Q: [62]If I install Xprt &co. as "root" in the default location
+ and don't need to set ${XPCONFIGDIR} - where are my
+ configuration files located then ?
+
+ Q: [63]Are config files and/or the PMF fonts architecture
+ dependent ?
+
+ Q: [64]Can I localise my Xprint/Xprt configuration (l10n) ?
+ Q: [65]Can I execute my own scripts to process the PostScript
+ files generated by Xprt ?
+
+ Q: [66]How can I disable "xp_ps_spooldir_tmp_Xprintjobs" /
+ "xp_pdf_spooldir_tmp_Xprintjobs" printer targets ?
+
+ 4. [67]Troubleshooting
+
+ Q: [68]Xprt refuses to start with the message "sh: lpc: command
+ not found" on my Linux machine. What does that mean ?
+
+ Q: [69]When the application (=client side) tries to connect to
+ the Xprt (Xserver) side it fails with a Xlib: connection
+ to "meridian:52.0" refused by server Xlib: Client is not
+ authorized to connect to Server What does that mean ?
+
+ Q: [70]Xprt refuses to start with the message "failed to set
+ default font path '...' Fatal server error: could not
+ open default font 'fixed'". What does that mean ?
+
+ Q: [71]Just copying my fonts into a directory and adding the path
+ to my Xprt command line didn't work - I always get "Fatal
+ server error: could not open default font 'fixed'". What
+ am I doing wrong ?
+
+ Q: [72]Xprt refuses to start with the message "Fatal server
+ error: Cannot establish any listening sockets - Make sure
+ an X server isn't already running". What does that mean ?
+
+ Q: [73]Xprt refuses to start with the message "Fatal server
+ error: Failed to establish all listening sockets". What
+ does that mean ?
+
+ Q: [74]Xprt refuses to start with the message "Fatal server
+ error: could not open default font 'fixed'" or "Fatal
+ server error: could not open default cursor font
+ 'cursor'".
+
+ Q: [75]Xprt refuses to start with the message "Fatal server
+ error: no screens found". What does that mean ?
+
+ Q: [76]"Printing itself works but the printout covers only 1/4 of
+ the paper - what am I doing wrong ?"
+
+ Q: [77]"Printing works but I get large borders/margins..." /
+ "[Top] margin is too small" / "Margins are wrong" / etc.
+
+ Q: [78]Xprt prints a warning like "Xp Extension: could not find
+ config dir /usr/X11R6/lib/X11/C/print" - what does that
+ mean ?
+
+ Q: [79]Xprt crashes with "Fatal server error: Beziers this big
+ not yet supported" What does that mean ?
+
+ Q: [80]"My PS Type1 font does not work with my Xserver - how can
+ I fix this ?"
+
+ Q: [81]I can't get it working. I have set ${DISPLAY} correctly to
+ point to the Xprt display and... ... What is going wrong
+ ?
+
+ Q: [82]When I try to print via Xprint I get the message "Fatal
+ server error: unable to exec '/usr/bin/lp'". What is
+ going wrong here ?
+
+ Q: [83]The Solaris Xprt prints some error messages about
+ PostScript fonts like "FOOBAR not found, using Courier.
+ CMEX0123 not found, using Courier." etc. and uses
+ "Courier" instead of these fonts...
+
+ Q: [84]"Xprt refused to start, complaining about a missing dir
+ (/etc/X11/xserver/C/print/ directory)... I created it by
+ hand (empty) and started Xprt but it still does not work
+ properly..."
+
+ Q: [85]My Linux system already shipps with a
+ '/usr/X11R6/bin/Xprt'-binary. Do I need the binary
+ distribution from http://xprint.mozdev.org/ ?
+
+ Q: [86]I am getting the error message "error opening security
+ policy file /usr/X11R6/lib/X11/xserver/SecurityPolicy".
+ What does that mean ?
+
+ Q: [87]I have modified the "HPLJ4family" [or "HPDJ1600C" etc.]
+ printer model to work with my PostScript printer, but
+ when I print I get empty places where some text should be
+ - what am I doing wrong here ?
+
+ Q: [88]Xprt outputs warning messages like: Xp Extension: Can't
+ load driver XP-PCL-MONO init function missing Xp
+ Extension: Can't load driver XP-RASTER init function
+ missing What does that mean ?
+
+ Q: [89]Printing on Solaris with Mozilla/Eclipse [or any other
+ Xprint client] removes spaces between words. What is
+ going wrong ?
+
+ Q: [90]Installation of the "GISWxprint" / "GISWxprintglue"
+ packages fails like this: # pkgadd -d
+ /space/staging/xprint/GISWxprint.pkg pkgadd: ERROR: no
+ packages were found in </var/tmp/dstreAAA5Jayyz> Any idea
+ what I am doing wrong ?
+
+ Q: [91]Printing page results in [two/three/.../16] leading blank
+ pages, followed by a correct (but offset) page. Any idea
+ what is going wrong ?
+
+ 5. [92]Software development
+
+ Q: [93]How does the X print server (Xprt) and the Xlib client
+ side differ from the "normal" video Xserver/video client
+ side ?
+
+ Q: [94]How can I get the printable area (e.g. the portion of the
+ page on which the printer is physically capable of
+ placing ink) of the paper after I have chosen a paper ?
+
+ Q: [95]Do "offscreen" pixmaps work on Xprt ?
+ Q: [96]How can I get the DPI value for the current Xprt server ?
+ Can I use the values from "xdpyinfo" ?
+
+ Q: [97]Why does Xprt not offer the MIT-SHM protocol extension ?
+ Q: [98]Does Xprint/Xprt support font rotation ?
+ Q: [99]When I render something on my window and call XpStartPage
+ all the rendered stuff is gone, I only get a white, empty
+ paper. What is going wrong here ?
+
+ Q: [100]What is XpStartDoc for ?
+ Q: [101]How does the XLFD for printer-builtin fonts look like ? /
+ How can I find/identify printer-builtin fonts ?
+
+ Q: [102]How can I scale images using the Xprint API ?
+ Q: [103]Can I pass my own PostScript code (fragment) to the print
+ spooler instead of letting Xprt's PostScript DDX generate
+ it ?
+
+ Q: [104]When I use XpPutDocumentData I get a BadValue X protocol
+ error. Any idea what am I doing wrong ?
+
+ Q: [105]How do I use the XprintUtil library ?
+ Q: [106]Why does the XGetImage not work for Xprt ?
+ Q: [107]How to print with Xt/Athena widgets ?
+ Q: [108]How to print with Xt/Motif widgets ?
+ Q: [109]What are the differences between normal display and
+ Xprint display ?
+
+ Q: [110]How do I scale images ?
+ Q: [111]libXp Image scaling vs. max. request size ?
+ Q: [112]How can I use XprintUtils ?
+ Q: [113]How do I calculate the DPI values for Xprt DDX screens ?
+ Q: [114]How do I find scaleable fonts ?
+ Q: [115]How do I find printer-builtin fonts ?
+ Q: [116]The XLFD for Printer-builtin fonts look like bitmap fonts
+ - is that bad ?
+
+ Q: [117]When printing using the XawPrintShell/XmPrintShell print
+ shells my PostScript output is always corrupt. What am I
+ doing wrong ?
+
+ Q: [118]When printing using the XawPrintShell/XmPrintShell print
+ shells I always get a grey/dithered background on paper.
+ Any idea how to change that to "white" ?
+
+ Q: [119]Are there any caveats/suggestions when printing via
+ Xt/Motif2 widgets ?
+
+ Q: [120]Can I change the paper size/resolution/page
+ orientation/etc. when printing using the
+ XawPrintShell/XmPrintShell print shells ?
+
+1. General
+
+ Q: [121]What is "Xprint" ?
+ Q: [122]Where can I get Xprint/Xprt from ?
+ Q: [123]What is "Xprt" ?
+ Q: [124]Where can I get help for problems with Xprint ?
+ Q: [125]"Why do some people like Xprint ?" / "What are the advantages
+ of Xprint ?"
+
+ Q: [126]Why do some people dislike Xprint ?
+ Q: [127]Does Xprint support anti-aliased fonts ?
+ Q: [128]How can I check if Xprint is working and should be used ?
+ Q: [129]How can I view PS(=PostScript) files ?
+ Q: [130]How can I view PCL files ?
+ Q: [131]How does Xprt find fonts ?
+ Q: [132]How can I print TrueType fonts with Xprint ?
+ Q: [133]What does "DDX" mean ?
+ Q: [134]What does "DIX" mean ?
+ Q: [135]What does "PDL" mean ?
+ Q: [136]I have twenty printers installed on my system - but Xprt only
+ shows two screens. Where are all the other printers ?
+
+ Q: [137]Which platforms support Xprint ?
+ Q: [138]I have the broken Xfree86 Xprt binary on my system. Do I need
+ a new version of libXp.so (the client side X11 extension
+ library for Xprint), too ?
+
+ Q: [139]Which spelling is correct - "Xprint", "XPrint", "Xprinter" or
+ Xprt" ?
+
+ Q: [140]Which applications support Xprint ?
+ Q: [141]Is "Xprint" "mozilla"-only (I saw that it's hosted by
+ mozdev.org) ?
+
+ Q: [142]Under which license is the source code from xprint.mozdev.org
+ distributed under ?
+
+ Q:
+
+ What is "Xprint" ?
+ A:
+
+ In short, "Xprint" is an advanced printing system which enables X11
+ applications to use devices like printers, FAX or create documents in
+ formats like PostScript, PDF or SVGprint.
+
+ In long, "Xprint" is a very flexible, extensible, scaleable,
+ client/server print system based on ISO 10175 (and some other specs)
+ and the X11 rendering protocol. Using Xprint an application can
+ search, query and use devices like printers, FAX machines or create
+ documents in formats like PDF or SVGprint. In particular, an
+ application can seek a printer, query supported attributes (like paper
+ size, trays, fonts etc.), configure the printer device to match it's
+ needs and print on it like on any other X device reusing parts of the
+ code which is used for the video card Xserver...
+ Q:
+
+ Where can I get Xprint/Xprt from ?
+ A:
+
+ Xprint is client-server based, therefore two answers:
+ * The server side is available by default on Solaris (see [143]Note
+ below) and HP-UX (Xfree86 ships a "Xprt" binary, but that is
+ broken and the server config files are missing, too). For those
+ platforms who do not have a (working) Xprt server the you can get
+ source, binary tarballs and Linux RPMs from
+ [144]http://xprint.mozdev.org/, Debian Linux has a package based
+ on the same sources (see
+ [145]http://packages.qa.debian.org/x/xprint-xprintorg.html).
+
+Note
+ For Solaris >= 2.7 [146]http://xprint.mozdev.org/ provides the
+ "GISWxprintglue" and "GISWxprint" packages (available from
+ [147]http://xprint.mozdev.org/download.html) which provides a
+ single-step drop-in way to configure and start Xprint at system
+ startup and/or per-user for all applications and users (the
+ package provides only startup scripts and some config data and
+ uses the Xprt binary provided with Solaris
+ (/usr/openwin/bin/Xprt)).
+ * The client-side Xprint support library (libXp.so) is available on
+ all X11 platforms >=R6.4, including Linux, Solaris, HP-UX, AIX,
+ FreeBSD, NetBSD, etc.
+ If you do not have it you can build it from the sources available
+ at [148]http://xprint.mozdev.org/.
+
+ Q:
+
+ What is "Xprt" ?
+ A:
+
+ Xprt is the server-side of Xprint. It's just like any other Xserver -
+ it uses only an other kind of output device (printer instead of
+ framebuffer) and implements an extra X11 extension ("XpExtension") to
+ handle the special features/requirements of a "paged device"(=printer
+ etc.).
+ Q:
+
+ Where can I get help for problems with Xprint ?
+ A:
+
+ The current main site for the Xprint development is
+ [149]http://xprint.mozdev.org/ which hosts various resources including
+ a [150]mailinglist (please subscribe before posting) for end-users,
+ admin and developers.
+ Q:
+
+ "Why do some people like Xprint ?" / "What are the advantages of
+ Xprint ?"
+ A:
+
+ * Xprint allows an application to query what features (paper size,
+ trays, orientation, resolutions, plexes, fonts and much more) a
+ printer supports. For example it is avoidable that a user
+ accidently prints DIN-A4 on a DIN-A0 poster printer (the print
+ dialog would only offer DIN-A0 as paper size, e.g. offers only
+ choices which are valid for this printer).
+ * Server-side, localizeable configuration - changes to the server
+ config apply to all users without the need to change/updating
+ anything on the user side (the user may still start his/her own
+ Xprt instance using his/her preferred configuration).
+ * Small footprint - ideal for for mobile devices (client side does
+ not need to process any fonts - that's the job of the server
+ side).
+ * API not restriced to PostScript (X11R6.5.1 comes with PCL and
+ Raster implementations - and PDF/G3-FAX/SVG would be possible
+ without problems).
+ * Scaleable - Xprint can use as many Xprt servers as the user/admin
+ wants.
+ * "Xprint is designed for the enterprise", e.g. Xprint was designed
+ to match the needs of large company networks.
+ * Automatic font handling - font download or the existence of
+ printer-builtin fonts is automagically handled by Xprt - the
+ application does not need to know/handle any details (but the
+ application can optionally get information and control the usage
+ of printer builtin fonts).
+ * You can print anything what you can render on the
+ framebuffer(=video card) Xserver.
+ * Existing code can be reused 1:1 for printing - which means reduced
+ development costs.
+ * Easy support for I18N (internationalization) - you simply render
+ any fonts in any language with Xprint.
+ * Network-transparent design - Client can use local or remote Xprt
+ servers like any other Xserver.
+ * Uses the X11 protocol - easy adoption of existing code to
+ implement printer support. And all the network goodies like
+ firewall proxies, compressors etc. can be used for Xprint without
+ modifications.
+ * Security: Xprint can use all authentification schemes available in
+ X11 (like Kerberos5, SecureRPC, MIT-MAGIC-COOKIE or host-based
+ authentification).
+ * Enhachements on the server side (Xprt) to not require the change
+ of client-side code.
+ * Optimized job output (like the PostScript created by the
+ PostScript DDX) is usually a lot smaller than the PS code created
+ by other PostScript engines.
+
+ Q:
+
+ Why do some people dislike Xprint ?
+ A:
+
+ There are a few common misconceptions about Xprint. Let's take a look
+ some of these "myths", some background - and the facts:
+
+ Myth: [151]Xprint prints just a XWD dump of the Xserver bitmap
+ Myth: [152]Xprint cannot handle non-'ISO Latin 1' chars
+ Myth: [153]Xprint uses a 1024x768 screen resolution to render the
+ stuff on the paper - therefore it will never be able to do
+ high-resolution stuff
+
+ Myth: [154]Xprint prints only graphics(=bitmap/gfx) fonts
+ Myth: [155]Xprint does not support pages sizes larger than DIN-A4
+ Myth: [156]Xprint does not support rotated text
+
+ Myth:
+
+ " Xprint prints just a XWD dump of the Xserver bitmap "
+ Fact:
+
+ Whoever says Xprint simply does an "xwd"-like dump is wrong.
+
+ In short, Xprint currently (X11R6.5.1) supports *four* drivers:
+ 1. X to native Postscript
+ 2. X to native PCL5
+ 3. X to native PCL3
+ 4. X to a raster which is then feed to something like xpr to create
+ PS or PCL5 wrapped rasters.
+
+ In long, the original X Print Service ("XPS") was attempted during CDE
+ 1.0, and they only got so far as the "raster" driver.
+
+ As CDE 2.0 came around, Bob Schiefler and others at the X Consortium
+ agreed that the X Consortium would work on a X to native PS Level 2
+ driver and HP would work on a X to native PCL5 driver.
+
+ It was probably the CDE 1.0 effect that left many people with the
+ impression that Xprint is all about xwd-like window dumps. NO! Xprint
+ has native PostScript and PCL5 printing and more drivers (like PDF and
+ SVGprint DDXs etc.) are in the development.
+ Myth:
+
+ " Xprint cannot handle non-'ISO Latin 1' chars "
+ Fact:
+
+ Xprint can print any chars incl. those required for MathML, Hebrew,
+ Arabic, Japanese etc. etc. For example - the Xprint module for
+ Mozilla5 is the only print module which can proprtly print MathML.
+ Myth:
+
+ " Xprint uses a 1024x768 screen resolution to render the stuff on the
+ paper - therefore it will never be able to do high-resolution stuff "
+ Fact:
+
+ Xprt uses the screen resolution requested by the application or the
+ printers default resolution. For example a 300 DPI printer which
+ supports paper sizes up to DIN-A4 will get a screen with 3300x3300
+ pixels (screen width and height are usually equal to support per-page
+ changes in the orientation (potrait/landscape etc.), the window size
+ would be 2400x3149 for "portrait" orientation) - and larger
+ resolutions will result in larger screens.
+ Myth:
+
+ " Xprint prints only graphics(=bitmap/gfx) fonts "
+ Fact:
+
+ In short, Xprt supports printer-builtin fonts and can download fonts
+ to the printer if they do not exist on the printer.
+
+ In long, this myth seems to have it's root in a feature of Xprt which
+ can - if Xprt gets misconfigured - disable the use of printer-builtin
+ fonts and the ability to download fonts.
+
+ Xprt's PostScript and PCL DDX have the unique feature to create font
+ glyphs from bitmap fonts if they are not available as printer-builtin
+ fonts nor as PostScipt Type1 fonts. However this is the fallback - the
+ last option used by Xprt. Used if everything else fails. But when
+ someone does not pass any PS Type1 fonts with the font path nor
+ configures a printer model-config (which contains a description of the
+ features&fonts supported by the printer) Xprt will never have a chance
+ to use them. And if everything else fails it has no other option than
+ using what has been left - the bitmap fonts...
+ Myth:
+
+ " Xprint does not support pages sizes larger than DIN-A4 "
+ Fact:
+
+ There is no such limitation. The only limit is the 16bit coordinate
+ system of the X11 protocol - which is large enougth that Xprint can
+ support paper sizes larger than DIN-A0 oversize papers. There is no
+ problem with creating your own monster-size DIN-A0 posters using
+ Xprint-based applications.
+ Myth:
+
+ " Xprint does not support rotated text "
+ Fact:
+
+ Xprint and all it's drivers support the X11 matrix XLFD enhancement
+ introduced in X11R6 (and future versions of Xprint will support the
+ [157]STSF font API which supports matrix transformations as well).
+ Fonts can be rotated at any angle. Take a look at the [158]SOFTWARE
+ DEVELOPMENT section in this FAQ for examples...
+
+ Q:
+
+ Does Xprint support anti-aliased fonts ?
+ A:
+
+ Question back: When do we need anti-aliased fonts ? Anti-aliasing is a
+ "hack" to work around the limitations caused by the low resolution of
+ monitors - they usually operate between 72 DPI and 150 DPI.
+
+ But Xprint operates on printers where the usual minimum resolution is
+ 300 DPI (today's normal office printers support resolutions ranging
+ from 300 DPI up to 2400 DPI depending on the model; most common is 600
+ DPI). Anti-aliasing at those resolutions is not required anymore.
+ Additionally many printers support their own font anti-aliasing at
+ lower resolutions which is far better and faster than it could be
+ "done" on the client side.
+ Q:
+
+ How can I check if Xprint is working and should be used ?
+ A:
+
+ Check whether the ${XPSERVERLIST} env var is set or not. If
+ ${XPSERVERLIST} is set then Xprint is available and should be used.
+ Q:
+
+ How can I view PS(=PostScript) files ?
+ A:
+
+ * On Unix/Linux (general):
+ + GhostScript ("gs") and GhostView ("gv" and it's KDE- and
+ Gnome-specific versions "kghostview" and "ggv")
+
+ * Solaris:
+ + /usr/dt/bin/sdtimage (DPS-based image viewer for CDE)
+ + /usr/openwin/bin/pageview (DPS-based image viewer for
+ OpenWindows)
+
+ Q:
+
+ How can I view PCL files ?
+ A:
+
+ XXX - [159]xprint.mozdev.org bug 2261 has been filed for that issue.
+ Q:
+
+ How does Xprt find fonts ?
+ A:
+
+ Lookup-rule for Xprt's PostScript DDX to find fonts:
+ 1. Printer-builtin fonts (defined by the fonts/-dir in the
+ model-config)
+ 2. PostScript fonts (will be downloaded via generated print job)
+ 3. GFX-fonts build from X11 scaleable fonts
+ 4. GFX-fonts build from X11 bitmap fonts
+
+ Q:
+
+ How can I print TrueType fonts with Xprint ?
+ A:
+
+ 1. Linux Xprt build from [160]http://xprint.mozdev.org/'s source
+ supports TrueType fonts out-of-the-box (starting with the 008
+ development tree; xprint.mozdev.org's releases <= 007 do not
+ support TrueType fonts) and and does not require any special
+ actions.
+ 2. Sun's Xprt on Solaris (/usr/openwin/bin/Xprt) has TrueType font
+ support out-of-the-box and does not require any special actions.
+ 3. You can setup a TTF-aware X font server ("xfs", see xfs(1x)) with
+ the matching TrueType fonts and add the font server location to
+ Xprt's font path.
+ 4. Sourceforge has a TrueType to PostScript Type 1 converter project,
+ see [161]http://ttf2pt1.sourceforge.net/download.html. You may
+ convert the TTF files into PT1 files that Xprt can download them
+ to the printer on demand...
+
+ Q:
+
+ What does "DDX" mean ?
+ A:
+
+ "DDX" is a short term for "Device Dependent X" - the device-specific
+ layer of a Xserver ([162]"DIX"(="Device Independent X") is the
+ counterpart).
+ Q:
+
+ What does "DIX" mean ?
+ A:
+
+ "DIX" is a short term for "Device Independent X" - the non-device
+ specific code of a Xserver ([163]"DDX"(="Device Dependent X") is the
+ counterpart).
+ Q:
+
+ What does "PDL" mean ?
+ A:
+
+ "PDL" is a short term for "Page Description Language". Examples for
+ PDLs are PostScript, PCL, PDF and SVGprint.
+ Q:
+
+ I have twenty printers installed on my system - but Xprt only shows
+ two screens. Where are all the other printers ?
+ A:
+
+ A Xprt screen does not represent a single printer. A Xprt screen
+ represents a single DDX (currently supported are PostScript, PCL3/5
+ color, PCL mono and "raster" output(=1bit deep bitmap).
+ Q:
+
+ Which platforms support Xprint ?
+ A:
+
+ All platforms which support X11 >= R6.4 can use Xprint. The client
+ side (libXp.so) is available on Linux/FreeBSD(=Xfree86), Solaris,
+ HP-UX and AIX and the Xprt server side is available by default on
+ Solaris and HP-UX (Xfree86 shipps with a Xprt binary - but that is
+ broken and unuseable). The client-side extension library (libXp.so)
+ can be compiled on any platform, the Xprt server needs minor
+ adjustments for the specific platforms... If your platform does not
+ have Xprint (client-side and/or server-side) you can get the sources
+ from [164]http://xprint.mozdev.org/.
+ Q:
+
+ I have the broken Xfree86 Xprt binary on my system. Do I need a new
+ version of libXp.so (the client side X11 extension library for
+ Xprint), too ?
+ A:
+
+ No, the libXp.so shared library shipped with Xfree86 or build from
+ Xfree86 sources is not broken, only the server side ("Xprt") is buggy.
+ There is no need to replace the library.
+ Q:
+
+ Which spelling is correct - "Xprint", "XPrint", "Xprinter" or Xprt" ?
+ A:
+
+ "Xprint" is the correct one - "XPrint" is just a typo, "Xprinter" is a
+ complety different product not related to X11/Xprint and "Xprt" is
+ only the "X11 print server"(=the server side of Xprint).
+ Q:
+
+ Which applications support Xprint ?
+ A:
+
+ There are various applications which support Xprint:
+ * Motif/LessTif (full framework incl. special widgets like
+ XmPrintShell)
+ * [165]Common Desktop Environment (CDE) 2.x
+ * [166]Mozilla
+ * Eclipse
+ * KDE/Qt support is comming is planned for the end of Dec/2003
+ * StarOffice 5.x
+ * etc.
+
+ Q:
+
+ Is "Xprint" "mozilla"-only (I saw that it's hosted by mozdev.org) ?
+ A:
+
+ No, Xprint is a general-purpose print API based on the X11 API used by
+ many applications ([167]mozdev.org is just hosting the development
+ area, but this does not mean the project is limited to mozilla... :)).
+ Q:
+
+ Under which license is the source code from xprint.mozdev.org
+ distributed under ?
+ A:
+
+ That's the plain "MIT" license, the same as used by Xfree86.org and
+ X.org:
+Copyright (c) <year> <copyright holders>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+ this software
+and associated documentation files (the "Software"), to deal in the Software wi
+thout
+restriction, including without limitation the rights to use, copy, modify, merg
+e, publish,
+distribute, sublicense, and/or sell copies of the Software, and to permit perso
+ns to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or
+substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPL
+IED, INCLUDING
+BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE F
+OR ANY CLAIM,
+DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE
+, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ THE SOFTWARE.
+
+2. Usage
+
+ Q: [168]How do I configure Xprint on the client side ?
+ Q: [169]How do I start Xprt ?
+ Q: [170]How can I get a list of printers managed by Xprint ?
+ Q: [171]How can I start Xprt at boot time ?
+ Q: [172]How can I start Xprt per-user ?
+ Q: [173]How can I start Xprt only for one application ?
+ Q: [174]How can I filter the font path which should be passed to Xprt
+ for certain fonts ?
+
+ Q: [175]How can I manage access control to the Xprt server ?
+ Q: [176]How can I log access to the Xprt server ?
+ Q: [177]Does it require "root" permissions to use Xprt/Xprint ?
+ Q: [178]How can I see the attributes of a printer managed by Xprint ?
+ Q: [179]How can I list the font path used by a Xprt server ?
+ Q: [180]"xset q" lists all model-specific font dirs (like
+ PRINTER:/myxpcfg/C/print/models/SPSPARC2/fonts/") - is that a
+ bug ?
+
+ Q: [181]My application lists a printer called
+ "xp_ps_spooldir_tmp_Xprintjobs" /
+ "xp_pdf_spooldir_tmp_Xprintjobs" / "spooldir_tmp_Xprintjobs" /
+ in the print dialog but I do not have such a print queue
+ installed anywhere. What is that for a thing ?!
+
+ Q: [182]How can I forward Xprint services when logging-in via ssh to
+ another machine ?
+
+ Q:
+
+ How do I configure Xprint on the client side ?
+ A:
+
+ There are two env vars which control Xprint on the client side:
+ 1. The env variable ${XPSERVERLIST} contains a list of display
+ identifiers (seperated by whitespace) to tell the application
+ where it can find the Xprt servers. Usually ${XPSERVERLIST} is set
+ by the profile startup scripts (e.g. /etc/profile or
+ /etc/profile.d/xprint.sh) using the output of "/etc/init.d/xprint
+ get_xpserverlist". Example:
+ % export XPSERVERLIST="`/etc/init.d/xprint get_xpserverlist`"
+ Alternativly ${XPSERVERLIST} can be set manually:
+ Example:
+ % export XPSERVERLIST="littlecat:80 bitdog:72"
+ instructs an application to look at the displays 80 on the machine
+ "littlecat" and display 72 on the machine bigdog to look for Xprt
+ servers.
+ 2. The env variable ${XPRINTER} defines the default printer used by
+ print applications. The syntax is either <printername> or
+ <printername>@<display>
+ Examples:
+ a.
+ % export XPRINTER=ps003
+ tells an application to look for the first printer named
+ "ps003" on all Xprt servers.
+ b.
+ % export XPRINTER="hplaser19@littlecat:80"
+ tells an application to look for the printer "hplaser19" on
+ the Xprt display "littlecat:80".
+
+Note:
+ If ${XPRINTER} is not set the applications will examine the values
+ of the ${PDPRINTER}, ${LPDEST}, and ${PRINTER} env vars (in that
+ order).
+
+ Q:
+
+ How do I start Xprt ?
+ A:
+
+ 1. Linux RPM installations on Mandrake/RedHat/SuSE Linux: Binary RPM
+ packages provided by xprint.mozdev.org (or based on the same
+ source :) will install /etc/init.d/xprint and related glue (see
+ [183][4]) automatically; after a reboot a Xprt instance will be
+ started at system startup and ${XPSERVERLIST} should be populated
+ for all users. Note that you can start/stop per-user instances
+ using /etc/init.d/xprint (see [184][4]), too...
+ 2. Debian Linux: Same as [185][1], however Debian does not support
+ /etc/profile.d/ - you have to add the following line to
+ /etc/profile (for sh/ksh/bash) to populate ${XPSERVERLIST}:
+ export XPSERVERLIST="`/bin/sh /etc/init.d/xprint get_xpserverlist`"
+ See [186]bugs.debian.org bug 171174 ('"xprint-xprintorg" should
+ automatically populate $XPSERVERLIST') for further details on this
+ issue...
+ 3.
+ a. Solaris using the "GISWxprintglue" package:
+ [187]http://xprint.mozdev.org/ provides a Solaris package
+ called "GISWxprintglue" which contains all the neccesary
+ configuration files and startup scripts to use Xprint; after
+ a reboot a Xprt instance will be started at system startup
+ and ${XPSERVERLIST} should be populated for all users. Note
+ that you can start/stop per-user instances using
+ /etc/init.d/xprint (see [188][4]), too...
+ b. Solaris using the "GISWxprint" package:
+ [189]http://xprint.mozdev.org/ provides a Solaris package
+ called "GISWxprint" which is technically identical to the
+ "GISWxprintglue" (see [190][3a]) but provides a Xprt binary
+ build from the xprint.mozdve.org sources ("GISWxprintglue"
+ uses the /usr/openwin/bin/Xprt binary provided by Solaris).
+ 4. General: Using /etc/init.d/xprint and related glue: There are
+ startup/shutdown scripts in xc/programs/Xserver/Xprint/etc/ to
+ start/stop/restart Xprt per-machine and/or per-user and to
+ populate the ${XPSERVERLIST} env var:
+ + "xc/programs/Xserver/Xprint/etc/init.d/xprint" is a script
+ for SystemV and Linux to start/stop/restart Xprt. The script
+ includes installation and usage details and can be used by
+ both "root" (to start Xprt for all users) or by a single
+ (non-priviledged, plain) user (to start Xprt instances only
+ for his/her own use)
+ + "xc/programs/Xserver/Xprint/etc/profile.d/xprint.csh" and
+ "xc/programs/Xserver/Xprint/etc/profile.d/xprint.sh" are
+ scripts for Linux (which support /etc/profile.d/ ; note that
+ this does not include Debian) to populate the ${XPSERVERLIST}
+ env var for each user.
+ 5. Starting Xprt "manually" (without using /etc/init.d/xprint): Set
+ the ${XPCONFIGDIR} env variable to the directory where Xprt can
+ find it's configuration data.
+
+WARNING
+ If Xprt cannot find it's configuration data it will not be able to
+ use printer-builtin fonts (which are defined by the model-config
+ in the configuration dir). Without printer-builtin fonts Xprt may
+ fall back to generate font glyphs from bitmap fonts (this resulted
+ in the MYTH that "Xprt can only print gfx fonts". This is not TRUE
+ - this only happens if Xprt is either misconfigured or no matching
+ builtin or PS Type1 font is available).
+ You may want to make a copy of the default configuration directory
+ and modify it to match your needs.
+ 6. Starting Xprt is just as easy as starting any other Xserver:
+ % Xprt :12
+ will start Xprt on display 12 (e.g. set ${XPSERVERLIST} to ":12"
+ or "myhostname:12".
+ You may want to copy your framebuffer Xserver's font path to be
+ able to print all fonts which can be displayed on that Xserver.
+ % Xprt -fp $(xset q | awk "/Font Path:/ { i=1 ; next } i==1 { print \$0 ; i=0
+ }") :12
+
+Notes:
+
+ * The /etc/init.d/xprint has a more advanched filtering scheme based
+ on regex patters to "accept" and/or "reject" font paths
+ * 'xset q | awk "/Font Path:/ { i=1 ; next } i==1 { print \$0 ; i=0
+ }"' may be too simple-minded if your Xserver does not support
+ TrueType fonts. The following statemement is better in this case
+ since it filters the font path and removes all path elements which
+ have TrueType fonts (*.ttf, *.TTF) or TrueType font collections
+ (*.ttc, *.TTC) in fonts.dir:
+ % xset q | awk "/Font Path:/ { i=1 ; next } i==1 { print \$0 ; i=0 }" |
+ tr "," "\n" | while read i ; do \
+ if [ "$(cat ${i}/fonts.dir | egrep -i "ttf|ttc" 2>/dev/null)" == "" ] \
+ ; then echo $i ; fi ; done | (fontpath="" ; fpdelim=""; while read i ; \
+ do fontpath=${fontpath}${fpdelim}${i} ; fpdelim="," ; done ; echo \
+ $fontpath)
+ * It may be easier to just feed all available font paths to Xprt
+ (BTW: mozilla 1.0 had a bug in that case which resulted in the
+ problem that it used many many bitmap fonts in that case - this
+ has been fixed for 1.0.1 and Netscape 7 (that's the reason why the
+ quickguides for hebrew/cyrillic use the "Xp_dummyfonts" fonts
+ instead of /usr/openwin/lib/X11/fonts/misc/ - to avoid that
+ Mozilla finds bitmap fonts for the same locale). The following
+ "small" one-liner finds all fonts (except printer builtin fonts):
+ % find /usr/openwin -name fonts.dir | while read i ; do echo
+ ${i%/fonts.dir} ; done | fgrep -v "models/"
+ Plug it into the filter above to remove the Truetype fonts and you
+ are "done"... :)
+
+ See [191]TROUBLESHOOTING if you run into problems...
+
+ Q:
+
+ How can I get a list of printers managed by Xprint ?
+ A:
+
+ The tool "xplsprinters" is designed for that purpose. It can deliver
+ both list of printers and attributes supported for a specific list of
+ printers. Use % xplsprinters -h # to obtain usage information.
+ Example:
+ * Get list of available printers:
+% xplsprinters
+printer: hplaserjet001@castor:19
+printer: hpcolor001@castor:19
+printer: laser1@jason:5
+printer: david_dj01@jason:5
+ * Get information about the supported attrbites of printer "ps002":
+% xplsprinters -printer ps002 -l
+printer: ps002@castor:18
+ comment=
+ model-identifier=HPDJ1600C
+ default-medium=iso-a4
+ default-input-tray=
+ medium-source-sizes-supported=iso-a4 false 6.35 203.65 6.35 290.65
+ medium-source-sizes-supported=na-letter false 6.35 209.55 6.35 273.05
+ default-printer-resolution=300
+ resolution=300
+ default_orientation=
+ orientation=portrait
+ orientation=landscape
+ default_plex=
+ plex=simplex
+
+ Q:
+
+ How can I start Xprt at boot time ?
+ A:
+
+ "xc/programs/Xserver/Xprint/etc/init.d/xprint" is a script for SystemV
+ and Linux to start/stop/restart Xprt at system startup (e.g.
+ per-machine) or for a single user (e.g. per-user). The script includes
+ installation and usage details.
+ Q:
+
+ How can I start Xprt per-user ?
+ A:
+
+ "xc/programs/Xserver/Xprint/etc/init.d/xprint" is a script for SystemV
+ and Linux to start/stop/restart Xprt at system startup (e.g.
+ per-machine) or for a single user (e.g. per-user). The script includes
+ installation and usage details.
+ Q:
+
+ How can I start Xprt only for one application ?
+ A:
+
+ Create your own version/copy of /etc/init.d/xprint and modify it to
+ fit your requirements and then make sure that you issue a
+ "my_xprint_startscript start" before starting the application and a
+ "my_xprint_startscript stop" after leaving the application.
+ Q:
+
+ How can I filter the font path which should be passed to Xprt for
+ certain fonts ?
+ A:
+
+ XXX
+ Q:
+
+ How can I manage access control to the Xprt server ?
+ A:
+
+ Access control to Xprt is not differently as to any other Xserver and
+ can be handled in various ways - like per-cookie (using
+ MIT-MAGIC-COOKIE-1 authentification), per-user (using SUN-DES-1 or
+ MIT-KERBEROS-5 auth., see (see xhost(1x))) and/or per-machine (using
+ "xhost" (see xhost(1x)) and/or /etc/X<dpy>.hosts (<dpy> == display
+ number, e.g. /etc/X0.hosts for display 0) (see Xserver(1x))) Consult
+ manual pages Xsecurity(7), xhost(1x), Xserver(1x) etc. for further
+ details.
+ Q:
+
+ How can I log access to the Xprt server ?
+ A:
+
+ Logging access to Xprt can be done using the standard Xserver
+ auditing, see the Xserver(1x) manual page, option "-audit"
+ Q:
+
+ Does it require "root" permissions to use Xprt/Xprint ?
+ A:
+
+ No, both Xprint clients and Xprint server(s) do not require root
+ rights to work.
+
+ Xprint clients are handled like any other X11 application and the Xprt
+ servers can run without any special requirements. Solaris is an
+ exception here since it requires to start any Xserver (incl. Xprt)
+ setgid "root" (set-group-id "root", this is not set-user-id "root")
+ since the sockets/pipe files in /tmp/.X11-pipe/ and /tmp/.X11-unix/
+ are only accessible for the group "root". The workaround is to start
+ Xprt with the option "-pn"; therefore even Xprt server binaries which
+ are not setgid "root" can run without problems).
+ Q:
+
+ How can I see the attributes of a printer managed by Xprint ?
+ A:
+
+ "xplsprinters -printer myprinter004 -l" will do the job for printer
+ "myprinter004".
+
+ See xplsprinters(1x) for futher usage and a description of the output.
+ Q:
+
+ How can I list the font path used by a Xprt server ?
+ A:
+
+ Figure out the display id of the server which should be queried (we
+ are using "foobar:98" in this example) and then try this:
+% (DISPLAY=foobar:98 xset q | \
+awk "/Font Path:/ { i=1 ; next } i==1 { print \$0 ; i=0 }" | \
+tr "," "[\n]")
+# Output may look like:
+PRINTER:/usr/openwin/server/etc/XpConfig/C/print/models/HPDJ1600C/fonts/
+PRINTER:/usr/openwin/server/etc/XpConfig/C/print/models/SPSPARC2/fonts/
+PRINTER:/usr/openwin/server/etc/XpConfig/C/print/models/HPLJ3Si-PS/fonts/
+/usr/openwin/lib/X11/fonts/F3/
+/usr/openwin/lib/X11/fonts/F3bitmaps/
+/usr/openwin/lib/X11/fonts/Type1/
+/usr/openwin/lib/X11/fonts/Speedo/
+/usr/openwin/lib/X11/fonts/misc/
+/usr/openwin/lib/X11/fonts/75dpi/
+/usr/openwin/lib/X11/fonts/100dpi/
+
+Note:
+
+ Note that the font path items which start with "PRINTER:" are only be
+ sourced after the matching printer has been selected and configured
+ (for developers: After XpSetContext has been called).
+
+ Q:
+
+ "xset q" lists all model-specific font dirs (like
+ PRINTER:/myxpcfg/C/print/models/SPSPARC2/fonts/") - is that a bug ?
+ A:
+
+ No, this is normal. Xprt will add all fonts of all printer models to
+ the font path - but font path items starting with "PRINTER:" are only
+ available for an application after the matching printer has been
+ selected and configured (for developers: After XpSetContext has been
+ called), before that point fonts in these dirs are not available for
+ an application.
+ Q:
+
+ My application lists a printer called "xp_ps_spooldir_tmp_Xprintjobs"
+ / "xp_pdf_spooldir_tmp_Xprintjobs" / "spooldir_tmp_Xprintjobs" / in
+ the print dialog but I do not have such a print queue installed
+ anywhere. What is that for a thing ?!
+ A:
+
+ "xp_ps_spooldir_tmp_Xprintjobs" and "xp_pdf_spooldir_tmp_Xprintjobs"
+ ("spooldir_tmp_Xprintjobs" was the old, pre-009 name for
+ "xp_ps_spooldir_tmp_Xprintjobs") are special Xprint printer targets
+ which uses the "PSspooldir" / "PS2PDFspooldir-GS" printer models.
+ These model config sends PostScript or PDF jobs to the
+ /tmp/Xprintjobs/ directory instead to a physical printer (quite
+ usefull for people who want to get the PostScript or PDF files as
+ output instead of printed pages).
+
+ References:
+ * [192]xprint.mozdev.org bug 5092 ("[PS2PDFspooldir-GS] RFE: Add
+ printer model which sends PDF jobs to /tmp/Xprintjobs/")
+
+ Q:
+
+ How can I forward Xprint services when logging-in via ssh to another
+ machine ?
+ A:
+
+ You have to forward the X11 connection for the Xprint server(s) to the
+ remote system and set the XPSERVERLIST variable to direct the Xprint
+ clients to the forwarded ports.
+
+ Example 1. Login to a remote host using slogin (assuming there is only
+ one Xprint server listed in XPSERVERLIST)
+% echo $XPSERVERLIST
+west:33
+
+ Add 6000 to the display number ("33" in this example) to get the port
+ number (X11 port numbers start at port 6000. 6000 is display number
+ "0", 6001 is display number 6001 and so on) and then ask slogin to
+ forward the port:
+% slogin -R6033:west:6033 -l nrubsig puzzle
+
+nrubsig's password:
+Last login: Fri Jan 23 04:05:06 2004 from west.informatik.med.uni-giessen.de
+Have a lot of fun...
+
+ Then set the XPSERVERLIST env var on the remote host to the forwarded
+ ports and you are done:
+% export XPSERVERLIST="localhost:33 ${XPSERVERLIST}"
+
+ Example 2. Login to a remote host using slogin (assuming there are
+ multiple Xprint servers listed in XPSERVERLIST)
+
+ The following small shell script will process the XPSERVERLIST env var
+ and output the parameters for calling slogin/ssh with all Xprint
+ server ports forwarded:
+#!/bin/ksh
+# xp_print_slogin_args.ksh
+# Small example which parses $XPSERVERLIST and prints out how slogin/ssh
+# should be used to forward all local Xprint servers
+
+PORTARGS=""
+REMOTE_XPSERVERLIST=""
+spacer="" # seperator
+remoteport=6100
+remotedisplaynum=100
+
+echo "${XPSERVERLIST}" | tr " " "\n" |
+ while read i ; do
+ [ "$i" = "" ] && continue
+ displaynum="${i##*:}"
+ port="$(( ${displaynum} + 6000 ))"
+ hostname="${i%:*}"
+ PORTARGS="${PORTARGS}${spacer}-R${remoteport}:${hostname}:${port}"
+ REMOTE_XPSERVERLIST="${REMOTE_XPSERVERLIST}${spacer}localhost:${remoted
+isplaynum}"
+
+ spacer=" "
+ remoteport=$((${remoteport} + 1))
+ remotedisplaynum=$((${remotedisplaynum} + 1))
+ done
+echo "Log in with: % slogin ${PORTARGS} -l myloginname myremotehost"
+echo "Set remote XPSERVERLIST with % export XPSERVERLIST=\"${REMOTE_XPSERVERLIS
+T} \${XPSERVERLIST}\""
+# EOF.
+
+ Example usage:
+% xp_print_slogin_args.ksh
+
+ will print
+Log in with: % slogin -R6100:west:6033 -R6101:north:6033 -l myloginname myremot
+ehost
+Set remote XPSERVERLIST with % export XPSERVERLIST="localhost:100 localhost:101
+ ${XPSERVERLIST}"
+
+3. Configuration
+
+ Q: [193]How do I change the defaults for
+ double-sided/single-sided/etc. printing ?
+
+ Q: [194]I am in America and I don't have any ISO A4 paper. How do I
+ change the default paper size to 8.5 inch x 11 inch (US-Letter)
+ ?
+
+ Q: [195]How do I change the default printer resolution ?
+ Q: [196]How do I change the default settings for
+ "portrait"/"landscape"/"seascape" (=page orientation) ?
+
+ Q: [197]How can I prevent Xprt from using any bitmap(=gfx) fonts ?
+ Q: [198]I want only my manually added printers managed by Xprint. How
+ can I prevent Xprt from looking-up the printer names
+ automatically ?
+
+ Q: [199]How can I specify an own program/script to enumerate the
+ printers on my system ?
+
+ Q: [200]Which program is used by default by Xprt to enumerate the
+ printers on my system ?
+
+ Q: [201]Where can I get more PostScript Type1 fonts from ?
+ Q: [202]What are PMF fonts (e.g. the *.pmf fonts in
+ ${XPCONFIGDIR}/C/print/models/%model_name%/fonts/ (or
+ ${XPCONFIGDIR}/${LANG}/print/models/%model_name%/fonts/)) ?
+
+ Q: [203]Can I use the fontserver ("xfs") with Xprt ?
+ Q: [204]What is a "model-config" ?
+ Q: [205]Where can I store the default values for printers ?
+ Q: [206]How can I create my own model-config ?
+ Q: [207]How can I create my own PMF "fonts" ?
+ Q: [208]Where can I get more model-configs from ?
+ Q: [209]If I install Xprt &co. as "root" in the default location and
+ don't need to set ${XPCONFIGDIR} - where are my configuration
+ files located then ?
+
+ Q: [210]Are config files and/or the PMF fonts architecture dependent ?
+
+ Q: [211]Can I localise my Xprint/Xprt configuration (l10n) ?
+ Q: [212]Can I execute my own scripts to process the PostScript files
+ generated by Xprt ?
+
+ Q: [213]How can I disable "xp_ps_spooldir_tmp_Xprintjobs" /
+ "xp_pdf_spooldir_tmp_Xprintjobs" printer targets ?
+
+ Q:
+
+ How do I change the defaults for double-sided/single-sided/etc.
+ printing ?
+ A:
+
+ This is controlled via the "plex" attribute in the document attribute
+ pool (${XPCONFIGDIR}/${LANG}/print/attributes/document and/or
+ ${XPCONFIGDIR}/C/print/attributes/document). Examples:
+ 1. Adding/modifying the following line to/in
+ ${XPCONFIGDIR}/C/print/attributes/document sets the default plex
+ for all printers to "duplex":
+ *plex: duplex
+ 2. Adding/modifying the following two lines to/in
+ ${XPCONFIGDIR}/C/print/attributes/document sets the default plex
+ for all printers to "duplex" except for printer "ps003" which
+ should default to "simplex":
+ *plex: duplex
+ ps003.plex: simplex
+
+Notes:
+
+ * Not all printers support all plex modes. The model-config may
+ restrict the available plex modes.
+ * Setting a plex mode which is not supported by either the
+ DDX(=driver) or not specified in the model-config will cause Xprt
+ to not set a default plex.
+ * The PostScript DDX supports plex modes "simplex", "duplex" and
+ "tumble".
+ * Verification: Use
+ xplsprinters -l | egrep "^printer:|default_plex=|plex="
+ to view the plex settings for all printers.
+
+ Q:
+
+ I am in America and I don't have any ISO A4 paper. How do I change the
+ default paper size to 8.5 inch x 11 inch (US-Letter) ?
+ A:
+
+ This is controlled via the "default-medium" attribute in the document
+ attribute pool (${XPCONFIGDIR}/${LANG}/print/attributes/document
+ and/or ${XPCONFIGDIR}/C/print/attributes/document). Examples:
+ 1. Adding/modifying the following line to/in
+ ${XPCONFIGDIR}/C/print/attributes/document sets the default paper
+ size for all printers to "na-letter":
+ *default-medium: na-letter
+ 2. Adding/modifying the following two lines to/in
+ ${XPCONFIGDIR}/C/print/attributes/document sets the default paper
+ size for all printers to "na-letter" except for printer "ps003"
+ which should default to "iso-a4":
+ *default-medium: na-letter
+ ps003.default-medium: iso-a4
+
+Notes:
+
+ * xprint.mozdev.org releases >= 007 provides a seperate "document"
+ attribute pool for en_US(-like) locales (see
+ ${XPCONFIGDIR}/en_US/print/attributes/document) which will
+ override the default ISO-A4 with US-Letter (this feature assumes
+ that ${LANG} is set to "en_US" (or a locale which has similar
+ defaults as "en_US", those are currently linked to "en_US" in
+ ${XPCONFIGDIR}/))
+ * Not all printers support all paper sizes. The model-config may
+ restrict the available paper sizes.
+ * Setting a paper size which is not supported by either the
+ DDX(=driver) or not specified in the model-config will cause Xprt
+ to not set a default paper size.
+ * The PostScript DDX supports the following paper sizes:
+ + X.org release 6.6 (X116.6): "iso-a4", "na-letter",
+ "na-legal", "executive", "iso-designated-long",
+ "na-number-10-envelope"
+ + xprint.mozdev.org release >= 006: "na-letter", "na-legal",
+ "executive", "folio", "invoice", "ledger", "quarto", "a",
+ "b", "c", "d", "e", "na-6x9-envelope", "na-10x15-envelope",
+ "monarch-envelope", "na-10x13-envelope", "na-9x12-envelope",
+ "na-number-10-envelope", "na-7x9-envelope",
+ "na-9x11-envelope", "na-10x14-envelope",
+ "na-number-9-envelope", "iso-a0", "iso-a1", "iso-a2",
+ "iso-a3", "iso-a4", "iso-a5", "iso-a6", "iso-a7", "iso-a8",
+ "iso-a9", "iso-a10", "iso-b1", "iso-b2", "iso-b3", "iso-b4",
+ "iso-b5", "iso-b6", "iso-b7", "iso-b8", "iso-b9", "iso-b10",
+ "jis-b1", "jis-b2", "jis-b3", "jis-b4", "jis-b5", "jis-b6",
+ "jis-b7", "jis-b8", "jis-b9", "jis-b10", "iso-c3", "iso-c4",
+ "iso-c5", "iso-c6", "iso-designated-long"
+ * Verification: Use
+ xplsprinters -l | egrep "^printer:|default-medium=|medium-source-sizes-suppor
+ted="
+ to view the medium settings for all printers. The
+ 'medium-source-sizes-supported='-lines have the format XXX.
+
+ Q:
+
+ How do I change the default printer resolution ?
+ A:
+
+ This is controlled via the "default-printer-resolution" attribute in
+ the document attribute pool
+ (${XPCONFIGDIR}/${LANG}/print/attributes/document and/or
+ ${XPCONFIGDIR}/C/print/attributes/document). Examples:
+ 1. Adding/modifying the following line to/in
+ ${XPCONFIGDIR}/C/print/attributes/document sets the default
+ resolution for all printers to 600 DPI:
+ *default-printer-resolution: 600
+ 2. Adding/modifying the following two lines to/in
+ ${XPCONFIGDIR}/C/print/attributes/document sets the default
+ resolution for all printers to 300 DPI except for printer
+ "tekcolor_ps" which should default to 1200 DPI:
+ *default-printer-resolution: 300
+ tekcolor_ps.default-printer-resolution: 1200
+
+Notes:
+
+ * Not all printers support all resolutions. The model-config may
+ restrict the available resolutions.
+ * Setting a resolution which is not supported by either the
+ DDX(=driver) or not specified in the model-config will cause Xprt
+ to not set a default resolution.
+ * The PostScript DDX supports the following default resolutions
+ + X.org release 6.6 (X116.6): 300, 600, 720, 940, 1200, 1440,
+ 2400
+ + xprint.mozdev.org release >= 006: 75, 100, 120, 150, 180,
+ 200, 240, 300, 360, 400, 600, 720, 940, 1200, 1440, 2400
+ * Verification: Use
+ xplsprinters -l | egrep "^printer:|default-printer-resolution=|resolution="
+ to view the resolution settings for all printers.
+
+ Q:
+
+ How do I change the default settings for
+ "portrait"/"landscape"/"seascape" (=page orientation) ?
+ A:
+
+ This is controlled via the "content-orientation" attribute in the
+ document attribute pool
+ (${XPCONFIGDIR}/${LANG}/print/attributes/document and/or
+ ${XPCONFIGDIR}/C/print/attributes/document). Examples:
+ 1. Adding/modifying the following line to/in
+ ${XPCONFIGDIR}/C/print/attributes/document sets the default
+ orientation for all printers to "portrait":
+ *content-orientation: portrait
+ 2. Adding/modifying the following two lines to/in
+ ${XPCONFIGDIR}/C/print/attributes/document sets the default
+ orientation for all printers to "portrait" except for printer
+ "ps003" which should default to "landscape":
+ *content-orientation: portrait
+ ps003.content-orientation: landscape
+
+Notes:
+
+ * Not all printers support all orientations. The model-config may
+ restrict the available orientations.
+ * Setting an orientation which is not supported by either the
+ DDX(=driver) or not specified in the model-config will cause Xprt
+ to not set a default orientation.
+ * The PostScript DDX supports the following orientations:
+ "portrait", "landscape", "reverse-portrait" and
+ "reverse-landscape".
+ * Verification: Use
+ xplsprinters -l | egrep "^printer:|default_orientation=|orientation="
+ to view the orientation settings for all printers.
+
+ Q:
+
+ How can I prevent Xprt from using any bitmap(=gfx) fonts ?
+ A:
+
+ Do not pass any bitmap fonts with the "-fp" (=font path) argument.
+ However you have to provide a 'fixed' and a 'cursor' font, a Xserver
+ can't start without having these fonts.
+
+ Procedure 1. Task list:
+ 1. Create a new directory:
+% mkdir Xp_dummyfonts
+% cd Xp_dummyfonts
+ 2. Create a fonts.alias file with the following content:
+! alias for "fixed" font
+! original from /usr/openwin/lib/X11/fonts/misc/fonts.alias looks like this:
+! fixed "-misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1"
+fixed -*-r-*--*-*-*-*-*-*-iso8859-1
+! EOF.
+ 3. Copy or link "6x13.pcf.Z" and "cursor.pcf.Z" and create fonts.dir
+% ln -s /usr/openwin/lib/X11/fonts/misc/6x13.pcf.Z .
+% ln -s /usr/openwin/lib/X11/fonts/misc/cursor.pcf.Z .
+% mkfontdir $PWD
+ 4. Verify: The directory should now look like this:
+% ls -1
+6x13.pcf.Z
+cursor.pcf.Z
+fonts.alias
+fonts.dir
+ 5. Add the full path (e.g. /home/xp/Xp_dummyfonts) as last element of
+ the font path when starting Xprt:
+ % Xprt -fp /usr/openwin/lib/X11/fonts/Type1/,/home/xp/Xp_dummyfonts :12
+
+ Q:
+
+ I want only my manually added printers managed by Xprint. How can I
+ prevent Xprt from looking-up the printer names automatically ?
+ A:
+
+ Add a line with "Augment_Printer_List %none%" to
+ ${XPCONFIGDIR}/C/print/Xprinters (or
+ ${XPCONFIGDIR}/${LANG}/print/Xprinters) and add lines with "Printer
+ <name>" for each printer <name>. Example:
+Augment_Printer_List %none%
+Printer ps001
+Printer ps003
+Printer hplaser6
+
+ will add only the printers "ps001", ps003" and "hplaser6".
+ Q:
+
+ How can I specify an own program/script to enumerate the printers on
+ my system ?
+ A:
+
+ Add "Augment_Printer_List my_script" to
+ ${XPCONFIGDIR}/C/print/Xprinters (or
+ ${XPCONFIGDIR}/${LANG}/print/Xprinters). The script must return the
+ printer names - one per line, ASCII-only - to stdout.
+ Q:
+
+ Which program is used by default by Xprt to enumerate the printers on
+ my system ?
+ A:
+
+ This depends on the OS:
+ * On Solaris (and most other OSes exclusing AIX and Linux):
+% lpstat -a | cut -d " " -f 1
+ * On Linux:
+ + For Xprt build from X11R6.x X.org sources:
+% lpc status | grep -v '^\t' | sed -e /:/s/// # '\t' means TAB
+ + For Xprt build from xprint.mozdev.org <= release 008 sources
+ (both lines are executed to support both LPRng and CUPS
+ (using the CUPS *BSD compatibility tools)):
+% lpc status | awk '/:$/ && !/@/ { print $1 }' | sed -e /:/s/// ; \
+ lpc -a status | awk '/@/ && !/:/ { split( $1, name, \"@\" ); print name[1]; }
+'
+ + Xprt build from xprint.mozdev.org >= release 009 sources uses
+ a more flexible scheme which tries to enumerate the print
+ spoolers in the order "CUPS" (using the normal CUPS
+ (SYSV-like) commands), "LPRng" and finally "*BSD", the first
+ working (=print queues are found) print spooler is chosen.
+ The spooler(s) being used (and the query order) can be
+ changed by the "-XpSpoolerType" command line option. The list
+ of commands used to enumerate the queues for a specific
+ spooler type can be found in
+ xc/programs/Xserver/Xprint/spooler.c
+ * On AIX v4:
+% lsallq | grep -v '^bsh$'
+
+Notes:
+
+ * See xc/programs/Xserver/Xprint/Init.c (xprint.mozdev.org >=
+ release 009 uses xc/programs/Xserver/Xprint/spooler.c) for a
+ complete list of commands used on the specific platforms to
+ enumerate the printers.
+ * Note that the output is always piped through "sort" to get an
+ alphabetical order (the "default" printer is not chosen/defined
+ here(=server side), the client side is responsible to choose a
+ default printer. See FAQ item about the ${XPRINTER} env var how to
+ set your default printer).
+
+ Q:
+
+ Where can I get more PostScript Type1 fonts from ?
+ A:
+
+ Some sources:
+ * Adobe:
+ + Commercial fonts: [214]http://www.adobe.com/type/main.html
+ + Free Euro font:
+ o Single-glyph (e.g. it contains only the euro char) euro
+ font: [215]http://www.adobe.com/type/eurofont.html or
+ [216]ftp://ftp.adobe.com/pub/adobe/type/win/all/
+ ("eurofont.exe" can be unzipped using "unzip")
+ o ISO8859-15: XXX - WANTED!!
+ * Solaris shipps with various PS Type 1 fonts:
+ + Arabic: /usr/openwin/lib/locale/ar/X11/fonts/Type1/
+ (fonts.dir and fonts.scale missing, maybe they miss the
+ presentation forms a&b, too [unconfirmed])
+ + ISO-8859-13 (Latin 8):
+ /usr/openwin/lib/locale/iso_8859_13/X11/fonts/Type1/
+ + ISO-8859-5 (Latin 5):
+ /usr/openwin/lib/locale/iso_8859_9/X11/fonts/Type1/
+ + ISO-8859-8/Hebrew:
+ /usr/openwin/lib/locale/iso_8859_8/X11/fonts/Type1 (BROKEN,
+ even "type1fix" cannot fix them. Use the hebrew fonts from
+ [217]broken-link-/PS_Type1_iso8859-8.tar.gz)
+ + ISO-8859-7/Modern greek:
+ /usr/openwin/lib/locale/iso_8859_7/X11/fonts/Type1/
+ + ISO-8859-5/Cryrillic:
+ /usr/openwin/lib/locale/iso_8859_5/X11/fonts/Type1/
+ + ISO-8859-4 (Latin 4):
+ /usr/openwin/lib/locale/iso_8859_4/X11/fonts/Type1/
+ + ISO-8859-2 (Latin 2):
+ /usr/openwin/lib/locale/iso_8859_2/X11/fonts/Type1/
+ + ISO-8859-1 (Latin 1) and Symbol fonts:
+ /usr/openwin/lib/X11/fonts/Type1/
+
+ Q:
+
+ What are PMF fonts (e.g. the *.pmf fonts in
+ ${XPCONFIGDIR}/C/print/models/%model_name%/fonts/ (or
+ ${XPCONFIGDIR}/${LANG}/print/models/%model_name%/fonts/)) ?
+ A:
+
+ PMF "fonts" are "printer metric files" (.pmf) that describe the
+ metrics of the fonts (which means they do not contain any data to
+ render the fonts - they contain only the plain metrics of a font)
+ which are built into the printer (ROM or via font catridge etc.). The
+ file format is identical to the PCF ("Portable Compiled Format") font
+ format except that the bitmap data is not provided.
+ Q:
+
+ Can I use the fontserver ("xfs") with Xprt ?
+ A:
+
+ You can use Xprt with the font server ("xfs") like with any other
+ Xserver - but it is not recommded since the font server protocol does
+ not allow access to the native font format and therefore disables font
+ download, e.g. both PS Type1 and TrueType fonts cannot be downloaded
+ anymore and Xprt will fall-back to embed them as bitmap glyphs in the
+ print job (e.g. the fonts will still appear correctly in the printout,
+ but the quality may be reduced since downloaded fonts are always
+ better than bitmap glyphs). (users of xprint.mozdev.org-release <= 006
+ may see [218]xprint.mozdev.org bug 2092 if they use "xfs"; this has
+ been fixed in the 007 release!)
+ Q:
+
+ What is a "model-config" ?
+ A:
+
+ The term "model-config" refers to the subdirs in
+ ${XPCONFIGDIR}/${LANG}/print/models/. There subdirs contain
+ information about the attributes for a specific printer model or
+ family/class of printer models. In particular there are two kinds of
+ information:
+ * "${XPCONFIGDIR}/${LANG}/print/models/${NAME_OF_MODEL}/model-config
+ " this file defines a set of attributes supported by this specific
+ printer (-family/-class/etc.) and
+ * "${XPCONFIGDIR}/${LANG}/print/models/${NAME_OF_MODEL}/fonts/" - a
+ directory which contains a set of PMF (printer metrics file) fonts
+ builtin into the printer itself (actually the PMF "font" format
+ contains only metrics information and no glyphs). These fonts are
+ only available to the application after the application has
+ selected a printer and configured it (for developers: After
+ XpSetContext has been called).
+
+ Q:
+
+ Where can I store the default values for printers ?
+ A:
+
+ XXX
+ Q:
+
+ How can I create my own model-config ?
+ A:
+
+ XXX
+ Q:
+
+ How can I create my own PMF "fonts" ?
+ A:
+
+ XXX - no solution yet, but [219]xprint.mozdev.org bug 2430 ("RFE: Need
+ tool to create PMF (printer metrics file) fonts") has been filed to
+ create a freeware tool to create such fonts.
+ Q:
+
+ Where can I get more model-configs from ?
+ A:
+
+ If you miss a model-config for your printer please open a bug/RFE at
+ [220]http://xprint.freedesktop.org/cgi-bin/bugzilla/enter_bug.cgi?prod
+ uct=xprint&component=Server%3A+Config%3A+model-configs (e.g.
+ [221]http://xprint.freedesktop.org/cgi-bin/bugzilla/enter_bug.cgi,
+ product "Xprint", component "Server Config: model-configs").
+ Q:
+
+ If I install Xprt &co. as "root" in the default location and don't
+ need to set ${XPCONFIGDIR} - where are my configuration files located
+ then ?
+ A:
+
+ This is platform-specific, based on the "XPrintDir" Imake variable set
+ at build time. Default location for plain X11R6.x is
+ "${XProjectRoot}/lib/X11/xserver" (set at build time), but some
+ platforms modify "XPrintDir" to alternate locations:
+ * Solaris sets ${XPCONFIGDIR} to /usr/openwin/server/etc/XpConfig/
+ * Linux (non-Debian) sets ${XPCONFIGDIR} to
+ /usr/X11R6/lib/X11/xserver/ or /etc/X11/xserver/
+ * Debian Linux sets ${XPCONFIGDIR} to /usr/share/Xprint/xserver/
+
+Tip
+
+ If you don't know where the default location for ${XPCONFIGDIR} is
+ located try
+ strings -a /usr/openwin/bin/Xprt | grep XPRINTDIR
+
+ - it may return some debug info from the binary containing the builtin
+ XpConfig path.
+
+ Q:
+
+ Are config files and/or the PMF fonts architecture dependent ?
+ A:
+
+ The PMF fonts are a variant of the PCF font format, they are (like the
+ PCF format) architecture-independent. These fonts must be kept
+ together with the other model config data since they depend on the
+ printer model (de facto ${XPCONFIGDIR}/C/print/models/ (and/or
+ ${XPCONFIGDIR}/${LANG}/print/models/) should be supplied by the
+ printer vendors (but most people will create their own models on
+ demand since I doubt that any vendor except HP, Sun and
+ xprint.mozdev.org staff ever looked at that stuff)). Per definition
+ they are read-only data supplied by the vendor, but modifying them may
+ be usefull, too. I would say it is recommended to put treat all Xprint
+ files in ${XPCONFIGDIR} as read-only vendor data; admins should create
+ copies of this tree on demand (and/or (soft-)link some files) and set
+ ${XPCONFIGDIR} to the modified config data.
+ Q:
+
+ Can I localise my Xprint/Xprt configuration (l10n) ?
+ A:
+
+ Yes, Xprt supports localisation ("l10n") by default. Default values
+ for all locales are stored in ${XPCONFIGDIR}/C/print/, locale-specific
+ settings can be set in ${XPCONFIGDIR}/${LANG}/print/ Rules:
+ * Attribute pools ("${XPCONFIGDIR}/*/print/attributes/document",
+ "${XPCONFIGDIR}/*/print/attributes/job",
+ "${XPCONFIGDIR}/*/print/attributes/printer" and
+ "${XPCONFIGDIR}/*/print/models/*/model-config"): "document", "job"
+ and "printer" attribute pools and printer model-configs are
+ sourced first from the "${XPCONFIGDIR}/C/print/"-directory, then
+ they are overridden by any attributes from the locale-specific
+ pools (in "${XPCONFIGDIR}/${LANG}/print/"), e.g. any values set in
+ "${XPCONFIGDIR}/C/print/attributes/*" and
+ "${XPCONFIGDIR}/C/print/models/*/model-config" will automatically
+ apply to all other locales unless they are overridden by
+ locale-specific versions of these files
+ ("${XPCONFIGDIR}/${LANG}/print/attributes/*",
+ "${XPCONFIGDIR}/${LANG}/print/models/*/model-config")
+ * "Xprinters" (list of printers): If there is a locale-specific
+ ${XPCONFIGDIR}/${LANG}/Xprinters present it will be used instead
+ of ${XPCONFIGDIR}/C/Xprinters (e.g. values set in
+ ${XPCONFIGDIR}/C/Xprinters will be ignored and the values from
+ ${XPCONFIGDIR}/${LANG}/Xprinters will be used instead).
+ * Xprt will determinate the locale which should be used based on the
+ ${LANG}-environment vaiable at startup time. If there is no such
+ variable set at that time LANG="C" is assumed.
+
+Note:
+ Attribute values for paper names and orientation names refer to
+ builtin strings in the DDX code (which are itself based on
+ international standards), these cannot be changed to your own
+ "inventions" (it does it make sense to try to "localize" paper
+ names - "ISO-A4" is "ISO-A4" even in japanese/hebrew/german etc.).
+ Locale-spefific attribute pools can set their own, different
+ values - but only within the allowed range of values supported by
+ the DDX and printers's model-config.
+
+ Q:
+
+ Can I execute my own scripts to process the PostScript files generated
+ by Xprt ?
+ A:
+
+ Yes, there are at least two possible solutions:
+ 1. Create your own model-config which uses a custom
+ "xp-spooler-command" value - the xprint.mozdev.org's "PSspooldir"
+ model config (see "${XPCONFIGDIR}/C/print/models/PSspooldir/" and
+ "${XPCONFIGDIR}/C/print/attributes/printer" and
+ "${XPCONFIGDIR}/C/print/Xprinters") and "PS2PDFspooldir-GS" model
+ config (see "${XPCONFIGDIR}/C/print/models/PS2PDFspooldir-GS/" and
+ "${XPCONFIGDIR}/C/print/attributes/printer" and
+ "${XPCONFIGDIR}/C/print/Xprinters") are good examples for that.
+ 2. Use an existing "model-config" (which would normally send it's
+ data to a printer using the default print spooler command) and
+ provide a custom "xp-spooler-command".
+
+ Procedure 2. Example (using "SPSPARC2" as printer model,
+ /w/xp_conv as the script to execute and "myscriptprinter" as name
+ of the printer):
+ 1. Edit ${XPCONFIGDIR}/C/print/attributes/printer and add these
+ lines (Xprt will replace "%printer-name%" with the printer's
+ name, "%copy-count%" with the number of job copies,
+ "%job-name%" with the job's title and "%options%" with any
+ custom spooler options):
+myscriptprinter.xp-model-identifier: SPSPARC2
+myscriptprinter.xp-spooler-command: /w/xp_conv -p %printer-name% -c %copy-count
+% -t %job-name% -o "%options%"
+ 2. Edit ${XPCONFIGDIR}/C/print/Xprinters and append this line:
+Printer myscriptprinter
+
+ Q:
+
+ How can I disable "xp_ps_spooldir_tmp_Xprintjobs" /
+ "xp_pdf_spooldir_tmp_Xprintjobs" printer targets ?
+ A:
+
+ Edit ${XPCONFIGDIR}/C/print/Xprinters and remove or comment-out (using
+ '#') the lines "Printer xp_ps_spooldir_tmp_Xprintjobs" and "Printer
+ xp_pdf_spooldir_tmp_Xprintjobs".
+
+Note:
+
+ Note that Xprt will NOT start if this printer has been
+ removed/disabled and no other print queue is available (e.g. if
+ "xp_ps_spooldir_tmp_Xprintjobs" and "Printer
+ xp_pdf_spooldir_tmp_Xprintjobs" are the only printer target
+ available).
+
+4. Troubleshooting
+
+ Q: [222]Xprt refuses to start with the message "sh: lpc: command not
+ found" on my Linux machine. What does that mean ?
+
+ Q: [223]When the application (=client side) tries to connect to the
+ Xprt (Xserver) side it fails with a Xlib: connection to
+ "meridian:52.0" refused by server Xlib: Client is not
+ authorized to connect to Server What does that mean ?
+
+ Q: [224]Xprt refuses to start with the message "failed to set default
+ font path '...' Fatal server error: could not open default font
+ 'fixed'". What does that mean ?
+
+ Q: [225]Just copying my fonts into a directory and adding the path to
+ my Xprt command line didn't work - I always get "Fatal server
+ error: could not open default font 'fixed'". What am I doing
+ wrong ?
+
+ Q: [226]Xprt refuses to start with the message "Fatal server error:
+ Cannot establish any listening sockets - Make sure an X server
+ isn't already running". What does that mean ?
+
+ Q: [227]Xprt refuses to start with the message "Fatal server error:
+ Failed to establish all listening sockets". What does that mean
+ ?
+
+ Q: [228]Xprt refuses to start with the message "Fatal server error:
+ could not open default font 'fixed'" or "Fatal server error:
+ could not open default cursor font 'cursor'".
+
+ Q: [229]Xprt refuses to start with the message "Fatal server error: no
+ screens found". What does that mean ?
+
+ Q: [230]"Printing itself works but the printout covers only 1/4 of the
+ paper - what am I doing wrong ?"
+
+ Q: [231]"Printing works but I get large borders/margins..." / "[Top]
+ margin is too small" / "Margins are wrong" / etc.
+
+ Q: [232]Xprt prints a warning like "Xp Extension: could not find
+ config dir /usr/X11R6/lib/X11/C/print" - what does that mean ?
+
+ Q: [233]Xprt crashes with "Fatal server error: Beziers this big not
+ yet supported" What does that mean ?
+
+ Q: [234]"My PS Type1 font does not work with my Xserver - how can I
+ fix this ?"
+
+ Q: [235]I can't get it working. I have set ${DISPLAY} correctly to
+ point to the Xprt display and... ... What is going wrong ?
+
+ Q: [236]When I try to print via Xprint I get the message "Fatal server
+ error: unable to exec '/usr/bin/lp'". What is going wrong here
+ ?
+
+ Q: [237]The Solaris Xprt prints some error messages about PostScript
+ fonts like "FOOBAR not found, using Courier. CMEX0123 not
+ found, using Courier." etc. and uses "Courier" instead of these
+ fonts...
+
+ Q: [238]"Xprt refused to start, complaining about a missing dir
+ (/etc/X11/xserver/C/print/ directory)... I created it by hand
+ (empty) and started Xprt but it still does not work
+ properly..."
+
+ Q: [239]My Linux system already shipps with a
+ '/usr/X11R6/bin/Xprt'-binary. Do I need the binary distribution
+ from http://xprint.mozdev.org/ ?
+
+ Q: [240]I am getting the error message "error opening security policy
+ file /usr/X11R6/lib/X11/xserver/SecurityPolicy". What does that
+ mean ?
+
+ Q: [241]I have modified the "HPLJ4family" [or "HPDJ1600C" etc.]
+ printer model to work with my PostScript printer, but when I
+ print I get empty places where some text should be - what am I
+ doing wrong here ?
+
+ Q: [242]Xprt outputs warning messages like: Xp Extension: Can't load
+ driver XP-PCL-MONO init function missing Xp Extension: Can't
+ load driver XP-RASTER init function missing What does that mean
+ ?
+
+ Q: [243]Printing on Solaris with Mozilla/Eclipse [or any other Xprint
+ client] removes spaces between words. What is going wrong ?
+
+ Q: [244]Installation of the "GISWxprint" / "GISWxprintglue" packages
+ fails like this: # pkgadd -d
+ /space/staging/xprint/GISWxprint.pkg pkgadd: ERROR: no packages
+ were found in </var/tmp/dstreAAA5Jayyz> Any idea what I am
+ doing wrong ?
+
+ Q: [245]Printing page results in [two/three/.../16] leading blank
+ pages, followed by a correct (but offset) page. Any idea what
+ is going wrong ?
+
+ Q:
+
+ Xprt refuses to start with the message "sh: lpc: command not found" on
+ my Linux machine. What does that mean ?
+ A:
+
+ Some versions of Xprt look up printer queues using "lpc" on Linux. In
+ this case "lpc" cannot be found for some reason. Solution: Find the
+ place where "lpc" is installed on your machine (some distributions put
+ it into /usr/sbin, some into /usr/bin/) and check whether your PATH
+ env var includes this directory. Example (if "lpc" is located in
+ /usr/sbin/):
+ % which lpc
+ /usr/sbin/lpc
+ % export PATH=$PATH:/usr/sbin
+ # Start Xprt ...
+ % Xprt <your-options-come-here>
+
+ Q:
+
+ When the application (=client side) tries to connect to the Xprt
+ (Xserver) side it fails with a
+Xlib: connection to "meridian:52.0" refused by server
+Xlib: Client is not authorized to connect to Server
+
+ What does that mean ?
+ A:
+
+ X11 implements access control. You can have host-based, cookie-based
+ (a "cookie" is used like a passport) or user-based (SecureRPC or
+ Kerberos5) authentification. Xsecurity(7) has most of the details.
+ 1. No access control: . If you do not want to use access control for
+ Xprt then you can start it with the option "-ac" (see Xserver(1x))
+ to disable the access control. Example:
+ % Xprt -ac -audit 4 :12
+ will start Xprt with access control disabled and with auditing
+ enabled (e.g. the "-audit 4" option).
+
+WARNING
+ Disabling the access control will enable everyone who can access
+ Xprt to print on your printers (that's why the above example shows
+ how to use auditing, too - that you can see who does something
+ with Xprt...) !!
+ 2. Host-based access control: . Host-based access control can be
+ archived using /etc/X<dpy>.hosts (<dpy> == display number, e.g.
+ /etc/X0.hosts for display 0 (see Xserver(1x) manual page for
+ further details)).
+
+ Procedure 3. Example
+ 1. Add the following line to `/etc/X12.hosts' (assuming you want
+ that the hosts 'merkur' and 'mars' should be able to access
+ the Xprt server running as display 12 on your host 'neptun'):
+INET:merkur
+INET:mars
+ 2. Start Xprt
+ 3. Verify that Xprt is correctly configured:
+% export DISPLAY=neptun:12
+% xhost
+access control enabled, only authorized clients can connect
+INET:localhost
+LOCAL:
+INET:merkur
+INET:mars
+
+ Q:
+
+ Xprt refuses to start with the message "failed to set default font
+ path '...' Fatal server error: could not open default font 'fixed'".
+ What does that mean ?
+ A:
+
+ This means one or more components in the font path (set via the option
+ "-fp") are either...
+ * ... not valid
+ * ... contain fonts not supported by this Xserver (e.g. support has
+ not be compiled "in" (usually happens for TrueType (which are only
+ support for Solaris version of Xprt and xprint.mozdev.org releases
+ >= 008), OpenType (which are only supported by xprint.mozdev.org
+ releases 009 or higher) or F3 fonts (Sunsoft/F3 fonts are
+ Solaris-specific and not supported by other vendors (AFAIK)) when
+ support for these fonts was not enabled at build time))
+ * ... no font or font alias in the font path matches the name
+ "fixed"
+ * ... an entry in fonts.dir or fonts.alias with the name "fixed"
+ which references a non-existing or non-readable file
+
+ Q:
+
+ Just copying my fonts into a directory and adding the path to my Xprt
+ command line didn't work - I always get "Fatal server error: could not
+ open default font 'fixed'". What am I doing wrong ?
+ A:
+
+ Every Xserver needs an index file called fonts.dir to tell it which
+ fonts are available in this directory and which properties these fonts
+ have.
+
+ If you are lucky there may be already a fonts.scale file which can be
+ used by "mkfontdir" to create the fonts.dir file. If there is no
+ fonts.scale then you have to create your own fonts.dir/fonts.scale
+ either by hand or via tools like "mkfontscale" (works for all types of
+ scaleable fonts), "type1inst" (for PS Type1 fonts; see
+ [246]http://packages.debian.org/stable/utils/type1inst.html) or
+ "ttmkfdir" (for TrueType fonts; see
+ [247]http://packages.debian.org/stable/x11/ttmkfdir.html).
+ Q:
+
+ Xprt refuses to start with the message "Fatal server error: Cannot
+ establish any listening sockets - Make sure an X server isn't already
+ running". What does that mean ?
+ A:
+
+ There is already a Xserver running at the display ID you have
+ specified to start Xprt (for example your framebuffer Xserver runs at
+ ":0" then Xprt can't run at the same display display).
+ Q:
+
+ Xprt refuses to start with the message "Fatal server error: Failed to
+ establish all listening sockets". What does that mean ?
+ A:
+
+ This means that the Xserver could not open one of it's sockets. Check
+ the permission of /tmp/.X11-pipe and /tmp/.X11-unix (on Solaris a
+ Xserver must run set-gid "root" to access these directories). Either
+ fix the permission or start Xprt with the option "-pn". Using this
+ option requires to access the server always with
+ <hostname>:<displaynum> (see Xserver(1x) manual page for the
+ side-effects of this option).
+ Q:
+
+ Xprt refuses to start with the message "Fatal server error: could not
+ open default font 'fixed'" or "Fatal server error: could not open
+ default cursor font 'cursor'".
+ A:
+
+ All Xservers at least two fonts as the minimum: One fixed-width font
+ ("fixed") and one font for the cursor ("cursor"). Be sure that the
+ font path contains these fonts.
+ Q:
+
+ Xprt refuses to start with the message "Fatal server error: no screens
+ found". What does that mean ?
+ A:
+
+ Cause: This means that Xprt could not find any printers. Either there
+ are no printers installed, "lpstat"/"lpc" could not find any printers
+ or the configuration does not contain any manual printer
+ configurations (see Q/A item "Which program is used by default by Xprt
+ to enumerate the printers on my system" for further details...).
+
+ Solution: Two solutions:
+ 1. Using "PSspooldir" model: . Xprt releases from
+ [248]http://xprint.mozdev.org/ provide the "PSspooldir" model
+ config for such cases. Just edit the "Xprinters" file and add this
+ line:
+Printer xp_ps_spooldir_tmp_Xprintjobs
+ this will add the pre-configured (see
+ ${XPCONFIGDIR}/C/print/attributes/printer)
+ "xp_ps_spooldir_tmp_Xprintjobs" printer which will send jobs to
+ the directory "/tmp/Xprintjobs/" instead to a printer queue. (This
+ feature was added in the xprint.mozdev.org release 007, see
+ [249]xprint.mozdev.org bug 2475 ("RFE: Need model-config which
+ spools print jobs in a predefined directory").)
+ 2. Manual setup (task list): .
+
+ 1. Provide a simple "Xprinters" spec file which contains a dummy
+ queue. Example:
+# Create "Xprinters_onlydummy" file which turns autolookup of printers
+# OFF (using "Augment_Printer_List %none%") and provides one dummy
+# queue called "ps_myscript" instead (using "Printer ps_myscript")
+% echo "Augment_Printer_List %none%" >Xprinters_onlydummy
+% echo "Printer ps_myscript" >>Xprinters_onlydummy
+ 2. Edit ${XPCONFIGDIR}/C/print/attributes/printer and add these
+ two lines:
+ps_myscript.xp-model-identifier: PSdefault
+ps_myscript.xp-spooler-command: /home/sanja/xprint_test/my_xprt_cat_script.sh
+ This means that the printer "ps_myscript" now uses the
+ "PSdefault" printer model and it will feed the jobs to the
+ script "/home/sanja/xprint_test/my_xprt_cat_script.sh" (via
+ stdin). Note that the absolute path is required for
+ "*xp-spooler-command".
+ 3. Start Xprt on display 18, passing the "Xprinters_onlydummy"
+ using the "-XpFile" option:
+% Xprt -XpFile ./Xprinters_onlydummy -pn -ac -audit 4 :18
+
+ Q:
+
+ "Printing itself works but the printout covers only 1/4 of the paper -
+ what am I doing wrong ?"
+ A:
+
+ This is usually an indicator for a wrong DPI setting. The default
+ "PSdefault" model config uses 300 DPI but some printers only support
+ 600 DPI.
+
+ Workaround: Edit ${XPCONFIGDIR}/C/print/attributes/document and
+ replace the line "*default-printer-resolution: 300" with
+ "*default-printer-resolution: 600" (Note that locale-specific settings
+ in ${XPCONFIGDIR}/${LANG}/print/attributes/document always override
+ values set in ${XPCONFIGDIR}/C/print/attributes/document.)
+
+ Solution: Create a model-config for your printer which only contains
+ attributes supported by your printer ("printer-resolutions-supported"
+ is the attribute in the "model-config" which holds the space-seperated
+ list of DPI values which are supported by the printer).
+ Q:
+
+ "Printing works but I get large borders/margins..." / "[Top] margin is
+ too small" / "Margins are wrong" / etc.
+ A:
+
+ Two possible causes:
+ * Usually same issue as "Printing itself works but the printout
+ covers only 1/4 of the page"-issue: Wrong DPI. Solution: Check the
+ DPI value and adjust it as described in the FAQ item above. Common
+ DPI values for the PostScript DDX are 240, 300, 360, 400 and 600
+ DPI.
+ * You are trying to print "US-letter" on a "DIN-A4" paper or
+ "DIN-A4" on "US-letter".
+ Solution: Check your paper settings
+ Note that the default papersize for Xprt depends on the locale
+ (e.g. on the env var ${LANG}) Xprt is running in - "en_US"&co. get
+ US-letter, all others use DIN-A4 (incl. german/austrian etc.
+ locales)). Exception from this rule: If the selected printer does
+ not support the default paper size it will set no default paper
+ size for this printer (then the application side has to make an
+ explicit choice).
+
+ Q:
+
+ Xprt prints a warning like "Xp Extension: could not find config dir
+ /usr/X11R6/lib/X11/C/print" - what does that mean ?
+ A:
+
+ This is actually the worst case what can happen. The message indicates
+ that Xprt was unable to find it's configuration data.
+
+ Solution: Two solutions are possible:
+ * Install the configuration data at the requested location
+ (/usr/X11R6/lib/X11/C/print/ in this example)
+ * Set the ${XPCONFIGDIR} env var to the location of the Xprt
+ configuration directory.
+
+ Q:
+
+ Xprt crashes with "Fatal server error: Beziers this big not yet
+ supported" What does that mean ?
+ A:
+
+ This is a known issue in the X11R6.5.1 code. In rare cases some
+ PostScript Type1 fonts can trigger this. See "My PS Type1 font does
+ not work with my Xserver" ...
+ Q:
+
+ "My PS Type1 font does not work with my Xserver - how can I fix this
+ ?"
+ A:
+
+ Some PS Type1 do not work out-of-the-box with all PS Type1 font
+ engines - some will work with the Adobe font engine (used in Solaris
+ Xsun) but not with the X.org font engine (or the other way round) or
+ the fonts are simply broken. The following procedure will try to fix
+ this problem: Get the "type1fix" perl script the TeXTrace package
+ ([250]http://www.inf.bme.hu/~pts/textrace-latest.tar.gz) and run it
+ over the fonts. Example 1 (filter fonts):
+# Broken PFA fonts are in broken_fonts/
+% mkdir fixed_fonts ; cd fixed_fonts
+% for i in ../broken_fonts/*.pfa ; do
+ echo " ------- $i" ;
+ type1fix.pl --ofmt=pfa --infile=$i --outfile=$(basename ${i}) ;
+ done
+
+ Example 2 (filter fonts and convert them to PFB on-the-fly; do not
+ forget to update fonts.scale and run "mkfontdir" (to update fonts.dir)
+ ; systems which use the Adobe font engine (like Solaris/Xsun) may
+ require to run "makepsres", too):
+# Broken PFA fonts are in broken_fonts/
+% mkdir fixed_fonts ; cd fixed_fonts
+% for i in ../broken_fonts/*.pfa ; do
+ echo " ------- $i" ;
+ type1fix.pl --ofmt=pfb --infile=$i --outfile=$(basename ${i%.pfa}.pfb) ;
+ done
+
+ Q:
+
+ I can't get it working. I have set ${DISPLAY} correctly to point to
+ the Xprt display and... ... What is going wrong ?
+ A:
+
+ Do not set ${DISPLAY} to the Xprt server. You still need your normal
+ Xserver for your video card - Xprt is only for your printer(s).
+ Applications look up Xprt servers via the ${XPSERVERLIST} env var, NOT
+ via the ${DISPLAY} env var.
+ Q:
+
+ When I try to print via Xprint I get the message "Fatal server error:
+ unable to exec '/usr/bin/lp'". What is going wrong here ?
+ A:
+
+ This usually means that the spooler application "/usr/bin/lp" could
+ not be launched. This is usually the result when /usr/bin/lp does not
+ exist or cannot be executed (for example, shell scripts without the +x
+ (executable) flag etc.).
+ Q:
+
+ The Solaris Xprt prints some error messages about PostScript fonts
+ like "FOOBAR not found, using Courier. CMEX0123 not found, using
+ Courier." etc. and uses "Courier" instead of these fonts...
+ A:
+
+ Cause: The Solaris (Adobe-based) PostScript font engine requires a
+ "PostScript resource database" file named "PSres.upr" to use the
+ PostScript fonts correctly.
+
+ Solution: Create the missing PSres.upr database.
+
+ Procedure 5. Steps to create the missing "PSres.upr" file (task list):
+ 1. Go to the location where the matching fonts are installed (we're
+ using /home/sanja/mathml_fonts/tex_cmps/Type1/ in this example):
+% cd /home/sanja/mathml_fonts/tex_cmps/Type1//
+ 2. Create "PSres.upr" using the "makepsres" command.
+% makepsres
+ 3. Validation: Make sure the file has been created:
+% ls -l PSres.upr
+ 4. Restart Xprt server(s):
+% /etc/init.d/xprint restart
+ 5. Restart application which uses these fonts
+
+ References:
+ * makepsres(1) manual page
+ * [251]bugzilla.mozilla.org 120560 ("Solaris Xsun does not like
+ CMEX10/CMSY10 Type1 fonts")
+ * [252]bugzilla.mozilla.org 142718 ("Document how to get the MathML
+ fonts to work on Solaris")
+
+ Q:
+
+ "Xprt refused to start, complaining about a missing dir
+ (/etc/X11/xserver/C/print/ directory)... I created it by hand (empty)
+ and started Xprt but it still does not work properly..."
+ A:
+
+ Xprt expects some config data in this directory. Just making it an
+ existing but empty dir will work around the error message but will not
+ result in a properly working Xprt since it has no (usefull) builtins
+ which would make it possible to run the binary without the config
+ data. Your X11 binary distribution should always come with the config
+ data (for example /usr/openwin/server/etc/XpConfig/ on Solaris) or you
+ will not be able to use Xprint (however it is possible to copy the
+ config data from another system :) BTW: Source for the configs can be
+ found under xc/programs/Xserver/XpConfig/
+ Q:
+
+ My Linux system already shipps with a '/usr/X11R6/bin/Xprt'-binary. Do
+ I need the binary distribution from [253]http://xprint.mozdev.org/ ?
+ A:
+
+ This depends on what is shipped with your Linux distribution. Please
+ check the "vendor" string of the Xprt server:
+% Xprt :10 &
+% xdpyinfo -display :10 | grep -i "vendor string"
+
+ If this outputs a line like "vendor string: The XFree86 Project, Inc"
+ then you have the Xprt binary build from Xfree86 sources - which are
+ broken - even the newest version [I'll update this as soon as Xfree86
+ shipps with a working version]. Xprt from Solaris, HP-UX and my own
+ builds (which identifies itself as "vendor string: xprint.mozdev.org"
+ for releases >= 007, older releases (e.g. <= 006) identify itself as
+ as "vendor string: The X.Org Group") are known to work proprtly.
+ Q:
+
+ I am getting the error message "error opening security policy file
+ /usr/X11R6/lib/X11/xserver/SecurityPolicy". What does that mean ?
+ A:
+
+ The policy file for the SECURITY extension cannot be found. This is
+ not serious unless you want to make use of features of the SECURITY
+ extensions (like treating clients as "untrusted", e.g. restrict their
+ access to certain Xserver resources). Normally the missing policy file
+ is a problem with your Unix/Linux X11 distribution; consult your
+ vendor where to get the missing file from. Alternatively you can get
+ the plain X11R6.6 security policy file from
+ [254]ftp://ftp.x.org/pub/R6.6/xc/programs/Xserver/Xext/SecurityPolicy
+ (copy it to the matching location - but be sure that you do not
+ overwrite any existing security policy file).
+ Q:
+
+ I have modified the "HPLJ4family" [or "HPDJ1600C" etc.] printer model
+ to work with my PostScript printer, but when I print I get empty
+ places where some text should be - what am I doing wrong here ?
+ A:
+
+ The "HPLJ4family" and "HPDJ1600C" models are PCL-only, check the
+ model-config spec
+ (${XPCONFIGDIR}/C/print/models/${MODEL_NAME}/model-config) - if the
+ "xp-ddx-identifier" attribute says something with "PCL" (like
+ "XP-PCL-MONO" etc.) in the value string then this model-config is for
+ the PCL-DDX only (e.g. their PMF fonts do not supply the neccesary
+ information (e.g. the "_ADOBE_POSTSCRIPT_FONTNAME" chunk is missing;
+ they only provide the "PCL_FONT_NAME" chunk) nor are these fonts
+ accessible via the PostScript-support in these printers. A solution is
+ to use the "PSdefault" model instead (and/or create your customized
+ own version of this model) - or look if there is a model-config
+ beginning with the same name and ending with "PS" (e.g.
+ "HPLJ4family-PS").
+ Q:
+
+ Xprt outputs warning messages like:
+
+Xp Extension: Can't load driver XP-PCL-MONO
+ init function missing
+Xp Extension: Can't load driver XP-RASTER
+ init function missing
+
+ What does that mean ?
+ A:
+
+ Two possible problems:
+ 1. The requested driver is not supported by that version of Xprt. For
+ example Solaris 2.7 Xprt does not support XP-PCL-MONO nor the
+ XP-RASTER driver. Valid values for the "xp-ddx-identifier"
+ attribute in ${XPCONFIGDIR}/*/print/attributes/printers and/or
+ ${XPCONFIGDIR}/*/print/models/*/model-config are
+ + Solaris 2.7: XP-POSTSCRIPT and XP-PCL-COLOR
+ + Solaris >=2.8: XP-POSTSCRIPT, XP-PCL-COLOR, XP-PCL-MONO and
+ XP-RASTER
+ + HP-UX: XP-POSTSCRIPT, XP-PCL-COLOR, XP-PCL-MONO, XP-PCL-LJ3,
+ XP-PCL-DJ1200 and XP-RASTER
+ + xprint.mozdev.org release 007: XP-POSTSCRIPT and XP-RASTER
+ + xprint.mozdev.org release 008: XP-POSTSCRIPT, XP-PCL-COLOR,
+ XP-PCL-MONO, XP-PCL-LJ3 and XP-RASTER
+ + xprint.mozdev.org release >=2.0 (planned): XP-POSTSCRIPT,
+ XP-PCL-COLOR, XP-PCL-MONO, XP-PCL-LJ3, XP-RASTER, XP-PDF and
+ XP-SVGPRINT.
+ 2. There may be too many drivers loaded into one Xprt instance. By
+ default a single Xserver instance can only handle three screens -
+ and since one Xprint DDX maps to one Xserver screen this limit
+ applies to the number of loaded Xprt drivers, too. Starting with
+ xprint.mozdev.org release 008 the per-Xserver screen limit was
+ increased from "3" to "8" to avoid this issue... Workaround: Start
+ a 2nd instance of Xprt which handles the other drivers which do
+ not fit into the first instance.
+
+ Q:
+
+ Printing on Solaris with Mozilla/Eclipse [or any other Xprint client]
+ removes spaces between words. What is going wrong ?
+ A:
+
+ Cause: This is a bug in the Solaris Xprint server binary
+ (/usr/openwin/bin/Xprt). Various bug reports have been filed, see
+ * [255]xprint.mozdev.org bug 3353 ("Solaris Xprt looses space when
+ rendering with '-monotype-arial-*'-fonts")
+ * [256]bugzilla.mozilla.org bug 199957 ("Solaris 8 Mozilla removes
+ spaces for text within <font face="Arial">...</font>")
+
+ Solution: Solution: Please apply the following OS patches from
+ [257]http://sunsolve.sun.com/:
+
+ Table 1. Solaris patches to fix [258]xprint.mozdev.org bug 3353
+ ("Solaris Xprt looses space when rendering with
+ '-monotype-arial-*'-fonts")
+ Solaris 2.7 Solaris 2.8 Solaris 2.9
+ SPARC x86 SPARC x86 SPARC x86
+ [259]n/a [260]n/a [261]108652-73 [262]108653-62 [263]112785-21
+ [264]112786-11
+
+Note
+
+ For Solaris 2.7 (both SPARC and x86 platforms) there are currently
+ [265]no patches available... ;-(
+
+ Known workarounds:
+ * Remove the '-monotype-arial-*' fonts from the font path
+ * Use an alternate Xprint server like available in the "GISWxprint"
+ package (this package is identical to the "GISWxprintglue" package
+ except that it uses a Xprint server build from xprint.mozdev.org
+ sources and not the /usr/openwin/bin/Xprt binary from Solaris)
+ * Mozilla-only: Adding
+ user_pref("print.xprint.font.rejectfontpattern",
+ "fname=-dt-.*;scalable=.*;outline_scaled=false;xdisplay=.*;xdpy=.*;ydpy=.*;xd
+evice=.*|" +
+ "fname=-monotype-arial.*;scalable=.*;outline_scaled=.*;xdisplay=.*;xdpy=.*;yd
+py=.*;xdevice=.*");
+ to prefs.js works around the problem (see
+ [266]bugzilla.mozilla.org bug 199957 comment #6, too).
+
+Note
+ Note that this workaround may render various locales completly
+ inaccessible for printing since many of them only employ MonoType
+ fonts.
+
+ Q:
+
+ Installation of the "GISWxprint" / "GISWxprintglue" packages fails
+ like this:
+# pkgadd -d /space/staging/xprint/GISWxprint.pkg
+pkgadd: ERROR: no packages were found in </var/tmp/dstreAAA5Jayyz>
+
+ Any idea what I am doing wrong ?
+ A:
+
+ The target machine misses a patch to cure SunSolve bug 4025718
+ ("pkginfo: allow greater than nine characters for PKG parameter
+ value"). Please apply the patches listed in the "Installation
+ Requirements" section in the README for the [267]GISWxprint /
+ [268]GISWxprintglue package.
+ Q:
+
+ Printing page results in [two/three/.../16] leading blank pages,
+ followed by a correct (but offset) page. Any idea what is going wrong
+ ?
+ A:
+
+ This symptom depends on the CUPS GhostScript driver used, however the
+ exact cause is currently unknown (see comments in [269]SuSE support
+ database entry SDB-2002/11/jsmeix_print-81-cups-formfeed ("Blank Pages
+ When Printing with CUPS")).
+
+ Solution: Disable the CUPS accounting functionality in the cupsomatic
+ filter by changing the line
+ my $ps_accounting = 1;
+
+ to
+ my $ps_accounting = 0;
+
+ in the filter script /usr/lib/cups/filter/cupsomatic as the user root.
+ If you use /etc/foomatic/filter.conf, disable ps_accounting there.
+
+ References:
+ * [270]SuSE support database entry
+ SDB-2002/11/jsmeix_print-81-cups-formfeed ("Blank Pages When
+ Printing with CUPS")
+ * [271]xprint.mozdev.org bug 4181 ("Two empty pages printed first")
+ * [272]bugzilla.mozilla.org bug 180602 comment #7 ("Printing page
+ results in 16 leading blank pages, followed by a correct, but
+ offset, page")
+
+5. Software development
+
+ Q: [273]How does the X print server (Xprt) and the Xlib client side
+ differ from the "normal" video Xserver/video client side ?
+
+ Q: [274]How can I get the printable area (e.g. the portion of the page
+ on which the printer is physically capable of placing ink) of
+ the paper after I have chosen a paper ?
+
+ Q: [275]Do "offscreen" pixmaps work on Xprt ?
+ Q: [276]How can I get the DPI value for the current Xprt server ? Can
+ I use the values from "xdpyinfo" ?
+
+ Q: [277]Why does Xprt not offer the MIT-SHM protocol extension ?
+ Q: [278]Does Xprint/Xprt support font rotation ?
+ Q: [279]When I render something on my window and call XpStartPage all
+ the rendered stuff is gone, I only get a white, empty paper.
+ What is going wrong here ?
+
+ Q: [280]What is XpStartDoc for ?
+ Q: [281]How does the XLFD for printer-builtin fonts look like ? / How
+ can I find/identify printer-builtin fonts ?
+
+ Q: [282]How can I scale images using the Xprint API ?
+ Q: [283]Can I pass my own PostScript code (fragment) to the print
+ spooler instead of letting Xprt's PostScript DDX generate it ?
+
+ Q: [284]When I use XpPutDocumentData I get a BadValue X protocol
+ error. Any idea what am I doing wrong ?
+
+ Q: [285]How do I use the XprintUtil library ?
+ Q: [286]Why does the XGetImage not work for Xprt ?
+ Q: [287]How to print with Xt/Athena widgets ?
+ Q: [288]How to print with Xt/Motif widgets ?
+ Q: [289]What are the differences between normal display and Xprint
+ display ?
+
+ Q: [290]How do I scale images ?
+ Q: [291]libXp Image scaling vs. max. request size ?
+ Q: [292]How can I use XprintUtils ?
+ Q: [293]How do I calculate the DPI values for Xprt DDX screens ?
+ Q: [294]How do I find scaleable fonts ?
+ Q: [295]How do I find printer-builtin fonts ?
+ Q: [296]The XLFD for Printer-builtin fonts look like bitmap fonts - is
+ that bad ?
+
+ Q: [297]When printing using the XawPrintShell/XmPrintShell print
+ shells my PostScript output is always corrupt. What am I doing
+ wrong ?
+
+ Q: [298]When printing using the XawPrintShell/XmPrintShell print
+ shells I always get a grey/dithered background on paper. Any
+ idea how to change that to "white" ?
+
+ Q: [299]Are there any caveats/suggestions when printing via Xt/Motif2
+ widgets ?
+
+ Q: [300]Can I change the paper size/resolution/page orientation/etc.
+ when printing using the XawPrintShell/XmPrintShell print shells
+ ?
+
+ Q:
+
+ How does the X print server (Xprt) and the Xlib client side differ
+ from the "normal" video Xserver/video client side ?
+ A:
+
+ The X Print Service expands on the traditional X-Server and Xlib world
+ in the following ways:
+ 1. Most obvious is the use of "print ddx drivers" instead of "video
+ ddx drivers". While a video ddx driver modifies pixels in a video
+ frame buffer, a print ddx driver generates "page description
+ language ([301]PDL)" output (such as PCL, PDF, PostScript,
+ SVGprint, etc.) or sends the print rendering instructions to a
+ platform-specific print API (like Win32/GDI).
+ Once a print ddx driver generates [302]PDL output, it can be sent
+ to a spooler (using XpuStartJobToSpooler) or retrieved by the
+ client (to implement functionality like "print-to-file" with
+ functions such as XpuStartJobToFile).
+ 2. Since printers support "paged" output, unlike video, a portion of
+ the Xp Extension supports APIs to delineate printed output into a
+ print job.
+ A "print job" in Xprint consists of one or more "documents" which
+ itself consists of one or more "pages".
+ A client starts a job sequence with XpStartJob and ends it with
+ XpEndJob or XpCancelJob to cancel the generation of the current
+ print job. Any document-specific print attributes MUST be changed
+ before XpStartJob.
+ A client starts a document sequence with XpStartDoc and ends it
+ with XpEndDoc or XpCancelDoc to cancel the generation of the
+ current document. Any document-specific print attributes MUST be
+ changed before XpStartDoc or after XpEndDoc (to affect the
+ following document).
+ A client starts a page sequence with XpStartPage and ends it with
+ XpEndPage or XpCancelPage to cancel the generation of the current
+ page. Any page-specific print attributes MUST be changed before
+ XpStartDoc or after XpEndDoc (to affect the following document).
+ 3. Since printers have extensive capabilities, another portion of the
+ Xp Extension supports APIs to manipulate "print contexts".
+ Once a printer is selected using the Xp Extension API, a print
+ context to represent it can be created. A print context embodies
+ the printer selected - it contains the printer's default
+ capabilities, selectable range of capabilities, printer state, and
+ generated output. Some "attributes" within the print context can
+ be modified by the user, and the X-Server and print ddx driver
+ will react accordingly. For example, the attribute
+ "content-orientation" can be set to "landscape" or "portrait" (if
+ the printer supports these values - which can be queried using the
+ Xprint API as well).
+ 4. Since printers can have "built in" fonts, the Xp Extension in the
+ X-Server works with the print ddx drivers to make available (for
+ printing only) additional fonts on a per print context basis.
+ When a print context is created and set for a given printer, the X
+ font calls may be able to access additional printer fonts. To do
+ this (typically), the X-Server must have access to "printer metric
+ files" (.pmf) that describe at minimum the metrics of the built in
+ fonts.
+ 5. Since printers can have "built in" fonts, the Xp Extension in the
+ X-Server works with the print ddx drivers to make available (for
+ printing only) additional fonts on a per print context basis.
+ When a print context is created and set for a given printer, the X
+ rendering calls use the resolution of the current page (or if not
+ given, the resolution of the current document or the current
+ resolution for this print job). The screen's resolution is INVALID
+ in this case. XprintUtils has the functions XpuGetResolution (to
+ get the current print resolution (searching page, document and job
+ level attributes (in that order)), XpuSetPageResolution (to set
+ the current page resolution), XpuSetDocResolution (to set the
+ current document resolution), XpuGetResolutionList (to get the
+ list of all resolutions supported by this printer) and
+ XpuFindResolution (to find a resolution in the list returned by
+ XpuGetResolutionList) to support getting/setting/queries of
+ resolutions.
+ When a print context is created and set for a given printer, the X
+ image rendering calls (such as XPutImage support scaling of
+ images. The Xp Extension API provides the functions
+ XpSetImageResolution and XpSetImageResolution to set and get an
+ image resolution. The scaling factor for an image printed on the
+ paper can simply calculated via scaling_factor =
+ curr_print_resolution_resolution / image_resolution where
+ curr_print_resolution_resolution is the value returned by a
+ function such as XpuGetResolution, image_resolution the resolution
+ passed to XpSetImageResolution and scaling_factor the resulting
+ scaling factor. Note that XpSetImageResolution will failure
+ (=FALSE) when the print DDX (for example the RASTER DDX) does not
+ support scaling. In that case the application has to scale the
+ image manually.
+
+ Q:
+
+ How can I get the printable area (e.g. the portion of the page on
+ which the printer is physically capable of placing ink) of the paper
+ after I have chosen a paper ?
+ A:
+
+ The XpGetPageDimensions function returns the printable area and other
+ information about the current page geometry. Note that the page
+ geometry changes when the page attributes such as content-orientation
+ or default-medium are changed by the application.
+ Q:
+
+ Do "offscreen" pixmaps work on Xprt ?
+ A:
+
+ Yes, "offscreen" pixmaps are working on Xprt.
+ Q:
+
+ How can I get the DPI value for the current Xprt server ? Can I use
+ the values from "xdpyinfo" ?
+ A:
+
+ The Xprt screen resolution defines only the maximum resolution
+ configured for the matching DDX, the printers real DPI is obtained via
+ an another API (XprintUtil has a bunch of functions to get/set the
+ document/page resolution, see XpuGetResolutionList,
+ XpuFreeResolutionList, XpuGetResolution, XpuSetPageResolution,
+ XpuSetDocResolution and XpuFindResolution).
+ Q:
+
+ Why does Xprt not offer the MIT-SHM protocol extension ?
+ A:
+
+ The MIT-SHM protocol extension is partially (XShmPutImage would work,
+ but others like XShmGetImage and esp. XShmCreatePixmap cannot be
+ implemented properly) incompatible to the way how some of the Xprint
+ DDX are implemented. For example the PostScript, PDF, PCL and SVGprint
+ DDX do not rasterize any images on their side - instead they convert
+ the stream of X11 rendering instructions into the matching [303]PDL
+ instruction stream. Only the printer side will (finally) do the
+ rasterisation of the output image. This is the basically the same
+ reason why [304]XGetImage does not work for those DDXs - and functions
+ such as XShmCreatePixmap would be useless since drawing operations on
+ the shared pixmap would not be applied to the application (e.g. Xprint
+ client) as well.
+ Q:
+
+ Does Xprint/Xprt support font rotation ?
+ A:
+
+ Yes - Xprint/Xprt supports font rotation at any angle via the matrix
+ XLFD enhancement (this even works for printer-builtin fonts !!). For
+ details see the paper "New Font Technology for X11R6" by Nathan Meyers
+ (a copy can be found in the Xprint.org source tree under
+ xc/doc/hardcopy/XLFD/x11r6_fonts_94_paper.PS.gz)
+
+ Short: The transformation-matrix for rotation can be calculated like
+ this:
++-- --+
+| cos(angle) sin(angle)|
+| |
+|-sin(angle) cos(angle)|
++-- --+
+
+ Examples:
+ 1. the following code fragment obtains a 180 degree rotated font
+ (matrix [-1 0 0 -1]):
+ ... = XLoadQueryFont(..., "-adobe-courier-bold-r-normal--*-[~24 0 0 ~24]-0-0-
+m-*-iso8859-1");
+ 2. the following code fragment obtains a 90 degree rotated font
+ (matrix [0 1 -1 0]):
+ ... = XLoadQueryFont(..., "-adobe-courier-bold-r-normal--*-[0 24 ~24 0]-0-0-m
+-*-iso8859-1");
+
+ Future versions of Xprint will support the [305]STSF font API which
+ supports matrix transformations as well.
+ Q:
+
+ When I render something on my window and call XpStartPage all the
+ rendered stuff is gone, I only get a white, empty paper. What is going
+ wrong here ?
+ A:
+
+ Remember the rule that "only those drawings are printed on the paper
+ which were rendered between XpStartPage and XpEndPage". XpStartPage
+ clears the window you passed as argument, e.g. it creates a new, blank
+ sheet of paper where you can do your rendering stuff on. XpEndpage
+ then pushes the "paper sheet" to the stash of papers from the document
+ in process.
+
+Tip
+
+ If you want to render something once for multiple or all pages: Render
+ on a offscreen pixmap and copy (with XCopyArea) the content to the
+ "paper" drawable (after calling XpStartPage) - XpStartpage only
+ affects the window passed as parameter.
+
+ Q:
+
+ What is XpStartDoc for ?
+ A:
+
+ ISO 10175 and some advanced printing systems by IBM and HP had set
+ forth the standard that a "Job" is made up of one or more "Documents",
+ and each document is made up of one or more "Pages". Xprint was
+ designed that in a true ISO 10175 environment/implementation (lp(1) on
+ steroids, and with an API), Xprt can actually learn about all printers
+ and their capabilities though API's into the printer subsystem (vs.
+ using config files), map Job/Doc/Page directly into ISO 10175
+ equivalents, and use APIs to view job status and kill jobs (vs.
+ cancel(1), lpcancel(1), lpstatus(1)). Because most applications of the
+ day are only printing one document per job, XpStartPage was designed
+ that it generates a "synthetic" XpStartDoc if it has not been called
+ yet.
+ Q:
+
+ How does the XLFD for printer-builtin fonts look like ? / How can I
+ find/identify printer-builtin fonts ?
+ A:
+
+ There is no special XLFD scheme for printer-builtin fonts. Instead the
+ xp-listfonts-modes-supported is used to define whether XListFonts and
+ co. return printer-builtin fonts or not. By default the attribute
+ looks is set to *xp-listfonts-modes-supported:
+ xp-list-internal-printer-fonts xp-list-glyph-fonts which defines thaht
+ XListFonts and co. return both printer-builtin and normal fonts.
+ Removing xp-list-internal-printer-fonts will make printer-builtin
+ fonts disappear, removing xp-list-glyph-fonts will make normal glyph
+ fonts disappear from font lists.
+ Q:
+
+ How can I scale images using the Xprint API ?
+ A:
+
+ XXX
+ Q:
+
+ Can I pass my own PostScript code (fragment) to the print spooler
+ instead of letting Xprt's PostScript DDX generate it ?
+ A:
+
+ XXX
+ Q:
+
+ When I use XpPutDocumentData I get a BadValue X protocol error. Any
+ idea what am I doing wrong ?
+ A:
+
+ XXX
+ Q:
+
+ How do I use the XprintUtil library ?
+ A:
+
+ XXX
+ Q:
+
+ Why does the XGetImage not work for Xprt ?
+ A:
+
+ There are at least three reasons why XGetImage does not work for Xprt:
+ 1. Most of the Xprt DDX implementations do not render itself on any
+ bitmaps like the framebuffer(=video) DDX do, they translate the
+ rendering commands into the matching commands of the printer
+ language (it is technically possible to implement such support for
+ XGetImage even for those drivers - but there are more reasons:)
+ 2. Xprt usually operates at high resolutions which results in very
+ large dimensions. If a client would request the 24bit TrueColor
+ bitmap data for a whole DIN-A4 page at 2400 DPI a data chunk of
+ ~173 megabytes would be the response. This would be more or less a
+ DOS(=Denial of Service) for either the client, the network and/or
+ the server.
+ 3. The printer-builtin fonts only provide metrics information - there
+ is no real "outline" information at that time (these fonts reside
+ only in the printer's ROM and are only available at the time the
+ printer rasterizes the incoming [306]PDL (e.g. PCL/PostScript)
+ data stream) which could be used to rasterize the matching glyphs
+ (which means: A XGetImage implementation would return image data
+ but glyphs rendered using the printer-builtin fonts would be
+ missing).
+
+ Q:
+
+ How to print with Xt/Athena widgets ?
+ A:
+
+ There are two examples in the Xprint.org source tree which demonstrate
+ how to use Xprint using Athena widgets:
+ 1. xc/programs/xphelloworld/xpawhelloworld/ contains a simple demo
+ application which prints a Athena widget using the XawPrintShell
+ widget class.
+ 2. xc/programs/xphelloworld/xpxthelloworld/ contains a simple demo
+ application which prints a Athena widget without using a special
+ print widget class (however, if possible a print shell such as
+ XawPrintShell or XmPrintShell should be used since this is the
+ easier way to add print support to an Athena application).
+
+ Q:
+
+ How to print with Xt/Motif widgets ?
+ A:
+
+ The Xprint.org source tree contains the xpxmhelloworld
+ (xc/programs/xphelloworld/xpxmhelloworld/) application to demonstrate
+ how to print using the Motif2 toolkit.
+ Q:
+
+ What are the differences between normal display and Xprint display ?
+ A:
+
+ XXX
+ Q:
+
+ How do I scale images ?
+ A:
+
+ XXX
+ Q:
+
+ libXp Image scaling vs. max. request size ?
+ A:
+
+ XXX
+ Q:
+
+ How can I use XprintUtils ?
+ A:
+
+ XXX
+ Q:
+
+ How do I calculate the DPI values for Xprt DDX screens ?
+ A:
+
+ XXX
+ Q:
+
+ How do I find scaleable fonts ?
+ A:
+
+ XXX
+ Q:
+
+ How do I find printer-builtin fonts ?
+ A:
+
+ XXX
+ Q:
+
+ The XLFD for Printer-builtin fonts look like bitmap fonts - is that
+ bad ?
+ A:
+
+ No, this is not "bad". The XLFD of a printer-builtin font only looks
+ like a bitmap font since the *.pmf (Printer metrics file) format is a
+ PCF file format variant (the DPI values in the XLFD AFAIK specifies
+ the resolution which was used for generating the metrics) - however
+ this does not change the fact that the printer-builtin fonts are
+ outline scaleable fonts these fonts reside in the printer's ROM).
+ Q:
+
+ When printing using the XawPrintShell/XmPrintShell print shells my
+ PostScript output is always corrupt. What am I doing wrong ?
+ A:
+
+ Make sure the widgets (such as text input widgets) have the (blinking)
+ cursor turned-off. Setting the XmNcursorPositionVisible, to False
+ usually solves the problem (for Motif2 widgets). Example:
+...
+XtSetArg(args[n], XmNcursorPositionVisible, False);
+...
+
+ Q:
+
+ When printing using the XawPrintShell/XmPrintShell print shells I
+ always get a grey/dithered background on paper. Any idea how to change
+ that to "white" ?
+ A:
+
+ XXX
+ Q:
+
+ Are there any caveats/suggestions when printing via Xt/Motif2 widgets
+ ?
+ A:
+
+ There are a couple of Xt resources which may likely differ from the
+ normal values (e.g. those values used for a video Xserver):
+
+ Core class level
+
+ XmNbackground resource
+ The application will probably want to set the
+ XmNbackground resource to "white" to match the default
+ paper color.
+
+ XmNborderWidth resource
+ The application will probably want to set the
+ XmNborderWidth resource to "0" (usually the default
+ value) to avoid that a black border appears around the
+ widget.
+
+ XmPrimitive class
+
+ XmNshadowThickness and XmNhightlightThickness resources
+ The application will probably want to set
+ XmNshadowThickness and XmNhightlightThickness to "0"
+ (usually the default value) to avoid 3D border effects on
+ the printout (depends on application and author's
+ preference... :-)).
+
+ XmText and XmTextField classes
+
+ XmNcursorPositionVisible resource
+ The application will probably want to set
+ XmNcursorPositionVisible to False to avoid that the
+ cursor is visible on printouts (and to avoid problems
+ with some nasty implementation details which may cause
+ corrupted PostScript output).
+
+ XmNscrollHorizontal and XmNscrollVertical resources
+ The application will probably want to set the
+ XmNscrollHorizontal and XmNscrollVertical resources to
+ False to suppress printing of scrollbars (on paper
+ "scrolling" is replaced with "pagination" except for rare
+ exceptions (like 1:1 WYSIWYG-printing)).
+
+ XmNmarginWidth and XmNmarginHeight resources
+ The application will probably want to recalculate the
+ XmNmarginWidth and XmNmarginHeight resources based on the
+ (far) higher print resolution (or reverse: set them to
+ "0" - depending on what style matches the application
+ needs better...).
+
+ XmLabel class
+
+ XmNmarginTop, XmNmarginBottom, XmNmarginRight, XmNmarginLeft,
+ XmNmarginWidth, XmNmarginHeight and XmNalignment
+ resources
+ The application will probably want to use different value
+ for XmLabel class's XmNmarginTop, XmNmarginBottom,
+ XmNmarginRight, XmNmarginLeft, XmNmarginWidth,
+ XmNmarginHeight and XmNalignment resources. These
+ resources are mainly usefull when the widget holds a
+ border, highlight or shadow of some kind. If borders are
+ not to be transferred there is no real need to transfer a
+ margin either.
+
+ Q:
+
+ Can I change the paper size/resolution/page orientation/etc. when
+ printing using the XawPrintShell/XmPrintShell print shells ?
+ A:
+
+ Yes, it is allowed to change the page attributes in the page setup
+ callback (e.g. XawNpageSetupCallback or XmNpageSetupCallback) since
+ this callback is always called before XpStartPage (for the 2nd and
+ following pages: between XpEndPage and XpStartPage). Note that
+ changing page attributes will automagically update the print shell
+ widget size (e.g. attributes XawNminX, XawNminY, XawNmaxX and XawNmaxX
+ (XawPrintShell) or XmNminX, XmNminY, XmNmaxX and XmNmaxX
+ (XmPrintShell) are updated based on events send by the Xp Extension
+ and then the print shell is resized based on the new values
+ (XawPrintShell is slightly more flexible since the size mode can be
+ defined using the XawNlayoutMode attribute)).
+
+Known bugs
+
+ Problem [307]Xprt build from Xfree86 sources is completely broken
+ and unuseable.
+
+ Problem [308]The code which matches XLFD names to PS Type1 font
+ names is case-sensitive in Xprts build from X.org
+ X11R6.5.1/X11R6.6 and the current Solaris Xprt. This may
+ cause that the PS DDX refuses to download PS Type1 fonts.
+
+ Problem [309]Xprt build from X11R6.5.1/X11R6.6 sources and
+ Solaris's version of Xprt can only download PFA (PS ASCII
+ font) fonts which ends of the ending "*.pfa".
+
+ Problem [310]There is an issue how the Linux and Solaris Xprt
+ handles the "copy-count" of a print job. The result may
+ be that a job with n copies of a document end-up in n
+ jobs with n copies (usually equals to n^2 copies).
+
+ Problem [311]Xprt build from Xfree86 sources is completely broken and
+ unuseable.
+
+ Problem [312]The code which matches XLFD names to PS Type1 font names
+ is case-sensitive in Xprts build from X.org X11R6.5.1/X11R6.6
+ and the current Solaris Xprt. This may cause that the PS DDX
+ refuses to download PS Type1 fonts.
+
+ Problem [313]Xprt build from X11R6.5.1/X11R6.6 sources and Solaris's
+ version of Xprt can only download PFA (PS ASCII font) fonts
+ which ends of the ending "*.pfa".
+
+ Problem [314]There is an issue how the Linux and Solaris Xprt handles
+ the "copy-count" of a print job. The result may be that a job
+ with n copies of a document end-up in n jobs with n copies
+ (usually equals to n^2 copies).
+
+ Problem
+
+ Xprt build from Xfree86 sources is completely broken and unuseable.
+ Solution
+
+ Build Xprt from the CVS tree at [315]http://xprint.mozdev.org/ or the
+ X.org X11R6.5.1 sources (note that the client side Xprint extension
+ library ("libXp.so") from Xfree86 is not broken and do not need to be
+ replaced).
+ Problem
+
+ The code which matches XLFD names to PS Type1 font names is
+ case-sensitive in Xprts build from X.org X11R6.5.1/X11R6.6 and the
+ current Solaris Xprt. This may cause that the PS DDX refuses to
+ download PS Type1 fonts.
+ Solution
+
+ Patch available, I am looking for a way to get the patch into the X11
+ and Solaris source trees...
+ Problem
+
+ Xprt build from X11R6.5.1/X11R6.6 sources and Solaris's version of
+ Xprt can only download PFA (PS ASCII font) fonts which ends of the
+ ending "*.pfa".
+ Solution
+
+ Either convert PFB (PS Type 1 binary font) to PFA format and adjust
+ the fonts.dir and fonts.scale file or get a patch for the sources. I
+ am looking for a way to get the patch into the X11 and Solaris source
+ trees (the fixed version can download both PFA/PFB fonts in PFA format
+ and even handles non-standard file extensions).
+ Problem
+
+ There is an issue how the Linux and Solaris Xprt handles the
+ "copy-count" of a print job. The result may be that a job with n
+ copies of a document end-up in n jobs with n copies (usually equals to
+ n^2 copies).
+ Solution
+
+ Xprt build from xprint.mozdev.org sources has been fixed in release
+ 007, see [316]xprint.mozdev.org bug 1378 ("PS DDX creates n^2 copies
+ of a job instead of n copies") and [317]bugzilla.mozilla.org 140030
+ ("Setting number of copies causes too many copies to print") for
+ details. Solaris 2.7 Xprt still suffers from this issue... ;-(
+
+Unanswered questions
+
+ (My small ToDo list what I will write soon; 379 items missing... =:-)
+ Email me if you want one of these answered "now" and/or to contribute
+ an answer... :)
+ How do I create a model-config for my printer ?
+ How can I customize a model-config for my site/machine ?
+ Which attributes/values can be set in a model-config ?
+ Why can't I set default values (for my {paper size, resolution, ...})
+ in the model-config ?
+ Should I add the fonts in the model-config dir to the Xserver's font
+ path ?
+ What are the fonts in the model-config dir for ?
+ Can I use a font server for all fonts instead of passing then directly
+ to the Xprint server ?
+ Does the Xprint PostScript driver do full rasterisation of the print
+ job ?
+ Is it possible to prepare a printer config entry so that the PS output
+ is piped to "ps2pdf" and will produce directly a PDF file? It would be
+ nice to have mozilla directly producing PDF files when printing.
+ Problem: I have changed the Xprt config - but "xplsprinters -l"
+ (or any other Xprint application) does not show the change.
+ Any idea what I am doing wrong ?
+ How can I add a font path to Xprt ?
+ Why does "xset +fp path_to_font" not work in some cases ?
+ How can I get a "core"-dump when Xprt crashes ?
+ How can I debug Xprt (hint: use "-audit 4") ?
+ How can I debug Xprt with Sun Workshop (hint: "check -access") ?
+ How can I check whether Xprint is "active" ? / How can I verify that a
+ Xprint is working ?
+
+Acknowledgements
+
+ We'd like like to express their gratitude to the whole community for
+ providing insightful answers to innumerable questions. In particular,
+ the following people (listed alphabetically) have contributed to this
+ FAQ (apologies, in advance, if anyone has been forgotten):
+
+ Alan Coopersmith <[318]alan.coopersmith@sun.com>
+ Giuseppe Ghibò <[319]ghibo@mandrakesoft.com>
+ Thomas Gilg <[320]thomas_gilg@hp.com>
+ Jay Hobson <[321]jay.hobson@sun.com>
+ Masaki Katakai <[322]katakai@japan.sun.com>
+ Simon Montagu <[323]smontagu@smontagu.org>
+ Drew Parsons <[324]dparsons@debian.org>
+ (and many many others)
+
+References
+
+ 1. mailto:roland.mainz@nrubsig.org
+ 3. http://xprint.mozdev.org/lxr/http/source/xprint/src/xprint_main/xc/doc/hardcopy/XPRINT/Xprint_FAQ.html
+ 4. http://xprint.mozdev.org/lxr/http/source/xprint/src/xprint_main/xc/doc/hardcopy/XPRINT/Xprint_FAQ.txt
+ 5. http://xprint.mozdev.org/lxr/http/source/xprint/src/xprint_main/xc/doc/hardcopy/XPRINT/Xprint_FAQ.xml
+ 144. http://xprint.mozdev.org/
+ 145. http://packages.qa.debian.org/x/xprint-xprintorg.html
+ 146. http://xprint.mozdev.org/
+ 147. http://xprint.mozdev.org/download.html
+ 148. http://xprint.mozdev.org/
+ 149. http://xprint.mozdev.org/
+ 150. http://xprint.mozdev.org/list.html
+ 157. http://stsf.sourceforge.net/
+ 159. http://xprint.mozdev.org/bugs/show_bug.cgi?id=2261
+ 160. http://xprint.mozdev.org/
+ 161. http://ttf2pt1.sourceforge.net/download.html
+ 164. http://xprint.mozdev.org/
+ 165. http://www.opengroup.org/cde/
+ 166. http://www.mozilla.org/projects/xprint/
+ 167. http://www.mozdev.org/
+ 186. http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=171174
+ 187. http://xprint.mozdev.org/
+ 189. http://xprint.mozdev.org/
+ 192. http://xprint.mozdev.org/bugs/show_bug.cgi?id=5092
+ 214. http://www.adobe.com/type/main.html
+ 215. http://www.adobe.com/type/eurofont.html
+ 216. ftp://ftp.adobe.com/pub/adobe/type/win/all/
+ 218. http://xprint.mozdev.org/bugs/show_bug.cgi?id=2092
+ 219. http://xprint.mozdev.org/bugs/show_bug.cgi?id=2430
+ 220. http://xprint.freedesktop.org/cgi-bin/bugzilla/enter_bug.cgi?product=xprint&component=Server%3A%2BConfig%3A%2Bmodel-configs
+ 221. http://xprint.freedesktop.org/cgi-bin/bugzilla/enter_bug.cgi
+ 246. http://packages.debian.org/stable/utils/type1inst.html
+ 247. http://packages.debian.org/stable/x11/ttmkfdir.html
+ 248. http://xprint.mozdev.org/
+ 249. http://xprint.mozdev.org/bugs/show_bug.cgi?id=2475
+ 250. http://www.inf.bme.hu/~pts/textrace-latest.tar.gz
+ 251. http://bugzilla.mozilla.org/show_bug.cgi?id=120560
+ 252. http://bugzilla.mozilla.org/show_bug.cgi?id=142718
+ 253. http://xprint.mozdev.org/
+ 254. ftp://ftp.x.org/pub/R6.6/xc/programs/Xserver/Xext/SecurityPolicy
+ 255. http://xprint.mozdev.org/bugs/show_bug.cgi?id=3353
+ 256. http://bugzilla.mozilla.org/show_bug.cgi?id=199957
+ 257. http://sunsolve.sun.com/
+ 258. http://xprint.mozdev.org/bugs/show_bug.cgi?id=3353
+ 261. http://sunsolve.sun.com/pub-cgi/retrieve.pl?patchid=108652&collection=fpatches
+ 262. http://sunsolve.sun.com/pub-cgi/retrieve.pl?patchid=108653&collection=fpatches
+ 263. http://sunsolve.sun.com/pub-cgi/retrieve.pl?patchid=112785&collection=fpatches
+ 264. http://sunsolve.sun.com/pub-cgi/retrieve.pl?patchid=112786&collection=fpatches
+ 265. http://xprint.mozdev.org/bugs/show_bug.cgi?id=3353#c24
+ 266. http://bugzilla.mozilla.org/show_bug.cgi?id=199957#c6
+ 267. http://xprint.mozdev.org/lxr/http/source/xprint/src/xprint_main/xc/packager/solaris/GISWxprint/README
+ 268. http://xprint.mozdev.org/lxr/http/source/xprint/src/xprint_main/xc/packager/solaris/GISWxprintglue/README
+ 269. http://sdb.suse.de/en/sdb/html/jsmeix_print-81-cups-formfeed.html
+ 270. http://sdb.suse.de/en/sdb/html/jsmeix_print-81-cups-formfeed.html
+ 271. http://xprint.mozdev.org/bugs/show_bug.cgi?id=4181
+ 272. http://bugzilla.mozilla.org/show_bug.cgi?id=180602#c7
+ 305. http://stsf.sourceforge.net/
+ 315. http://xprint.mozdev.org/
+ 316. http://xprint.mozdev.org/bugs/show_bug.cgi?id=1378
+ 317. http://bugzilla.mozilla.org/show_bug.cgi?id=140030
+ 318. mailto:alan.coopersmith@sun.com
+ 319. mailto:ghibo@mandrakesoft.com
+ 320. mailto:thomas_gilg@hp.com
+ 321. mailto:jay.hobson@sun.com
+ 322. mailto:katakai@japan.sun.com
+ 323. mailto:smontagu@smontagu.org
+ 324. mailto:dparsons@debian.org
diff --git a/hardcopy/XPRINT/Xprint_FAQ.xml b/hardcopy/XPRINT/Xprint_FAQ.xml
new file mode 100644
index 0000000..3a66d8f
--- /dev/null
+++ b/hardcopy/XPRINT/Xprint_FAQ.xml
@@ -0,0 +1,4698 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+
+<!-- DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" '/usr/share/sgml/docbook_4.2/docbookx.dtd' -->
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" 'http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd' [
+ <!NOTATION URL PUBLIC "-//IETF//NOTATION Uniform Resource Locator//EN">
+ <!ENTITY % local.ulink.attrib '
+ HyTime CDATA #FIXED "clink"
+ HyNames CDATA #FIXED "linkend URL"
+ loctype CDATA #FIXED "URL queryloc URL"'
+ >
+ <!ENTITY % local.link.attrib '
+ HyTime CDATA #FIXED "clink"
+ HyNames CDATA #FIXED "linkend linkend"'
+ >
+] >
+<?xml-stylesheet href="docbook.css" type="text/css"?>
+
+<!--
+
+Convert this document to HTML using:
+% xsltproc /usr/share/sgml/docbook/docbook-xsl-stylesheets-1.60.1/html/docbook.xsl Xprint_FAQ.xml >Xprint_FAQ.html
+
+Check for errors:
+% xmllint &dash;&dash;valid Xprint_FAQ.xml > /dev/null 2>errorlog.txt
+
+Mappings used in this DocBook document:
+- shell environment variable (like "foobar"): <envar>foobar</envar>
+- Xprint printer name (like "ps003"):
+
+-->
+
+
+<article class="faq">
+<articleinfo>
+ <title>Xprint Frequently Asked Questions</title>
+</articleinfo>
+
+<abstract id="about">
+ <title>About this FAQ</title>
+ <para>
+ Archive-name: Xprint/FAQ
+ </para>
+ <para>
+ Version: 0.9
+ </para>
+ <para>
+ Last-Modified: 2004/02/16 04:15:16
+ </para>
+ <para>
+ Maintained-by:
+ <othercredit><firstname>Roland</firstname> <surname>Mainz</surname></othercredit>
+ <email>roland.mainz@nrubsig.org</email>
+ </para>
+
+ <para>
+ The following is a list of questions that are frequently asked about
+ Xprint.
+ </para>
+ <para>
+ You can help make it an even better-quality FAQ by writing a short
+ contribution or update and sending it BY EMAIL ONLY to me.
+ A contribution should consist of a question and an answer, and increasing
+ number of people sends me contributions of the form "I don't know the
+ answer to this, but it must be a FAQ, please answer it for me". Please
+ read the FAQ first (including the item "<link linkend="getting_help">Getting Help</link>")
+ and then feel free to ask me if it is not in the FAQ.
+ </para>
+ <para>
+ Thanks!
+ </para>
+
+ <para>
+ The latest Xprint FAQ and some other goodies can be obtained through http from
+ <ulink url="http://xprint.mozdev.org/lxr/http/source/xprint/src/xprint_main/xc/doc/hardcopy/XPRINT/Xprint_FAQ.html">
+ http://xprint.mozdev.org/lxr/http/source/xprint/src/xprint_main/xc/doc/hardcopy/XPRINT/Xprint_FAQ.html
+ </ulink>
+ or
+ <ulink url="http://xprint.mozdev.org/lxr/http/source/xprint/src/xprint_main/xc/doc/hardcopy/XPRINT/Xprint_FAQ.txt">
+ http://xprint.mozdev.org/lxr/http/source/xprint/src/xprint_main/xc/doc/hardcopy/XPRINT/Xprint_FAQ.txt
+ </ulink>
+ (the DocBook/XML master source file is
+ <ulink url="http://xprint.mozdev.org/lxr/http/source/xprint/src/xprint_main/xc/doc/hardcopy/XPRINT/Xprint_FAQ.xml">
+ http://xprint.mozdev.org/lxr/http/source/xprint/src/xprint_main/xc/doc/hardcopy/XPRINT/Xprint_FAQ.xml
+ </ulink>).
+ </para>
+ <para>
+ <note>
+ <para>
+ Note that the FAQ has not been finished yet (nor is it half-finished...),
+ many items marked with "XXX" as the answer have still to be written (or have
+ to be copy&amp;pasted from my item collection... <literal>:)</literal>
+ </para>
+ </note>
+ </para>
+</abstract>
+
+<simplesect id="faq">
+ <title>Frequently Asked Questions with Answers</title>
+ <qandaset defaultlabel="qanda">
+ <qandadiv id="faq_general">
+ <title>General</title>
+
+<qandaentry id="what_is_xprint">
+ <question>
+ <para>
+ What is "Xprint" ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ In short, "Xprint" is an advanced printing system which enables X11
+ applications to use devices like printers, FAX or create documents in
+ formats like PostScript, PDF or SVGprint.
+ </para>
+ <para>
+ In long, "Xprint" is a very flexible, extensible, scaleable, client/server
+ print system based on ISO 10175 (and some other specs) and the X11
+ rendering protocol.
+ Using Xprint an application can search, query and use devices like
+ printers, FAX machines or create documents in formats like PDF or SVGprint.
+ In particular, an application can seek a printer, query supported
+ attributes (like paper size, trays, fonts etc.), configure the printer
+ device to match it's needs and print on it like on any other X device
+ reusing parts of the code which is used for the video card Xserver...
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry id="where_can_i_get_xprint_from">
+ <question>
+ <para>
+ Where can I get Xprint/Xprt from ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ Xprint is client-server based, therefore two answers:
+ <itemizedlist>
+ <listitem>
+ <para>
+ The server side is available by default on Solaris (see
+ <link linkend="where_can_i_get_xprint_from_giswxprint_package_note">Note</link>
+ below) and HP-UX (Xfree86 ships a "Xprt" binary, but that is broken and the server config files
+ are missing, too).
+ For those platforms who do not have a (working) Xprt server the you
+ can get source, binary tarballs and Linux RPMs from
+ <ulink url="http://xprint.mozdev.org/">http://xprint.mozdev.org/</ulink>,
+ Debian Linux has a package based on the
+ same sources (see
+ <ulink url="http://packages.qa.debian.org/x/xprint-xprintorg.html">http://packages.qa.debian.org/x/xprint-xprintorg.html</ulink>).
+
+ <note id="where_can_i_get_xprint_from_giswxprint_package_note">
+ <para>
+ For Solaris &gt;= 2.7 <ulink url="http://xprint.mozdev.org/">http://xprint.mozdev.org/</ulink>
+ provides the "GISWxprintglue"
+ and "GISWxprint" packages (available from
+ <ulink url="http://xprint.mozdev.org/download.html">http://xprint.mozdev.org/download.html</ulink>)
+ which provides a single-step
+ drop-in way to configure and start Xprint at system startup and/or
+ per-user for all applications and users (the package provides only
+ startup scripts and some config data and uses the Xprt binary provided
+ with Solaris (<filename>/usr/openwin/bin/Xprt</filename>)).
+ </para>
+ </note>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ The client-side Xprint support library (<filename>libXp.so</filename>) is available on all
+ X11 platforms &gt;=R6.4, including Linux, Solaris, HP-UX, AIX, FreeBSD, NetBSD, etc.
+ </para>
+ <para>
+ If you do not have it you can build it from the sources available at
+ <ulink url="http://xprint.mozdev.org/">http://xprint.mozdev.org/</ulink>.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry id="what_is_xprt">
+ <question>
+ <para>
+ What is "Xprt" ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ Xprt is the server-side of Xprint. It's just like any other Xserver - it
+ uses only an other kind of output device (printer instead of framebuffer)
+ and implements an extra X11 extension ("XpExtension") to handle the
+ special features/requirements of a "paged device"(=printer etc.).
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry id="getting_help">
+ <question>
+ <para>
+ Where can I get help for problems with Xprint ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ The current main site for the Xprint development is <ulink url="http://xprint.mozdev.org/">http://xprint.mozdev.org/</ulink>
+ which hosts various resources including a <ulink url="http://xprint.mozdev.org/list.html">mailinglist</ulink>
+ (please subscribe before posting) for end-users, admin and developers.
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry id="advantages_of_xprint">
+ <question>
+ <para>
+ "Why do some people like Xprint ?" / "What are the advantages of Xprint ?"
+ </para>
+ </question>
+ <answer>
+ <para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Xprint allows an application to query what features (paper size, trays,
+ orientation, resolutions, plexes, fonts and much more) a printer supports.
+ For example it is avoidable that a user accidently prints DIN-A4 on a
+ DIN-A0 poster printer (the print dialog would only offer DIN-A0 as paper
+ size, e.g. offers only choices which are valid for this printer).
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Server-side, localizeable configuration - changes to the server
+ config apply to all users without the need to change/updating anything
+ on the user side (the user may still start his/her own Xprt instance
+ using his/her preferred configuration).
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Small footprint - ideal for for mobile devices (client side does not
+ need to process any fonts - that's the job of the server side).
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ API not restriced to PostScript (X11R6.5.1 comes with PCL and Raster
+ implementations - and PDF/G3-FAX/SVG would be possible without problems).
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Scaleable - Xprint can use as many Xprt servers as the user/admin wants.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ "Xprint is designed for the enterprise", e.g. Xprint was designed to
+ match the needs of large company networks.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Automatic font handling - font download or the existence of
+ printer-builtin fonts is automagically handled by Xprt - the application
+ does not need to know/handle any details (but the application can
+ optionally get information and control the usage of printer builtin
+ fonts).
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ You can print anything what you can render on the framebuffer(=video
+ card) Xserver.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Existing code can be reused 1:1 for printing - which means reduced
+ development costs.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Easy support for I18N (internationalization) - you simply render any
+ fonts in any language with Xprint.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Network-transparent design - Client can use local or remote Xprt servers
+ like any other Xserver.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Uses the X11 protocol - easy adoption of existing code to implement
+ printer support. And all the network goodies like firewall proxies,
+ compressors etc. can be used for Xprint without modifications.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Security: Xprint can use all authentification schemes available in X11
+ (like Kerberos5, SecureRPC, MIT-MAGIC-COOKIE or host-based
+ authentification).
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Enhachements on the server side (Xprt) to not require the change of
+ client-side code.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Optimized job output (like the PostScript created by the PostScript DDX)
+ is usually a lot smaller than the PS code created by other PostScript
+ engines.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry id="contra_xprint">
+ <question>
+ <para>
+ Why do some people dislike Xprint ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ There are a few common misconceptions about Xprint.
+ Let's take a look some of these "myths", some background - and the facts:
+ </para>
+ <blockquote>
+ <!-- myth-fact list begin -->
+ <qandaset id="myths_about_xprint">
+ <qandaentry>
+ <question>
+ <label>Myth:</label>
+ <para>
+ <quote>
+ Xprint prints just a XWD dump of the Xserver bitmap
+ </quote>
+ </para>
+ </question>
+ <answer>
+ <label>Fact:</label>
+ <para>
+ Whoever says Xprint simply does an "xwd"-like dump is wrong.
+ </para>
+
+ <para>
+ <!-- XXX: outdated information -->
+ In short, Xprint <emphasis>currently</emphasis> (X11R6.5.1) supports *four* drivers:
+ <orderedlist>
+ <listitem>
+ <para>
+ X to native Postscript
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ X to native PCL5
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ X to native PCL3
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ X to a raster which is then feed to something like xpr to
+ create PS or PCL5 wrapped rasters.
+ </para>
+ </listitem>
+ </orderedlist>
+ </para>
+ <para>
+ In long, the original X Print Service ("XPS") was attempted
+ during CDE 1.0, and they only got so far as the "raster" driver.
+ </para>
+ <para>
+ As CDE 2.0 came around, Bob Schiefler and others at the X
+ Consortium agreed that the X Consortium would work on a X to
+ native PS Level 2 driver and HP would work on a X to native
+ PCL5 driver.
+ </para>
+ <para>
+ It was probably the CDE 1.0 effect that left many people with
+ the impression that Xprint is all about xwd-like window dumps.
+ NO! Xprint has native PostScript and PCL5 printing and more
+ drivers (like PDF and SVGprint DDXs etc.) are in the development.
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <label>Myth:</label>
+ <para>
+ <quote>
+ Xprint cannot handle non-'ISO Latin 1' chars
+ </quote>
+ </para>
+ </question>
+ <answer>
+ <label>Fact:</label>
+ <para>
+ Xprint can print any chars incl. those required for MathML,
+ Hebrew, Arabic, Japanese etc. etc.
+ For example - the Xprint module for Mozilla5 is the only print
+ module which can proprtly print MathML.
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <label>Myth:</label>
+ <para>
+ <quote>
+ Xprint uses a 1024x768 screen resolution to render the stuff on
+ the paper - therefore it will never be able to do high-resolution
+ stuff
+ </quote>
+ </para>
+ </question>
+ <answer>
+ <label>Fact:</label>
+ <para>
+ Xprt uses the screen resolution requested by the application or
+ the printers default resolution.
+ For example a 300 DPI printer which supports paper sizes up to
+ DIN-A4 will get a screen with 3300x3300 pixels (screen width and
+ height are usually equal to support per-page changes in the
+ orientation (potrait/landscape etc.), the window size would be
+ 2400x3149 for "portrait" orientation) - and larger resolutions
+ will result in larger screens.
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <label>Myth:</label>
+ <para>
+ <quote>
+ Xprint prints only graphics(=bitmap/gfx) fonts
+ </quote>
+ </para>
+ </question>
+ <answer>
+ <label>Fact:</label>
+ <para>
+ In short, Xprt supports printer-builtin fonts and can
+ download fonts to the printer if they do not exist on the printer.
+ </para>
+ <para>
+ In long, this myth seems to have it's root in a <emphasis>feature</emphasis> of
+ Xprt which can - if Xprt gets misconfigured - disable the use of
+ printer-builtin fonts and the ability to download fonts.
+ </para>
+ <para>
+ Xprt's PostScript and PCL DDX have the <emphasis>unique</emphasis> feature to create
+ font glyphs from bitmap fonts if they are not available as
+ printer-builtin fonts nor as PostScipt Type1 fonts. However this
+ is the fallback - the <emphasis>last</emphasis> option used by Xprt. Used if
+ everything else fails.
+ But when someone does not pass any PS Type1 fonts with the font
+ path nor configures a printer model-config (which contains a
+ description of the features&amp;fonts supported by the printer) Xprt
+ will never have a chance to use them. And if everything else
+ fails it has no other option than using what has been left - the
+ bitmap fonts...
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <label>Myth:</label>
+ <para>
+ <quote>
+ Xprint does not support pages sizes larger than DIN-A4
+ </quote>
+ </para>
+ </question>
+ <answer>
+ <label>Fact:</label>
+ <para>
+ There is no such limitation.
+ The only limit is the 16bit coordinate system of the X11
+ protocol - which is large enougth that Xprint can support paper
+ sizes <emphasis>larger</emphasis> than DIN-A0 oversize papers. There is no problem
+ with creating your own monster-size DIN-A0 posters using
+ Xprint-based applications.
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <label>Myth:</label>
+ <para>
+ <quote>
+ Xprint does not support rotated text
+ </quote>
+ </para>
+ </question>
+ <answer>
+ <label>Fact:</label>
+ <para>
+ Xprint and all it's drivers support the X11 matrix XLFD
+ enhancement introduced in X11R6 (and future versions of Xprint will
+ support the <ulink url="http://stsf.sourceforge.net/">STSF</ulink> font API which supports
+ matrix transformations as well).
+ Fonts can be rotated at any angle. Take a look at the
+ <link linkend="faq_development">SOFTWARE DEVELOPMENT</link> section in
+ this FAQ for examples...
+ </para>
+ </answer>
+ </qandaentry>
+
+ <!-- myth: Xprint rendering model is not good for printers -->
+
+ </qandaset>
+ <!-- myth-fact list end -->
+
+
+ </blockquote>
+ </answer>
+</qandaentry>
+
+<qandaentry id="does_xprint_support_anti_aliased_fonts">
+ <question>
+ <para>
+ Does Xprint support anti-aliased fonts ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ Question back: When do we need anti-aliased fonts ?
+ Anti-aliasing is a "hack" to work around the limitations caused by the
+ low resolution of monitors - they usually operate between 72 DPI and
+ 150 DPI.
+ </para>
+ <para>
+ But Xprint operates on printers where the usual <emphasis>minimum</emphasis> resolution is
+ 300 DPI (today's normal office printers support resolutions ranging from
+ 300 DPI up to 2400 DPI depending on the model; most common is 600 DPI).
+ Anti-aliasing at those resolutions is not required anymore.
+ Additionally many printers support their own font anti-aliasing at lower
+ resolutions which is far better and faster than it could be "done" on the
+ client side.
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ How can I check if Xprint is working and should be used ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ Check whether the <envar>${XPSERVERLIST}</envar> env var is set or not.
+ If <envar>${XPSERVERLIST}</envar> is set then Xprint is available and should be used.
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry id="how_can_i_view_postscript_files">
+ <question>
+ <para>
+ How can I view PS(=PostScript) files ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ On Unix/Linux (general):
+ <itemizedlist>
+ <listitem>
+ <para>
+ GhostScript ("gs") and GhostView ("gv" and it's KDE- and Gnome-specific versions "kghostview" and "ggv")
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ </itemizedlist>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Solaris:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <filename>/usr/dt/bin/sdtimage</filename> (DPS-based image viewer for CDE)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <filename>/usr/openwin/bin/pageview</filename> (DPS-based image viewer for OpenWindows)
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry id="how_can_i_view_pcl_files">
+ <question>
+ <para>
+ How can I view PCL files ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ XXX - <ulink url="http://xprint.mozdev.org/bugs/show_bug.cgi?id=2261">xprint.mozdev.org bug 2261</ulink>
+ has been filed for that issue.
+ </para>
+ </answer>
+</qandaentry>
+
+
+<qandaentry>
+ <question>
+ <para>
+ How does Xprt find fonts ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ <!-- Uhm... this is actually how *Mozilla* does the job... not Xprt... ;-/ (FIXME!) -->
+ Lookup-rule for Xprt's PostScript DDX to find fonts:
+ <orderedlist>
+ <listitem>
+ <para>
+ Printer-builtin fonts (defined by the fonts/-dir in the model-config)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ PostScript fonts (will be downloaded via generated print job)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ GFX-fonts build from X11 scaleable fonts
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ GFX-fonts build from X11 bitmap fonts
+ </para>
+ </listitem>
+ </orderedlist>
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ How can I print TrueType fonts with Xprint ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ <orderedlist>
+ <listitem>
+ <para>
+ Linux Xprt build from <ulink url="http://xprint.mozdev.org">http://xprint.mozdev.org/</ulink>'s source supports
+ TrueType fonts out-of-the-box (starting with the 008 development tree;
+ xprint.mozdev.org's releases &lt;= 007 do not support TrueType fonts) and
+ and does not require any special actions.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Sun's Xprt on Solaris (<filename>/usr/openwin/bin/Xprt</filename>) has TrueType font
+ support out-of-the-box and does not require any special actions.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ You can setup a TTF-aware X font server ("xfs", see
+ <citerefentry><refentrytitle>xfs</refentrytitle><manvolnum>__mansuffix__</manvolnum></citerefentry>)
+ with the matching TrueType fonts and add the font server location to Xprt's font path.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Sourceforge has a TrueType to PostScript Type 1 converter project,
+ see <ulink url="http://ttf2pt1.sourceforge.net/download.html">http://ttf2pt1.sourceforge.net/download.html</ulink>.
+ You may convert the TTF files into PT1 files that Xprt can download them
+ to the printer on demand...
+ </para>
+ </listitem>
+ </orderedlist>
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry id="what_does_ddx_mean">
+ <question>
+ <para>
+ What does "DDX" mean ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ "DDX" is a short term for "Device Dependent X" - the device-specific layer
+ of a Xserver (<link linkend="what_does_dix_mean">"DIX"</link>(="Device Independent X") is the counterpart).
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry id="what_does_dix_mean">
+ <question>
+ <para>
+ What does "DIX" mean ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ "DIX" is a short term for "Device Independent X" - the non-device specific
+ code of a Xserver (<link linkend="what_does_ddx_mean">"DDX"</link>(="Device Dependent X") is the counterpart).
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry id="what_does_pdl_mean">
+ <question>
+ <para>
+ What does "PDL" mean ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ "PDL" is a short term for "Page Description Language". Examples for PDLs are
+ PostScript, PCL, PDF and SVGprint.
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ I have twenty printers installed on my system - but Xprt only shows two
+ screens. Where are all the other printers ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ A Xprt screen does not represent a single printer. A Xprt screen
+ represents a single DDX (currently supported are PostScript, PCL3/5 color,
+ PCL mono and "raster" output(=1bit deep bitmap).
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry id="platforms_supported_by_xprint">
+ <question>
+ <para>
+ Which platforms support Xprint ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ All platforms which support X11 &gt;= R6.4 can use Xprint. The client side
+ (<filename>libXp.so</filename>) is available on Linux/FreeBSD(=Xfree86), Solaris, HP-UX and AIX
+ and the Xprt server side is available by default on Solaris and HP-UX
+ (Xfree86 shipps with a Xprt binary - but that is broken and unuseable).
+ The client-side extension library (<filename>libXp.so</filename>) can be compiled on any
+ platform, the Xprt server needs minor adjustments for the specific
+ platforms...
+ If your platform does not have Xprint (client-side and/or server-side)
+ you can get the sources from <ulink url="http://xprint.mozdev.org/">http://xprint.mozdev.org/</ulink>.
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ I have the broken Xfree86 Xprt binary on my system. Do I need a new
+ version of <filename>libXp.so</filename> (the client side X11 extension library for Xprint),
+ too ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ No, the <filename>libXp.so</filename> shared library shipped with Xfree86 or build from
+ Xfree86 sources is not broken, only the server side ("Xprt") is buggy.
+ There is no need to replace the library.
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry id="who_do_i_spell_xprint">
+ <question>
+ <para>
+ Which spelling is correct - "Xprint", "XPrint", "Xprinter" or Xprt" ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ "Xprint" is the correct one - "XPrint" is just a typo, "Xprinter" is a
+ complety different product not related to X11/Xprint and "Xprt" is only
+ the "X11 print server"(=the server side of Xprint).
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ Which applications support Xprint ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ There are various applications which support Xprint:
+ <itemizedlist>
+ <listitem>
+ <para>
+ Motif/LessTif (full framework incl. special widgets like <function>XmPrintShell</function>)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <ulink url="http://www.opengroup.org/cde/">Common Desktop Environment (CDE) 2.x</ulink>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <ulink url="http://www.mozilla.org/projects/xprint/">Mozilla</ulink>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Eclipse
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ KDE/Qt support is comming is planned for the end of Dec/2003
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ StarOffice 5.x
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ etc.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry id="is_xprint_only_for_mozilla">
+ <question>
+ <para>
+ Is "Xprint" "mozilla"-only (I saw that it's hosted by mozdev.org) ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ No, Xprint is a general-purpose print API based on the X11 API used by
+ many applications (<ulink url="http://www.mozdev.org/">mozdev.org</ulink> is just
+ hosting the development area, but this does not mean the project is limited to mozilla...
+ <literal>:)</literal>).
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ Under which license is the source code from xprint.mozdev.org distributed under ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ That's the plain "MIT" license, the same as used by Xfree86.org and X.org:
+<programlisting>
+Copyright (c) &lt;year&gt; &lt;copyright holders&gt;
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software
+and associated documentation files (the "Software"), to deal in the Software without
+restriction, including without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or
+substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+</programlisting>
+ </para>
+ </answer>
+ </qandaentry>
+</qandadiv>
+
+ <qandadiv id="faq_usage">
+<title>Usage</title>
+
+<qandaentry>
+ <question>
+ <para>
+ How do I configure Xprint on the client side ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ There are two env vars which control Xprint on the client side:
+ <orderedlist>
+ <listitem>
+ <para>
+ The env variable <envar>${XPSERVERLIST}</envar> contains a list of display identifiers
+ (seperated by whitespace) to tell the application where it can find
+ the Xprt servers.
+ Usually <envar>${XPSERVERLIST}</envar> is set by the profile startup scripts (e.g.
+ <filename>/etc/profile</filename> or <filename>/etc/profile.d/xprint.sh</filename>) using the output of
+ "/etc/init.d/xprint get_xpserverlist".
+ Example:
+<screen>
+ % <userinput>export XPSERVERLIST="`/etc/init.d/xprint get_xpserverlist`"</userinput>
+</screen>
+ Alternativly <envar>${XPSERVERLIST}</envar> can be set manually:
+ </para>
+ <para>
+ Example:
+<screen>
+ % <userinput>export XPSERVERLIST="littlecat:80 bitdog:72"</userinput>
+</screen>
+ instructs an application to look at the displays 80 on the machine
+ "littlecat" and display 72 on the machine bigdog to look for Xprt
+ servers.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ The env variable <envar>${XPRINTER}</envar> defines the default printer used by print
+ applications. The syntax is either &lt;printername&gt; or
+ &lt;printername&gt;@&lt;display&gt;
+
+ <orderedlist>
+ <title>Examples:</title>
+ <listitem>
+ <para>
+<screen>
+ % <userinput>export XPRINTER=ps003</userinput>
+</screen>
+ tells an application to look for the first printer named "ps003" on
+ all Xprt servers.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+<screen>
+ % <userinput>export XPRINTER="hplaser19@littlecat:80"</userinput>
+</screen>
+ tells an application to look for the printer "hplaser19" on the Xprt
+ display "littlecat:80".
+ </para>
+ </listitem>
+ </orderedlist>
+ <note>
+ <title>Note:</title>
+ <para>
+ If <envar>${XPRINTER}</envar> is not set the applications will examine the values of
+ the <envar>${PDPRINTER}</envar>, <envar>${LPDEST}</envar>, and
+ <envar>${PRINTER}</envar> env vars (in that order).
+ </para>
+ </note>
+ </para>
+ </listitem>
+ </orderedlist>
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry id="how_do_i_start_xprt">
+ <question>
+ <para>
+ How do I start Xprt ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ <orderedlist>
+ <listitem id="starting_xprt_on_linux_rpm">
+ <para>
+ Linux RPM installations on Mandrake/RedHat/SuSE Linux:
+ Binary RPM packages provided by xprint.mozdev.org (or based on the same
+ source :) will install <filename>/etc/init.d/xprint</filename> and related glue
+ (see <link linkend="starting_xprt_general">[4]</link>)
+ automatically; after a reboot a Xprt instance will be started at system
+ startup and <envar>${XPSERVERLIST}</envar> should be populated for all users.
+ Note that you can start/stop per-user instances using <filename>/etc/init.d/xprint</filename>
+ (see <link linkend="starting_xprt_general">[4]</link>), too...
+ </para>
+ </listitem>
+ <listitem id="starting_xprt_on_debian_linux">
+ <para>
+ Debian Linux:
+ Same as <link linkend="starting_xprt_on_linux_rpm">[1]</link>, however Debian does not support
+ <filename>/etc/profile.d/</filename> - you have to add the following line to <filename>/etc/profile</filename>
+ (for sh/ksh/bash) to populate <envar>${XPSERVERLIST}</envar>:
+<screen>
+ <userinput>export XPSERVERLIST="`/bin/sh /etc/init.d/xprint get_xpserverlist`"</userinput>
+</screen>
+ See <ulink url="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=171174">bugs.debian.org bug 171174</ulink>
+ ('"xprint-xprintorg" should automatically populate <envar>$XPSERVERLIST</envar>') for
+ further details on this issue...
+ </para>
+ </listitem>
+ <listitem id="starting_xprt_on_solaris">
+ <orderedlist>
+ <listitem id="starting_xprt_on_solaris_using_giswxprintglue">
+ <para>
+ Solaris using the "GISWxprintglue" package:
+ <ulink url="http://xprint.mozdev.org/">http://xprint.mozdev.org/</ulink>
+ provides a Solaris package called "GISWxprintglue"
+ which contains all the neccesary configuration files and startup scripts
+ to use Xprint; after a reboot a Xprt instance will be started at system
+ startup and <envar>${XPSERVERLIST}</envar> should be populated for all users.
+ Note that you can start/stop per-user instances using <filename>/etc/init.d/xprint</filename>
+ (see <link linkend="starting_xprt_general">[4]</link>), too...
+ </para>
+ </listitem>
+ <listitem id="starting_xprt_on_solaris_using_giswxprint">
+ <para>
+ Solaris using the "GISWxprint" package:
+ <ulink url="http://xprint.mozdev.org/">http://xprint.mozdev.org/</ulink>
+ provides a Solaris package called "GISWxprint"
+ which is technically identical to the "GISWxprintglue"
+ (see <link linkend="starting_xprt_on_solaris_using_giswxprintglue">[3a]</link>) but
+ provides a Xprt binary build from the xprint.mozdve.org sources
+ ("GISWxprintglue" uses the <filename>/usr/openwin/bin/Xprt</filename> binary provided by Solaris).
+ </para>
+ </listitem>
+ </orderedlist>
+ </listitem>
+ <listitem id="starting_xprt_general">
+ <para>
+ General: Using <filename>/etc/init.d/xprint</filename> and related glue:
+ There are startup/shutdown scripts in <filename>xc/programs/Xserver/Xprint/etc/</filename>
+ to start/stop/restart Xprt per-machine and/or per-user and to populate the
+ <envar>${XPSERVERLIST}</envar> env var:
+ <itemizedlist>
+ <listitem>
+ <para>
+ "<filename>xc/programs/Xserver/Xprint/etc/init.d/xprint</filename>" is a script for SystemV
+ and Linux to start/stop/restart Xprt. The script includes installation
+ and usage details and can be used by both "root" (to start Xprt for all
+ users) or by a single (non-priviledged, plain) user (to start Xprt
+ instances only for his/her own use)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ "<filename>xc/programs/Xserver/Xprint/etc/profile.d/xprint.csh</filename>" and
+ "<filename>xc/programs/Xserver/Xprint/etc/profile.d/xprint.sh</filename>" are scripts for
+ Linux (which support <filename>/etc/profile.d/</filename> ; note that this does not include
+ Debian) to populate the <envar>${XPSERVERLIST}</envar> env var for each user.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem id="starting_xprt_manually">
+ <para>
+ Starting Xprt "manually" (without using <filename>/etc/init.d/xprint</filename>):
+ Set the <envar>${XPCONFIGDIR}</envar> env variable to the directory where Xprt can find
+ it's configuration data.
+ <warning>
+ <title>WARNING</title>
+ <para>
+ If Xprt cannot find it's configuration data it will not be
+ able to use printer-builtin fonts (which are defined by the
+ model-config in the configuration dir). Without printer-builtin fonts
+ Xprt <emphasis>may</emphasis> fall back to generate font glyphs from bitmap fonts (this
+ resulted in the MYTH that "Xprt can only print gfx fonts". This is not
+ <emphasis>TRUE</emphasis> - this only happens if Xprt is either misconfigured or no
+ matching builtin or PS Type1 font is available).
+ </para>
+ <para>
+ You may want to make a copy of the default configuration directory and
+ modify it to match your needs.
+ </para>
+ </warning>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Starting Xprt is just as easy as starting any other Xserver:
+<screen>
+ % <userinput>Xprt :12</userinput>
+</screen>
+ will start Xprt on display 12 (e.g. set <envar>${XPSERVERLIST}</envar> to ":12" or
+ "myhostname:12".
+ </para>
+ <para>
+ You may want to copy your framebuffer Xserver's font path to be able to
+ print all fonts which can be displayed on that Xserver.
+<screen>
+ % <userinput>Xprt -fp $(xset q | awk "/Font Path:/ { i=1 ; next } i==1 { print \$0 ; i=0 }") :12</userinput>
+</screen>
+ </para>
+ </listitem>
+ </orderedlist>
+ <note>
+ <title>Notes:</title>
+ <para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ The <filename>/etc/init.d/xprint</filename> has a more advanched filtering scheme based on
+ regex patters to "accept" and/or "reject" font paths
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ 'xset q | awk "/Font Path:/ { i=1 ; next } i==1 { print \$0 ; i=0 }"'
+ may be too simple-minded if your Xserver does not support TrueType
+ fonts. The following statemement is better in this case since it
+ filters the font path and removes all path elements which have TrueType
+ fonts (*.ttf, *.TTF) or TrueType font collections (*.ttc, *.TTC) in
+ <filename>fonts.dir</filename>:
+<screen>
+ % <userinput>xset q | awk "/Font Path:/ { i=1 ; next } i==1 { print \$0 ; i=0 }" |
+ tr "," "\n" | while read i ; do \
+ if [ "$(cat ${i}/fonts.dir | egrep -i "ttf|ttc" 2>/dev/null)" == "" ] \
+ ; then echo $i ; fi ; done | (fontpath="" ; fpdelim=""; while read i ; \
+ do fontpath=${fontpath}${fpdelim}${i} ; fpdelim="," ; done ; echo \
+ $fontpath)</userinput>
+</screen>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ It may be easier to just feed all available font paths to Xprt
+ (BTW: mozilla 1.0 had a bug in that case which resulted in the problem
+ that it used many many bitmap fonts in that case - this has been fixed
+ for 1.0.1 and Netscape 7 (that's the reason why the quickguides for
+ hebrew/cyrillic use the "Xp_dummyfonts" fonts instead of
+ <filename class="directory">/usr/openwin/lib/X11/fonts/misc/</filename> - to avoid that Mozilla finds bitmap
+ fonts for the same locale).
+ The following "small" one-liner finds all fonts (except printer builtin
+ fonts):
+<screen>
+ % <userinput>find /usr/openwin -name fonts.dir | while read i ; do echo
+ ${i%/fonts.dir} ; done | fgrep -v "models/"</userinput>
+</screen>
+ Plug it into the filter above to remove the Truetype fonts and you are
+ "done"... :)
+ </para>
+ </listitem>
+ </itemizedlist>
+ See <link linkend="faq_troubleshooting">TROUBLESHOOTING</link> if you run into problems...
+ </para>
+ </note>
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ How can I get a list of printers managed by Xprint ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ The tool "xplsprinters" is designed for that purpose. It can deliver both
+ list of printers and attributes supported for a specific list of printers.
+ Use % xplsprinters -h # to obtain usage information.
+ Example:
+ <itemizedlist>
+ <listitem>
+ <para>
+ Get list of available printers:
+<screen>
+% <userinput>xplsprinters</userinput>
+<computeroutput>printer: hplaserjet001@castor:19
+printer: hpcolor001@castor:19
+printer: laser1@jason:5
+printer: david_dj01@jason:5</computeroutput>
+</screen>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Get information about the supported attrbites of printer "ps002":
+<screen>
+% <userinput>xplsprinters -printer ps002 -l</userinput>
+<computeroutput>printer: ps002@castor:18
+ comment=
+ model-identifier=HPDJ1600C
+ default-medium=iso-a4
+ default-input-tray=
+ medium-source-sizes-supported=iso-a4 false 6.35 203.65 6.35 290.65
+ medium-source-sizes-supported=na-letter false 6.35 209.55 6.35 273.05
+ default-printer-resolution=300
+ resolution=300
+ default_orientation=
+ orientation=portrait
+ orientation=landscape
+ default_plex=
+ plex=simplex</computeroutput>
+</screen>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ How can I start Xprt at boot time ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ "<filename>xc/programs/Xserver/Xprint/etc/init.d/xprint</filename>" is a script for SystemV
+ and Linux to start/stop/restart Xprt at system startup (e.g. per-machine)
+ or for a single user (e.g. per-user).
+ The script includes installation and usage details.
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ How can I start Xprt per-user ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ "<filename>xc/programs/Xserver/Xprint/etc/init.d/xprint</filename>" is a script for SystemV
+ and Linux to start/stop/restart Xprt at system startup (e.g. per-machine)
+ or for a single user (e.g. per-user).
+ The script includes installation and usage details.
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ How can I start Xprt only for one application ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ Create your own version/copy of <filename>/etc/init.d/xprint</filename> and modify it to fit
+ your requirements and then make sure that you issue a
+ "my_xprint_startscript start" before starting the application and a
+ "my_xprint_startscript stop" after leaving the application.
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ How can I filter the font path which should be passed to Xprt for
+ certain fonts ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ XXX
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ How can I manage access control to the Xprt server ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ Access control to Xprt is not differently as to any other Xserver and
+ can be handled in various ways - like per-cookie
+ (using MIT-MAGIC-COOKIE-1 authentification),
+ per-user (using SUN-DES-1 or MIT-KERBEROS-5 auth., see
+ (see <citerefentry><refentrytitle>xhost</refentrytitle><manvolnum>__mansuffix__</manvolnum></citerefentry>))
+ and/or per-machine (using "xhost" (see <citerefentry><refentrytitle>xhost</refentrytitle><manvolnum>__mansuffix__</manvolnum></citerefentry>) and/or
+ <filename>/etc/X&lt;dpy&gt;.hosts</filename> (&lt;dpy&gt; == display number,
+ e.g. <filename>/etc/X0.hosts</filename> for display 0) (see <citerefentry><refentrytitle>Xserver</refentrytitle><manvolnum>__mansuffix__</manvolnum></citerefentry>))
+ Consult manual pages
+ <citerefentry><refentrytitle>Xsecurity</refentrytitle><manvolnum>__miscmansuffix__</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>xhost</refentrytitle><manvolnum>__mansuffix__</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>Xserver</refentrytitle><manvolnum>__mansuffix__</manvolnum></citerefentry>
+ etc. for further details.
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ How can I log access to the Xprt server ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ Logging access to Xprt can be done using the standard Xserver auditing,
+ see the <citerefentry><refentrytitle>Xserver</refentrytitle><manvolnum>__mansuffix__</manvolnum></citerefentry>
+ manual page, option "-audit"
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ Does it require "root" permissions to use Xprt/Xprint ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ No, both Xprint clients and Xprint server(s) do not require root rights
+ to work.
+ </para>
+ <para>
+ Xprint clients are handled like any other X11 application and the Xprt
+ servers can run without any special requirements.
+ Solaris is an exception here since it requires to start any Xserver
+ (incl. Xprt) setgid "root" (set-group-id "root", this is <emphasis>not</emphasis>
+ set-user-id "root") since the sockets/pipe files in /tmp/.X11-pipe/ and
+ /tmp/.X11-unix/ are only accessible for the group "root".
+ The workaround is to start Xprt with the option "-pn"; therefore even
+ Xprt server binaries which are not setgid "root" can run without
+ problems).
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ How can I see the attributes of a printer managed by Xprint ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ "xplsprinters -printer myprinter004 -l" will do the job for printer
+ "myprinter004".
+ </para>
+ <para>
+ See
+ <citerefentry><refentrytitle>xplsprinters</refentrytitle><manvolnum>__mansuffix__</manvolnum></citerefentry>
+ for futher usage and a description of the output.
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry id="how_can_i_list_the_font_path_used_by_xprint">
+ <question>
+ <para>
+ How can I list the font path used by a Xprt server ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ Figure out the display id of the server which should be queried (we are
+ using "foobar:98" in this example) and then try this:
+<screen>
+% <userinput>(DISPLAY=foobar:98 xset q | \
+awk "/Font Path:/ { i=1 ; next } i==1 { print \$0 ; i=0 }" | \
+tr "," "[\n]")</userinput>
+# Output may look like:
+<computeroutput>PRINTER:/usr/openwin/server/etc/XpConfig/C/print/models/HPDJ1600C/fonts/
+PRINTER:/usr/openwin/server/etc/XpConfig/C/print/models/SPSPARC2/fonts/
+PRINTER:/usr/openwin/server/etc/XpConfig/C/print/models/HPLJ3Si-PS/fonts/
+/usr/openwin/lib/X11/fonts/F3/
+/usr/openwin/lib/X11/fonts/F3bitmaps/
+/usr/openwin/lib/X11/fonts/Type1/
+/usr/openwin/lib/X11/fonts/Speedo/
+/usr/openwin/lib/X11/fonts/misc/
+/usr/openwin/lib/X11/fonts/75dpi/
+/usr/openwin/lib/X11/fonts/100dpi/</computeroutput>
+</screen>
+ <note>
+ <title>Note:</title>
+ <para>
+ Note that the font path items which start with "PRINTER:" are <emphasis>only</emphasis> be
+ sourced <emphasis>after</emphasis> the matching printer has been selected and configured
+ (for developers: After <function>XpSetContext</function> has been called).
+ </para>
+ </note>
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ "xset q" lists all model-specific font dirs (like
+ PRINTER:/myxpcfg/C/print/models/SPSPARC2/fonts/") - is that a bug ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ No, this is normal. Xprt will add all fonts of all printer models to the
+ font path - but font path items starting with "PRINTER:" are <emphasis>only</emphasis>
+ available for an application <emphasis>after</emphasis> the matching printer has been
+ selected and configured (for developers: After <function>XpSetContext</function> has been
+ called), <emphasis>before</emphasis> that point fonts in these dirs are not available for
+ an application.
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ My application lists a printer called "xp_ps_spooldir_tmp_Xprintjobs" /
+ "xp_pdf_spooldir_tmp_Xprintjobs" / "spooldir_tmp_Xprintjobs" / in the
+ print dialog but I do not have such a print queue installed anywhere.
+ What is that for a thing ?!
+ </para>
+ </question>
+ <answer>
+ <para>
+ "xp_ps_spooldir_tmp_Xprintjobs" and "xp_pdf_spooldir_tmp_Xprintjobs"
+ ("spooldir_tmp_Xprintjobs" was the old, pre-009 name for "xp_ps_spooldir_tmp_Xprintjobs")
+ are special Xprint printer targets which uses the "PSspooldir" / "PS2PDFspooldir-GS"
+ printer models. These model config sends PostScript or PDF jobs
+ to the <filename>/tmp/Xprintjobs/</filename> directory instead to a physical printer
+ (quite usefull for people who want to get the PostScript or PDF files as output instead
+ of printed pages).
+ </para>
+ <formalpara>
+ <title>References:</title>
+ <para>
+ <itemizedlist>
+ <listitem><para><ulink url="http://xprint.mozdev.org/bugs/show_bug.cgi?id=5092">xprint.mozdev.org bug 5092 ("[PS2PDFspooldir-GS] RFE: Add printer model which sends PDF jobs to /tmp/Xprintjobs/")</ulink></para></listitem>
+ </itemizedlist>
+ </para>
+ </formalpara>
+ </answer>
+</qandaentry>
+
+<qandaentry id="manual_xprint_forwarding_via_ssh">
+ <question>
+ <para>
+ How can I forward Xprint services when logging-in via ssh to another machine ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ You have to forward the X11 connection for the Xprint server(s) to the remote system
+ and set the <envar>XPSERVERLIST</envar> variable to direct the Xprint clients to the forwarded ports.
+
+ <example role="example">
+ <title>Login to a remote host using slogin (assuming there is only one
+ Xprint server listed in <envar>XPSERVERLIST</envar>)</title>
+
+ <para><screen>% <userinput>echo $XPSERVERLIST</userinput></screen></para>
+ <screen><computeroutput>west:33</computeroutput></screen>
+ <para>Add 6000 to the display number ("33" in this example) to get the port number
+ (X11 port numbers start at port 6000. 6000 is display number "0", 6001 is display number 6001 and so on)
+ and then ask slogin to forward the port:
+ </para>
+ <para><screen>% <userinput>slogin -R6033:west:6033 -l nrubsig puzzle</userinput></screen>
+ <screen><computeroutput>nrubsig's password:
+Last login: Fri Jan 23 04:05:06 2004 from west.informatik.med.uni-giessen.de
+Have a lot of fun...
+</computeroutput></screen>
+ </para>
+ <para>
+ Then set the <envar>XPSERVERLIST</envar> env var on the remote host to the forwarded
+ ports and you are done:
+ </para>
+ <para><screen>% <userinput>export XPSERVERLIST="localhost:33 ${XPSERVERLIST}"</userinput></screen></para>
+ </example>
+
+ <example role="example">
+ <title>Login to a remote host using slogin (assuming there are multiple
+ Xprint servers listed in <envar>XPSERVERLIST</envar>)</title>
+ <para>
+ The following small shell script will process the <envar>XPSERVERLIST</envar> env var and output the
+ parameters for calling slogin/ssh with all Xprint server ports forwarded:
+<programlisting>
+#!/bin/ksh
+# xp_print_slogin_args.ksh
+# Small example which parses $XPSERVERLIST and prints out how slogin/ssh
+# should be used to forward all local Xprint servers
+
+PORTARGS=""
+REMOTE_XPSERVERLIST=""
+spacer="" # seperator
+remoteport=6100
+remotedisplaynum=100
+
+echo "${XPSERVERLIST}" | tr " " "\n" |
+ while read i ; do
+ [ "$i" = "" ] &amp;&amp; continue
+ displaynum="${i##*:}"
+ port="$(( ${displaynum} + 6000 ))"
+ hostname="${i%:*}"
+ PORTARGS="${PORTARGS}${spacer}-R${remoteport}:${hostname}:${port}"
+ REMOTE_XPSERVERLIST="${REMOTE_XPSERVERLIST}${spacer}localhost:${remotedisplaynum}"
+
+ spacer=" "
+ remoteport=$((${remoteport} + 1))
+ remotedisplaynum=$((${remotedisplaynum} + 1))
+ done
+echo "Log in with: % slogin ${PORTARGS} -l myloginname myremotehost"
+echo "Set remote XPSERVERLIST with % export XPSERVERLIST=\"${REMOTE_XPSERVERLIST} \${XPSERVERLIST}\""
+# EOF.
+</programlisting>
+ </para>
+ <para>Example usage:
+ <screen>% <userinput>xp_print_slogin_args.ksh</userinput></screen>
+ will print
+ <screen><computeroutput>Log in with: % slogin -R6100:west:6033 -R6101:north:6033 -l myloginname myremotehost
+Set remote XPSERVERLIST with % export XPSERVERLIST="localhost:100 localhost:101 ${XPSERVERLIST}"</computeroutput></screen>
+ </para>
+ </example>
+ </para>
+ </answer>
+</qandaentry>
+
+
+</qandadiv>
+
+<qandadiv id="faq_configuration">
+<title>Configuration</title>
+
+<qandaentry>
+ <question>
+ <para>
+ How do I change the defaults for double-sided/single-sided/etc.
+ printing ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ This is controlled via the "plex" attribute in the document attribute
+ pool <filename>(<envar>${XPCONFIGDIR}</envar>/<envar>${LANG}</envar>/print/attributes/document</filename> and/or
+ <filename><envar>${XPCONFIGDIR}</envar>/C/print/attributes/document</filename>).
+ Examples:
+ <orderedlist>
+ <listitem>
+ <para>
+ Adding/modifying the following line to/in
+ <filename><envar>${XPCONFIGDIR}</envar>/C/print/attributes/document</filename> sets the default plex for
+ all printers to "duplex":
+<screen>
+ *plex: duplex
+</screen>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Adding/modifying the following two lines to/in
+ <filename><envar>${XPCONFIGDIR}</envar>/C/print/attributes/document</filename> sets the default plex for
+ all printers to "duplex" except for printer "ps003" which should
+ default to "simplex":
+<screen>
+ *plex: duplex
+ ps003.plex: simplex
+</screen>
+ </para>
+ </listitem>
+ </orderedlist>
+
+ <note>
+ <title>Notes:</title>
+ <para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Not all printers support all plex modes. The model-config may restrict
+ the available plex modes.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Setting a plex mode which is not supported by either the DDX(=driver)
+ or not specified in the model-config will cause Xprt to not set a
+ default plex.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ The PostScript DDX supports plex modes "simplex", "duplex" and "tumble".
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Verification:
+ Use
+<programlisting>
+ xplsprinters -l | egrep "^printer:|default_plex=|plex="
+</programlisting>
+ to view the plex settings for all printers.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </note>
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ I am in America and I don't have any ISO A4 paper. How do I change the
+ default paper size to 8.5 inch x 11 inch (US-Letter) ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ This is controlled via the "default-medium" attribute in the document
+ attribute pool (<filename><envar>${XPCONFIGDIR}</envar>/<envar>${LANG}</envar>/print/attributes/document</filename> and/or
+ <filename><envar>${XPCONFIGDIR}</envar>/C/print/attributes/document</filename>).
+ Examples:
+ <orderedlist>
+ <listitem>
+ <para>
+ Adding/modifying the following line to/in
+ <filename><envar>${XPCONFIGDIR}</envar>/C/print/attributes/document</filename> sets the default paper size
+ for all printers to "na-letter":
+<screen>
+ *default-medium: na-letter
+</screen>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Adding/modifying the following two lines to/in
+ <filename><envar>${XPCONFIGDIR}</envar>/C/print/attributes/document</filename> sets the default paper size
+ for all printers to "na-letter" except for printer "ps003" which should
+ default to "iso-a4":
+<screen>
+ *default-medium: na-letter
+ ps003.default-medium: iso-a4
+</screen>
+ </para>
+ </listitem>
+ </orderedlist>
+
+ <note>
+ <title>Notes:</title>
+ <para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ xprint.mozdev.org releases &gt;= 007 provides a seperate "document"
+ attribute pool for en_US(-like) locales (see
+ <filename><envar>${XPCONFIGDIR}</envar>/en_US/print/attributes/document</filename>) which will override the
+ default ISO-A4 with US-Letter (this feature assumes that <envar>${LANG}</envar> is set
+ to "en_US" (or a locale which has similar defaults as "en_US", those
+ are currently linked to "en_US" in <filename><envar>${XPCONFIGDIR}</envar>/</filename>))
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Not all printers support all paper sizes. The model-config may restrict
+ the available paper sizes.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Setting a paper size which is not supported by either the DDX(=driver)
+ or not specified in the model-config will cause Xprt to not set a
+ default paper size.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ The PostScript DDX supports the following paper sizes:
+ <itemizedlist>
+ <listitem>
+ <para>
+ X.org release 6.6 (X116.6):
+ <simplelist type="inline">
+ <member>"iso-a4"</member>
+ <member>"na-letter"</member>
+ <member>"na-legal"</member>
+ <member>"executive"</member>
+ <member>"iso-designated-long"</member>
+ <member>"na-number-10-envelope"</member>
+ </simplelist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ xprint.mozdev.org release &gt;= 006:
+ <simplelist type="inline">
+ <member>"na-letter"</member>
+ <member>"na-legal"</member>
+ <member>"executive"</member>
+ <member>"folio"</member>
+ <member>"invoice"</member>
+ <member>"ledger"</member>
+ <member>"quarto"</member>
+ <member>"a"</member>
+ <member>"b"</member>
+ <member>"c"</member>
+ <member>"d"</member>
+ <member>"e"</member>
+ <member>"na-6x9-envelope"</member>
+ <member>"na-10x15-envelope"</member>
+ <member>"monarch-envelope"</member>
+ <member>"na-10x13-envelope"</member>
+ <member>"na-9x12-envelope"</member>
+ <member>"na-number-10-envelope"</member>
+ <member>"na-7x9-envelope"</member>
+ <member>"na-9x11-envelope"</member>
+ <member>"na-10x14-envelope"</member>
+ <member>"na-number-9-envelope"</member>
+ <member>"iso-a0"</member>
+ <member>"iso-a1"</member>
+ <member>"iso-a2"</member>
+ <member>"iso-a3"</member>
+ <member>"iso-a4"</member>
+ <member>"iso-a5"</member>
+ <member>"iso-a6"</member>
+ <member>"iso-a7"</member>
+ <member>"iso-a8"</member>
+ <member>"iso-a9"</member>
+ <member>"iso-a10"</member>
+ <member>"iso-b1"</member>
+ <member>"iso-b2"</member>
+ <member>"iso-b3"</member>
+ <member>"iso-b4"</member>
+ <member>"iso-b5"</member>
+ <member>"iso-b6"</member>
+ <member>"iso-b7"</member>
+ <member>"iso-b8"</member>
+ <member>"iso-b9"</member>
+ <member>"iso-b10"</member>
+ <member>"jis-b1"</member>
+ <member>"jis-b2"</member>
+ <member>"jis-b3"</member>
+ <member>"jis-b4"</member>
+ <member>"jis-b5"</member>
+ <member>"jis-b6"</member>
+ <member>"jis-b7"</member>
+ <member>"jis-b8"</member>
+ <member>"jis-b9"</member>
+ <member>"jis-b10"</member>
+ <member>"iso-c3"</member>
+ <member>"iso-c4"</member>
+ <member>"iso-c5"</member>
+ <member>"iso-c6"</member>
+ <member>"iso-designated-long"</member>
+ </simplelist>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Verification:
+ Use
+<programlisting>
+ xplsprinters -l | egrep "^printer:|default-medium=|medium-source-sizes-supported="
+</programlisting>
+ to view the medium settings for all printers.
+ The 'medium-source-sizes-supported='-lines have the format XXX.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </note>
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ How do I change the default printer resolution ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ This is controlled via the "default-printer-resolution" attribute in the
+ document attribute pool (<filename><envar>${XPCONFIGDIR}</envar>/<envar>${LANG}</envar>/print/attributes/document</filename>
+ and/or <filename><envar>${XPCONFIGDIR}</envar>/C/print/attributes/document</filename>).
+ Examples:
+ <orderedlist>
+ <listitem>
+ <para>
+ Adding/modifying the following line to/in
+ <filename><envar>${XPCONFIGDIR}</envar>/C/print/attributes/document</filename> sets the default
+ resolution for all printers to 600 DPI:
+<screen>
+ *default-printer-resolution: 600
+</screen>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Adding/modifying the following two lines to/in
+ <filename><envar>${XPCONFIGDIR}</envar>/C/print/attributes/document</filename> sets the default resolution
+ for all printers to 300 DPI except for printer "tekcolor_ps" which
+ should default to 1200 DPI:
+<screen>
+ *default-printer-resolution: 300
+ tekcolor_ps.default-printer-resolution: 1200
+</screen>
+ </para>
+ </listitem>
+ </orderedlist>
+
+ <note>
+ <title>Notes:</title>
+ <para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Not all printers support all resolutions. The model-config may restrict
+ the available resolutions.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Setting a resolution which is not supported by either the
+ DDX(=driver) or not specified in the model-config will cause Xprt to
+ not set a default resolution.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ The PostScript DDX supports the following default resolutions
+ <itemizedlist>
+ <listitem>
+ <para>
+ X.org release 6.6 (X116.6):
+ <simplelist type="inline">
+ <member>300</member>
+ <member>600</member>
+ <member>720</member>
+ <member>940</member>
+ <member>1200</member>
+ <member>1440</member>
+ <member>2400</member>
+ </simplelist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ xprint.mozdev.org release &gt;= 006:
+ <simplelist type="inline">
+ <member>75</member>
+ <member>100</member>
+ <member>120</member>
+ <member>150</member>
+ <member>180</member>
+ <member>200</member>
+ <member>240</member>
+ <member>300</member>
+ <member>360</member>
+ <member>400</member>
+ <member>600</member>
+ <member>720</member>
+ <member>940</member>
+ <member>1200</member>
+ <member>1440</member>
+ <member>2400</member>
+ </simplelist>
+ </para>
+ </listitem>
+ </itemizedlist>
+
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Verification:
+ Use
+<programlisting>
+ xplsprinters -l | egrep "^printer:|default-printer-resolution=|resolution="
+</programlisting>
+ to view the resolution settings for all printers.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </note>
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ How do I change the default settings for "portrait"/"landscape"/"seascape" (=page orientation) ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ This is controlled via the "content-orientation" attribute in the
+ document attribute pool (<filename><envar>${XPCONFIGDIR}</envar>/<envar>${LANG}</envar>/print/attributes/document</filename>
+ and/or <filename><envar>${XPCONFIGDIR}</envar>/C/print/attributes/document</filename>).
+ Examples:
+ <orderedlist>
+ <listitem>
+ <para>
+ Adding/modifying the following line to/in
+ <filename><envar>${XPCONFIGDIR}</envar>/C/print/attributes/document</filename> sets the default
+ orientation for all printers to "portrait":
+<screen>
+ *content-orientation: portrait
+</screen>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Adding/modifying the following two lines to/in
+ <filename><envar>${XPCONFIGDIR}</envar>/C/print/attributes/document</filename> sets the default orientation
+ for all printers to "portrait" except for printer "ps003" which should
+ default to "landscape":
+<screen>
+ *content-orientation: portrait
+ ps003.content-orientation: landscape
+</screen>
+ </para>
+ </listitem>
+ </orderedlist>
+
+ <note>
+ <title>Notes:</title>
+ <para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Not all printers support all orientations. The model-config may
+ restrict the available orientations.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Setting an orientation which is not supported by either the
+ DDX(=driver) or not specified in the model-config will cause Xprt to
+ not set a default orientation.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ The PostScript DDX supports the following orientations:
+ "portrait", "landscape", "reverse-portrait" and "reverse-landscape".
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Verification:
+ Use
+<programlisting>
+ xplsprinters -l | egrep "^printer:|default_orientation=|orientation="
+</programlisting>
+ to view the orientation settings for all printers.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </note>
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ How can I prevent Xprt from using any bitmap(=gfx) fonts ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ Do not pass any bitmap fonts with the "-fp" (=font path) argument.
+ However you have to provide a 'fixed' and a 'cursor' font, a Xserver
+ can't start without having these fonts.
+ <blockquote><procedure>
+ <title>Task list:</title>
+ <step>
+ <para>
+ Create a new directory:
+<screen>
+% <userinput>mkdir Xp_dummyfonts</userinput>
+% <userinput>cd Xp_dummyfonts</userinput>
+</screen>
+ </para>
+ </step>
+ <step>
+ <para>
+ Create a <filename>fonts.alias</filename> file with the following content:
+<programlisting>
+! alias for "fixed" font
+! original from /usr/openwin/lib/X11/fonts/misc/fonts.alias looks like this:
+! fixed "-misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1"
+fixed -*-r-*--*-*-*-*-*-*-iso8859-1
+! EOF.
+</programlisting>
+ </para>
+ </step>
+ <step>
+ <para>
+ Copy or link "<filename>6x13.pcf.Z</filename>" and "<filename>cursor.pcf.Z</filename>" and create <filename>fonts.dir</filename>
+<screen>
+% <userinput>ln -s /usr/openwin/lib/X11/fonts/misc/6x13.pcf.Z .</userinput>
+% <userinput>ln -s /usr/openwin/lib/X11/fonts/misc/cursor.pcf.Z .</userinput>
+% <userinput>mkfontdir $PWD</userinput>
+</screen>
+ </para>
+ </step>
+ <step>
+ <para>
+ Verify: The directory should now look like this:
+<screen>
+% <userinput>ls -1</userinput>
+<computeroutput>6x13.pcf.Z
+cursor.pcf.Z
+fonts.alias
+fonts.dir</computeroutput>
+</screen>
+ </para>
+ </step>
+ <step>
+ <para>
+ Add the full path (e.g. /home/xp/Xp_dummyfonts) as last element
+ of the font path when starting Xprt:
+<screen>
+ % <userinput>Xprt -fp /usr/openwin/lib/X11/fonts/Type1/,/home/xp/Xp_dummyfonts :12</userinput>
+</screen>
+ </para>
+ </step>
+ </procedure></blockquote>
+
+<!-- fixme: puck is dead, need replacement
+ <note>
+ <para>
+ I created a tarball from these instructions, get it from
+ <ulink url="http://puck.informatik.med.uni-giessen.de/people/gisburn/work/xprint/fonts/Xp_dummyfonts.tar.gz">http://puck.informatik.med.uni-giessen.de/people/gisburn/work/xprint/fonts/Xp_dummyfonts.tar.gz</ulink>
+ Unpack it and add the new dir to your fontpath)
+ </para>
+ </note>
+-->
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry id="configure_manual_list_of_printers">
+ <question>
+ <para>
+ I want only my manually added printers managed by Xprint. How can I
+ prevent Xprt from looking-up the printer names automatically ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ Add a line with "Augment_Printer_List %none%" to
+ <filename><envar>${XPCONFIGDIR}</envar>/C/print/Xprinters</filename> (or
+ <filename><envar>${XPCONFIGDIR}</envar>/<envar>${LANG}</envar>/print/Xprinters</filename>) and add lines with
+ "Printer &lt;name&gt;" for each printer &lt;name&gt;.
+ Example:
+<screen>
+Augment_Printer_List %none%
+Printer ps001
+Printer ps003
+Printer hplaser6
+</screen>
+ will add only the printers "ps001", ps003" and "hplaser6".
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry id="configure_custom_script_to_enumerate_system_printers">
+ <question>
+ <para>
+ How can I specify an own program/script to enumerate the printers on my system ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ Add "Augment_Printer_List my_script" to <filename><envar>${XPCONFIGDIR}</envar>/C/print/Xprinters</filename> (or
+ <filename><envar>${XPCONFIGDIR}</envar>/<envar>${LANG</envar>}/print/Xprinters</filename>).
+ The script must return the printer names - one per line, ASCII-only - to stdout.
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ Which program is used by default by Xprt to enumerate the printers on my system ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ This depends on the OS:
+ <itemizedlist>
+ <listitem>
+ <para>
+ On Solaris (and most other OSes exclusing AIX and Linux):
+<screen>
+% <userinput>lpstat -a | cut -d " " -f 1</userinput>
+</screen>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ On Linux:
+ <itemizedlist>
+ <listitem>
+ <para>
+ For Xprt build from X11R6.x X.org sources:
+<screen>
+% <userinput>lpc status | grep -v '^\t' | sed -e /:/s///</userinput> # '\t' means TAB
+</screen>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ For Xprt build from xprint.mozdev.org &lt;= release 008 sources (both lines are executed
+ to support both LPRng and CUPS (using the CUPS *BSD compatibility tools)):
+<screen>
+% <userinput>lpc status | awk '/:$/ &amp;&amp; !/@/ { print $1 }' | sed -e /:/s/// ; \
+ lpc -a status | awk '/@/ &amp;&amp; !/:/ { split( $1, name, \"@\" ); print name[1]; }'</userinput>
+</screen>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Xprt build from xprint.mozdev.org &gt;= release 009 sources uses a more flexible scheme
+ which tries to enumerate the print spoolers in the order "CUPS" (using the normal CUPS
+ (SYSV-like) commands), "LPRng" and finally "*BSD", the first working (=print queues are
+ found) print spooler is chosen.
+ The spooler(s) being used (and the query order) can be changed by the "-XpSpoolerType"
+ command line option.
+ The list of commands used to enumerate the queues for a specific spooler type
+ can be found in <filename>xc/programs/Xserver/Xprint/spooler.c</filename>
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ On AIX v4:
+<screen>
+% <userinput>lsallq | grep -v '^bsh$'</userinput>
+</screen>
+ </para>
+ </listitem>
+ </itemizedlist>
+ <note>
+ <title>Notes:</title>
+ <para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ See <filename>xc/programs/Xserver/Xprint/Init.c</filename> (xprint.mozdev.org &gt;= release 009 uses
+ <filename>xc/programs/Xserver/Xprint/spooler.c</filename>) for a complete list of commands
+ used on the specific platforms to enumerate the printers.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Note that the output is always piped through "sort" to get an
+ alphabetical order (the "default" printer is not chosen/defined
+ here(=server side), the client side is responsible to choose a default
+ printer.
+ See FAQ item about the <envar>${XPRINTER}</envar> env var how to set your default
+ printer).
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </note>
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ Where can I get more PostScript Type1 fonts from ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ Some sources:
+ <itemizedlist>
+ <listitem>
+ <para>
+ Adobe:
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ Commercial fonts:
+ <ulink url="http://www.adobe.com/type/main.html">http://www.adobe.com/type/main.html</ulink>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Free Euro font:
+ <itemizedlist>
+ <listitem>
+ <para>
+ Single-glyph (e.g. it contains <emphasis>only</emphasis> the euro char) euro font:
+ <ulink url="http://www.adobe.com/type/eurofont.html">http://www.adobe.com/type/eurofont.html</ulink> or
+ <ulink url="ftp://ftp.adobe.com/pub/adobe/type/win/all/">ftp://ftp.adobe.com/pub/adobe/type/win/all/</ulink>
+ ("eurofont.exe" can be unzipped using "unzip")
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ ISO8859-15:
+ XXX - WANTED!!
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Solaris shipps with various PS Type 1 fonts:
+ <itemizedlist>
+ <listitem>
+ <para>
+ Arabic:
+ <filename>/usr/openwin/lib/locale/ar/X11/fonts/Type1/</filename>
+ (<filename>fonts.dir</filename> and <filename>fonts.scale</filename> missing, maybe they miss the
+ presentation forms a&amp;b, too [unconfirmed])
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ ISO-8859-13 (Latin 8):
+ <filename>/usr/openwin/lib/locale/iso_8859_13/X11/fonts/Type1/</filename>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ ISO-8859-5 (Latin 5):
+ <filename>/usr/openwin/lib/locale/iso_8859_9/X11/fonts/Type1/</filename>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ ISO-8859-8/Hebrew:
+ <filename>/usr/openwin/lib/locale/iso_8859_8/X11/fonts/Type1</filename>
+ (BROKEN, even "type1fix" cannot fix them. Use the hebrew fonts from
+ <!-- XXX: FixMe!! -->
+ <ulink url="broken-link/PS_Type1_iso8859-8.tar.gz">
+ broken-link-/PS_Type1_iso8859-8.tar.gz</ulink>)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ ISO-8859-7/Modern greek:
+ <filename>/usr/openwin/lib/locale/iso_8859_7/X11/fonts/Type1/</filename>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ ISO-8859-5/Cryrillic:
+ <filename>/usr/openwin/lib/locale/iso_8859_5/X11/fonts/Type1/</filename>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ ISO-8859-4 (Latin 4):
+ <filename>/usr/openwin/lib/locale/iso_8859_4/X11/fonts/Type1/</filename>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ ISO-8859-2 (Latin 2):
+ <filename>/usr/openwin/lib/locale/iso_8859_2/X11/fonts/Type1/</filename>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ ISO-8859-1 (Latin 1) and Symbol fonts:
+ <filename>/usr/openwin/lib/X11/fonts/Type1/</filename>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+<!-- XXX/FixMe: puck is dead, need replacement... ;-(
+ <listitem>
+ <para>
+ Some of my own collections:
+ (see <ulink url="http://puck.informatik.med.uni-giessen.de/people/gisburn/work/xprint/fonts/postscript_type_1/">
+ http://puck.informatik.med.uni-giessen.de/people/gisburn/work/xprint/fonts/postscript_type_1/</ulink>):
+ <itemizedlist>
+ <listitem>
+ <para>
+ KOI8-R:
+ <ulink url="http://puck.informatik.med.uni-giessen.de/people/gisburn/work/xprint/fonts/postscript_type_1/PS_Type1_koi8-r.tar.gz">
+ http://puck.informatik.med.uni-giessen.de/people/gisburn/work/xprint/fonts/postscript_type_1/PS_Type1_koi8-r.tar.gz</ulink>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ ISO-8859-8/Hebrew:
+ <ulink url="http://puck.informatik.med.uni-giessen.de/people/gisburn/work/xprint/fonts/postscript_type_1/PS_Type1_iso8859-8.tar.gz">
+ http://puck.informatik.med.uni-giessen.de/people/gisburn/work/xprint/fonts/postscript_type_1/PS_Type1_iso8859-8.tar.gz</ulink>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+-->
+ </itemizedlist>
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ What are PMF fonts (e.g. the *.pmf fonts in
+ <filename><envar>${XPCONFIGDIR}</envar>/C/print/models/%model_name%/fonts/</filename> (or
+ <filename><envar>${XPCONFIGDIR}</envar>/<envar>${LANG}</envar>/print/models/%model_name%/fonts/</filename>)) ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ PMF "fonts" are "printer metric files" (.pmf) that describe the metrics
+ of the fonts (which means they do not contain any data to render the
+ fonts - they contain only the plain metrics of a font) which are built
+ into the printer (ROM or via font catridge etc.).
+ The file format is identical to the PCF ("Portable Compiled Format") font
+ format except that the bitmap data is not provided.
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ Can I use the fontserver ("xfs") with Xprt ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ You can use Xprt with the font server ("xfs") like with any other
+ Xserver - but it is not recommded since the font server protocol does
+ not allow access to the native font format and therefore disables font
+ download, e.g. both PS Type1 and TrueType fonts cannot be downloaded
+ anymore and Xprt will fall-back to embed them as bitmap glyphs in the
+ print job (e.g. the fonts will still appear correctly in the printout,
+ but the quality may be reduced since downloaded fonts are always better
+ than bitmap glyphs).
+ (users of xprint.mozdev.org-release &lt;= 006 may see
+ <ulink url="http://xprint.mozdev.org/bugs/show_bug.cgi?id=2092">xprint.mozdev.org bug 2092</ulink>
+ if they use "xfs"; this has been fixed in the 007 release!)
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ What is a "model-config" ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ The term "model-config" refers to the subdirs in
+ <filename><envar>${XPCONFIGDIR}</envar>/<envar>${LANG}</envar>/print/models/</filename>.
+ There subdirs contain information
+ about the attributes for a specific printer model or family/class of
+ printer models. In particular there are two kinds of information:
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ "<filename><envar>${XPCONFIGDIR}</envar>/<envar>${LANG}</envar>/print/models/${NAME_OF_MODEL}/model-config</filename>"
+ this file defines a set of attributes supported by this specific printer
+ (-family/-class/etc.)
+ and
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ "<filename><envar>${XPCONFIGDIR}</envar>/<envar>${LANG}</envar>/print/models/${NAME_OF_MODEL}/fonts/</filename>" - a
+ directory which contains a set of PMF (printer metrics file) fonts
+ builtin into the printer itself (actually the PMF "font" format
+ contains only metrics information and no glyphs).
+ These fonts are only available to the application <emphasis>after</emphasis> the
+ application has selected a printer and configured it (for developers:
+ After <function>XpSetContext</function> has been called).
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ Where can I store the default values for printers ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ XXX
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ How can I create my own model-config ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ XXX
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ How can I create my own PMF "fonts" ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ XXX - no solution yet, but
+ <ulink url="http://xprint.mozdev.org/bugs/show_bug.cgi?id=2430">xprint.mozdev.org bug 2430
+ ("RFE: Need tool to create PMF (printer metrics file) fonts")</ulink>
+ has been filed to create a freeware tool to create such fonts.
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ Where can I get more model-configs from ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ If you miss a model-config for your printer please open a bug/RFE at
+ <ulink url="http://xprint.freedesktop.org/cgi-bin/bugzilla/enter_bug.cgi?product=xprint&amp;component=Server%3A+Config%3A+model-configs">
+ http://xprint.freedesktop.org/cgi-bin/bugzilla/enter_bug.cgi?product=xprint&amp;component=Server%3A+Config%3A+model-configs</ulink>
+ (e.g. <ulink url="http://xprint.freedesktop.org/cgi-bin/bugzilla/enter_bug.cgi">http://xprint.freedesktop.org/cgi-bin/bugzilla/enter_bug.cgi</ulink>, product "Xprint", component
+ "Server Config: model-configs").
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ If I install Xprt &amp;co. as "root" in the default location and don't need
+ to set <envar>${XPCONFIGDIR}</envar> - where are my configuration files located then ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ This is platform-specific, based on the "XPrintDir" Imake variable set
+ at build time. Default location for plain X11R6.x is
+ "<filename>${XProjectRoot}/lib/X11/xserver</filename>" (set at build time), but some
+ platforms modify "XPrintDir" to alternate locations:
+ <itemizedlist>
+ <listitem>
+ <para>
+ Solaris sets <envar>${XPCONFIGDIR}</envar> to <filename class="directory">/usr/openwin/server/etc/XpConfig/</filename>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Linux (non-Debian) sets <envar>${XPCONFIGDIR}</envar> to <filename>/usr/X11R6/lib/X11/xserver/</filename>
+ or <filename>/etc/X11/xserver/</filename>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Debian Linux sets <envar>${XPCONFIGDIR}</envar> to <filename>/usr/share/Xprint/xserver/</filename>
+ </para>
+ </listitem>
+ </itemizedlist>
+ <tip>
+ <para>
+ If you don't know where the default location for <envar>${XPCONFIGDIR}</envar> is
+ located try
+<programlisting>
+ strings -a /usr/openwin/bin/Xprt | grep XPRINTDIR
+</programlisting> - it <emphasis>may</emphasis>
+ return some debug info from the binary containing the builtin XpConfig
+ path.
+ </para>
+ </tip>
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ Are config files and/or the PMF fonts architecture dependent ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ The PMF fonts are a variant of the PCF font format, they are
+ (like the PCF format) architecture-independent.
+ These fonts must be kept together with the other model config data since
+ they depend on the printer model (de facto
+ <filename><envar>${XPCONFIGDIR}</envar>/C/print/models/</filename> (and/or
+ <filename><envar>${XPCONFIGDIR}</envar>/<envar>${LANG}</envar>/print/models/</filename>) should be supplied by the printer
+ vendors (but most people will create their own models on demand since
+ I doubt that any vendor except HP, Sun and xprint.mozdev.org staff ever
+ looked at that stuff)).
+ Per definition they are read-only data supplied by the vendor, but
+ modifying them may be usefull, too.
+ I would say it is recommended to put treat all Xprint files in
+ <envar>${XPCONFIGDIR}</envar> as read-only vendor data; admins should create copies of
+ this tree on demand (and/or (soft-)link some files) and set
+ <envar>${XPCONFIGDIR}</envar> to the modified config data.
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ Can I localise my Xprint/Xprt configuration (l10n) ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ Yes, Xprt supports localisation ("l10n") by default. Default values for
+ all locales are stored in <filename><envar>${XPCONFIGDIR}</envar>/C/print/</filename>, locale-specific
+ settings can be set in <filename><envar>${XPCONFIGDIR}</envar>/<envar>${LANG}</envar>/print/</filename>
+ Rules:
+ <itemizedlist>
+ <listitem>
+ <para>
+ Attribute pools
+ ("<filename><envar>${XPCONFIGDIR}</envar>/*/print/attributes/document</filename>",
+ "<filename><envar>${XPCONFIGDIR}</envar>/*/print/attributes/job</filename>",
+ "<filename><envar>${XPCONFIGDIR}</envar>/*/print/attributes/printer</filename>" and
+ "<filename><envar>${XPCONFIGDIR}</envar>/*/print/models/*/model-config</filename>"):
+ "document", "job" and "printer" attribute pools and printer
+ model-configs are sourced first from the
+ "<filename><envar>${XPCONFIGDIR}</envar>/C/print/</filename>"-directory, then they are overridden by any
+ attributes from the locale-specific pools (in
+ "<filename><envar>${XPCONFIGDIR}</envar>/<envar>${LANG}</envar>/print/</filename>"), e.g. any values set in
+ "<filename><envar>${XPCONFIGDIR}</envar>/C/print/attributes/*</filename>" and
+ "<filename><envar>${XPCONFIGDIR}</envar>/C/print/models/*/model-config</filename>" will automatically
+ apply to all other locales unless they are overridden by
+ locale-specific versions of these files
+ ("<filename><envar>${XPCONFIGDIR}</envar>/<envar>${LANG}</envar>/print/attributes/*</filename>",
+ "<filename><envar>${XPCONFIGDIR}</envar>/<envar>${LANG}</envar>/print/models/*/model-config</filename>")
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ "Xprinters" (list of printers):
+ If there is a locale-specific <filename><envar>${XPCONFIGDIR}</envar>/<envar>${LANG}</envar>/Xprinters</filename> present
+ it will be used instead of <filename><envar>${XPCONFIGDIR}</envar>/C/Xprinters</filename> (e.g. values set
+ in <filename><envar>${XPCONFIGDIR}</envar>/C/Xprinters</filename> will be ignored and the values from
+ <filename><envar>${XPCONFIGDIR}</envar>/<envar>${LANG}</envar>/Xprinters</filename> will be used instead).
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Xprt will determinate the locale which should be used based on the
+ <envar>${LANG}</envar>-environment vaiable at startup time. If there is no such
+ variable set at that time LANG="C" is assumed.
+ <note>
+ <title>Note:</title>
+ <para>
+ Attribute values for paper names and orientation names refer to
+ builtin strings in the DDX code (which are itself based on
+ international standards), these cannot be changed to your own
+ "inventions" (it does it make sense to try to "localize" paper names -
+ "ISO-A4" is "ISO-A4" even in japanese/hebrew/german etc.).
+ Locale-spefific attribute pools can set their own, different values -
+ but only within the allowed range of values supported by the DDX and
+ printers's model-config.
+ </para>
+ </note>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ Can I execute my own scripts to process the PostScript files generated
+ by Xprt ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ Yes, there are at least two possible solutions:
+ <orderedlist>
+ <listitem>
+ <para>
+ Create your own model-config which uses a custom "xp-spooler-command"
+ value - the xprint.mozdev.org's
+ "PSspooldir" model config (see
+ "<filename><envar>${XPCONFIGDIR}</envar>/C/print/models/PSspooldir/</filename>" and
+ "<filename><envar>${XPCONFIGDIR}</envar>/C/print/attributes/printer</filename>" and
+ "<filename><envar>${XPCONFIGDIR}</envar>/C/print/Xprinters</filename>")
+ and
+ "PS2PDFspooldir-GS" model config (see
+ "<filename><envar>${XPCONFIGDIR}</envar>/C/print/models/PS2PDFspooldir-GS/</filename>" and
+ "<filename><envar>${XPCONFIGDIR}</envar>/C/print/attributes/printer</filename>" and
+ "<filename><envar>${XPCONFIGDIR}</envar>/C/print/Xprinters</filename>")
+ are good examples for that.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Use an existing "model-config" (which would normally send it's data to
+ a printer using the default print spooler command) and provide a
+ custom "xp-spooler-command".
+ <blockquote><procedure>
+ <title>
+ Example (using "SPSPARC2" as printer model, <filename>/w/xp_conv</filename>
+ as the script to execute and "myscriptprinter" as name of the printer):
+ </title>
+ <step>
+ <para>
+ Edit <filename><envar>${XPCONFIGDIR}</envar>/C/print/attributes/printer</filename> and add these lines
+ (Xprt will replace "%printer-name%" with the printer's name,
+ "%copy-count%" with the number of job copies, "%job-name%" with the
+ job's title and "%options%" with any custom spooler options):
+<screen>
+myscriptprinter.xp-model-identifier: SPSPARC2
+myscriptprinter.xp-spooler-command: /w/xp_conv -p %printer-name% -c %copy-count% -t %job-name% -o "%options%"
+</screen>
+ </para>
+ </step>
+ <step>
+ <para>
+ Edit <filename><envar>${XPCONFIGDIR}</envar>/C/print/Xprinters</filename> and append this line:
+<screen>
+Printer myscriptprinter
+</screen>
+ </para>
+ </step>
+ </procedure></blockquote>
+
+ </para>
+ </listitem>
+ </orderedlist>
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ How can I disable "xp_ps_spooldir_tmp_Xprintjobs" / "xp_pdf_spooldir_tmp_Xprintjobs" printer targets ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ Edit <filename><envar>${XPCONFIGDIR}</envar>/C/print/Xprinters</filename> and
+ remove or comment-out (using '#') the lines "Printer xp_ps_spooldir_tmp_Xprintjobs"
+ and "Printer xp_pdf_spooldir_tmp_Xprintjobs".
+
+ <note>
+ <title>Note:</title>
+ <para>
+ Note that Xprt will <emphasis>NOT</emphasis> start if this printer has been removed/disabled
+ and no other print queue is available (e.g. if "xp_ps_spooldir_tmp_Xprintjobs"
+ and "Printer xp_pdf_spooldir_tmp_Xprintjobs" are the only printer target available).
+ </para>
+ </note>
+ </para>
+ </answer>
+</qandaentry>
+
+</qandadiv>
+
+
+<qandadiv id="faq_troubleshooting">
+<title>Troubleshooting</title>
+
+<qandaentry>
+ <question>
+ <para>
+ Xprt refuses to start with the message "sh: lpc: command not found" on
+ my Linux machine. What does that mean ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ Some versions of Xprt look up printer queues using "lpc" on Linux.
+ In this case "lpc" cannot be found for some reason.
+ Solution:
+ Find the place where "lpc" is installed on your machine (some
+ distributions put it into <filename>/usr/sbin</filename>, some into <filename>/usr/bin/</filename>) and check
+ whether your <envar>PATH</envar> env var includes this directory.
+ Example (if "lpc" is located in <filename>/usr/sbin/</filename>):
+<screen>
+ % <userinput>which lpc</userinput>
+ <computeroutput>/usr/sbin/lpc</computeroutput>
+ % <userinput>export PATH=$PATH:/usr/sbin</userinput>
+ # Start Xprt ...
+ % <userinput>Xprt &lt;your-options-come-here&gt;</userinput>
+</screen>
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ When the application (=client side) tries to connect to the Xprt
+ (Xserver) side it fails with a
+<screen>
+<computeroutput>Xlib: connection to "meridian:52.0" refused by server
+Xlib: Client is not authorized to connect to Server</computeroutput>
+</screen>
+ What does that mean ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ X11 implements access control. You can have host-based, cookie-based (a
+ "cookie" is used like a passport) or user-based (SecureRPC or Kerberos5)
+ authentification. <citerefentry><refentrytitle>Xsecurity</refentrytitle><manvolnum>__miscmansuffix__</manvolnum></citerefentry>
+ has most of the details.
+ <orderedlist>
+ <listitem>
+ <formalpara>
+ <title>
+ No access control:
+ </title>
+ <para>
+ If you do not want to use access control for Xprt then you can start it
+ with the option "-ac" (see <citerefentry><refentrytitle>Xserver</refentrytitle><manvolnum>__mansuffix__</manvolnum></citerefentry>)
+ to disable the access control.
+ Example:
+<screen>
+ % <userinput>Xprt -ac -audit 4 :12</userinput>
+</screen>
+ will start Xprt with access control disabled and with auditing enabled
+ (e.g. the "-audit 4" option).
+ <warning>
+ <title>
+ WARNING
+ </title>
+ <para>
+ Disabling the access control will enable <emphasis>everyone</emphasis> who can
+ access Xprt to print on your printers (that's why the above example
+ shows how to use auditing, too - that you can see who does something
+ with Xprt...) !!
+ </para>
+ </warning>
+ </para>
+ </formalpara>
+ </listitem>
+ <listitem>
+ <formalpara>
+ <title>
+ Host-based access control:
+ </title>
+ <para>
+ Host-based access control can be archived using <filename>/etc/X&lt;dpy&gt;.hosts</filename>
+ (&lt;dpy&gt; == display number, e.g. <filename>/etc/X0.hosts</filename> for display 0 (see
+ <citerefentry><refentrytitle>Xserver</refentrytitle><manvolnum>__mansuffix__</manvolnum></citerefentry>
+ manual page for further details)).
+ <blockquote><procedure>
+ <title>Example</title>
+ <step>
+ <para>
+ Add the following line to `<filename>/etc/X12.hosts</filename>' (assuming you want that
+ the hosts 'merkur' and 'mars' should be able to access the Xprt
+ server running as display 12 on your host 'neptun'):
+<screen>
+INET:merkur
+INET:mars
+</screen>
+ </para>
+ </step>
+ <step>
+ <para>
+ Start Xprt
+ </para>
+ </step>
+ <step>
+ <para>
+ Verify that Xprt is correctly configured:
+<screen>
+% <userinput>export DISPLAY=neptun:12</userinput>
+% <userinput>xhost</userinput>
+<computeroutput>access control enabled, only authorized clients can connect
+INET:localhost
+LOCAL:
+INET:merkur
+INET:mars</computeroutput>
+</screen>
+ </para>
+ </step>
+ </procedure></blockquote>
+ </para>
+ </formalpara>
+ </listitem>
+ </orderedlist>
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ Xprt refuses to start with the message "failed to set default font path
+ '...' Fatal server error: could not open default font 'fixed'".
+ What does that mean ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ This means one or more components in the font path (set via the option
+ "-fp") are either...
+ <itemizedlist>
+ <listitem>
+ <para>
+ ... not valid
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ ... contain fonts not supported by this Xserver (e.g. support has not
+ be compiled "in" (usually happens for TrueType (which are only support for Solaris version
+ of Xprt and xprint.mozdev.org releases &ge; 008), OpenType (which are only supported by
+ xprint.mozdev.org releases 009 or higher) or F3 fonts (Sunsoft/F3 fonts are Solaris-specific
+ and <emphasis>not</emphasis> supported by other vendors (AFAIK))
+ when support for these fonts was not enabled at build time))
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ ... no font or font alias in the font path matches the name "fixed"
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ ... an entry in <filename>fonts.dir</filename> or <filename>fonts.alias</filename>
+ with the name "fixed" which references a non-existing or non-readable file
+ </para>
+ </listitem>
+ </itemizedlist>
+
+ </para>
+ </answer>
+</qandaentry>
+
+
+<qandaentry>
+ <question>
+ <para>
+ Just copying my fonts into a directory and adding the path to my Xprt
+ command line didn't work - I always get "Fatal server error: could not
+ open default font 'fixed'". What am I doing wrong ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ Every Xserver needs an index file called <filename>fonts.dir</filename> to tell it which
+ fonts are available in this directory and which properties these fonts
+ have.
+ </para>
+ <para>
+ If you are lucky there may be already a <filename>fonts.scale</filename> file which can be
+ used by "mkfontdir" to create the <filename>fonts.dir</filename> file.
+ If there is no <filename>fonts.scale</filename> then you have to create your own
+ <filename>fonts.dir</filename>/<filename>fonts.scale</filename> either by hand or
+ via tools like "mkfontscale" (works for all types of scaleable fonts),
+ "type1inst" (for PS Type1 fonts; see
+ <ulink url="http://packages.debian.org/stable/utils/type1inst.html">http://packages.debian.org/stable/utils/type1inst.html</ulink>)
+ or "ttmkfdir" (for TrueType fonts; see
+ <ulink url="http://packages.debian.org/stable/x11/ttmkfdir.html">http://packages.debian.org/stable/x11/ttmkfdir.html</ulink>).
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ Xprt refuses to start with the message "Fatal server error: Cannot
+ establish any listening sockets - Make sure an X server isn't already
+ running". What does that mean ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ There is already a Xserver running at the display ID you have specified
+ to start Xprt (for example your framebuffer Xserver runs at ":0" then
+ Xprt can't run at the same display display).
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ Xprt refuses to start with the message "Fatal server error: Failed to
+ establish all listening sockets". What does that mean ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ This means that the Xserver could not open one of it's sockets. Check
+ the permission of /tmp/.X11-pipe and /tmp/.X11-unix (on Solaris a
+ Xserver must run set-gid "root" to access these directories).
+ Either fix the permission or start Xprt with the option "-pn". Using this
+ option requires to access the server <emphasis>always</emphasis> with
+ &lt;hostname&gt;:&lt;displaynum&gt; (see <citerefentry><refentrytitle>Xserver</refentrytitle><manvolnum>__mansuffix__</manvolnum></citerefentry>
+ manual page for the side-effects of this option).
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ Xprt refuses to start with the message "Fatal server error: could not
+ open default font 'fixed'" or "Fatal server error: could not open default
+ cursor font 'cursor'".
+ </para>
+ </question>
+ <answer>
+ <para>
+ All Xservers at least two fonts as the minimum: One fixed-width font
+ ("fixed") and one font for the cursor ("cursor"). Be sure that the font
+ path contains these fonts.
+<!-- XXX/FixMe: puck is dead, need replacement... ;-(
+ I created a tarball which contains only these two fonts, get it from
+ <ulink url="http://puck.informatik.med.uni-giessen.de/people/gisburn/work/xprint/fonts/Xp_dummyfonts.tar.gz">
+ http://puck.informatik.med.uni-giessen.de/people/gisburn/work/xprint/fonts/Xp_dummyfonts.tar.gz</ulink>
+-->
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ Xprt refuses to start with the message "Fatal server error: no screens
+ found". What does that mean ?
+ </para>
+ </question>
+ <answer>
+ <formalpara>
+ <title>Cause:</title>
+ <para>
+ This means that Xprt could not find any printers. Either there are no
+ printers installed, "lpstat"/"lpc" could not find any printers or the
+ configuration does not contain any manual printer configurations
+ (see Q/A item "Which program is used by default by Xprt to enumerate the
+ printers on my system" for further details...).
+ </para>
+ </formalpara>
+
+ <formalpara>
+ <title>Solution:</title>
+ <para>
+ Two solutions:
+ <orderedlist>
+ <listitem>
+ <formalpara>
+ <title>
+ Using "PSspooldir" model:
+ </title>
+ <para>
+ Xprt releases from <ulink url="http://xprint.mozdev.org/">http://xprint.mozdev.org/</ulink> provide the "PSspooldir"
+ model config for such cases. Just edit the "<filename>Xprinters</filename>" file and add
+ this line:
+<screen>
+Printer xp_ps_spooldir_tmp_Xprintjobs
+</screen>
+ this will add the pre-configured (see
+ <filename><envar>${XPCONFIGDIR}</envar>/C/print/attributes/printer</filename>) "xp_ps_spooldir_tmp_Xprintjobs"
+ printer which will send jobs to the directory "/tmp/Xprintjobs/"
+ instead to a printer queue.
+ (This feature was added in the xprint.mozdev.org release 007, see
+ <ulink url="http://xprint.mozdev.org/bugs/show_bug.cgi?id=2475">xprint.mozdev.org bug 2475 ("RFE: Need
+ model-config which spools print jobs in a predefined directory")</ulink>.)
+ </para>
+ </formalpara>
+ </listitem>
+ <listitem>
+ <formalpara>
+ <title>
+ Manual setup (task list):
+ </title>
+ <para>
+ <blockquote>
+ <procedure>
+ <step>
+ <para>
+ Provide a simple "Xprinters" spec file which contains a dummy
+ queue.
+ Example:
+<screen>
+# Create "Xprinters_onlydummy" file which turns autolookup of printers
+# OFF (using "Augment_Printer_List %none%") and provides one dummy
+# queue called "ps_myscript" instead (using "Printer ps_myscript")
+% <userinput>echo "Augment_Printer_List %none%" >Xprinters_onlydummy</userinput>
+% <userinput>echo "Printer ps_myscript" >>Xprinters_onlydummy</userinput>
+</screen>
+ </para>
+ </step>
+ <step>
+ <para>
+ Edit <filename><envar>${XPCONFIGDIR}</envar>/C/print/attributes/printer</filename> and add these
+ two lines:
+<screen>
+ps_myscript.xp-model-identifier: PSdefault
+ps_myscript.xp-spooler-command: /home/sanja/xprint_test/my_xprt_cat_script.sh
+</screen>
+ This means that the printer "ps_myscript" now uses the "PSdefault"
+ printer model and it will feed the jobs to the script
+ "/home/sanja/xprint_test/my_xprt_cat_script.sh" (via stdin).
+ Note that the absolute path is required for "*xp-spooler-command".
+ </para>
+ </step>
+ <step>
+ <para>
+ Start Xprt on display 18, passing the "Xprinters_onlydummy"
+ using the "-XpFile" option:
+<screen>
+% <userinput>Xprt -XpFile ./Xprinters_onlydummy -pn -ac -audit 4 :18</userinput>
+</screen>
+ </para>
+ </step>
+ </procedure>
+ </blockquote>
+ </para>
+ </formalpara>
+ </listitem>
+ </orderedlist>
+ </para>
+ </formalpara>
+ </answer>
+</qandaentry>
+
+<qandaentry id="printout_only_covers_1_4_of_the_paper">
+ <question>
+ <para>
+ "Printing itself works but the printout covers only 1/4 of the paper - what am I doing wrong ?"
+ </para>
+ </question>
+ <answer>
+ <para>
+ This is usually an indicator for a wrong DPI setting. The default
+ "PSdefault" model config uses 300 DPI but some printers only support
+ 600 DPI.
+ </para>
+ <formalpara>
+ <title>Workaround:</title>
+ <para>
+ Edit <filename><envar>${XPCONFIGDIR}</envar>/C/print/attributes/document</filename> and replace the line
+ "*default-printer-resolution: 300" with
+ "*default-printer-resolution: 600"
+ (Note that locale-specific settings in
+ <filename><envar>${XPCONFIGDIR}</envar>/<envar>${LANG}</envar>/print/attributes/document</filename> always override values
+ set in <filename><envar>${XPCONFIGDIR}</envar>/C/print/attributes/document</filename>.)
+ </para>
+ </formalpara>
+ <formalpara>
+ <title>Solution:</title>
+ <para>
+ Create a model-config for your printer which only contains attributes
+ supported by your printer ("printer-resolutions-supported" is the
+ attribute in the "model-config" which holds the space-seperated list
+ of DPI values which are supported by the printer).
+ </para>
+ </formalpara>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ "Printing works but I get large borders/margins..." / "[Top] margin is too small" /
+ "Margins are wrong" / etc.
+ </para>
+ </question>
+ <answer>
+ <para>
+ Two possible causes:
+ <itemizedlist>
+ <listitem>
+ <para>
+ Usually same issue as "Printing itself works but the printout covers
+ only 1/4 of the page"-issue: Wrong DPI.
+ Solution: Check the DPI value and adjust it as described in the FAQ item
+ above. Common DPI values for the PostScript DDX are 240, 300, 360, 400
+ and 600 DPI.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ You are trying to print "US-letter" on a "DIN-A4" paper or "DIN-A4" on
+ "US-letter".
+ </para>
+ <para>
+ Solution: Check your paper settings
+ </para>
+ <para>
+ Note that the default papersize for Xprt depends on the locale
+ (e.g. on the env var <envar>${LANG}</envar>) Xprt is running in - "en_US"&amp;co. get
+ US-letter, all others use DIN-A4 (incl. german/austrian etc. locales)).
+ Exception from this rule: If the selected printer does not support the
+ default paper size it will set no default paper size for this printer
+ (then the application side has to make an explicit choice).
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ Xprt prints a warning like "Xp Extension: could not find config dir
+ /usr/X11R6/lib/X11/C/print" - what does that mean ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ This is actually the worst case what can happen.
+ The message indicates that Xprt was unable to find it's configuration
+ data.
+ </para>
+ <formalpara>
+ <title>Solution:</title>
+ <para>
+ Two solutions are possible:
+ <itemizedlist>
+ <listitem>
+ <para>
+ Install the configuration data at the requested location
+ (<filename>/usr/X11R6/lib/X11/C/print/</filename> in this example)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Set the <envar>${XPCONFIGDIR}</envar> env var to the location of the Xprt
+ configuration directory.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </formalpara>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ Xprt crashes with "Fatal server error: Beziers this big not yet supported"
+ What does that mean ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ This is a known issue in the X11R6.5.1 code. In rare cases some PostScript
+ Type1 fonts can trigger this.
+ See "My PS Type1 font does not work with my Xserver" ...
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ "My PS Type1 font does not work with my Xserver - how can I fix this ?"
+ </para>
+ </question>
+ <answer>
+ <para>
+ Some PS Type1 do not work out-of-the-box with all PS Type1 font engines -
+ some will work with the Adobe font engine (used in Solaris Xsun) but not
+ with the X.org font engine (or the other way round) or the fonts are
+ simply broken.
+
+ The following procedure will try to fix this problem:
+ Get the "type1fix" perl script the TeXTrace package
+ (<ulink url="http://www.inf.bme.hu/~pts/textrace-latest.tar.gz">http://www.inf.bme.hu/~pts/textrace-latest.tar.gz</ulink>)
+ and run it over the fonts.
+
+ Example 1 (filter fonts):
+<screen>
+# Broken PFA fonts are in broken_fonts/
+% <userinput>mkdir fixed_fonts ; cd fixed_fonts</userinput>
+% <userinput>for i in ../broken_fonts/*.pfa ; do
+ echo " ------- $i" ;
+ type1fix.pl --ofmt=pfa --infile=$i --outfile=$(basename ${i}) ;
+ done</userinput>
+</screen>
+
+ Example 2 (filter fonts and convert them to PFB on-the-fly; do not forget
+ to update <filename>fonts.scale</filename> and run "mkfontdir" (to update <filename>fonts.dir</filename>) ;
+ systems which use the Adobe font engine (like Solaris/Xsun) may require
+ to run "makepsres", too):
+<screen>
+# Broken PFA fonts are in broken_fonts/
+% <userinput>mkdir fixed_fonts ; cd fixed_fonts</userinput>
+% <userinput>for i in ../broken_fonts/*.pfa ; do
+ echo " ------- $i" ;
+ type1fix.pl --ofmt=pfb --infile=$i --outfile=$(basename ${i%.pfa}.pfb) ;
+ done</userinput>
+</screen>
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ I can't get it working. I have set <envar>${DISPLAY}</envar> correctly to point to the
+ Xprt display and... ... What is going wrong ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ Do not set <envar>${DISPLAY}</envar> to the Xprt server. You still need your normal
+ Xserver for your video card - Xprt is only for your printer(s).
+ Applications look up Xprt servers via the <envar>${XPSERVERLIST}</envar> env var, <emphasis>NOT</emphasis>
+ via the <envar>${DISPLAY}</envar> env var.
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ When I try to print via Xprint I get the message "Fatal server error:
+ unable to exec '/usr/bin/lp'". What is going wrong here ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ This usually means that the spooler application "<filename>/usr/bin/lp</filename>"
+ could not be launched. This is usually the result when
+ <filename>/usr/bin/lp</filename> does not exist or
+ cannot be executed (for example, shell scripts without the +x (executable) flag etc.).
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ The Solaris Xprt prints some error messages about PostScript fonts like
+ "FOOBAR not found, using Courier. CMEX0123 not found, using Courier."
+ etc. and uses "Courier" instead of these fonts...
+ </para>
+ </question>
+ <answer>
+ <formalpara>
+ <title>Cause:</title>
+ <para>
+ The Solaris (Adobe-based) PostScript font engine requires a "PostScript
+ resource database" file named "<filename>PSres.upr</filename>" to use the PostScript fonts
+ correctly.
+ </para>
+ </formalpara>
+ <formalpara>
+ <title>Solution:</title>
+ <para>
+ Create the missing <filename>PSres.upr</filename> database.
+ <blockquote>
+ <procedure>
+ <title>Steps to create the missing "<filename>PSres.upr</filename>" file (task list):</title>
+ <step>
+ <para>
+ Go to the location where the matching fonts are installed (we're using
+ <filename>/home/sanja/mathml_fonts/tex_cmps/Type1/</filename> in this example):
+<screen>
+% <userinput>cd /home/sanja/mathml_fonts/tex_cmps/Type1//</userinput>
+</screen>
+ </para>
+ </step>
+ <step>
+ <para>
+ Create "<filename>PSres.upr</filename>" using the "makepsres" command.
+<screen>
+% <userinput>makepsres</userinput>
+</screen>
+ </para>
+ </step>
+ <step>
+ <para>
+ Validation:
+ Make sure the file has been created:
+<screen>
+% <userinput>ls -l PSres.upr</userinput>
+</screen>
+ </para>
+ </step>
+ <step>
+ <para>
+ Restart Xprt server(s):
+<screen>
+% <userinput>/etc/init.d/xprint restart</userinput>
+</screen>
+ </para>
+ </step>
+ <step>
+ <para>
+ Restart application which uses these fonts
+ </para>
+ </step>
+ </procedure>
+ </blockquote>
+ </para>
+ </formalpara>
+ <formalpara>
+ <title>References:</title>
+ <para>
+ <itemizedlist>
+ <listitem><para><citerefentry><refentrytitle>makepsres</refentrytitle><manvolnum>1</manvolnum></citerefentry> manual page</para></listitem>
+ <listitem><para><ulink url="http://bugzilla.mozilla.org/show_bug.cgi?id=120560">bugzilla.mozilla.org 120560 ("Solaris Xsun does not like CMEX10/CMSY10 Type1 fonts")</ulink></para></listitem>
+ <listitem><para><ulink url="http://bugzilla.mozilla.org/show_bug.cgi?id=142718">bugzilla.mozilla.org 142718 ("Document how to get the MathML fonts to work on Solaris")</ulink></para></listitem>
+ </itemizedlist>
+ </para>
+ </formalpara>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ "Xprt refused to start, complaining about a missing dir
+ (<filename>/etc/X11/xserver/C/print/</filename> directory)... I created it by hand (empty) and
+ started Xprt but it still does not work properly..."
+ </para>
+ </question>
+ <answer>
+ <para>
+ Xprt expects some config data in this directory. Just making it an
+ existing but empty dir will work around the error message but will not
+ result in a properly working Xprt since it has no (usefull) builtins
+ which would make it possible to run the binary without the config data.
+ Your X11 binary distribution should always come with the config data
+ (for example <filename>/usr/openwin/server/etc/XpConfig/</filename> on Solaris) or you will not
+ be able to use Xprint (however it is possible to copy the config data
+ from another system :)
+ BTW: Source for the configs can be found under <filename>xc/programs/Xserver/XpConfig/</filename>
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ My Linux system already shipps with a '<filename>/usr/X11R6/bin/Xprt</filename>'-binary.
+ Do I need the binary distribution from <ulink url="http://xprint.mozdev.org/">http://xprint.mozdev.org/</ulink> ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ This depends on what is shipped with your Linux distribution.
+ Please check the "vendor" string of the Xprt server:
+<screen>
+% <userinput>Xprt :10 &amp;</userinput>
+% <userinput>xdpyinfo -display :10 | grep -i "vendor string"</userinput>
+</screen>
+ If this outputs a line like "vendor string: The XFree86 Project, Inc"
+ then you have the Xprt binary build from Xfree86 sources - which are
+ broken - even the newest version [I'll update this as soon as Xfree86
+ shipps with a working version].
+ Xprt from Solaris, HP-UX and my own builds (which identifies itself as
+ "vendor string: xprint.mozdev.org" for releases &gt;= 007, older releases
+ (e.g. &lt;= 006) identify itself as as "vendor string: The X.Org Group")
+ are known to work proprtly.
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ I am getting the error message "error opening security policy file
+ /usr/X11R6/lib/X11/xserver/SecurityPolicy". What does that mean ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ The policy file for the SECURITY extension cannot be found.
+ This is not serious unless you want to make use of features of the
+ SECURITY extensions (like treating clients as "untrusted", e.g. restrict
+ their access to certain Xserver resources).
+ Normally the missing policy file is a problem with your Unix/Linux X11
+ distribution; consult your vendor where to get the missing file from.
+ Alternatively you can get the plain X11R6.6 security policy file from
+ <ulink url="ftp://ftp.x.org/pub/R6.6/xc/programs/Xserver/Xext/SecurityPolicy">ftp://ftp.x.org/pub/R6.6/xc/programs/Xserver/Xext/SecurityPolicy</ulink>
+ (copy it to the matching location - but be sure that you do not overwrite any
+ existing security policy file).
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ I have modified the "HPLJ4family" [or "HPDJ1600C" etc.] printer model to
+ work with my PostScript printer, but when I print I get empty places
+ where some text should be - what am I doing wrong here ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ The "HPLJ4family" and "HPDJ1600C" models are PCL-only, check
+ the model-config spec
+ (<filename><envar>${XPCONFIGDIR}</envar>/C/print/models/${MODEL_NAME}/model-config</filename>) - if the
+ "xp-ddx-identifier" attribute says something with "PCL" (like
+ "XP-PCL-MONO" etc.) in the value string then this model-config is for
+ the PCL-DDX <emphasis>only</emphasis> (e.g. their PMF fonts do not supply the neccesary
+ information (e.g. the "_ADOBE_POSTSCRIPT_FONTNAME" chunk is missing;
+ they only provide the "PCL_FONT_NAME" chunk) nor are these fonts
+ accessible via the PostScript-support in these printers.
+ A solution is to use the "PSdefault" model instead (and/or create your
+ customized own version of this model) - or look if there is a
+ model-config beginning with the same name and ending with "PS" (e.g.
+ "HPLJ4family-PS").
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ Xprt outputs warning messages like:
+<screen>
+<computeroutput>
+Xp Extension: Can't load driver XP-PCL-MONO
+ init function missing
+Xp Extension: Can't load driver XP-RASTER
+ init function missing
+</computeroutput>
+</screen>
+ What does that mean ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ Two possible problems:
+ <orderedlist>
+ <listitem>
+ <para>
+ The requested driver is not supported by that version of Xprt.
+ For example Solaris 2.7 Xprt does not support XP-PCL-MONO nor the
+ XP-RASTER driver.
+ Valid values for the "xp-ddx-identifier" attribute in
+ <filename><envar>${XPCONFIGDIR}</envar>/*/print/attributes/printers</filename> and/or
+ <filename><envar>${XPCONFIGDIR}</envar>/*/print/models/*/model-config</filename> are
+ <itemizedlist>
+ <listitem>
+ <para>
+ Solaris 2.7: XP-POSTSCRIPT and XP-PCL-COLOR
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Solaris &gt;=2.8: XP-POSTSCRIPT, XP-PCL-COLOR, XP-PCL-MONO and XP-RASTER
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ HP-UX: XP-POSTSCRIPT, XP-PCL-COLOR, XP-PCL-MONO, XP-PCL-LJ3,
+ XP-PCL-DJ1200 and XP-RASTER
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ xprint.mozdev.org release 007: XP-POSTSCRIPT and XP-RASTER
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ xprint.mozdev.org release 008: XP-POSTSCRIPT, XP-PCL-COLOR,
+ XP-PCL-MONO, XP-PCL-LJ3 and XP-RASTER
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ xprint.mozdev.org release &gt;=2.0 (planned): XP-POSTSCRIPT, XP-PCL-COLOR,
+ XP-PCL-MONO, XP-PCL-LJ3, XP-RASTER, XP-PDF and XP-SVGPRINT.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ There may be too many drivers loaded into one Xprt instance.
+ By default a single Xserver instance can only handle three screens - and
+ since one Xprint DDX maps to one Xserver screen this limit applies to
+ the number of loaded Xprt drivers, too.
+ Starting with xprint.mozdev.org release 008 the per-Xserver screen limit
+ was increased from "3" to "8" to avoid this issue...
+ Workaround: Start a 2nd instance of Xprt which handles the other
+ drivers which do not fit into the first instance.
+ </para>
+ </listitem>
+ </orderedlist>
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry id="bug_solaris_xprt_removes_spaces_between_words">
+ <question>
+ <para>
+ Printing on Solaris with Mozilla/Eclipse [or any other Xprint client]
+ removes spaces between words. What is going wrong ?
+ </para>
+ </question>
+ <answer>
+ <formalpara>
+ <title>Cause:</title>
+ <para>
+ This is a bug in the Solaris Xprint server binary (<filename>/usr/openwin/bin/Xprt</filename>).
+ Various bug reports have been filed, see
+ <itemizedlist>
+ <listitem>
+ <para>
+ <ulink url="http://xprint.mozdev.org/bugs/show_bug.cgi?id=3353">xprint.mozdev.org bug 3353
+ ("Solaris Xprt looses space when rendering with '-monotype-arial-*'-fonts")</ulink>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <ulink url="http://bugzilla.mozilla.org/show_bug.cgi?id=199957">bugzilla.mozilla.org bug 199957 ("Solaris 8 Mozilla
+ removes spaces for text within &lt;font face="Arial"&gt;...&lt;/font&gt;"</ulink>)
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </formalpara>
+
+ <formalpara>
+ <title>Solution:</title>
+ <para>
+ Solution:
+ Please apply the following OS patches from <ulink url="http://sunsolve.sun.com/">http://sunsolve.sun.com/</ulink>:
+ <table frame="all" orient="port" tocentry="1">
+ <title>
+ Solaris patches to fix <ulink url="http://xprint.mozdev.org/bugs/show_bug.cgi?id=3353">xprint.mozdev.org bug 3353
+ ("Solaris Xprt looses space when rendering with '-monotype-arial-*'-fonts")</ulink>
+ </title>
+ <tgroup cols="6" colsep="1" rowsep="1">
+ <colspec colname="col_s27_sparc" />
+ <colspec colname="col_s27_x86" />
+ <colspec colname="col_s28_sparc" />
+ <colspec colname="col_s28_x86" />
+ <colspec colname="col_s29_sparc" />
+ <colspec colname="col_s29_x86" />
+ <spanspec spanname="span_s27" namest="col_s27_sparc" nameend="col_s27_x86" align="center" />
+ <spanspec spanname="span_s28" namest="col_s28_sparc" nameend="col_s28_x86" align="center" />
+ <spanspec spanname="span_s29" namest="col_s29_sparc" nameend="col_s29_x86" align="center" />
+ <thead>
+ <row>
+ <entry spanname="span_s27">Solaris 2.7</entry>
+ <entry spanname="span_s28">Solaris 2.8</entry>
+ <entry spanname="span_s29">Solaris 2.9</entry>
+ </row>
+ <row>
+ <entry>SPARC</entry>
+ <entry>x86</entry>
+ <entry>SPARC</entry>
+ <entry>x86</entry>
+ <entry>SPARC</entry>
+ <entry>x86</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry><link linkend="bug_solaris_xprt_removes_spaces_between_words_s27_no_patches_yet">n/a</link></entry>
+ <entry><link linkend="bug_solaris_xprt_removes_spaces_between_words_s27_no_patches_yet">n/a</link></entry>
+
+ <entry><ulink url="http://sunsolve.sun.com/pub-cgi/retrieve.pl?patchid=108652&amp;collection=fpatches">108652-73</ulink></entry>
+ <entry><ulink url="http://sunsolve.sun.com/pub-cgi/retrieve.pl?patchid=108653&amp;collection=fpatches">108653-62</ulink></entry>
+
+ <entry><ulink url="http://sunsolve.sun.com/pub-cgi/retrieve.pl?patchid=112785&amp;collection=fpatches">112785-21</ulink></entry>
+ <entry><ulink url="http://sunsolve.sun.com/pub-cgi/retrieve.pl?patchid=112786&amp;collection=fpatches">112786-11</ulink></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+
+ <note id="bug_solaris_xprt_removes_spaces_between_words_s27_no_patches_yet">
+ <para>
+ For Solaris 2.7 (both SPARC and x86 platforms) there are currently
+ <ulink url="http://xprint.mozdev.org/bugs/show_bug.cgi?id=3353#c24">no patches available</ulink>...
+ <literal>;-(</literal>
+ </para>
+ </note>
+ </para>
+ </formalpara>
+
+ <formalpara>
+ <title>Known workarounds:</title>
+ <para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Remove the '-monotype-arial-*' fonts from the font path
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Use an alternate Xprint server like available in the "GISWxprint" package
+ (this package is identical to the "GISWxprintglue" package except that it
+ uses a Xprint server build from xprint.mozdev.org sources and not the
+ <filename>/usr/openwin/bin/Xprt</filename> binary from Solaris)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Mozilla-only: Adding
+<programlisting role="javascript">
+ user_pref("print.xprint.font.rejectfontpattern",
+ "fname=-dt-.*;scalable=.*;outline_scaled=false;xdisplay=.*;xdpy=.*;ydpy=.*;xdevice=.*|" +
+ "fname=-monotype-arial.*;scalable=.*;outline_scaled=.*;xdisplay=.*;xdpy=.*;ydpy=.*;xdevice=.*");
+</programlisting>
+ to <filename>prefs.js</filename> works around the problem (see
+ <ulink url="http://bugzilla.mozilla.org/show_bug.cgi?id=199957#c6">bugzilla.mozilla.org bug 199957 comment #6</ulink>,
+ too).
+ <note>
+ <para>
+ Note that this workaround may render various locales completly
+ inaccessible for printing since many of them only employ MonoType fonts.
+ </para>
+ </note>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </formalpara>
+
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ Installation of the "GISWxprint" / "GISWxprintglue" packages fails like this:
+<screen># <userinput>pkgadd -d /space/staging/xprint/GISWxprint.pkg</userinput>
+<computeroutput>pkgadd: ERROR: no packages were found in &lt;/var/tmp/dstreAAA5Jayyz&gt;</computeroutput></screen>
+ Any idea what I am doing wrong ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ The target machine misses a patch to cure SunSolve bug 4025718 ("pkginfo: allow greater than nine characters for PKG parameter value").
+ Please apply the patches listed in the "Installation Requirements" section in the README
+ for the <ulink url="http://xprint.mozdev.org/lxr/http/source/xprint/src/xprint_main/xc/packager/solaris/GISWxprint/README">GISWxprint</ulink> /
+ <ulink url="http://xprint.mozdev.org/lxr/http/source/xprint/src/xprint_main/xc/packager/solaris/GISWxprintglue/README">GISWxprintglue</ulink> package.
+ </para>
+ </answer>
+</qandaentry>
+
+
+<qandaentry id="multiple_leading_blank_pages">
+ <question>
+ <para>
+ Printing page results in [two/three/.../16] leading blank pages, followed by a correct (but offset) page.
+ Any idea what is going wrong ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ This symptom depends on the CUPS GhostScript driver used, however the exact cause is currently unknown
+ (see comments in <ulink url="http://sdb.suse.de/en/sdb/html/jsmeix_print-81-cups-formfeed.html">SuSE
+ support database entry SDB-2002/11/jsmeix_print-81-cups-formfeed ("Blank Pages When Printing with
+ CUPS")</ulink>).
+ </para>
+ <formalpara>
+ <title>Solution:</title>
+ <para>
+ Disable the CUPS accounting functionality in the cupsomatic filter by changing the line
+<programlisting>
+ my $ps_accounting = 1;
+</programlisting>
+ to
+<programlisting>
+ my $ps_accounting = 0;
+</programlisting>
+ in the filter script <filename>/usr/lib/cups/filter/cupsomatic</filename> as the user root.
+ If you use <filename>/etc/foomatic/filter.conf</filename>, disable ps_accounting there.
+ </para>
+ </formalpara>
+ <formalpara>
+ <title>References:</title>
+ <para>
+ <itemizedlist>
+ <listitem><para><ulink url="http://sdb.suse.de/en/sdb/html/jsmeix_print-81-cups-formfeed.html">SuSE support database entry SDB-2002/11/jsmeix_print-81-cups-formfeed ("Blank Pages When Printing with CUPS")</ulink></para></listitem>
+ <listitem><para><ulink url="http://xprint.mozdev.org/bugs/show_bug.cgi?id=4181">xprint.mozdev.org bug 4181 ("Two empty pages printed first")</ulink></para></listitem>
+ <listitem><para><ulink url="http://bugzilla.mozilla.org/show_bug.cgi?id=180602#c7">bugzilla.mozilla.org bug 180602 comment #7 ("Printing page results in 16 leading blank pages, followed by a correct, but offset, page")</ulink></para></listitem>
+ </itemizedlist>
+ </para>
+ </formalpara>
+ </answer>
+</qandaentry>
+
+</qandadiv>
+
+
+<qandadiv id="faq_development">
+<title>Software development</title>
+
+<qandaentry>
+ <question>
+ <para>
+ How does the X print server (Xprt) and the Xlib client side differ
+ from the "normal" video Xserver/video client side ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ The X Print Service expands on the traditional X-Server and Xlib world
+ in the following ways:
+
+ <orderedlist>
+ <listitem>
+ <para>
+ Most obvious is the use of "print ddx drivers" instead of
+ "video ddx drivers". While a video ddx driver modifies pixels
+ in a video frame buffer, a print ddx driver generates "page
+ description language (<link linkend="what_does_pdl_mean">PDL</link>)" output (such as PCL, PDF, PostScript, SVGprint, etc.)
+ or sends the print rendering instructions to a platform-specific
+ print API (like Win32/GDI).
+ </para>
+ <para>
+ Once a print ddx driver generates <link linkend="what_does_pdl_mean">PDL</link> output, it can be sent to
+ a spooler
+ (using <function>XpuStartJobToSpooler</function>)
+ or retrieved by the client (to implement functionality like "print-to-file"
+ with functions such as <function>XpuStartJobToFile</function>).
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Since printers support "paged" output, unlike video, a portion
+ of the Xp Extension supports APIs to delineate printed output
+ into a print job.
+ </para>
+ <para>
+ A "print job" in Xprint consists of one or more "documents" which itself
+ consists of one or more "pages".
+ </para>
+
+ <para>
+ A client starts a job sequence with <function>XpStartJob</function> and
+ ends it with <function>XpEndJob</function> or <function>XpCancelJob</function> to cancel the
+ generation of the current print job.
+ Any document-specific print attributes MUST be changed before <function>XpStartJob</function>.
+ </para>
+
+ <para>
+ A client starts a document sequence with <function>XpStartDoc</function> and
+ ends it with <function>XpEndDoc</function> or <function>XpCancelDoc</function> to cancel the
+ generation of the current document.
+ Any document-specific print attributes MUST be changed before <function>XpStartDoc</function>
+ or after <function>XpEndDoc</function> (to affect the following document).
+ </para>
+
+ <para>
+ A client starts a page sequence with <function>XpStartPage</function> and
+ ends it with <function>XpEndPage</function> or <function>XpCancelPage</function> to cancel the
+ generation of the current page.
+ Any page-specific print attributes MUST be changed before <function>XpStartDoc</function>
+ or after <function>XpEndDoc</function> (to affect the following document).
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Since printers have extensive capabilities, another portion of
+ the Xp Extension supports APIs to manipulate "print contexts".
+ </para>
+ <para>
+ Once a printer is selected using the Xp Extension API, a print
+ context to represent it can be created. A print context
+ embodies the printer selected - it contains the printer's
+ default capabilities, selectable range of capabilities,
+ printer state, and generated output. Some "attributes" within
+ the print context can be modified by the user, and the
+ X-Server and print ddx driver will react accordingly. For
+ example, the attribute "content-orientation" can be set to
+ "landscape" or "portrait" (if the printer supports these
+ values - which can be queried using the Xprint API as well).
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Since printers can have "built in" fonts, the Xp Extension in
+ the X-Server works with the print ddx drivers to make
+ available (for printing only) additional fonts on a per print
+ context basis.
+ </para>
+ <para>
+ When a print context is created and set for a given printer,
+ the X font calls may be able to access additional printer
+ fonts. To do this (typically), the X-Server must have access
+ to "printer metric files" (.pmf) that describe at minimum the
+ metrics of the built in fonts.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Since printers can have "built in" fonts, the Xp Extension in
+ the X-Server works with the print ddx drivers to make
+ available (for printing only) additional fonts on a per print
+ context basis.
+ </para>
+ <para>
+ When a print context is created and set for a given printer,
+ the X rendering calls use the resolution of the current page
+ (or if not given, the resolution of the current document or
+ the current resolution for this print job).
+ The screen's resolution is INVALID in this case.
+ XprintUtils has the functions <function>XpuGetResolution</function>
+ (to get the current print resolution (searching page, document and
+ job level attributes (in that order)), <function>XpuSetPageResolution</function>
+ (to set the current page resolution), <function>XpuSetDocResolution</function>
+ (to set the current document resolution), <function>XpuGetResolutionList</function> (to
+ get the list of all resolutions supported by this printer) and <function>XpuFindResolution</function>
+ (to find a resolution in the list returned by <function>XpuGetResolutionList</function>)
+ to support getting/setting/queries of resolutions.
+ </para>
+ <para>
+ When a print context is created and set for a given printer,
+ the X image rendering calls (such as <function>XPutImage</function> support
+ scaling of images.
+ The Xp Extension API provides the functions <function>XpSetImageResolution</function>
+ and <function>XpSetImageResolution</function> to set and get an image resolution.
+ The scaling factor for an image printed on the paper can simply calculated via
+ <!-- inlineequation would be better -->
+ <literal>scaling_factor = curr_print_resolution_resolution / image_resolution</literal>
+ where <varname>curr_print_resolution_resolution</varname> is the value returned by a function such as
+ <function>XpuGetResolution</function>, <varname>image_resolution</varname> the resolution passed to
+ <function>XpSetImageResolution</function> and <varname>scaling_factor</varname> the resulting scaling factor.
+ Note that <function>XpSetImageResolution</function> will failure (=FALSE) when the print DDX
+ (for example the RASTER DDX) does not support scaling.
+ In that case the application has to scale the image manually.
+ </para>
+ </listitem>
+ </orderedlist>
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ How can I get the printable area (e.g. the portion of the page on which
+ the printer is physically capable of placing ink) of the paper after I
+ have chosen a paper ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ The <function>XpGetPageDimensions</function> function returns the printable area and other information
+ about the current page geometry.
+ Note that the page geometry changes when the page attributes such as <literal>content-orientation</literal>
+ or <literal>default-medium</literal> are changed by the application.
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ Do "offscreen" pixmaps work on Xprt ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ Yes, "offscreen" pixmaps are working on Xprt.
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ How can I get the DPI value for the current Xprt server ? Can I use the
+ values from "xdpyinfo" ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ The Xprt screen resolution defines only the maximum resolution configured
+ for the matching DDX, the printers real DPI is obtained via an another
+ API (XprintUtil has a bunch of functions to get/set the document/page
+ resolution, see <function>XpuGetResolutionList</function>, <function>XpuFreeResolutionList</function>,
+ <function>XpuGetResolution</function>, <function>XpuSetPageResolution</function>,
+ <function>XpuSetDocResolution</function> and <function>XpuFindResolution</function>).
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ Why does Xprt not offer the MIT-SHM protocol extension ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ The MIT-SHM protocol extension is partially (<function>XShmPutImage</function> would work,
+ but others like <function>XShmGetImage</function> and esp. <function>XShmCreatePixmap</function>
+ cannot be implemented properly) incompatible to the way how some of the Xprint DDX are implemented.
+ For example the PostScript, PDF, PCL and SVGprint DDX do not rasterize any images on their side - instead they convert the
+ stream of X11 rendering instructions into the matching <link linkend="what_does_pdl_mean">PDL</link> instruction stream.
+ Only the printer side will (finally) do the rasterisation of the output image. This is the basically the same reason why
+ <link linkend="why_does_xgetimage_not_work"><function>XGetImage</function> does not work for those DDXs</link> - and
+ functions such as <function>XShmCreatePixmap</function> would be useless since drawing operations on the shared
+ pixmap would not be applied to the application (e.g. Xprint client) as well.
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ Does Xprint/Xprt support font rotation ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ Yes - Xprint/Xprt supports font rotation at any angle via the matrix XLFD
+ enhancement (this even works for printer-builtin fonts !!). For details
+ see the paper "New Font Technology for X11R6" by Nathan Meyers (a copy can be found in the
+ Xprint.org source tree under <filename>xc/doc/hardcopy/XLFD/x11r6_fonts_94_paper.PS.gz</filename>)
+ </para>
+ <para>
+ Short:
+ The transformation-matrix for rotation can be calculated like this:
+<programlisting>
++-- --+
+| cos(angle) sin(angle)|
+| |
+|-sin(angle) cos(angle)|
++-- --+
+</programlisting>
+ Examples:
+ <orderedlist>
+ <listitem>
+ <para>
+ the following code fragment obtains a 180 degree rotated font (matrix [-1 0 0 -1]):
+<programlisting>
+ ... = XLoadQueryFont(..., "-adobe-courier-bold-r-normal--*-[~24 0 0 ~24]-0-0-m-*-iso8859-1");
+</programlisting>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ the following code fragment obtains a 90 degree rotated font (matrix [0 1 -1 0]):
+<programlisting>
+ ... = XLoadQueryFont(..., "-adobe-courier-bold-r-normal--*-[0 24 ~24 0]-0-0-m-*-iso8859-1");
+</programlisting>
+ </para>
+ </listitem>
+ </orderedlist>
+ </para>
+ <para>
+ Future versions of Xprint will support the <ulink url="http://stsf.sourceforge.net/">STSF</ulink>
+ font API which supports matrix transformations as well.
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ When I render something on my window and call <function>XpStartPage</function> all the
+ rendered stuff is gone, I only get a white, empty paper.
+ What is going wrong here ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ Remember the rule that "only those drawings are printed on the paper which
+ were rendered between <function>XpStartPage</function> and <function>XpEndPage</function>".
+ <function>XpStartPage</function> clears the window you passed as argument, e.g. it creates
+ a new, blank sheet of paper where you can do your rendering stuff on.
+ <function>XpEndpage</function> then pushes the "paper sheet" to the stash of papers from the
+ document in process.
+
+ <tip>
+ <para>
+ If you want to render something once for multiple or all pages:
+ Render on a offscreen pixmap and copy (with <function>XCopyArea</function>) the content to
+ the "paper" drawable (after calling <function>XpStartPage</function>) - <function>XpStartpage</function> only
+ affects the window passed as parameter.
+ </para>
+ </tip>
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ What is <function>XpStartDoc</function> for ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ ISO 10175 and some advanced printing systems by IBM and HP had set forth
+ the standard that a "Job" is made up of one or more "Documents", and
+ each document is made up of one or more "Pages". Xprint was designed that
+ in a true ISO 10175 environment/implementation (<citerefentry><refentrytitle>lp</refentrytitle><manvolnum>1</manvolnum></citerefentry> on steroids, and
+ with an API), Xprt can actually learn about all printers and their
+ capabilities though API's into the printer subsystem (vs. using config
+ files), map Job/Doc/Page directly into ISO 10175 equivalents, and use
+ APIs to view job status and kill jobs (vs.
+ <citerefentry><refentrytitle>cancel</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>lpcancel</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>lpstatus</refentrytitle><manvolnum>1</manvolnum></citerefentry>).
+ Because most applications of the day are only printing one document per
+ job, <function>XpStartPage</function> was designed that it generates a "synthetic"
+ <function>XpStartDoc</function> if it has not been called yet.
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ How does the XLFD for printer-builtin fonts look like ? / How can I find/identify printer-builtin fonts ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ There is no special XLFD scheme for printer-builtin fonts.
+ Instead the <literal>xp-listfonts-modes-supported</literal> is used to define
+ whether <function>XListFonts</function> and co. return printer-builtin fonts or not.
+ By default the attribute looks is set to
+ <literal>*xp-listfonts-modes-supported: xp-list-internal-printer-fonts xp-list-glyph-fonts</literal> which defines
+ thaht <function>XListFonts</function> and co. return both printer-builtin and normal fonts.
+ Removing <literal>xp-list-internal-printer-fonts</literal> will make printer-builtin fonts disappear,
+ removing <literal>xp-list-glyph-fonts</literal> will make normal glyph fonts disappear from font lists.
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ How can I scale images using the Xprint API ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ XXX
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ Can I pass my own PostScript code (fragment) to the print spooler instead of letting
+ Xprt's PostScript DDX generate it ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ XXX <!-- use XpPutDocumentData -->
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ When I use <function>XpPutDocumentData</function> I get a
+ <literal>BadValue</literal> X protocol error. Any idea what am I doing wrong ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ XXX
+ <!-- references: bugzilla.mozilla.org bug and xprint.mozdev.org bug about the case sensitivy -->
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ How do I use the XprintUtil library ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ XXX
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry id="why_does_xgetimage_not_work">
+ <question>
+ <para>
+ Why does the <function>XGetImage</function> not work for Xprt ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ There are at least three reasons why <function>XGetImage</function> does not work for Xprt:
+ <orderedlist>
+ <listitem>
+ <para>
+ Most of the Xprt DDX implementations do not render itself on any
+ bitmaps like the framebuffer(=video) DDX do, they translate the
+ rendering commands into the matching commands of the printer language
+ (it is technically possible to implement such support for <function>XGetImage</function>
+ even for those drivers - but there are more reasons:)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Xprt usually operates at high resolutions which results in very large
+ dimensions. If a client would request the 24bit TrueColor <emphasis>bitmap</emphasis>
+ data for a <emphasis>whole</emphasis> DIN-A4 page at 2400 DPI a data chunk of ~173
+ megabytes would be the response. This would be more or less a
+ DOS(=Denial of Service) for either the client, the network and/or the
+ server.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ The printer-builtin fonts only provide metrics information - there is no real "outline"
+ information at that time (these fonts reside only in the printer's ROM and are only
+ available at the time the printer rasterizes the incoming <link linkend="what_does_pdl_mean">PDL</link>
+ (e.g. PCL/PostScript) data stream) which could be used to rasterize the matching glyphs
+ (which means: A <function>XGetImage</function> implementation would return image
+ data but glyphs rendered using the printer-builtin fonts would be missing).
+ </para>
+ </listitem>
+ </orderedlist>
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ How to print with Xt/Athena widgets ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ There are two examples in the Xprint.org source tree which demonstrate how to use Xprint using
+ Athena widgets:
+ <orderedlist>
+ <listitem>
+ <para>
+ <filename>xc/programs/xphelloworld/xpawhelloworld/</filename> contains a simple
+ demo application which prints a Athena widget using the <function>XawPrintShell</function> widget class.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <filename>xc/programs/xphelloworld/xpxthelloworld/</filename> contains a simple
+ demo application which prints a Athena widget without using a special print
+ widget class (however, if possible a print shell such as <function>XawPrintShell</function> or
+ <function>XmPrintShell</function> should be used since this is the easier way to add print
+ support to an Athena application).
+ </para>
+ </listitem>
+ </orderedlist>
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ How to print with Xt/Motif widgets ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ The Xprint.org source tree contains the xpxmhelloworld (xc/programs/xphelloworld/xpxmhelloworld/)
+ application to demonstrate how to print using the Motif2 toolkit.
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ What are the differences between normal display and Xprint display ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ XXX
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ How do I scale images ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ XXX
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ libXp Image scaling vs. max. request size ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ XXX
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ How can I use XprintUtils ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ XXX
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ How do I calculate the DPI values for Xprt DDX screens ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ XXX
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ How do I find scaleable fonts ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ XXX
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ How do I find printer-builtin fonts ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ XXX
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ The XLFD for Printer-builtin fonts look like bitmap fonts - is that bad ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ No, this is not "bad". The XLFD of a printer-builtin font only looks like a bitmap font since
+ the *.pmf (Printer metrics file) format is a PCF file format variant (the DPI values in the XLFD
+ AFAIK specifies the resolution which was used for generating the metrics) - however this does not
+ change the fact that the printer-builtin fonts are outline scaleable fonts these fonts reside in the
+ printer's ROM).
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ When printing using the <function>XawPrintShell</function>/<function>XmPrintShell</function> print shells my PostScript output
+ is always corrupt. What am I doing wrong ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ Make sure the widgets (such as text input widgets) have the (blinking) cursor turned-off.
+ Setting the <literal>XmNcursorPositionVisible,</literal> to <literal>False</literal> usually
+ solves the problem (for Motif2 widgets).
+ Example:
+ <informalexample>
+<programlisting>
+...
+XtSetArg(args[n], XmNcursorPositionVisible, False);
+...
+</programlisting>
+ </informalexample>
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ When printing using the <function>XawPrintShell</function>/<function>XmPrintShell</function>
+ print shells I always get a grey/dithered background on paper.
+ Any idea how to change that to "white" ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ XXX
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ Are there any caveats/suggestions when printing via Xt/Motif2 widgets ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ There are a couple of Xt resources which may likely differ from the normal values (e.g. those values
+ used for a video Xserver):
+ <variablelist>
+ <varlistentry>
+ <term><literal>Core</literal> class level</term>
+ <listitem>
+ <para>
+ <variablelist>
+ <varlistentry>
+ <term><literal>XmNbackground</literal> resource</term>
+ <listitem>
+ <para>
+ The application will probably want to set the <literal>XmNbackground</literal> resource
+ to "white" to match the default paper color.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><literal>XmNborderWidth</literal> resource</term>
+ <listitem>
+ <para>
+ The application will probably want to set the <literal>XmNborderWidth</literal> resource
+ to "0" (usually the default value) to avoid that a black border appears around the widget.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><function>XmPrimitive</function> class</term>
+ <listitem>
+ <para>
+ <variablelist>
+ <varlistentry>
+ <term><literal>XmNshadowThickness</literal> and <literal>XmNhightlightThickness</literal> resources</term>
+ <listitem>
+ <para>
+ The application will probably want to set <literal>XmNshadowThickness</literal> and
+ <literal>XmNhightlightThickness</literal> to "0" (usually the default value) to avoid
+ 3D border effects on the printout (depends on application and author's preference...
+ <literal>:-)</literal>).
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><function>XmText</function> and <literal>XmTextField</literal> classes</term>
+ <listitem>
+ <para>
+ <variablelist>
+ <varlistentry>
+ <term><literal>XmNcursorPositionVisible</literal> resource</term>
+ <listitem>
+ <para>
+ The application will probably want to set <literal>XmNcursorPositionVisible</literal>
+ to <literal>False</literal> to avoid that the cursor is visible on printouts (and to avoid
+ problems with some nasty implementation details which may cause corrupted PostScript output).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><literal>XmNscrollHorizontal</literal> and <literal>XmNscrollVertical</literal> resources</term>
+ <listitem>
+ <para>
+ The application will probably want to set the <literal>XmNscrollHorizontal</literal> and
+ <literal>XmNscrollVertical</literal> resources to <literal>False</literal> to suppress printing
+ of scrollbars (on paper "scrolling" is replaced with "pagination" except for rare exceptions
+ (like 1:1 WYSIWYG-printing)).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><literal>XmNmarginWidth</literal> and <literal>XmNmarginHeight</literal> resources</term>
+ <listitem>
+ <para>
+ The application will probably want to recalculate the <literal>XmNmarginWidth</literal> and
+ <literal>XmNmarginHeight</literal> resources based on the (far) higher print resolution
+ (or reverse: set them to "0" - depending on what style matches
+ the application needs better...).
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><function>XmLabel</function> class</term>
+ <listitem>
+ <para>
+ <variablelist>
+ <varlistentry>
+ <term><literal>XmNmarginTop</literal>, <literal>XmNmarginBottom</literal>,
+ <literal>XmNmarginRight</literal>, <literal>XmNmarginLeft</literal>,
+ <literal>XmNmarginWidth</literal>, <literal>XmNmarginHeight</literal> and
+ <literal>XmNalignment</literal> resources</term>
+ <listitem>
+ <para>
+ The application will probably want to use different value for <literal>XmLabel</literal> class's
+ <literal>XmNmarginTop</literal>, <literal>XmNmarginBottom</literal>, <literal>XmNmarginRight</literal>,
+ <literal>XmNmarginLeft</literal>, <literal>XmNmarginWidth</literal>, <literal>XmNmarginHeight</literal> and
+ <literal>XmNalignment</literal> resources. These resources are mainly usefull when the widget holds a
+ border, highlight or shadow of some kind. If borders are not to be transferred there is no real need to transfer
+ a margin either.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </para>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <para>
+ Can I change the paper size/resolution/page orientation/etc. when printing using the
+ <function>XawPrintShell</function>/<function>XmPrintShell</function> print shells ?
+ </para>
+ </question>
+ <answer>
+ <para>
+ Yes, it is allowed to change the page attributes in the page setup callback
+ (e.g. <literal>XawNpageSetupCallback</literal> or <literal>XmNpageSetupCallback</literal>)
+ since this callback is always called before <function>XpStartPage</function>
+ (for the 2nd and following pages: between <function>XpEndPage</function> and
+ <function>XpStartPage</function>).
+ Note that changing page attributes will automagically update the print shell widget size
+ (e.g. attributes <literal>XawNminX</literal>, <literal>XawNminY</literal>, <literal>XawNmaxX</literal> and <literal>XawNmaxX</literal> (<function>XawPrintShell</function>)
+ or
+ <literal>XmNminX</literal>, <literal>XmNminY</literal>, <literal>XmNmaxX</literal> and <literal>XmNmaxX</literal> (<function>XmPrintShell</function>) are updated based
+ on events send by the Xp Extension and then the print shell is resized based on the new values (<function>XawPrintShell</function> is slightly more flexible
+ since the size mode can be defined using the <literal>XawNlayoutMode</literal> attribute)).
+ </para>
+ </answer>
+</qandaentry>
+
+</qandadiv>
+</qandaset>
+</simplesect>
+
+
+<simplesect id="knownbugs">
+<title>Known bugs</title>
+<qandaset>
+<qandadiv>
+<qandaentry>
+ <question>
+ <label>Problem</label>
+ <para>
+ Xprt build from Xfree86 sources is completely broken and unuseable.
+ </para>
+ </question>
+ <answer>
+ <label>Solution</label>
+ <para>
+ Build Xprt from the CVS tree at <ulink url="http://xprint.mozdev.org/">http://xprint.mozdev.org/</ulink> or the
+ X.org X11R6.5.1 sources (note that the client side Xprint extension
+ library ("<filename>libXp.so</filename>") from Xfree86 is not broken and do not need to be
+ replaced).
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <label>Problem</label>
+ <para>
+ The code which matches XLFD names to PS Type1 font names is
+ case-sensitive in Xprts build from X.org X11R6.5.1/X11R6.6 and the
+ current Solaris Xprt. This may cause that the PS DDX refuses to
+ download PS Type1 fonts.
+ </para>
+ </question>
+ <answer>
+ <label>Solution</label>
+ <para>
+ Patch available, I am looking for a way to get the patch into the X11
+ and Solaris source trees...
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <label>Problem</label>
+ <para>
+ Xprt build from X11R6.5.1/X11R6.6 sources and Solaris's version of
+ Xprt can only download PFA (PS ASCII font) fonts which ends of the
+ ending "*.pfa".
+ </para>
+ </question>
+ <answer>
+ <label>Solution</label>
+ <para>
+ Either convert PFB (PS Type 1 binary font) to PFA format and adjust
+ the <filename>fonts.dir</filename> and <filename>fonts.scale</filename> file or get a patch for the sources.
+ I am looking for a way to get the patch into the X11 and Solaris
+ source trees (the fixed version can download both PFA/PFB fonts in
+ PFA format and even handles non-standard file extensions).
+ </para>
+ </answer>
+</qandaentry>
+
+<qandaentry>
+ <question>
+ <label>Problem</label>
+ <para>
+ There is an issue how the Linux and Solaris Xprt handles the
+ "copy-count" of a print job. The result may be that a job with n
+ copies of a document end-up in n jobs with n copies (usually equals
+ to n^2 copies).
+ </para>
+ </question>
+ <answer>
+ <label>Solution</label>
+ <para>
+ Xprt build from xprint.mozdev.org sources has been fixed in release
+ 007, see <ulink url="http://xprint.mozdev.org/bugs/show_bug.cgi?id=1378">xprint.mozdev.org bug 1378
+ ("PS DDX creates n^2 copies of a job instead of n copies")</ulink> and
+ <ulink url="http://bugzilla.mozilla.org/show_bug.cgi?id=140030">bugzilla.mozilla.org 140030
+ ("Setting number of copies causes too many copies to print")</ulink> for details.
+ Solaris 2.7 Xprt still suffers from this issue... <literal>;-(</literal>
+ </para>
+ </answer>
+</qandaentry>
+
+</qandadiv>
+</qandaset>
+</simplesect>
+
+
+<simplesect id="unanswered_questions">
+ <title>Unanswered questions</title>
+ <para>
+ (My small ToDo list what I will write soon; 379 items missing... <literal>=:-)</literal>
+ Email me if you want one of these answered "now" and/or to contribute
+ an answer... :)
+ <simplelist type="vert">
+ <member>How do I create a model-config for my printer ?</member>
+ <member>How can I customize a model-config for my site/machine ?</member>
+ <member>Which attributes/values can be set in a model-config ?</member>
+ <member>Why can't I set default values (for my {paper size, resolution, ...}) in the model-config ?</member>
+ <member>Should I add the fonts in the model-config dir to the Xserver's font path ?</member>
+ <member>What are the fonts in the model-config dir for ?</member>
+ <member>Can I use a font server for all fonts instead of passing then directly to the Xprint server ?</member>
+ <member>Does the Xprint PostScript driver do full rasterisation of the print job ?</member>
+ <member>Is it possible to prepare a printer config entry so that the PS
+ output is piped to "ps2pdf" and will produce directly a PDF file?
+ It would be nice to have mozilla directly producing PDF files when
+ printing.
+ </member>
+ <member>Problem: I have changed the Xprt config - but "xplsprinters -l"</member>
+ <member>(or any other Xprint application) does not show the change.</member>
+ <member>Any idea what I am doing wrong ?</member>
+ <member>How can I add a font path to Xprt ?</member>
+ <member>Why does "xset +fp path_to_font" not work in some cases ?</member>
+ <member>How can I get a "core"-dump when Xprt crashes ?</member>
+ <member>How can I debug Xprt (hint: use "-audit 4") ?</member>
+ <member>How can I debug Xprt with Sun Workshop (hint: "check -access") ?</member>
+ <member>How can I check whether Xprint is "active" ? / How can I verify that a Xprint is working ?</member>
+ </simplelist>
+ </para>
+</simplesect>
+
+<simplesect id="acknowledgements">
+ <title>Acknowledgements</title>
+ <para>
+ We'd like like to express their gratitude to the whole community for
+ providing insightful answers to innumerable questions. In particular,
+ the following people (listed alphabetically) have contributed to this
+ FAQ (apologies, in advance, if anyone has been forgotten):
+ </para>
+ <para>
+ <simplelist type="vert">
+ <member><othercredit><firstname>Alan</firstname> <surname>Coopersmith</surname></othercredit> <email>alan.coopersmith@sun.com</email></member>
+ <member><othercredit><firstname>Giuseppe</firstname> <surname>Ghib&ograve;</surname> </othercredit> <email>ghibo@mandrakesoft.com</email></member>
+ <member><othercredit><firstname>Thomas</firstname> <surname>Gilg</surname> </othercredit> <email>thomas_gilg@hp.com</email></member>
+ <member><othercredit><firstname>Jay</firstname> <surname>Hobson</surname> </othercredit> <email>jay.hobson@sun.com</email></member>
+ <member><othercredit><firstname>Masaki</firstname> <surname>Katakai</surname> </othercredit> <email>katakai@japan.sun.com</email></member>
+ <member><othercredit><firstname>Simon</firstname> <surname>Montagu</surname> </othercredit> <email>smontagu@smontagu.org</email></member>
+ <member><othercredit><firstname>Drew</firstname> <surname>Parsons</surname> </othercredit> <email>dparsons@debian.org</email></member>
+ <member>(and many many others)</member>
+ </simplelist>
+ </para>
+</simplesect>
+
+
+</article>
+
+<!-- # EOF. -->
+
diff --git a/hardcopy/XPRINT/Xprint_old_FAQ.txt b/hardcopy/XPRINT/Xprint_old_FAQ.txt
new file mode 100644
index 0000000..250c582
--- /dev/null
+++ b/hardcopy/XPRINT/Xprint_old_FAQ.txt
@@ -0,0 +1,1634 @@
+Archive-name: Xprint/FAQ_OLD
+Version: 0.8
+Last-Modified: 2003/08/04 15:20:19
+Maintained-by: Roland Mainz <Roland.Mainz@informatik.med.uni-giessen.de>
+
+NOTE: This version of the FAQ has been discontinued and was replaced by the
+DocBook-based version available under xc/doc/hardcopy/XPRINT/Xprint_FAQ.xml
+(available through http from
+<http://xprint.mozdev.org/lxr/http/source/xprint/src/xprint_main/xc/doc/hardcopy/XPRINT/Xprint_FAQ.xml>)
+
+The following is a list of questions that are frequently asked about
+Xprint.
+
+You can help make it an even better-quality FAQ by writing a short
+contribution or update and sending it BY EMAIL ONLY to me.
+A contribution should consist of a question and an answer, and increasing
+number of people sends me contributions of the form "I don't know the
+answer to this, but it must be a FAQ, please answer it for me". Please
+read the FAQ first and then feel free to ask me if it is not in the FAQ.
+
+Thanks!
+
+The latest Xprint FAQ and some other goodies can be obtained through http from
+<http://xprint.mozdev.org/lxr/http/source/xprint/src/xprint_main/xc/doc/hardcopy/XPRINT/Xprint_old_FAQ.txt>
+
+Note that the FAQ has not been finished yet (nor is it half-finished...),
+many items marked with "XXX" as the answer have still to be written (or have
+to be copy&pasted from my item collection... :)
+
+1. GENERAL
+- Q: What is "Xprint" ?
+ A: In short, "Xprint" is an advanced printing system which enables X11
+ applications to use devices like printers, FAX or create documents in
+ formats like PostScript or PDF.
+
+ In long, "Xprint" is a very flexible, extensible, scaleable, client/server
+ print system based on ISO 10175 (and some other specs) and the X11
+ rendering protocol.
+ Using Xprint an application can search, query and use devices like
+ printers, FAX machines or create documents in formats like PDF.
+ In particular, an application can seek a printer, query supported
+ attributes (like paper size, trays, fonts etc.), configure the printer
+ device to match it's needs and print on it like on any other X device
+ reusing parts of the code which is used for the video card Xserver...
+
+- Q: Where can I get Xprint/Xprt from ?
+ A: Xprint is client-server based, therefore two answers:
+ - The server side is available by default on Solaris[1] and HP-UX (Xfree86
+ ships a "Xprt" binary, but that is broken and the server config files
+ are missing, too).
+ For those platforms who do not have a (working) Xprt server the you
+ can get source, binary tarballs and Linux RPMs from
+ http://xprint.mozdev.org/ , Debian Linux has a package based on the
+ same sources (see http://packages.qa.debian.org/x/xprint-xprintorg.html)
+ - The client-side Xprint support library (libXp.so) is available on all
+ X11 platforms >=R6.4, including Linux, Solaris, HP-UX, AIX etc.
+ if you do not have it you can build it from the sources available at
+ http://xprint.mozdev.org/
+
+ [1]=(for Solaris >= 2.7 xprint.mozdev.org provides the "GISWxprintglue"
+ and "GISWxprint" packages (available from
+ http://xprint.mozdev.org/download.html) which provides a single-step
+ drop-in way to configure and start Xprint at system startup and/or
+ per-user for all applications and users (the package provides only
+ startup scripts and some config data and uses the Xprt binary provided
+ with Solaris (/usr/openwin/bin/Xprt))
+
+- Q: What is "Xprt" ?
+ A: Xprt is the server-side of Xprint. It's just like any other Xserver - it
+ uses only an other kind of output device (printer instead of framebuffer)
+ and implements an extra X11 extension ("XpExtension") to handle the
+ special features/requirements of a "paged device"(=printer etc.).
+
+- Q: "Why do some people like Xprint ?" / "What are the advantages of Xprint ?"
+ A: - Xprint allows an application to query what features (paper size, trays,
+ orientation, resolutions, plexes, fonts and much more) a printer supports.
+ For example it is avoidable that a user accidently prints DIN-A4 on a
+ DIN-A0 poster printer (the print dialog would only offer DIN-A0 as paper
+ size, e.g. offers only choices which are valid for this printer).
+ - Server-side, localizeable configuration - changes to the server
+ config apply to all users without the need to change/updating anything
+ on the user side (the user may still start his/her own Xprt instance
+ using his/her preferred configuration).
+ - Small footprint - ideal for for mobile devices (client side does not
+ need to process any fonts - that's the job of the server side)
+ - API not restriced to PostScript (X11R6.5.1 comes with PCL and Raster
+ implementations - and PDF/G3-FAX/SVG would be possible without problems)
+ - Scaleable - Xprint can use as many Xprt servers as the user/admin wants
+ - "Xprint is designed for the enterprise", e.g. Xprint was designed to
+ match the needs of large company networks.
+ - Automatic font handling - font download or the existence of
+ printer-builtin fonts is automagically handled by Xprt - the application
+ does not need to know/handle any details (but the application can
+ optionally get information and control the usage of printer builtin
+ fonts)
+ - You can print anything what you can render on the framebuffer(=video
+ card) Xserver
+ - Existing code can be reused 1:1 for printing - which means reduced
+ development costs
+ - Easy support for I18N (internationalization) - you simply render any
+ fonts in any language with Xprint
+ - Network-transparent design - Client can use local or remote Xprt servers
+ like any other Xserver
+ - Uses the X11 protocol - easy adoption of existing code to implement
+ printer support. And all the network goodies like firewall proxies,
+ compressors etc. can be used for Xprint without modifications.
+ - Security: Xprint can use all authentification schemes available in X11
+ (like Kerberos5, SecureRPC, MIT-MAGIC-COOKIE or host-based
+ authentification).
+ - Enhachements on the server side (Xprt) to not require the change of
+ client-side code.
+ - Optimized job output (like the PostScript created by the PostScript DDX)
+ is usually a lot smaller than the PS code created by other PostScript
+ engines.
+
+- Q: Why do some people dislike Xprint?
+ A: There are a few common misconceptions about Xprint.
+ Let's take a look some of these "myths", some background - and the facts:
+
+ - Myth: "Xprint prints just a XWD dump of the Xserver bitmap"
+ Fact: Whoever says Xprint simply does an "xwd"-like dump is wrong.
+
+ In short, Xprint _currently_ (X11R6.5.1) supports *four* drivers:
+ 1) X to native Postscript
+ 2) X to native PCL5
+ 3) X to native PCL3
+ 4) X to a raster which is then feed to something like xpr to
+ create PS or PCL5 wrapped rasters.
+
+ In long, the original X Print Service ("XPS") was attempted
+ during CDE 1.0, and they only got so far as the "raster" driver.
+
+ As CDE 2.0 came around, Bob Schiefler and others at the X
+ Consortium agreed that the X Consortium would work on a X to
+ native PS Level 2 driver and HP would work on a X to native
+ PCL5 driver.
+
+ It was probably the CDE 1.0 effect that left many people with
+ the impression that Xprint is all about xwd-like window dumps.
+ NO! Xprint has native PostScrpt and PCL5 printing and more
+ drivers (like a PDF DDX etc.) are in the development.
+
+ - Myth: "Xprint cannot handle non-'ISO Latin 1' chars"
+ - Fact: Xprint can print any chars incl. those required for MathML,
+ Hebrew, Arabic, Japanese etc. etc.
+ For example - the Xprint module for Mozilla5 is the only print
+ module which can proprtly print MathML.
+
+ - Myth: "Xprint uses a 1024x768 screen resolution to render the stuff on
+ the paper - therefore it will never be able to do high-resolution
+ stuff"
+ Fact: Xprt uses the screen resolution requested by the application or
+ the printers default resolution.
+ For example a 300 DPI printer which supports paper sizes up to
+ DIN-A4 will get a screen with 3300x3300 pixels (screen width and
+ height are usually equal to support per-page changes in the
+ orientation (potrait/landscape etc.), the window size would be
+ 2400x3149 for "portrait" orientation) - and larger resolutions
+ will result in larger screens.
+
+ - Myth: "Xprint prints only graphics(=bitmap/gfx) fonts"
+ - Fact: In short, Xprt supports printer-builtin fonts and can
+ download fonts to the printer if they do not exist on the printer.
+
+ In long, this myth seems to have it's root in a _feature_ of
+ Xprt which can - if Xprt gets misconfigured - disable the use of
+ printer-builtin fonts and the ability to download fonts.
+
+ Xprt's PostScript and PCL DDX have the _unique_ feature to create
+ font glyphs from bitmap fonts if they are not available as
+ printer-builtin fonts nor as PostScipt Type1 fonts. However this
+ is the fallback - the _last_ option used by Xprt. Used if
+ everything else fails.
+ But when someone does not pass any PS Type1 fonts with the font
+ path nor configures a printer model-config (which contains a
+ description of the features&fonts supported by the printer) Xprt
+ will never have a chance to use them. And if everything else
+ fails it has no other option than using what has been left - the
+ bitmap fonts...
+
+ - Myth: "Xprint does not support pages sizes larger than DIN-A4"
+ Fact: There is no such limitation.
+ The only limit is the 16bit coordinate system of the X11
+ protocol - which is large enougth that Xprint can support paper
+ sizes _larger_ than DIN-A0 oversize papers. There is no problem
+ with creating your own monster-size DIN-A0 posters using
+ Xprint-based applications.
+
+ - Myth: "Xprint does not support rotated text"
+ Fact: Xprint and all it's drivers support the X11 matrix XLFD
+ enhancement introduced in X11R6. Fonts can be rotated at any
+ angle. Take a look at the "SOFTWARE DEVELOPMENT" section in this
+ FAQ for examples...
+
+- Q: Does Xprint support anti-aliased fonts ?
+ A: Question back: When do we need anti-aliased fonts ?
+ Anti-aliasing is a "hack" to work around the limitations caused by the
+ low resolution of monitors - they usually operate between 72 DPI and
+ 150 DPI.
+ But Xprint operates on printers where the usual _minimum_ resolution is
+ 300 DPI (today's normal office printers support resolutions ranging from
+ 300 DPI up to 2400 DPI depending on the model; most common is 600 DPI).
+ Anti-aliasing at those resolutions is not required anymore.
+ Additionally many printers support their own font anti-aliasing at lower
+ resolutions which is far better and faster than it could be "done" on the
+ client side.
+
+- Q: How can I check if Xprint is working and should be used ?
+ A: Check whether the ${XPSERVERLIST} env var is set or not.
+ If ${XPSERVERLIST} is set then Xprint is available and should be used.
+
+- Q: How can I view PS(=PostScript) files ?
+ A: - On Unix/Linux (general):
+ - GhostScript ("gs") and GhostView ("gv")
+ - Solaris:
+ - /usr/dt/bin/sdtimage (DPS-based image viewer for CDE)
+ - /usr/openwin/bin/pageview (DPS-based image viewer for OpenWindows)
+
+- Q: How can I view PCL files ?
+ A: XXX - http://xprint.mozdev.org/bugs/show_bug.cgi?id=2261 has been filed
+ for that issue.
+
+- Q: How does Xprt find fonts ?
+ A: Lookup-rule for Xprt's PostScript DDX to find fonts:
+ 1. Printer-builtin fonts (defined by the fonts/-dir in the model-config)
+ 2. PostScript fonts (will be downloaded via generated print job)
+ 3. GFX-fonts build from X11 scaleable fonts
+ 4. GFX-fonts build from X11 bitmap fonts
+
+- Q: How can I print TrueType fonts with Xprint ?
+ A: 1. Linux Xprt build from http://xprint.mozdev.org 's source supports
+ TrueType fonts out-of-the-box (starting with the 008 development tree;
+ xprint.mozdev.org's releases <= 007 do not support TrueType fonts) and
+ and does not require any special actions.
+ 2. Sun's Xprt on Solaris (/usr/openwin/bin/Xprt) has TrueType font
+ support out-of-the-box and does not require any special actions
+ 3. You can setup a TTF-aware X font server ("xfs", see xfs(1)) with the
+ matching TrueType fonts and add the font server location to Xprt's font
+ path.
+ 4. Sourceforge has a TrueType to PostScript Type 1 converter project,
+ see http://ttf2pt1.sourceforge.net/download.html
+ You may convert the TTF files into PT1 files that Xprt can download them
+ to the printer on demand...
+
+- Q: What does "DDX" mean ?
+ A: DDX is a short term for "Device Dependent X" - the device-specific layer
+ of a Xserver ("DIX"(="Device Independent X") is the counterpart).
+
+- Q: What does "DIX" mean ?
+ A: DIX is a short term for "Device Independent X" - the non-device specific
+ code of a Xserver ("DDX"(="Device Dependent X") is the counterpart).
+
+- Q: I have twenty printers installed on my system - but Xprt only shows two
+ screens. Where are all the other printers ?
+ A: A Xprt screen does not represent a single printer. A Xprt screen
+ represents a single DDX (currently supported are PostScript, PCL3/5 color,
+ PCL mono and "raster" output(=1bit deep bitmap).
+
+- Q: Which platforms support Xprint ?
+ A: All platforms which support X11 >= R6.4 can use Xprint. The client side
+ (libXp.so) is available on Linux/FreeBSD(=Xfree86), Solaris, HP-UX and AIX
+ and the Xprt server side is available by default on Solaris and HP-HX
+ (Xfree86 shipps with a Xprt binary - but that is broken and unuseable).
+ The client-side extension library (libXp.so) can be compiled on any
+ platform, the Xprt server needs minor adjustments for the specific
+ platforms...
+ If your platform does not have Xprint (client-side and/or server-side)
+ you can get the sources from http://xprint.mozdev.org/
+
+- Q: I have the broken Xfree86 Xprt binary on my system. Do I need a new
+ version of "libXp.so" (the client side X11 extension library for Xprint),
+ too ?
+ A: No, the libXp.so shared library shipped with Xfree86 or build from
+ Xfree86 sources is not broken, only the server side ("Xprt") is buggy.
+ There is no need to replace the library.
+
+- Q: Which spelling is correct - "Xprint", "XPrint", "Xprinter" or Xprt" ?
+ A: "Xprint" is the correct one - "XPrint" is just a typo, "Xprinter" is a
+ complety different product not related to X11/Xprint and "Xprt" is only
+ the "X11 print server"(=the server side of Xprint).
+
+- Q: Which applications support Xprint ?
+ A: There are various applications which support Xprint:
+ - Motif/LessTif (full framework incl. special widgets like XmPrintShell)
+ - Common Desktop Environment (CDE) 2.x
+ - Mozilla
+ - Eclipse
+ - KDE/Qt support is comming is planned for the end of Dec/2002
+ - StarOffice 5.x
+ etc.
+
+- Q: Is "Xprint" "mozilla"-only (I saw that it's hosted by mozdev.org) ?
+ A: No, Xprint is a general-purpose print API based on the X11 API used by
+ many applications (mozdev.org is just hosting the development area, but
+ this does not mean the project is limited to mozilla... :)
+
+- Q: Under which license is the source code from xprint.mozdev.org distributed
+ under ?
+ A: That's the plain "MIT" license, the same as used by Xfree86.org and X.org:
+ -- snip --
+ Copyright (c) <year> <copyright holders>
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software
+ and associated documentation files (the "Software"), to deal in the Software without
+ restriction, including without limitation the rights to use, copy, modify, merge, publish,
+ distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
+ Software is furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in all copies or
+ substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+ BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+ DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ -- snip --
+
+2. USAGE
+- Q: How do I configure Xprint on the client side ?
+ A: There are two env vars which control Xprint on the client side:
+ 1. The env variable ${XPSERVERLIST} contains a list of display identifiers
+ (seperated by whitespace) to tell the application where it can find
+ the Xprt servers.
+ Usually ${XPSERVERLIST} is set by the profile startup scripts (e.g.
+ /etc/profile or /etc/profile.d/xprint.sh) using the output of
+ "/etc/init.d/xprint get_xpserverlist".
+ Example:
+ % export XPSERVERLIST="`/etc/init.d/xprint get_xpserverlist`"
+ Alternativly ${XPSERVERLIST} can be set manually:
+ Example:
+ % export XPSERVERLIST="littlecat:80 bitdog:72"
+ instructs an application to look at the displays 80 on the machine
+ "littlecat" and display 72 on the machine bigdog to look for Xprt
+ servers.
+ 2. The env variable ${XPRINTER} defines the default printer used by print
+ applications. The syntax is either <printername> or
+ <printername>@<display>
+ - Examples:
+ 1. % export XPRINTER=ps003
+ tells an application to look for the first printer named "ps003" on
+ all Xprt servers.
+ 2. % export XPRINTER="hplaser19@littlecat:80"
+ tells an application to look for the printer "hplaser19" on the Xprt
+ display "littlecat:80".
+ * If ${XPRINTER} is not set the applications will examine the values of
+ the ${PDPRINTER}, ${LPDEST}, and ${PRINTER} env vars (in that order).
+
+- Q: How do I start Xprt ?
+ A: 1. Linux RPM installations on Mandrake/RedHat/SuSE Linux:
+ Binary RPM packages provided by xprint.mozdev.org (or based on the same
+ source :) will install /etc/init.d/xprint and related glue (see [4])
+ automatically; after a reboot a Xprt instance will be started at system
+ startup and ${XPSERVERLIST} should be populated for all users.
+ Note that you can start/stop per-user instances using /etc/init.d/xprint
+ (see [4]), too...
+
+ 2. Debian Linux:
+ Same as [1], however Debian does not support /etc/profile.d/ - you have
+ to add the following line to /etc/profile (for sh/ksh/bash) to populate
+ ${XPSERVERLIST}:
+ -- snip --
+ export XPSERVERLIST="`/bin/sh /etc/init.d/xprint get_xpserverlist`"
+ -- snip --
+ See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=171174
+ ('"xprint-xprintorg" should automatically populate $XPSERVERLIST') for
+ further details on this issue...
+
+ 3a. Solaris using the "GISWxprintglue" package:
+ http://xprint.mozdev.org/ provides a Solaris package called "GISWxprintglue"
+ which contains all the neccesary configuration files and startup scripts
+ to use Xprint; after a reboot a Xprt instance will be started at system
+ startup and ${XPSERVERLIST} should be populated for all users.
+ Note that you can start/stop per-user instances using /etc/init.d/xprint
+ (see [4]), too...
+
+ 3b. Solaris using the "GISWxprint" package:
+ http://xprint.mozdev.org/ provides a Solaris package called "GISWxprint"
+ which is technically identical to the "GISWxprintglue" (see [3a]) but
+ provides a Xprt binary build from the xprint.mozdve.org sources
+ ("GISWxprintglue" uses the /usr/openwin/bin/Xprt binary provided by Solaris).
+
+ 4. General: Using /etc/init.d/xprint and related glue:
+ There are startup/shutdown scripts in xc/programs/Xserver/Xprint/etc/
+ to start/stop/restart Xprt per-machine and/or per-user and to populate the
+ ${XPSERVERLIST} env var:
+ - "xc/programs/Xserver/Xprint/etc/init.d/xprint" is a script for SystemV
+ and Linux to start/stop/restart Xprt. The script includes installation
+ and usage details and can be used by both "root" (to start Xprt for all
+ users) or by a single (non-priviledged, plain) user (to start Xprt
+ instances only for his/her own use)
+ - "xc/programs/Xserver/Xprint/etc/profile.d/xprint.csh" and
+ "xc/programs/Xserver/Xprint/etc/profile.d/xprint.sh" are scripts for
+ Linux (which support /etc/profile.d/ ; note that this does not include
+ Debian) to populate the ${XPSERVERLIST} env var for each user.
+
+ 5. Starting Xprt "manually" (without using /etc/init.d/xprint):
+ Set the ${XPCONFIGDIR} env variable to the directory where Xprt can find
+ it's configuration data.
+ | WARNING: If Xprt cannot find it's configuration data it will not be
+ | able to use printer-builtin fonts (which are defined by the
+ | model-config in the configuration dir). Without printer-builtin fonts
+ | Xprt _may_ fall back to generate font glyphs from bitmap fonts (this
+ | resulted in the MYTH that "Xprt can only print gfx fonts". This is not
+ | _TRUE_ - this only happens if Xprt is either misconfigured or no
+ | matching builtin or PS Type1 font is available).
+ You may want to make a copy of the default configuration directory and
+ modify it to match your needs.
+
+ Starting Xprt is just as easy as starting any other Xserver:
+ % Xprt :12
+ will start Xprt on display 12 (e.g. set ${XPSERVERLIST} to ":12" or
+ "myhostname:12".
+
+ You may want to copy your framebuffer Xserver's font path to be able to
+ print all fonts which can be displayed on that Xserver.
+ % Xprt -fp $(xset q | awk "/Font Path:/ { i=1 ; next } i==1 { print \$0 ; i=0 }") :12
+
+ Notes:
+ - The /etc/init.d/xprint has a more advanched filtering scheme based on
+ regex patters to "accept" and/or "reject" font paths
+ - 'xset q | awk "/Font Path:/ { i=1 ; next } i==1 { print \$0 ; i=0 }"'
+ may be too simple-minded if your Xserver does not support TrueType
+ fonts. The following statemement is better in this case since it
+ filters the font path and removes all path elements which have TrueType
+ fonts (*.ttf, *.TTF) or TrueType font collections (*.ttc, *.TTC) in
+ "fonts.dir":
+ -- snip --
+ % xset q | awk "/Font Path:/ { i=1 ; next } i==1 { print \$0 ; i=0 }" |
+ tr "," "\n" | while read i ; do \
+ if [ "$(cat ${i}/fonts.dir | egrep -i "ttf|ttc" 2>/dev/null)" == "" ] \
+ ; then echo $i ; fi ; done | (fontpath="" ; fpdelim=""; while read i ; \
+ do fontpath=${fontpath}${fpdelim}${i} ; fpdelim="," ; done ; echo \
+ $fontpath)
+ -- snip --
+ - It may be easier to just feed all available font paths to Xprt
+ (BTW: mozilla 1.0 had a bug in that case which resulted in the problem
+ that it used many many bitmap fonts in that case - this has been fixed
+ for 1.0.1 and Netscape 7 (that's the reason why the quickguides for
+ hebrew/cyrillic use the "Xp_dummyfonts" fonts instead of
+ /usr/openwin/lib/X11/fonts/misc/ - to avoid that Mozilla finds bitmap
+ fonts for the same locale).
+ The following "small" one-liner finds all fonts (except printer builtin
+ fonts):
+ -- snip --
+ % find /usr/openwin -name fonts.dir | while read i ; do echo
+ ${i%/fonts.dir} ; done | fgrep -v "models/"
+ -- snip --
+ Plug it into the filter above to remove the Truetype fonts and you are
+ "done"... :)
+
+ See TROUBLESHOOTING if you run into problems...
+
+- Q: How can I get a list of printers managed by Xprint ?
+ A: The tool "xplsprinters" is designed for that purpose. It can deliver both
+ list of printers and attributes supported for a specific list of printers.
+ Use % xplsprinters -h # to obtain usage information.
+ Example:
+ - Get list of available printers:
+ -- snip --
+ % xplsprinters
+ printer: hplaserjet001@castor:19
+ printer: hpcolor001@castor:19
+ printer: laser1@jason:5
+ printer: david_dj01@jason:5
+ -- snip --
+ - Get information about the supported attrbites of printer "ps002":
+ -- snip --
+ % xplsprinters -printer ps002 -l
+ printer: ps002@castor:18
+ comment=
+ model-identifier=HPDJ1600C
+ default-medium=iso-a4
+ default-input-tray=
+ medium-source-sizes-supported=iso-a4 false 6.35 203.65 6.35 290.65
+ medium-source-sizes-supported=na-letter false 6.35 209.55 6.35 273.05
+ default-printer-resolution=300
+ resolution=300
+ default_orientation=
+ orientation=portrait
+ orientation=landscape
+ default_plex=
+ plex=simplex
+ -- snip --
+
+- Q: How can I start Xprt at boot time ?
+ A: "xc/programs/Xserver/Xprint/etc/init.d/xprint" is a script for SystemV
+ and Linux to start/stop/restart Xprt at system startup (e.g. per-machine)
+ or for a single user (e.g. per-user).
+ The script includes installation and usage details.
+
+- Q: How can I start Xprt per-user ?
+ A: "xc/programs/Xserver/Xprint/etc/init.d/xprint" is a script for SystemV
+ and Linux to start/stop/restart Xprt at system startup (e.g. per-machine)
+ or for a single user (e.g. per-user).
+ The script includes installation and usage details.
+
+- Q: How can I start Xprt only for one application ?
+ A: Create your own version/copy of /etc/init.d/xprint and modify it to fit
+ your requirements and then make sure that you issue a
+ "my_xprint_startscript start" before starting the application and a
+ "my_xprint_startscript stop" after leaving the application.
+
+- Q: How can I filter the font path which should be passed to Xprt for
+ certain fonts ?
+ A: XXX
+
+- Q: How can I manage access control to the Xprt server ?
+ A: Access control to Xprt is not differently as to any other Xserver and
+ can be handled in various ways - like per-cookie
+ (using MIT-MAGIC-COOKIE-1 authentification),
+ per-user (using SUN-DES-1 or MIT-KERBEROS-5 auth., see (see xhost(1)))
+ and/or per-machine (using "xhost" (see xhost(1)) and/or
+ /etc/X<dpy>.hosts (<dpy> == display number, e.g. /etc/X0.hosts for
+ display 0) (see Xserver(1)))
+ Consult manual pages Xsecurity(7), xhost(1), Xserver(1) etc. for further
+ details.
+
+- Q: How can I log access to the Xprt server ?
+ A: Logging access to Xprt can be done using the standard Xserver auditing,
+ see the Xserver(1) manual page, option "-audit"
+
+- Q: Does it require "root" permissions to use Xprt/Xprint ?
+ A: No, both Xprint clients and Xprint server(s) do not require root rights
+ to work.
+ Xprint clients are handled like any other X11 application and the Xprt
+ servers can run without any special requirements.
+ Solaris is an exception here since it requires to start any Xserver
+ (incl. Xprt) setgid "root" (set-group-id "root", this is _not_
+ set-user-id "root") since the sockets/pipe files in /tmp/.X11-pipe/ and
+ /tmp/.X11-unix/ are only accessible for the group "root".
+ The workaround is to start Xprt with the option "-pn"; therefore even
+ Xprt server binaries which are not setgid "root" can run without
+ problems).
+
+- Q: How can I see the attributes of a printer managed by Xprint ?
+ A: "xplsprinters -printer myprinter004 -l" will do the job for printer
+ "myprinter004". See xlsfonts(1) for futher usage and a description of
+ the output.
+
+- Q: How can I list the font path used by a Xprt server ?
+ A: Figure out the display id of the server which should be queried (we are
+ using "foobar:98" in this example) and then try this:
+ -- snip --
+ % (DISPLAY=foobar:98 xset q | awk "/Font Path:/ { i=1 ; next } i==1 { print \$0 ; i=0 }" | tr "," "[\n]")
+ # Output may look like:
+ PRINTER:/usr/openwin/server/etc/XpConfig/C/print/models/HPDJ1600C/fonts/
+ PRINTER:/usr/openwin/server/etc/XpConfig/C/print/models/SPSPARC2/fonts/
+ PRINTER:/usr/openwin/server/etc/XpConfig/C/print/models/HPLJ3Si-PS/fonts/
+ /usr/openwin/lib/X11/fonts/F3/
+ /usr/openwin/lib/X11/fonts/F3bitmaps/
+ /usr/openwin/lib/X11/fonts/Type1/
+ /usr/openwin/lib/X11/fonts/Speedo/
+ /usr/openwin/lib/X11/fonts/misc/
+ /usr/openwin/lib/X11/fonts/75dpi/
+ /usr/openwin/lib/X11/fonts/100dpi/
+ -- snip --
+ Note that the font path items which start with "PRINTER:" are _only_ be
+ sourced _after_ the matching printer has been selected and configured
+ (for developers: After |XpSetContext()| has been called).
+
+- Q: "xset q" lists all model-specific font dirs (like
+ PRINTER:/myxpcfg/C/print/models/SPSPARC2/fonts/") - is that a bug ?
+ A: No, this is normal. Xprt will add all fonts of all printer models to the
+ font path - but font path items starting with "PRINTER:" are _only_
+ available for an application _after_ the matching printer has been
+ selected and configured (for developers: After |XpSetContext()| has been
+ called), _before_ that point fonts in these dirs are not available for
+ an application.
+
+- Q: My application lists a printer called "spooldir_tmp_Xprintjobs" in the
+ print dialog but I do not have such a print queue installed anywhere.
+ What is that for a thing ?!
+ A: "spooldir_tmp_Xprintjobs" is a special Xprint printer target which uses
+ the "PSspooldir" printer model. This model config sends PostScript jobs
+ to the /tmp/Xprintjobs/ directory instead to a physical printer (quite
+ usefull for people who want to get the PostScript files as output instead
+ of printed pages).
+
+3. CONFIGURATION
+- Q: How do I change the defaults for double-sided/single-sided/etc.
+ printing ?
+ A: This is controlled via the "plex" attribute in the document attribute
+ pool (${XPCONFIGDIR}/${LANG}/print/attributes/document and/or
+ ${XPCONFIGDIR}/C/print/attributes/document).
+ Examples:
+ 1. Adding/modifying the following line to/in
+ ${XPCONFIGDIR}/C/print/attributes/document sets the default plex for
+ all printers to "duplex":
+ -- snip --
+ *plex: duplex
+ -- snip --
+ 2. Adding/modifying the following two lines to/in
+ ${XPCONFIGDIR}/C/print/attributes/document sets the default plex for
+ all printers to "duplex" except for printer "ps003" which should
+ default to "simplex":
+ -- snip --
+ *plex: duplex
+ ps003.plex: simplex
+ -- snip --
+ Notes:
+ - Not all printers support all plex modes. The model-config may restrict
+ the available plex modes.
+ - Setting a plex mode which is not supported by either the DDX(=driver)
+ or not specified in the model-config will cause Xprt to not set a
+ default plex.
+ - The PostScript DDX supports plex modes "simplex", "duplex" and "tumble".
+ - Verification:
+ Use '% xplsprinters -l | egrep "^printer:|default_plex=|plex="' to view
+ the plex settings for all printers.
+
+- Q: I am in America and I don't have any ISO A4 paper. How do I change the
+ default paper size to 8.5 inch x 11 inch (US-Letter) ?
+ A: This is controlled via the "default-medium" attribute in the document
+ attribute pool (${XPCONFIGDIR}/${LANG}/print/attributes/document and/or
+ ${XPCONFIGDIR}/C/print/attributes/document).
+ Examples:
+ 1. Adding/modifying the following line to/in
+ ${XPCONFIGDIR}/C/print/attributes/document sets the default paper size
+ for all printers to "na-letter":
+ -- snip --
+ *default-medium: na-letter
+ -- snip --
+ 2. Adding/modifying the following two lines to/in
+ ${XPCONFIGDIR}/C/print/attributes/document sets the default paper size
+ for all printers to "na-letter" except for printer "ps003" which should
+ default to "iso-a4":
+ -- snip --
+ *default-medium: na-letter
+ ps003.default-medium: iso-a4
+ -- snip --
+ Notes:
+ - xprint.mozdev.org releases >= 007 provides a seperate "document"
+ attribute pool for en_US(-like) locales (see
+ ${XPCONFIGDIR}/en_US/print/attributes/document) which will override the
+ default ISO-A4 with US-Letter (this feature assumes that ${LANG} is set
+ to "en_US" (or a locale which has similar defaults as "en_US", those
+ are currently linked to "en_US" in ${XPCONFIGDIR}/))
+ - Not all printers support all paper sizes. The model-config may restrict
+ the available paper sizes.
+ - Setting a paper size which is not supported by either the DDX(=driver)
+ or not specified in the model-config will cause Xprt to not set a
+ default paper size.
+ - The PostScript DDX supports the following paper sizes:
+ - X.org release 6.6 (X116.6):
+ "iso-a4", "na-letter", "na-legal", "executive",
+ "iso-designated-long", "na-number-10-envelope"
+ - xprint.mozdev.org release >= 006:
+ "na-letter", "na-legal", "executive", "folio", "invoice",
+ "ledger", "quarto", "a", "b", "c", "d", "e",
+ "na-6x9-envelope", "na-10x15-envelope", "monarch-envelope",
+ "na-10x13-envelope", "na-9x12-envelope", "na-number-10-envelope",
+ "na-7x9-envelope", "na-9x11-envelope", "na-10x14-envelope",
+ "na-number-9-envelope",
+ "iso-a0", "iso-a1", "iso-a2", "iso-a3", "iso-a4",
+ "iso-a5", "iso-a6", "iso-a7", "iso-a8", "iso-a9",
+ "iso-a10",
+ "iso-b1", "iso-b2", "iso-b3", "iso-b4", "iso-b5",
+ "iso-b6", "iso-b7", "iso-b8", "iso-b9", "iso-b10",
+ "jis-b1", "jis-b2", "jis-b3", "jis-b4", "jis-b5",
+ "jis-b6", "jis-b7", "jis-b8", "jis-b9", "jis-b10",
+ "iso-c3", "iso-c4", "iso-c5", "iso-c6",
+ "iso-designated-long"
+ - Verification:
+ Use 'xplsprinters -l | egrep "^printer:|default-medium=|medium-source-sizes-supported="'
+ to view the medium settings for all printers.
+ The 'medium-source-sizes-supported='-lines have the format XXX.
+
+- Q: How do I change the default printer resolution ?
+ A: This is controlled via the "default-printer-resolution" attribute in the
+ document attribute pool (${XPCONFIGDIR}/${LANG}/print/attributes/document
+ and/or ${XPCONFIGDIR}/C/print/attributes/document).
+ Examples:
+ 1. Adding/modifying the following line to/in
+ ${XPCONFIGDIR}/C/print/attributes/document sets the default
+ resolution for all printers to 600 DPI:
+ -- snip --
+ *default-printer-resolution: 600
+ -- snip --
+ 2. Adding/modifying the following two lines to/in
+ ${XPCONFIGDIR}/C/print/attributes/document sets the default resolution
+ for all printers to 300 DPI except for printer "tekcolor_ps" which
+ should default to 1200 DPI:
+ -- snip --
+ *default-printer-resolution: 300
+ tekcolor_ps.default-printer-resolution: 1200
+ -- snip --
+ Notes:
+ - Not all printers support all resolutions. The model-config may restrict
+ the available resolutions.
+ - Setting a resolution which is not supported by either the
+ DDX(=driver) or not specified in the model-config will cause Xprt to
+ not set a default resolution.
+ - The PostScript DDX supports the following default resolutions
+ - X.org release 6.6 (X116.6):
+ 300, 600, 720, 940, 1200, 1440, 2400
+ - xprint.mozdev.org release >= 006:
+ 75, 100, 120, 150, 180, 200, 240, 300, 360, 400, 600, 720, 940,
+ 1200, 1440, 2400
+ - Verification:
+ Use 'xplsprinters -l | egrep "^printer:|default-printer-resolution=|resolution="'
+ to view the resolution settings for all printers.
+
+- Q: How do I change the default settings for "portrait"/"landscape"/"seascape"
+ (=page orientation) ?
+ A: This is controlled via the "content-orientation" attribute in the
+ document attribute pool (${XPCONFIGDIR}/${LANG}/print/attributes/document
+ and/or ${XPCONFIGDIR}/C/print/attributes/document).
+ Examples:
+ 1. Adding/modifying the following line to/in
+ ${XPCONFIGDIR}/C/print/attributes/document sets the default
+ orientation for all printers to "portrait":
+ -- snip --
+ *content-orientation: portrait
+ -- snip --
+ 2. Adding/modifying the following two lines to/in
+ ${XPCONFIGDIR}/C/print/attributes/document sets the default orientation
+ for all printers to "portrait" except for printer "ps003" which should
+ default to "landscape":
+ -- snip --
+ *content-orientation: portrait
+ ps003.content-orientation: landscape
+ -- snip --
+ Notes:
+ - Not all printers support all orientations. The model-config may
+ restrict the available orientations.
+ - Setting an orientation which is not supported by either the
+ DDX(=driver) or not specified in the model-config will cause Xprt to
+ not set a default orientation.
+ - The PostScript DDX supports the following orientations:
+ "portrait", "landscape", "reverse-portrait" and "reverse-landscape".
+ - Verification:
+ Use 'xplsprinters -l | egrep "^printer:|default_orientation=|orientation="'
+ to view the orientation settings for all printers.
+
+- Q: How can I prevent Xprt from using any bitmap(=gfx) fonts ?
+ A: Do not pass any bitmap fonts with the "-fp" (=font path) argument.
+ However you have to provide a 'fixed' and a 'cursor' font, a Xserver
+ can't start without having these fonts.
+ Task list:
+ 1. Create a new directory:
+ % mkdir Xp_dummyfonts
+ % cd Xp_dummyfonts
+ 2. Create a fonts.alias file with the following content:
+ -- snip --
+ ! alias for "fixed" font
+ ! original from /usr/openwin/lib/X11/fonts/misc/fonts.alias looks like this:
+ ! fixed "-misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1"
+ fixed -*-r-*--*-*-*-*-*-*-iso8859-1
+ ! EOF.
+ -- snip --
+ 3. Copy or link "6x13.pcf.Z" and "cursor.pcf.Z" and create fonts.dir
+ % ln -s /usr/openwin/lib/X11/fonts/misc/6x13.pcf.Z .
+ % ln -s /usr/openwin/lib/X11/fonts/misc/cursor.pcf.Z .
+ % mkfontdir $PWD
+ 4. Verify: The directory should now look like this:
+ -- snip --
+ % ls -1
+ 6x13.pcf.Z
+ cursor.pcf.Z
+ fonts.alias
+ fonts.dir
+ -- snip --
+ 5. Add the full path (e.g. /home/xp/Xp_dummyfonts) as last element
+ of the font path when starting Xprt:
+ % Xprt -fp /usr/openwin/lib/X11/fonts/Type1/,/home/xp/Xp_dummyfonts :12
+
+ | I created a tarball from these instructions, get it from
+ | http://puck.informatik.med.uni-giessen.de/people/gisburn/work/xprint/fonts/Xp_dummyfonts.tar.gz
+ | Unpack it and add the new dir to your fontpath)
+
+- Q: I want only my manually added printers managed by Xprint. How can I
+ prevent Xprt from looking-up the printer names automatically ?
+ A: Add a line with "Augment_Printer_List %none%" to
+ ${XPCONFIGDIR}/C/print/Xprinters (or
+ ${XPCONFIGDIR}/${LANG}/print/Xprinters) and add lines with
+ "Printer <name>" for each printer <name>.
+ Example:
+ -- snip --
+ Augment_Printer_List %none%
+ Printer ps001
+ Printer ps003
+ Printer hplaser6
+ -- snip --
+ will add only the printers "ps001", ps003" and "hplaser6".
+
+- Q: How can I specifc an own program/script to enumerate the printers on by system ?
+ A: Add "Augment_Printer_List my_script" to ${XPCONFIGDIR}/C/print/Xprinters (or
+ ${XPCONFIGDIR}/${LANG}/print/Xprinters).
+ The script must return the printer names - one per line, ASCII-only - to stdout.
+
+- Q: Which program is used by default by Xprt to enumerate the printers on
+ my system ?
+ A: This depends on the OS:
+ - On Solaris (and most other OSes exclusing AIX and Linux):
+ % lpstat -a | cut -d " " -f 1
+ - On Linux:
+ - For Xprt build from X11R6.x X.org sources:
+ % lpc status | grep -v '^\t' | sed -e /:/s/// # '\t' means TAB
+ - For Xprt build from xprint.mozdev.org sources (both lines are executed
+ to support both LPng and CUPS):
+ % lpc status | awk '/:$/ && !/@/ { print $1 }' | sed -e /:/s/// ;
+ lpc -a status | awk '/@/ && !/:/ { split( $1, name, \"@\" ); print name[1]; }'
+ - On AIX v4:
+ % lsallq | grep -v '^bsh$'
+ * See xc/programs/Xserver/Xprint/Init.c for a complete list of commands
+ used on the specific platforms to enumerate the printers.
+ * Note that the output is always piped through "sort" to get an
+ alphabetical order (the "default" printer is not chosen/defined
+ here(=server side), the client side is responsible to choose a default
+ printer.
+ See FAQ item about the ${XPRINTER} env var how to set your default
+ printer).
+
+- Q: Where can I get more PostScript Type1 fonts from ?
+ A: Some sources:
+ - Adobe:
+ - Commercial fonts:
+ http://www.adobe.com/type/main.html
+ - Free Euro font:
+ - Single-glyph (e.g. it contains _only_ the euro char) euro font:
+ http://www.adobe.com/type/eurofont.html or
+ ftp://ftp.adobe.com/pub/adobe/type/win/all/
+ ("eurofont.exe" can be unzipped using "unzip")
+ - ISO8859-15:
+ WANTED!!
+ - Solaris shipps with various PS Type 1 fonts:
+ - Arabic:
+ /usr/openwin/lib/locale/ar/X11/fonts/Type1
+ ("fonts.dir" and "fonts.scale" missing, maybe they miss the
+ presentation forms a&b, too [unconfirmed])
+ - ISO-8859-13 (Latin 8):
+ /usr/openwin/lib/locale/iso_8859_13/X11/fonts/Type1
+ - ISO-8859-5 (Latin 5):
+ /usr/openwin/lib/locale/iso_8859_9/X11/fonts/Type1
+ - ISO-8859-8/Hebrew:
+ /usr/openwin/lib/locale/iso_8859_8/X11/fonts/Type1
+ (BROKEN, even "type1fix" cannot fix them. Use the hebrew fonts from
+ http://puck.informatik.med.uni-giessen.de/people/gisburn/work/xprint/fonts/postscript_type_1/PS_Type1_iso8859-8.tar.gz)
+ - ISO-8859-7/Modern greek:
+ /usr/openwin/lib/locale/iso_8859_7/X11/fonts/Type1
+ - ISO-8859-5/Cryrillic:
+ /usr/openwin/lib/locale/iso_8859_5/X11/fonts/Type1
+ - ISO-8859-4 (Latin 4):
+ /usr/openwin/lib/locale/iso_8859_4/X11/fonts/Type1
+ - ISO-8859-2 (Latin 2):
+ /usr/openwin/lib/locale/iso_8859_2/X11/fonts/Type1
+ - ISO-8859-1 (Latin 1) and Symbol fonts:
+ /usr/openwin/lib/X11/fonts/Type1/
+ - Some of my own collections:
+ (see http://puck.informatik.med.uni-giessen.de/people/gisburn/work/xprint/fonts/postscript_type_1/):
+ - KOI8-R:
+ http://puck.informatik.med.uni-giessen.de/people/gisburn/work/xprint/fonts/postscript_type_1/PS_Type1_koi8-r.tar.gz
+ - ISO-8859-8/Hebrew:
+ http://puck.informatik.med.uni-giessen.de/people/gisburn/work/xprint/fonts/postscript_type_1/PS_Type1_iso8859-8.tar.gz
+
+- Q: What are PMF fonts (e.g. the *.pmf fonts in
+ ${XPCONFIGDIR}/C/print/models/%model_name%/fonts/ (or
+ ${XPCONFIGDIR}/${LANG}/print/models/%model_name%/fonts/)) ?
+ A: PMF "fonts" are "printer metric files" (.pmf) that describe the metrics
+ of the fonts (which means they do not contain any data to render the
+ fonts - they contain only the plain metrics of a font) which are built
+ into the printer (ROM or via font catridge etc.).
+
+- Q: Can I use the fontserver ("xfs") with Xprt ?
+ A: You can use Xprt with the font server ("xfs") like with any other
+ Xserver - but it is not recommded since the font server protocol does
+ not allow access to the native font format and therefore disables font
+ download, e.g. both PS Type1 and TrueType fonts cannot be downloaded
+ anymore and Xprt will fall-back to embed them as bitmap glyphs in the
+ print job (e.g. the fonts will still appear correctly in the printout,
+ but the quality may be reduced since downloaded fonts are always better
+ than bitmap glyphs).
+ (users of xprint.mozdev.org-release <= 006 may see
+ http://xprint.mozdev.org/bugs/show_bug.cgi?id=2092 if they use "xfs";
+ this has been fixed in the 007 release!)
+
+- Q: What is a "model-config" ?
+ A: The term "model-config" refers to the subdirs in
+ ${XPCONFIGDIR}/${LANG}/print/models/. There subdirs contain information
+ about the attributes for a specific printer model or family/class of
+ printer models. In particular there are two kinds of information:
+ - "${XPCONFIGDIR}/${LANG}/print/models/${NAME_OF_MODEL}/model-config"
+ this file defines a set of attributes supported by this specific printer
+ (-family/-class/etc.)
+ and
+ - "${XPCONFIGDIR}/${LANG}/print/models/${NAME_OF_MODEL}/fonts/" - a
+ directory which contains a set of PMF (printer metrics file) fonts
+ builtin into the printer itself (actually the PMF "font" format
+ contains only metrics information and no glyphs).
+ These fonts are only available to the application _after_ the
+ application has selected a printer and configured it (for developers:
+ After |XpSetContext()| has been called).
+
+- Q: Where can I store the default values for printers ?
+ A: XXX
+
+- Q: How can I create my own model-config ?
+ A: XXX
+
+- Q: How can I create my own PMF "fonts" ?
+ A: XXX - no solution yet, but
+ http://xprint.mozdev.org/bugs/show_bug.cgi?id=2430 ("RFE: Need tool to
+ create PMF (printer metrics file) fonts") has been fixed to create a
+ freeware tool to create such fonts.
+
+- Q: Where can I get more model-configs from ?
+ A: If you miss a model-config for your printer please open a bug/RFE at
+ http://xprint.mozdev.org/bugs/enter_bug.cgi?product=xprint&component=Server%3A+Config%3A+model-configs
+ (e.g. ttp://xprint.mozdev.org/bugs/ , product "Xprint", component
+ "Server Config: model-configs").
+
+- Q: If I install Xprt&co. as "root" in the default location and don't need
+ to set ${XPCONFIGDIR} - where are my configuration files located then ?
+ A: This is platform-specific, based on the "XPrintDir" Imake variable set
+ at build time. Default location for plain X11R6.x is
+ "${XProjectRoot}/lib/X11/xserver" (set at build time), but some
+ platforms modify "XPrintDir" to alternate locations:
+ - Solaris sets ${XPCONFIGDIR} to /usr/openwin/server/etc/XpConfig/
+ - Linux (non-Debian) sets ${XPCONFIGDIR} to /usr/X11R6/lib/X11/xserver/
+ or /etc/X11/xserver/
+ - Debian Linux sets ${XPCONFIGDIR} to /usr/share/Xprint/xserver
+ * If you don't know where the default location for ${XPCONFIGDIR} is
+ located try
+ % strings -a /usr/openwin/bin/Xprt | grep XPRINTDIR # - it _may_
+ return some debug info from the binary containing the builtin XpConfig
+ path.
+
+- Q: Are config files and/or the PMF fonts architecture dependent ?
+ A: The PMF fonts are AFAIK a variant of the PCF font format, they are
+ (like the PCF format) architecture-independent.
+ These fonts must be kept together with the other model config data since
+ they depend on the printer model (de facto
+ ${XPCONFIGDIR}/C/print/models/ (and/or
+ ${XPCONFIGDIR}/${LANG}/print/models/) should be supplied by the printer
+ vendors (but most people will create their own models on demand since
+ I doubt that any vendor except HP, Sun and xprint.mozdev.org staff ever
+ looked at that stuff)).
+ Per definition they are read-only data supplied by the vendor, but
+ modifying them may be usefull, too.
+ I would say it is recommended to put treat all Xprint files in
+ ${XPCONFIGDIR} as read-only vendor data; admins should create copies of
+ this tree on demand (and/or (soft-)link some files) and set
+ ${XPCONFIGDIR} to the modified config data.
+
+- Q: Can I localise my Xprint/Xprt configuration ?
+ A: Yes, Xprt supports localisation ("l10n") by default. Default values for
+ all locales are stored in ${XPCONFIGDIR}/C/print/, locale-specific
+ settings can be set in ${XPCONFIGDIR}/${LANG}/print/
+ Rules:
+ - Attribute pools
+ ("${XPCONFIGDIR}/*/print/attributes/document",
+ "${XPCONFIGDIR}/*/print/attributes/job",
+ "${XPCONFIGDIR}/*/print/attributes/printer" and
+ "${XPCONFIGDIR}/*/print/models/*/model-config"):
+ "document", "job" and "printer" attribute pools and printer
+ model-configs are sourced first from the
+ "${XPCONFIGDIR}/C/print/"-directory, then they are overridden by any
+ attributes from the locale-specific pools (in
+ "${XPCONFIGDIR}/${LANG}/print/"), e.g. any values set in
+ "${XPCONFIGDIR}/C/print/attributes/*" and
+ "${XPCONFIGDIR}/C/print/models/*/model-config" will automatically
+ apply to all other locales unless they are overridden by
+ locale-specific versions of these files
+ ("${XPCONFIGDIR}/${LANG}/print/attributes/*",
+ "${XPCONFIGDIR}/${LANG}/print/models/*/model-config")
+ - "Xprinters" (list of printers):
+ If there is a locale-specific ${XPCONFIGDIR}/${LANG}/Xprinters present
+ it will be used instead of ${XPCONFIGDIR}/C/Xprinters (e.g. values set
+ in ${XPCONFIGDIR}/C/Xprinters will be ignored and the values from
+ ${XPCONFIGDIR}/${LANG}/Xprinters will be used instead).
+ - Xprt will determinate the locale which should be used based on the
+ ${LANG}-environment vaiable at startup time. If there is no such
+ variable set at that time LANG="C" is assumed.
+ * Notes:
+ - Attribute values for paper names and orientation names refer to
+ builtin strings in the DDX code (which are itself based on
+ international standards), these cannot be changed to your own
+ "inventions" (it does it make sense to try to "localize" paper names -
+ "ISO-A4" is "ISO-A4" even in japanese/hebrew/german etc.).
+ Locale-spefific attribute pools can set their own, different values -
+ but only within the allowed range of values supported by the DDX and
+ printers's model-config.
+
+- Q: Can I execute my own scripts to process the PostScript files generated
+ by Xprt ?
+ A: Yes, there are at least two possible solutions:
+ 1. Create your own model-config which uses a custom "xp-spooler-command"
+ value - the xprint.mozdev.org's "PSspooldir" model config (see
+ "${XPCONFIGDIR}/C/print/models/PSspooldir/" and
+ "${XPCONFIGDIR}/C/print/attributes/printer" and
+ "${XPCONFIGDIR}/C/print/Xprinters") is a good example for that.
+ 2. Use an existing "model-config" (which would normally send it's data to
+ a printer using the default print spooler command) and provide a
+ custom "xp-spooler-command".
+ Example (using "SPSPARC2" as printer model and "myscriptprinter" as
+ name of the printer):
+ 1. Edit ${XPCONFIGDIR}/C/print/attributes/printer and add these lines
+ (Xprt will replace "%printer-name%" with the printer's name,
+ "%copy-count%" with the number of job copies, "%job-name%" with the
+ job's title and "%options%" with any custom spooler options):
+ -- snip --
+ myscriptprinter.xp-model-identifier: SPSPARC2
+ myscriptprinter.xp-spooler-command: -printer %printer-name% -copies %copy-count% -title %job-name% -options "%options%"
+ -- snip --
+ 2. Edit ${XPCONFIGDIR}/C/print/Xprinters and append this line:
+ -- snip --
+ Printer myscriptprinter
+ -- snip --
+
+- Q: How can I disable "spooldir_tmp_Xprintjobs" printer target ?
+ A: Edit ${XPCONFIGDIR}/C/print/Xprinters and remove or comment-out the line
+ "Printer spooldir_tmp_Xprintjobs".
+ Note that Xprt will _NOT_ start if this printer has been removed/disabled
+ and no other print queue is available (e.g. if "spooldir_tmp_Xprintjobs"
+ is the only printer target available).
+
+4. TROUBLESHOOTING
+- Q: Xprt refuses to start with the message "sh: lpc: command not found" on
+ my Linux machine. What does that mean ?
+ A: Xprt looks up printers using "lpc" on Linux. In this case "lpc" cannot be
+ found for some reason.
+ Solution:
+ Find the place where "lpc" is installed on your machine (some
+ distributions put it into /usr/sbin, some into /usr/bin) and check
+ whether your PATH env var includes this directory.
+ Example (if "lpc" is located in /usr/sbin):
+ % which lpc
+ /usr/sbin/lpc
+ % export PATH=$PATH:/usr/sbin
+ # Start Xprt ...
+ % Xprt <your-options-come-here>
+
+- Q: When the application (=client side) tries to connect to the Xprt
+ (Xserver) side it fails with a
+ -- snip --
+ Xlib: connection to "meridian:52.0" refused by server
+ Xlib: Client is not authorized to connect to Server
+ -- snip --
+ What does that mean ?
+ A: X11 implements access control. You can have host-based, cookie-based (a
+ "cookie" is used like a passport) or user-based (SecureRPC or Kerberos5)
+ authentification. Xsecurity(7) has most of the details.
+ a. No access control:
+ If you do not want to use access control for Xprt then you can start it
+ with the option "-ac" (see XSERVER(1)) to disable the access control.
+ Example:
+ % Xprt -ac -audit 4 :12
+ will start Xprt with access control disabled and with auditing enabled
+ (e.g. the "-audit 4" option).
+ WARNING: Disabling the access control will enable _everyone_ who can
+ access Xprt to print on your printers (that's why the above example
+ shows how to use auditing, too - that you can see who does something
+ with Xprt...) !!
+
+ b. Host-based access control:
+ Host-based access control can be archived using /etc/X<dpy>.hosts
+ (<dpy> == display number, e.g. /etc/X0.hosts for display 0 (see
+ Xserver(1) manual page for further details)).
+ Example:
+ 1. Add the following line to `/etc/X12.hosts' (assuming you want that
+ the hosts 'merkur' and 'mars' should be able to access the Xprt
+ server running as display 12 on your host 'neptun'):
+ -- snip --
+ INET:merkur
+ INET:mars
+ -- snip --
+ 2. Start Xprt
+ 3. Verify that Xprt is correctly configured:
+ -- snip --
+ % export DISPLAY=neptun:12
+ % xhost
+ access control enabled, only authorized clients can connect
+ INET:localhost
+ LOCAL:
+ INET:merkur
+ INET:mars
+ -- snip --
+
+- Q: Xprt refuses to start with the message "failed to set default font path
+ '...' Fatal server error: could not open default font 'fixed'".
+ What does that mean ?
+ A: This means one or more components in the font path (set via the option
+ "-fp") are either...
+ - ... not valid
+ - ... contain fonts not supported by this Xserver (e.g. support has not
+ be compiled "in" (usually happens for TrueType or F3 fonts (Sunsoft/F3
+ fonts are Solaris-specific and _not_ supported by other vendors (AFAIK))
+ when support for these fonts was not enabled at build time))
+ - ... no font or font alias in the font path matches the name "fixed"
+
+- Q: Just copying my fonts into a directory and adding the path to my Xprt
+ command line didn't work - I always get "Fatal server error: could not
+ open default font 'fixed'". What am I doing wrong ?
+ A: Every Xserver needs an index file called "fonts.dir" to tell it which
+ fonts are available in this directory and which properties these fonts
+ have.
+ If you are lucky there may be already a "fonts.scale" file which can be
+ used by "mkfontdir" to create the "fonts.dir" file.
+ If there is no "fonts.scale" then you have to create your own
+ fonts.dir/fonts.scale either by hand or via a tool like "type1inst" (see
+ http://packages.debian.org/stable/utils/type1inst.html) for PS Type1
+ fonts and "ttmkfdir" (see
+ http://packages.debian.org/stable/x11/ttmkfdir.html) for TrueType fonts.
+
+- Q: Xprt refuses to start with the message "Fatal server error: Cannot
+ establish any listening sockets - Make sure an X server isn't already
+ running". What does that mean ?
+ A: There is already a Xserver running at the display ID you have specified
+ to start Xprt (for example your framebuffer Xserver runs at ":0" then
+ Xprt can't run at the same display display).
+
+- Q: Xprt refuses to start with the message "Fatal server error: Failed to
+ establish all listening sockets". What does that mean ?
+ A: This means that the Xserver could not open one of it's sockets. Check
+ the permission of /tmp/.X11-pipe and /tmp/.X11-unix (on Solaris a
+ Xserver must run set-gid "root" to access these directories).
+ Either fix the permission or start Xprt with the option "-pn". Using this
+ option requires to access the server _always_ with
+ <hostname>:<displaynum> (see Xserver(1) manual page for the side-effects
+ of this option).
+
+- Q: Xprt refuses to start with the message "Fatal server error: could not
+ open default font 'fixed'" or "Fatal server error: could not open default
+ cursor font 'cursor'".
+ A: All Xservers at least two fonts as the minimum: One fixed-width font
+ ("fixed") and one font for the cursor ("cursor"). Be sure that the font
+ path contains these fonts.
+ I created a tarball which contains only these two fonts, get it from
+ http://puck.informatik.med.uni-giessen.de/people/gisburn/work/xprint/fonts/Xp_dummyfonts.tar.gz
+
+- Q: Xprt refuses to start with the message "Fatal server error: no screens
+ found". What does that mean ?
+ A: This means that Xprt could not find any printers. Either there are no
+ printers installed, "lpstat"/"lpc" could not find any printers or the
+ configuration does not contain any manual printer configurations
+ (see Q/A item "Which program is used by default by Xprt to enumerate the
+ printers on my system" for further details...).
+
+ Two solutions:
+ 1. Using "PSspooldir" model:
+ Xprt releases from http://xprint.mozdev.org/ provide the "PSspooldir"
+ model config for such cases. Just edit the "Xprinters" and add
+ this line:
+ -- snip --
+ Printer spooldir_tmp_Xprintjobs
+ -- snip --
+ this will add the pre-configured (see
+ ${XPCONFIGDIR}/C/print/attributes/printer) "spooldir_tmp_Xprintjobs"
+ printer which will send jobs to the directory "/tmp/Xprintjobs/"
+ instead to a printer queue.
+ (This feature was added in the xprint.mozdev.org release 007, see
+ http://xprint.mozdev.org/bugs/show_bug.cgi?id=2475 ("RFE: Need
+ model-config which spools print jobs in a predefined directory"))
+
+ 2. Manual setup:
+ Step 1: Provide a simple "Xprinters" spec file which contains a dummy
+ queue.
+ Example:
+ # Create "Xprinters_onlydummy" file which turns autolookup of printers
+ # OFF (using "Augment_Printer_List %none%") and provides one dummy
+ # queue called "ps_myscript" instead (using "Printer ps_myscript")
+ % echo "Augment_Printer_List %none%" >Xprinters_onlydummy
+ % echo "Printer ps_myscript" >>Xprinters_onlydummy
+ Step 2: Edit ${XPCONFIGDIR}/C/print/attributes/printer and add these
+ two lines:
+ -- snip --
+ ps_myscript.xp-model-identifier: PSdefault
+ ps_myscript.xp-spooler-command: /home/sanja/xprint_test/my_xprt_cat_script.sh
+ -- snip --
+ This means that the printer "ps_myscript" now uses the "PSdefault"
+ printer model and it will feed the jobs to the script
+ "/home/sanja/xprint_test/my_xprt_cat_script.sh" (via stdin).
+ Note that the absolute path is required for "*xp-spooler-command".
+ Step 3: Start Xprt on display 18, passing the "Xprinters_onlydummy"
+ using the "-XpFile" option:
+ % Xprt -XpFile ./Xprinters_onlydummy -pn -ac -audit 4 :18
+
+- Q: "Printing itself works but the printout covers only 1/4 of the paper
+ - what am I doing wrong ?"
+ A: This is usually an indicator for a wrong DPI setting. The default
+ "PSdefault" model config uses 300 DPI but some printers only support
+ 600 DPI.
+ - Workaround:
+ Edit ${XPCONFIGDIR}/C/print/attributes/document and replace the line
+ "*default-printer-resolution: 300" with
+ "*default-printer-resolution: 600"
+ (Note that locale-specific settings in
+ ${XPCONFIGDIR}/${LANG}/print/attributes/document always override values
+ set in ${XPCONFIGDIR}/C/print/attributes/document.)
+ - Solution:
+ Create a model-config for your printer which only contains attributes
+ supported by your printer ("printer-resolutions-supported" is the
+ attribute in the "model-config" which holds the space-seperated list
+ of DPI values which are supported by the printer).
+
+- Q: "Printing works but I get large borders/margins..." / "[Top] margin is too small" /
+ "Margins are wrong" / etc.
+ A: Two possible causes:
+ - Usually same issue as "Printing itself works but the printout covers
+ only 1/4 of the page"-issue: Wrong DPI.
+ Solution: Check the DPI value and adjust it as described in the FAQ item
+ above. Common DPI values for the PostScript DDX are 240, 300, 360, 400
+ and 600 DPI.
+ - You are trying to print "US-letter" on a "DIN-A4" paper or "DIN-A4" on
+ "US-letter".
+ Solution: Check your paper settings
+ Note that the default papersize for Xprt depends on the locale
+ (e.g. on the env var ${LANG}) Xprt is running in - "en_US"&co. get
+ US-letter, all others use DIN-A4 (incl. german/austrian etc. locales)).
+ Exception from this rule: If the selected printer does not support the
+ default paper size it will set no default paper size for this printer
+ (then the application side has to make an explicit choice).
+
+- Q: Xprt prints a warning like "Xp Extension: could not find config dir
+ /usr/X11R6/lib/X11/C/print" - what does that mean ?
+ A: This is actually the worst case what can happen.
+ The message indicates that Xprt was unable to find it's configuration
+ data.
+ Solution:
+ - Install configuration data at the requested location
+ OR
+ - Set the ${XPCONFIGDIR} env var to the location of the Xprt
+ configuration directory.
+
+- Q: Xprt crashes with "Fatal server error: Beziers this big not yet supported"
+ What does that mean ?
+ A: This is a known issue in the X11R6.5.1 code. In rare cases some PostScript
+ Type1 fonts can trigger this.
+ See "My PS Type1 font does not work with my Xserver" ...
+
+- Q: "My PS Type1 font does not work with my Xserver - how can I fix this ?"
+ A: Some PS Type1 do not work out-of-the-box with all PS Type1 font engines -
+ some will work with the Adobe font engine (used in Solaris Xsun) but not
+ with the X.org font engine (or the other way round) or the fonts are
+ simply broken.
+
+ The following procedure will try to fix this problem:
+ Get the "type1fix" perl script the TeXTrace package
+ (http://www.inf.bme.hu/~pts/textrace-latest.tar.gz) and run it over
+ the fonts.
+
+ Example 1 (filter fonts):
+ # Broken PFA fonts are in broken_fonts/
+ % mkdir fixed_fonts ; cd fixed_fonts
+ % for i in ../broken_fonts/*.pfa ; do
+ echo " ------- $i" ;
+ type1fix.pl --ofmt=pfa --infile=$i --outfile=$(basename ${i}) ;
+ done
+
+ Example 2 (filter fonts and convert them to PFB on-the-fly; do not forget
+ to update "fonts.scale" and run "mkfontdir" (to update "fonts.dir") ;
+ systems which use the Adobe font engine (like Solaris/Xsun) may require
+ to run "makepsres", too):
+ # Broken PFA fonts are in broken_fonts/
+ % mkdir fixed_fonts ; cd fixed_fonts
+ % for i in ../broken_fonts/*.pfa ; do
+ echo " ------- $i" ;
+ type1fix.pl --ofmt=pfb --infile=$i --outfile=$(basename ${i%.pfa}.pfb) ;
+ done
+
+- Q: I can't get it working. I have set ${DISPLAY} correctly to point to the
+ Xprt display and... ... What is going wrong ?
+ A: Do not set ${DISPLAY} to the Xprt server. You still need your normal
+ Xserver for your video card - Xprt is only for your printer(s).
+ Applications look up Xprt servers via the ${XPSERVERLIST} env var, _NOT_
+ via the ${DISPLAY} env var.
+
+- Q: When I try to print via Xprint I get the message "Fatal server error:
+ unable to exec '/usr/bin/lp'". What is going wrong here ?
+ A: It usually means that the spooler application "/usr/bin/lp" would not be
+ launched. This is usually the result when /usr/bin/lp does not exist or
+ cannot be executed (for example, shell scripts without the +x flag etc.).
+
+- Q: The Solaris Xprt prints some error messages about PostScript fonts like
+ "FOOBAR not found, using Courier. CMEX0123 not found, using Courier."
+ etc. and uses "Courier" instead of these fonts...
+ A: The Solaris (Adobe-based) PostScript font engine requires a "PostScript
+ resource database" file named "PSres.upr" to use the PostScript fonts
+ correctly.
+ * Solution:
+ Steps to create the missing file:
+ 1. Go to the location where the matching fonts are installed (we're using
+ /home/sanja/mathml_fonts/tex_cmps/Type1/ in this example):
+ % cd /home/sanja/mathml_fonts/tex_cmps/Type1/
+ 2. Create "PSres.upr" using the "makepsres" resource file
+ % makepsres
+ 3. Validation:
+ Make sure the file has been created:
+ % ls -l PSres.upr
+ 4. Restart Xprt server(s):
+ % /etc/init.d/xprint restart
+ 5. Restart application which uses these fonts
+
+ The makepsres(1) manual page has some additional details about this
+ subject...
+
+- Q: "Xprt refused to start, complaining about a missing dir
+ (/etc/X11/xserver/C/print directory)... I created it by hand (empty) and
+ started Xprt but it still does not work properly..."
+ A: Xprt expects some config data in this directory. Just making it an
+ existing but empty dir will work around the error message but will not
+ result in a properly working Xprt since it has no (usefull) builtins
+ which would make it possible to run the binary without the config data.
+ Your X11 binary distribution should always come with the config data
+ (for example /usr/openwin/server/etc/XpConfig/ on Solaris) or you won't
+ be able to use Xprint (however it is possible to copy the config data
+ from another system :)
+ BTW: Source for the configs can be found under xc/programs/Xserver/XpConfig
+
+- Q: My Linux system already shipps with a '/usr/X11R6/bin/Xprt'-binary.
+ Do I need the binary distribution from http://xprint.mozdev.org/ ?
+ A: This depends on what is shipped with your Linux distribution.
+ Please check the "vendor" string of the Xprt server:
+ % Xprt :10 &
+ % xdpyinfo -display :10 | grep -i "vendor string"
+ If this outputs a line like "vendor string: The XFree86 Project, Inc"
+ then you have the Xprt binary build from Xfree86 sources - which are
+ broken - even the newest version [I'll update this as soon as Xfree86
+ shipps with a working version].
+ Xprt from Solaris, HP-UX and my own builds (which identifies itself as
+ "vendor string: xprint.mozdev.org" for releases >= 007, older releases
+ (e.g. <= 006) identify itself as as "vendor string: The X.Org Group")
+ are known to work proprtly.
+
+- Q: I am getting the error message "error opening security policy file
+ /usr/X11R6/lib/X11/xserver/SecurityPolicy". What does that mean ?
+ A: The policy file for the SECURITY extension cannot be found.
+ This is not serious unless you want to make use of features of the
+ SECURITY extensions (like treating clients as "untrusted", e.g. restrict
+ their access to certain Xserver resources).
+ Normally the missing policy file is a problem with your Unix/Linux X11
+ distribution; consult your vendor where to get the missing file from.
+ Alternatively you can get the plain X11R6.6 security policy file from
+ ftp://ftp.x.org/pub/R6.6/xc/programs/Xserver/Xext/SecurityPolicy (copy it
+ to the matching location - but be sure that you do not overwrite any
+ existing security policy file).
+
+- Q: I have modified the "HPLJ4family" [or "HPDJ1600C" etc.] printer model to
+ work with my PostScript printer, but when I print I get empty places
+ where some text should be - what am I doing wrong here ?
+ A: The "HPLJ4family" and "HPDJ1600C" models are PCL-only, check
+ the model-config spec
+ (${XPCONFIGDIR}/C/print/models/${MODEL_NAME}/model-config) - if the
+ "xp-ddx-identifier" attribute says something with "PCL" (like
+ "XP-PCL-MONO" etc.) in the value string then this model-config is for
+ the PCL-DDX _only_ (e.g. their PMF fonts do not supply the neccesary
+ information (e.g. the "_ADOBE_POSTSCRIPT_FONTNAME" chunk is missing;
+ they only provide the "PCL_FONT_NAME" chunk) nor are these fonts
+ accessible via the PostScript-support in these printers.
+ A solution is to use the "PSdefault" model instead (and/or create your
+ customized own version of this model) - or look if there is a
+ model-config beginning with the same name and ending with "PS" (e.g.
+ "HPLJ4family-PS").
+
+- Q: Xprt outputs warning messages like:
+ -- snip --
+ Xp Extension: Can't load driver XP-PCL-MONO
+ init function missing
+ Xp Extension: Can't load driver XP-RASTER
+ init function missing
+ -- snip --
+ What does that mean ?
+ A: Two possible problems:
+ 1. The requested driver is not supported by that version of Xprt.
+ For example Solaris 2.7 Xprt does not support XP-PCL-MONO nor the
+ XP-RASTER driver.
+ Valid values for the "xp-ddx-identifier" attribute in
+ ${XPCONFIGDIR}/*/print/attributes/printers and/or
+ ${XPCONFIGDIR}/*/print/models/*/model-config are
+ - Solaris 2.7: XP-POSTSCRIPT and XP-PCL-COLOR
+ - Solaris >=2.8: XP-POSTSCRIPT, XP-PCL-COLOR, XP-PCL-MONO and XP-RASTER
+ - HP-UX: XP-POSTSCRIPT, XP-PCL-COLOR, XP-PCL-MONO, XP-PCL-LJ3,
+ XP-PCL-DJ1200 and XP-RASTER
+ - xprint.mozdev.org release 007: XP-POSTSCRIPT and XP-RASTER
+ - xprint.mozdev.org release 008: XP-POSTSCRIPT, XP-PCL-COLOR,
+ XP-PCL-MONO, XP-PCL-LJ3 and XP-RASTER
+ - xprint.mozdev.org release >=1.0 (planned): XP-POSTSCRIPT, XP-PCL-COLOR,
+ XP-PCL-MONO, XP-PCL-LJ3, XP-RASTER and XP-PDF
+ 2. There may be too many drivers loaded into one Xprt instance.
+ By default a single Xserver instance can only handle three screens - and
+ since one Xprint DDX maps to one Xserver screen this limit applies to
+ the number of loaded Xprt drivers, too.
+ Starting with xprint.mozdev.org release 008 the per-Xserver screen limit
+ was increased from "3" to "8" to avoid this issue...
+ Workaround: Start a 2nd instance of Xprt which handles the other
+ drivers which do not fit into the first instance.
+
+- Q: Printing on Solaris with Mozilla/Eclipse [or any other Xprint client]
+ removes spaces between words. What is going wrong ?
+ A: This is a bug in the Solaris Xprint server binary (/usr/openwin/bin/Xprt).
+ Various bug reports have been filed, see
+ - http://xprint.mozdev.org/bugs/show_bug.cgi?id=3353 ("Solaris Xprt looses
+ space when rendering with '-monotype-arial-*'-fonts")
+ - http://bugzilla.mozilla.org/show_bug.cgi?id=199957 ("Solaris 8 Mozilla
+ removes spaces for text within <font face="Arial">...</font>")
+ Known workarounds:
+ - Remove the '-monotype-arial-*' fonts from the font path
+ - Use an alternate Xprint server like available in the "GISWxprint" package
+ (this package is identical to the "GISWxprintglue" package except that it
+ uses a Xprint server build from xprint.mozdev.org sources and not the
+ /usr/openwin/bin/Xprt binary from Solaris)
+ - Mozilla-only: Adding
+ -- snip --
+ user_pref("print.xprint.font.rejectfontpattern",
+ "fname=-dt-.*;scalable=.*;outline_scaled=false;xdisplay=.*;xdpy=.*;ydpy=.*;xdevice=.*|" +
+ "fname=-monotype-arial.*;scalable=.*;outline_scaled=.*;xdisplay=.*;xdpy=.*;ydpy=.*;xdevice=.*");
+ -- snip --
+ to prefs.js works around the problem (see
+ http://bugzilla.mozilla.org/show_bug.cgi?id=199957#c6 , too).
+
+5. SOFTWARE DEVELOPMENT
+- Q: How can I get the printable area (e.g. the portion of the page on which
+ the printer is physically capable of placing ink) of the paper after I
+ have chosen a paper ?
+ A: XpGetPageDimensions() returns the printable area and other information
+ about the page geometry.
+
+- Q: Do "offscreen" pixmaps work on Xprt ?
+ A: Yes, "offscreen" pixmaps are working on Xprt.
+
+- Q: How can I get the DPI value for the current Xprt server ? Can I use the
+ values from "xdpyinfo" ?
+ A: The Xprt screen resolution defines only the maximum resolution configured
+ for the matching DDX, the printers real DPI is obtained via an another
+ API (XprintUtil has a bunch of functions to get/set the document/page
+ resolution, see XpuGetResolutionList(), XpuFreeResolutionList(),
+ XpuGetResolution(), XpuSetPageResolution(), XpuSetDocResolution() and
+ XpuFindResolution()).
+
+- Q: Does Xprint/Xprt support font rotation ?
+ A: Yes - Xprint/Xprt supports font rotation at any angle via the matrix XLFD
+ enhancement (this even works for printer-builtin fonts !!). For details
+ see the paper "New Font Technology for X11R6" by Nathan Meyers <XXX: URL ?>.
+ Short:
+ The transformation-matrix for rotation can be calculated like this:
+ +-- --+
+ | cos(angle) sin(angle)|
+ | |
+ |-sin(angle) cos(angle)|
+ +-- --+
+ Examples:
+ 1. the following code fragment obtains a 180 degree rotated font (matrix [-1 0 0 -1]):
+ -- snip --
+ ... = XLoadQueryFont(..., "-adobe-courier-bold-r-normal--*-[~24 0 0 ~24]-0-0-m-*-iso8859-1");
+ -- snip --
+ 2. the following code fragment obtains a 90 degree rotated font (matrix [0 1 -1 0]):
+ -- snip --
+ ... = XLoadQueryFont(..., "-adobe-courier-bold-r-normal--*-[0 24 ~24 0]-0-0-m-*-iso8859-1");
+ -- snip --
+
+- Q: When I render something on my window and call XpStartPage() all the
+ rendered stuff is gone, I only get a white, empty paper.
+ What is going wrong here ?
+ A: Remember the rule that "only those drawings are printed on the paper which
+ were rendered between XpStartPage() and XpEndPage()".
+ XpStartPage() clears the window you passed as argument, e.g. it creates
+ a new, blank sheet of paper where you can do your rendering stuff on.
+ XpEndpage() then pushes the "paper sheet" to the stash of papers from the
+ document in process.
+ Solution - if you want to render something once for multiple or all pages:
+ Render on a offscreen pixmap and copy (with XCopyArea()) the content to
+ the "paper" drawable (after calling XpStartPage()) - XpStartpage() only
+ affects the window passed as parameter.
+
+- Q: What is XpStartDoc() for ?
+ A: ISO 10175 and some advanced printing systems by IBM and HP had set forth
+ the standard that a "Job" is made up of one or more "Documents", and
+ each document is made up of one or more "Pages". Xprint was designed that
+ in a true ISO 10175 environment/implementation (lp(1) on steroids, and
+ with an API), Xprt can actually learn about all printers and their
+ capabilities though API's into the printer subsystem (vs. using config
+ files), map Job/Doc/Page directly into ISO 10175 equivalents, and use
+ APIs to view job status and kill jobs (vs. cancel(1), lpcancel(1),
+ lpstatus(1)).
+ Because most applications of the day are only printing one document per
+ job, XpStartPage() was designed that it generates a "synthetic"
+ XpStartDoc() if it has not been called yet.
+
+- Q: How does the XLFD for printer-builtin fonts look like ?
+ A: XXX
+
+- Q: How can I scale images using the Xprint API ?
+ A: XXX
+
+- Q: How do I use the XprintUtil library ?
+ A: XXX
+
+- Q: Why does XGetImage() not work for Xprt ?
+ A: There are at least two reasons why XGetImage() does not work for Xprt:
+ 1. Most of the Xprt DDX implementations do not render itself on any
+ bitmaps like the framebuffer(=video) DDX do, they translate the
+ rendering commands into the matching commands of the printer language
+ (it is technically possible to implement such support for XGetImage()
+ even for those drivers - but there is reason [2]:)
+ 2. Xprt usually operates at high resolutions which results in very large
+ dimensions. If a client would request the 24bit TrueColor _bitmap_
+ data for a _whole_ DIN-A4 page at 2400 DPI a data chunk of ~173
+ megabytes would be the response. This would be more or less a
+ DOS(=Denial of Service) for either the client, the network and/or the
+ server.
+
+- Q: How to print with Xt/Athena widgets ?
+ A: XXX
+
+- Q: How to print with Xt/Motif widgets ?
+ A: XXX
+
+- Q: What are the differences between normal display and Xprint display ?
+ A: XXX
+
+- Q: How can I find/identify printer-builtin fonts ?
+ A: XXX
+
+- Q: How do I scale images ?
+ A: XXX
+
+- Q: libXp Image scaling vs. max. request size ?
+ A: XXX
+
+- Q: How can I use XprintUtils ?
+ A: XXX
+
+- Q: How do I calculate the DPI values for Xprt DDX screens ?
+ A: XXX
+
+- Q: How do I find scaleable fonts ?
+ A: XXX
+
+- Q. How do I find printer-builtin fonts ?
+ A: XXX
+
+- Q: The XLFD for printer-builtin fonts look like bitmap fonts - is that bad ?
+ A: XXX
+
+- Q: When can I use printer-buildin fonts ?
+ A: XXX
+
+- Q: Where can I find examples fir adding Xprint support to my Xt/Athena application ?
+ A: XXX
+
+- Q: Where can I find examples fir adding Xprint support to my Xt/Motif application
+ (without the need for CDE's DtPrint library) ?
+ A: XXX
+
+- Q: Where can I find examples fir adding Xprint support to my Qt application ?
+ A: XXX
+
+
+6. KNOWN BUGS:
+ ('P'=Problem, 'S'=Solution)
+ - P: Xprt build from Xfree86 sources is completely broken and unuseable.
+ S: Build Xprt from the CVS tree at http://xprint.mozdev.org/ or the
+ X.org X11R6.5.1 sources (note that the client side Xprint extension
+ library ("libXp.so") from Xfree86 is not broken and do not need to be
+ replaced).
+
+ - P: The code which matches XLFD names to PS Type1 font names is
+ case-sensitive in Xprts build from X.org X11R6.5.1/X11R6.6 and the
+ current Solaris Xprt. This may cause that the PS DDX refuses to
+ download PS Type1 fonts.
+ S: Patch available, I am looking for a way to get the patch into the X11
+ and Solaris source trees...
+
+ - P: Xprt build from X11R6.5.1/X11R6.6 sources and Solaris's version of
+ Xprt can only download PFA (PS ASCII font) fonts which ends of the
+ ending "*.pfa".
+ S: Either convert PFB (PS Type 1 binary font) to PFA format and adjust
+ the fonts.dir and fonts.scale file or get a patch for the sources.
+ I am looking for a way to get the patch into the X11 and Solaris
+ source trees (the fixed version can download both PFA/PFB fonts in
+ PFA format and even handles non-standard file extensions).
+
+ - P: There is an issue how the Linux and Solaris Xprt handles the
+ "copy-count" of a print job. The result may be that a job with n
+ copies of a document end-up in n jobs with n copies (usually equals
+ to n^2 copies).
+ S: Xprt build from xprint.mozdev.org sources has been fixed in release
+ 007, see http://xprint.mozdev.org/bugs/show_bug.cgi?id=1378 ("PS DDX
+ creates n^2 copies of a job instead of n copies") and
+ http://bugzilla.mozilla.org/show_bug.cgi?id=140030 ("Setting number
+ of copies causes too many copies to print") for details.
+ Solaris 2.7 Xprt still suffers from this issue... ;-(
+
+ XXX XXX XXX
+
+7. UNANSWERED QUESTIONS
+ (My small ToDo list what I will write soon; 379 items missing... =:-)
+ Email me if you want one of these answered "now" and/or to contribute
+ an answer... :)
+ - Q: How do I create a model-config for my printer ?
+ - Q: How can I customize a model-config for my site/machine ?
+ - Q: Which attributes/values can be set in a model-config ?
+ - Q: Why can't I set default values (for my {paper size, resolution, ...})
+ in the model-config ?
+ - Q: Should I add the fonts in the model-config dir to the Xserver's
+ font path ?
+ - Q: What are the fonts in the model-config dir for ?
+ - Q: Can I use a font server for all fonts instead of passing then directly
+ to the Xprint server ?
+ - Q: Does the Xprint PostScript driver do full rasterisation of the
+ print job ?
+ - Q: Is it possible to prepare a printer config entry so that the PS output
+ is piped to "ps2pdf" and will produce directly a PDF file? It would be
+ nice to have mozilla directly producing PDF files when printing.
+ - Q: Problem: I have changed the Xprt config - but "xplsprinters -l"
+ (or any other Xprint application) does not show the change.
+ Any idea what I am doing wrong ?
+ - Q: How can I add a font path to Xprt ?
+ - Q: Why does "xset +fp path_to_font" not work in some cases ?
+ - Q: How can I get a "core"-dump when Xprt crashes ?
+ - Q: How can I debug Xprt (hint: use "-audit 4") ?
+ - Q: How can I debug Xprt with Sun Workshop (hint: "check -access") ?
+ - Q: How can I check whether Xprint is "active" ? / How can I verify that a Xprint is working ?
+
+ XXXX XXXX XXXX
+
+8. ACKNOWLEDGEMENTS
+ We'd like like to express their gratitude to the whole community for
+ providing insightful answers to innumerable questions. In particular,
+ the following people (listed alphabetically) have contributed to this
+ FAQ (apologies, in advance, if anyone has been forgotten):
+
+ Alan Coopersmith <alan.coopersmith@sun.com>
+ Thomas Gilg <thomas_gilg@hp.com>
+ Jay Hobson <jay.hobson@sun.com>
+ Masaki Katakai <katakai@japan.sun.com>
+ Simon Montagu <smontagu@netscape.com>
+ Drew Parsons <dparsons@debian.org>
+ (and many many others)
+
+# EOF.
+
+
diff --git a/hardcopy/XPRINT/docbook.css b/hardcopy/XPRINT/docbook.css
new file mode 100644
index 0000000..878d4cd
--- /dev/null
+++ b/hardcopy/XPRINT/docbook.css
@@ -0,0 +1,570 @@
+
+/* Catch-all */
+* { display: inline; }
+
+/*
+ * Headers
+ */
+bookinfo, bookinfo > *,
+articleinfo, articleinfo > * {
+ display: block;
+}
+
+address > * {
+ display: block;
+}
+
+copyright {
+ margin: 0.5cm;
+ text-align: center;
+ font-weight: bold;
+}
+
+year:before {
+ content: "Copyright \00a9 ";
+}
+
+phone:before {
+ content: "Tel: ";
+}
+
+fax:before {
+ content: "Fax: ";
+}
+
+email:before {
+ content: "Email: ";
+}
+
+address *,
+authorgroup * {
+ text-align: center;
+ display: block;
+}
+
+productname {
+ display: none;
+}
+
+/*
+ * Basic elements
+ */
+set, book, article, preface, chapter, appendix, bibliography,
+section, sect1, sect2, sect3, sect4, sect5,
+title, subtitle, simpara, para,
+itemizedlist, orderedlist, glosslist, glossentry, glossterm, variablelist,
+mediaobject, imageobject, imagedata, caption, example, informalexample, screen, programlisting, footnote
+{
+ display: block;
+ font-family: serif;
+}
+
+para {
+ text-align: justify;
+}
+
+set {
+/*
+ background-image: url("citeclogo.png");
+*/
+ background-color: white;
+ background-repeat: no-repeat;
+ color: black;
+ padding-top: 60px;
+}
+
+set, book, article {
+ margin-right: 0pt;
+ padding-right: 0pt;
+}
+
+book:before, article:before {
+/*
+ content: url(citec-globe.png);
+*/
+}
+
+glossentry, varlistentry {
+ padding-left: 2em;
+}
+
+glossdef,
+glossdef > para {
+ display: inline;
+ margin-left: 0pt;
+}
+
+varlistentry > listitem {
+ display: block;
+}
+
+varlistentry > term {
+ margin-right: 1em;
+ position: relative;
+ left: -2em;
+}
+
+glossterm {
+ margin-right: 1em;
+ position: relative;
+ left: -1em;
+}
+
+sect1, sect2, sect3, sect4, sect5, section, para, itemizedlist, orderedlist, variablelist {
+ margin: 0.5em;
+ margin-right: 0pt;
+ padding: 0.5em;
+ padding-right: 0pt;
+}
+
+sect2 {
+ margin-top: 3ex;
+ padding-top: 0pt;
+ margin-bottom: 3ex;
+ padding-bottom: 0pt;
+}
+
+sect2 {
+ margin-left: 0.5em;
+ padding-left: 0.5em;
+ border-left: 10px solid lightgrey;
+}
+
+title {
+ display: block;
+ font-family: sans-serif;
+ font-size: larger;
+ font-weight: bold;
+ text-align: left;
+}
+
+example * {
+ background-color: transparent;
+ color: #8b0000;
+ font-weight: normal;
+}
+
+example literallayout {
+ background-color: transparent;
+ color: black;
+}
+
+example > title {
+ font-size: medium;
+ text-decoration: underline;
+ margin-bottom: 1ex;
+}
+
+example > title:after {
+ content: ":";
+}
+
+book > * > title,
+article > * > title {
+ font-size: xx-large;
+}
+
+book > * > * > title,
+article > * > * > title {
+ font-size: x-large;
+}
+
+book > * > * > * > title,
+article > * > * > * > title {
+ font-size: large;
+ font-weight: bold;
+}
+
+book > * > * > * > * > title,
+article > * > * > * > * > title {
+ font-size: larger;
+ font-weight: normal;
+}
+
+book > * > * > * > * > * > title,
+article > * > * > * > * > * > title {
+ font-size: medium !important;
+ font-weight: normal !important;
+}
+
+title + subtitle {
+ display: block;
+ font-weight: bold;
+ font-size: smaller;
+}
+
+book > title,
+article > title,
+book > subtitle,
+article > subtitle {
+ text-align: center;
+ font-size: xx-large;
+ font-weight: bold;
+ padding-top: 1ex;
+ padding-left: 2em;
+ padding-right: 2em;
+ margin-top: 1ex;
+ margin-bottom: 1ex;
+}
+
+book > subtitle,
+article > subtitle {
+ font-size: x-large;
+ font-style: italic;
+}
+
+preface, chapter, appendix, bibliography {
+ padding: 1em;
+ padding-top: 2ex;
+ border-top: 8px solid #bebebe;
+ page-break-before: always;
+}
+
+preface:before {
+ content: "Preface:";
+ font-size: large;
+ font-style: italic;
+}
+
+appendix:before {
+ content: "Appendix:";
+ font-size: large;
+ font-style: italic;
+}
+
+preface > *, chapter > *, appendix > *, bibliography > * {
+ margin-right: 1em;
+}
+
+itemizedlist > *,
+orderedlist > * {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+itemizedlist > listitem,
+orderedlist > listitem {
+ display: list-item;
+ position: relative;
+ left: 1em;
+}
+
+varlistentry {
+ display: list-item;
+ list-style-type: none;
+}
+
+listitem > para {
+ margin: 0pt !important;
+ padding: 0pt !important;
+}
+
+itemizedlist > listitem > itemizedlist > listitem {
+ list-style-type: circle;
+}
+
+orderedlist > listitem {
+/* list-style-type: decimal; */
+ list-style-type: square;
+}
+
+glossterm, term {
+ font-weight: bold;
+}
+
+note, note * {
+ color: #505000;
+ background-color: transparent;
+}
+
+note {
+ display: block;
+ margin: 1em;
+ padding: 0.3em;
+ border: 2px dotted #505000;
+}
+
+quote {
+ font-style: italic;
+}
+
+mediaobject {
+ text-align: center;
+}
+
+entry[morerows] {
+ background-color: lightgreen;
+ color: black;
+ font-weight: bold;
+}
+
+entry {
+ font-family: sans-serif;
+}
+
+thead entry {
+ font-weight: bold;
+ font-size: larger;
+ background-color: #bebebe;
+ color: white;
+}
+
+superscript {
+ vertical-align: super;
+ font-size: smaller;
+}
+
+emphasis {
+ font-style: italic;
+}
+
+@media print {
+ ulink:after {
+ content: " [URL: " attr(url) "]";
+ }
+}
+
+computeroutput, userinput {
+ font-family: monospace;
+ font-weight: bold;
+ text-align: left;
+ white-space: inherit;
+}
+
+literallayout, programlisting {
+ font-family: monospace;
+ white-space: pre;
+}
+
+informalexample, example, programlisting {
+ border: 2px dotted darkred;
+ padding: 0.5em;
+ margin: 0.5em;
+}
+
+footnote {
+ float: right;
+ width: 50%;
+ font-size: smaller;
+ margin: 0.5em;
+ margin-right: 0pt;
+ padding: 0.5em;
+ border: 1px solid darkred;
+}
+
+footnote > * {
+ margin: 0pt;
+ padding: 0pt;
+}
+
+programlisting, example {
+ clear: right;
+}
+
+/* ---------------------------------- */
+abbrev, accel, acronym, action, application, artpagenums, authorinitials,
+bibliocoverage, biblioid, bibliomisc, bibliorelation, bibliosource, citation,
+citebiblioid, citerefentry, citetitle, city, classname, co, command,
+computeroutput, constant, coref, country, database, date, email, emphasis,
+envar, errorcode, errorname, errortext, errortype, exceptionname, fax,
+filename, firstname, firstterm, funcdef, funcparams, function, group,
+guibutton, guiicon, guilabel, guimenu, guimenuitem, guisubmenu, hardware,
+honorific, initializer, inlineequation, inlinegraphic, inlinemediaobject,
+interface, interfacename, invpartnumber, isbn, issn, keycap, keycode,
+keycombo, keysym, lineage, lineannotation, link, literal, markup, medialabel,
+member, menuchoice, methodname, methodparam, modifier, mousebutton, olink,
+ooclass, ooexception, oointerface, option, optional, orgdiv, orgname,
+otheraddr, othername, pagenums, paramdef, parameter, phone, phrase, pob,
+postcode, productname, productnumber, prompt, property, pubdate, pubsnumber,
+quote, refpurpose, replaceable, returnvalue, revnumber, seriesvolnums,
+sgmltag, shortcut, state, street, structfield, structname, subscript,
+superscript, surname, symbol, systemitem, token, trademark, type, ulink,
+userinput, varname, volumenum, wordasword, year {
+ display:inline;
+}
+
+abstract, ackno, address, answer, appendix, article, attribution, authorblurb,
+bibliodiv, biblioentry, bibliography, bibliomixed, bibliomset, biblioset,
+blockquote, book, callout, calloutlist, caption, caution, chapter,
+cmdsynopsis, colophon, constraintdef, dedication, epigraph, equation, example,
+figure, formalpara, glossary, glossdef, glossdiv, glossentry, glosslist,
+graphic, graphicco, highlights, imageobjectco, important, index, indexdiv,
+indexentry, informalequation, informalexample, informalfigure, informaltable,
+itemizedlist, legalnotice, listitem, lot, lotentry, mediaobject,
+mediaobjectco, msg, msgentry, msgexplan, msgmain, msgset, note, orderedlist,
+para, part, partintro, personblurb, preface, primaryie, printhistory,
+procedure, productionset, programlistingco, qandadiv, qandaentry, qandaset,
+question, refentry, refentrytitle, reference, refnamediv, refsect1, refsect2,
+refsect3, refsection, refsynopsisdiv, revhistory, screenco, screenshot,
+secondaryie, sect2, sect3, sect4, sect5, section, seealsoie, seeie, set,
+setindex, sidebar, simpara, simplemsgentry, simplesect, step, substeps,
+subtitle, synopfragment, synopfragmentref, table, term, tertiaryie, tip,
+title, toc, tocback, tocchap, tocentry, tocfront, toclevel1, toclevel2,
+toclevel3, toclevel4, toclevel5, tocpart, variablelist, varlistentry, warning,
+sect1 {
+ display:block;
+}
+
+appendixinfo, area, areaset, areaspec, articleinfo, bibliographyinfo,
+blockinfo, bookinfo, chapterinfo, colspec, glossaryinfo, indexinfo, itermset,
+modespec, objectinfo, partinfo, prefaceinfo, primary, refentryinfo,
+referenceinfo, refmeta, refsect1info, refsect2info, refsect3info,
+refsectioninfo, refsynopsisdivinfo, screeninfo, secondary, sect1info,
+sect2info, sect3info, sect4info, sect5info, sectioninfo, see, seealso,
+setindexinfo, setinfo, sidebarinfo, spanspec, tertiary {
+ display:none;
+}
+
+classsynopsisinfo, funcsynopsisinfo, literallayout, programlisting, screen,
+synopsis {
+ white-space:pre;
+ font-family:monospace;
+ display:block;
+}
+/*
+ * CSS2 styling for DocBook XML
+ */
+
+article, book {
+ margin:.5em;
+}
+
+title {
+ font-weight:bolder;
+ margin-top:1em;
+ margin-bottom:.5em;
+ font-family:sans-serif;
+}
+section>* {
+ margin-left:10%;
+ margin-right:10%;
+}
+section>section, section>title {
+ margin-left:0;
+ margin-right:0;
+}
+
+book>title, article>title {
+ font-size:xx-large;
+ text-align:center;
+ border-bottom-style:solid;
+}
+
+chapter>title {
+ font-size:xx-large;
+ text-align:center;
+}
+
+section>title {
+ font-size:xx-large;
+}
+
+section>section>title {
+ font-size:x-large;
+ margin-left:5%;
+}
+
+section>section>section>title {
+ font-size:large;
+ margin-left:7.5%;
+}
+
+section>section>section>section>title {
+ margin-left:10%;
+}
+
+section>section>section>section>section>title {
+ font-size:normal;
+ margin-left:10%;
+}
+
+
+*+para {
+ margin-top:.5em;
+}
+
+example, informalexample {
+ background-color:#dddddd;
+}
+
+quote:before {
+ content: open-quote;
+}
+
+quote:after {
+ content: close-quote;
+}
+
+question, answer {
+ margin-top:.5em;
+ display:list-item;
+}
+
+question>para, answer>para {
+ display:inline;
+}
+
+question:before {
+ display:marker;
+ content:"Q: ";
+ font-weight:bolder;
+}
+
+answer:before {
+ display:marker;
+ content: "A: ";
+ font-weight: bolder;
+}
+
+emphasis {
+ font-style:italic;
+}
+
+sgmltag[class="starttag"]:before {
+ content: "<"
+}
+
+sgmltag[class="starttag"]:after {
+ content: ">"
+}
+
+sgmltag[class="endtag"]:before {
+ content: "</"
+}
+
+sgmltag[class="endtag"]:after {
+ content: ">"
+}
+
+keycap+keycap:before {
+ content:"-"
+}
+
+ulink {
+ color:#0000ff;
+ text-decoration:underline;
+}
+ulink:hover {
+ cursor:pointer;
+}
+
+blockquote {
+ padding-left:3em;
+}
+
+attribution {
+ text-align:right;
+}
+attribution:before {
+ content:"--"
+}
+
+itemizedlist>listitem {
+ display:list-item;
+}
+
+filename, literal {
+ font-family:monospace;
+}
+
+/* EOF. */
diff --git a/hardcopy/XPRINT/dtprint_fspec.PS.gz b/hardcopy/XPRINT/dtprint_fspec.PS.gz
new file mode 100644
index 0000000..ad5d1ab
--- /dev/null
+++ b/hardcopy/XPRINT/dtprint_fspec.PS.gz
Binary files differ