diff options
author | Roland Mainz <roland.mainz@nrubsig.org> | 2004-04-21 10:03:13 +0000 |
---|---|---|
committer | Roland Mainz <roland.mainz@nrubsig.org> | 2004-04-21 10:03:13 +0000 |
commit | a8a71fb3cd6e6516b7938de74efd2c6c34c0f430 (patch) | |
tree | b7e075e0c8b4d289ff2e0f76e814dab2431bda07 | |
parent | 4af67811b5e6dfe2cad7dc6e91985fc216ccc034 (diff) |
Fix for http://pdx.freedesktop.org/cgi-bin/bugzilla/show_bug.cgi?id=530 -XORG-CURRENT-CLOSEDXORG-CURRENT
Land XPRINT branch on XORG-CURRENT
-rw-r--r-- | hardcopy/XPRINT/Xprint_FAQ.html | 3080 | ||||
-rw-r--r-- | hardcopy/XPRINT/Xprint_FAQ.txt | 3113 | ||||
-rw-r--r-- | hardcopy/XPRINT/Xprint_FAQ.xml | 4698 | ||||
-rw-r--r-- | hardcopy/XPRINT/Xprint_old_FAQ.txt | 1634 | ||||
-rw-r--r-- | hardcopy/XPRINT/docbook.css | 570 | ||||
-rw-r--r-- | hardcopy/XPRINT/dtprint_fspec.PS.gz | bin | 0 -> 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"><<a href="mailto:roland.mainz@nrubsig.org">roland.mainz@nrubsig.org</a>></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 "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 "<a href="#getting_help">Getting Help</a>") + 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 "XXX" as the answer have still to be written (or have + to be copy&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 "Xprint" ? + </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 "Xprt" ? + </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"> + "Why do some people like Xprint ?" / "What are the advantages of Xprint ?" + </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 "DDX" mean ? + </a></dt><dt>Q: <a href="#what_does_dix_mean"> + What does "DIX" mean ? + </a></dt><dt>Q: <a href="#what_does_pdl_mean"> + What does "PDL" 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 - "Xprint", "XPrint", "Xprinter" or Xprt" ? + </a></dt><dt>Q: <a href="#id2809018"> + Which applications support Xprint ? + </a></dt><dt>Q: <a href="#is_xprint_only_for_mozilla"> + Is "Xprint" "mozilla"-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 "root" 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"> + "xset q" lists all model-specific font dirs (like + PRINTER:/myxpcfg/C/print/models/SPSPARC2/fonts/") - is that a bug ? + </a></dt><dt>Q: <a href="#id2874690"> + 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></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 "portrait"/"landscape"/"seascape" (=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 ("xfs") with Xprt ? + </a></dt><dt>Q: <a href="#id2877411"> + What is a "model-config" ? + </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 "fonts" ? + </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 &co. as "root" 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 "xp_ps_spooldir_tmp_Xprintjobs" / "xp_pdf_spooldir_tmp_Xprintjobs" 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 "sh: lpc: command not found" 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 "meridian:52.0" 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 "failed to set default font path + '...' Fatal server error: could not open default font 'fixed'". + 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 "Fatal server error: could not + open default font 'fixed'". What am I doing wrong ? + </a></dt><dt>Q: <a href="#id2879012"> + 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></dt><dt>Q: <a href="#id2879040"> + Xprt refuses to start with the message "Fatal server error: Failed to + establish all listening sockets". What does that mean ? + </a></dt><dt>Q: <a href="#id2879085"> + 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></dt><dt>Q: <a href="#id2879112"> + Xprt refuses to start with the message "Fatal server error: no screens + found". What does that mean ? + </a></dt><dt>Q: <a href="#printout_only_covers_1_4_of_the_paper"> + "Printing itself works but the printout covers only 1/4 of the paper - what am I doing wrong ?" + </a></dt><dt>Q: <a href="#id2879502"> + "Printing works but I get large borders/margins..." / "[Top] margin is too small" / + "Margins are wrong" / etc. + </a></dt><dt>Q: <a href="#id2879587"> + Xprt prints a warning like "Xp Extension: could not find config dir + /usr/X11R6/lib/X11/C/print" - what does that mean ? + </a></dt><dt>Q: <a href="#id2879661"> + Xprt crashes with "Fatal server error: Beziers this big not yet supported" + What does that mean ? + </a></dt><dt>Q: <a href="#id2879688"> + "My PS Type1 font does not work with my Xserver - how can I fix this ?" + </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 "Fatal server error: + unable to exec '/usr/bin/lp'". What is going wrong here ? + </a></dt><dt>Q: <a href="#id2879888"> + 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></dt><dt>Q: <a href="#id2880176"> + "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></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 "error opening security policy file + /usr/X11R6/lib/X11/xserver/SecurityPolicy". What does that mean ? + </a></dt><dt>Q: <a href="#id2880368"> + 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></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 "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></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 "normal" 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 "offscreen" 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 "xdpyinfo" ? + </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 "white" ? + </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 "Xprint" ? + </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 "Xprt" ? + </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"> + "Why do some people like Xprint ?" / "What are the advantages of Xprint ?" + </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 "DDX" mean ? + </a></dt><dt>Q: <a href="#what_does_dix_mean"> + What does "DIX" mean ? + </a></dt><dt>Q: <a href="#what_does_pdl_mean"> + What does "PDL" 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 - "Xprint", "XPrint", "Xprinter" or Xprt" ? + </a></dt><dt>Q: <a href="#id2809018"> + Which applications support Xprint ? + </a></dt><dt>Q: <a href="#is_xprint_only_for_mozilla"> + Is "Xprint" "mozilla"-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 "Xprint" ? + </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p> + 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. + </p><p> + 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... + </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 "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 + <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 >= 2.7 <a href="http://xprint.mozdev.org/" target="_top">http://xprint.mozdev.org/</a> + provides the "GISWxprintglue" + and "GISWxprint" 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 >=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 "Xprt" ? + </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 ("XpExtension") to handle the + special features/requirements of a "paged device"(=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> + "Why do some people like Xprint ?" / "What are the advantages of Xprint ?" + </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> + "Xprint is designed for the enterprise", 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 "myths", 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> + “<span class="quote"> + Xprint prints just a XWD dump of the Xserver bitmap + </span>” + </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 "xwd"-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 ("XPS") was attempted + during CDE 1.0, and they only got so far as the "raster" 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> + “<span class="quote"> + Xprint cannot handle non-'ISO Latin 1' chars + </span>” + </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> + “<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>” + </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 "portrait" 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> + “<span class="quote"> + Xprint prints only graphics(=bitmap/gfx) fonts + </span>” + </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&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> + “<span class="quote"> + Xprint does not support pages sizes larger than DIN-A4 + </span>” + </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> + “<span class="quote"> + Xprint does not support rotated text + </span>” + </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 "hack" 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 "done" 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 ("gs") and GhostView ("gv" and it's KDE- and Gnome-specific versions "kghostview" and "ggv") + </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 <= 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 ("xfs", 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 "DDX" mean ? + </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p> + "DDX" is a short term for "Device Dependent X" - the device-specific layer + of a Xserver (<a href="#what_does_dix_mean">"DIX"</a>(="Device Independent X") 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 "DIX" mean ? + </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p> + "DIX" is a short term for "Device Independent X" - the non-device specific + code of a Xserver (<a href="#what_does_ddx_mean">"DDX"</a>(="Device Dependent X") 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 "PDL" mean ? + </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p> + "PDL" is a short term for "Page Description Language". 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 "raster" 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 >= 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 ("Xprt") 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 - "Xprint", "XPrint", "Xprinter" or Xprt" ? + </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p> + "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). + </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 "Xprint" "mozilla"-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 "MIT" license, the same as used by Xfree86.org and X.org: +</p><pre class="programlisting"> +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. +</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 "root" 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"> + "xset q" lists all model-specific font dirs (like + PRINTER:/myxpcfg/C/print/models/SPSPARC2/fonts/") - is that a bug ? + </a></dt><dt>Q: <a href="#id2874690"> + 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></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 + "/etc/init.d/xprint get_xpserverlist". + Example: +</p><pre class="screen"> + % <b class="userinput"><tt>export XPSERVERLIST="`/etc/init.d/xprint get_xpserverlist`"</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="littlecat:80 bitdog:72"</tt></b> +</pre><p> + 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. + </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 <printername> or + <printername>@<display> + + </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 "ps003" on + all Xprt servers. + </p></li><li xmlns:ns15=""><p> +</p><pre class="screen"> + % <b class="userinput"><tt>export XPRINTER="hplaser19@littlecat:80"</tt></b> +</pre><p> + tells an application to look for the printer "hplaser19" on the Xprt + display "littlecat:80". + </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="`/bin/sh /etc/init.d/xprint get_xpserverlist`"</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> + ('"xprint-xprintorg" 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 "GISWxprintglue" package: + <a href="http://xprint.mozdev.org/" target="_top">http://xprint.mozdev.org/</a> + 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 <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 "GISWxprint" package: + <a href="http://xprint.mozdev.org/" target="_top">http://xprint.mozdev.org/</a> + provides a Solaris package called "GISWxprint" + which is technically identical to the "GISWxprintglue" + (see <a href="#starting_xprt_on_solaris_using_giswxprintglue">[3a]</a>) but + provides a Xprt binary build from the xprint.mozdve.org sources + ("GISWxprintglue" 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> + "<tt class="filename">xc/programs/Xserver/Xprint/etc/init.d/xprint</tt>" 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) + </p></li><li><p> + "<tt class="filename">xc/programs/Xserver/Xprint/etc/profile.d/xprint.csh</tt>" and + "<tt class="filename">xc/programs/Xserver/Xprint/etc/profile.d/xprint.sh</tt>" 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 "manually" (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 "Xprt can only print gfx fonts". 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 ":12" or + "myhostname:12". + </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 "/Font Path:/ { i=1 ; next } i==1 { print \$0 ; i=0 }") :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 "accept" and/or "reject" font paths + </p></li><li xmlns:ns22=""><p> + '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 + <tt class="filename">fonts.dir</tt>: +</p><pre class="screen"> + % <b class="userinput"><tt>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)</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 "Xp_dummyfonts" 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 "small" 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 "models/"</tt></b> +</pre><p> + Plug it into the filter above to remove the Truetype fonts and you are + "done"... :) + </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 "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: + </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 "ps002": +</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> + "<tt class="filename">xc/programs/Xserver/Xprint/etc/init.d/xprint</tt>" 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> + "<tt class="filename">xc/programs/Xserver/Xprint/etc/init.d/xprint</tt>" 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 + "my_xprint_startscript start" before starting the application and a + "my_xprint_startscript stop" 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 "xhost" (see <span class="citerefentry"><span class="refentrytitle">xhost</span>(1x)</span>) and/or + <tt class="filename">/etc/X<dpy>.hosts</tt> (<dpy> == 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 "-audit" + </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 "root" 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 "root" (set-group-id "root", this is <span class="emphasis"><em>not</em></span> + 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). + </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> + "xplsprinters -printer myprinter004 -l" will do the job for printer + "myprinter004". + </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 "foobar:98" in this example) and then try this: +</p><pre class="screen"> +% <b class="userinput"><tt>(DISPLAY=foobar:98 xset q | \ +awk "/Font Path:/ { i=1 ; next } i==1 { print \$0 ; i=0 }" | \ +tr "," "[\n]")</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 "PRINTER:" 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> + "xset q" lists all model-specific font dirs (like + PRINTER:/myxpcfg/C/print/models/SPSPARC2/fonts/") - 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 "PRINTER:" 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 "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 ?! + </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td xmlns:ns30="" align="left" valign="top"><p> + "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 <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 ("[PS2PDFspooldir-GS] RFE: Add printer model which sends PDF jobs to /tmp/Xprintjobs/")</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 ("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: + </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="localhost:33 ${XPSERVERLIST}"</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="" +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:${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. +</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="localhost:100 localhost:101 ${XPSERVERLIST}"</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 "portrait"/"landscape"/"seascape" (=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 ("xfs") with Xprt ? + </a></dt><dt>Q: <a href="#id2877411"> + What is a "model-config" ? + </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 "fonts" ? + </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 &co. as "root" 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 "xp_ps_spooldir_tmp_Xprintjobs" / "xp_pdf_spooldir_tmp_Xprintjobs" 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 "plex" 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 "duplex": +</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 "duplex" except for printer "ps003" which should + default to "simplex": +</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 "simplex", "duplex" and "tumble". + </p></li><li xmlns:ns36=""><p> + Verification: + Use +</p><pre class="programlisting"> + xplsprinters -l | egrep "^printer:|default_plex=|plex=" +</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 "default-medium" 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 "na-letter": +</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 "na-letter" except for printer "ps003" which should + default to "iso-a4": +</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 >= 007 provides a seperate "document" + 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 "en_US" (or a locale which has similar defaults as "en_US", those + are currently linked to "en_US" 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">"iso-a4", "na-letter", "na-legal", "executive", "iso-designated-long", "na-number-10-envelope"</span> + </p></li><li><p> + xprint.mozdev.org release >= 006: + <span class="simplelist">"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"</span> + </p></li></ul></div><p> + </p></li><li xmlns:ns42=""><p> + Verification: + Use +</p><pre class="programlisting"> + xplsprinters -l | egrep "^printer:|default-medium=|medium-source-sizes-supported=" +</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 "default-printer-resolution" 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 "tekcolor_ps" 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 >= 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 "^printer:|default-printer-resolution=|resolution=" +</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 "portrait"/"landscape"/"seascape" (=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 "content-orientation" 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 "portrait": +</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 "portrait" except for printer "ps003" which should + default to "landscape": +</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: + "portrait", "landscape", "reverse-portrait" and "reverse-landscape". + </p></li><li xmlns:ns53=""><p> + Verification: + Use +</p><pre class="programlisting"> + xplsprinters -l | egrep "^printer:|default_orientation=|orientation=" +</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 "-fp" (=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 "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. +</pre><p> + </p></li><li xmlns:ns58=""><p> + Copy or link "<tt class="filename">6x13.pcf.Z</tt>" and "<tt class="filename">cursor.pcf.Z</tt>" 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 "Augment_Printer_List %none%" 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 + "Printer <name>" for each printer <name>. + Example: +</p><pre class="screen"> +Augment_Printer_List %none% +Printer ps001 +Printer ps003 +Printer hplaser6 +</pre><p> + will add only the printers "ps001", ps003" and "hplaser6". + </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 "Augment_Printer_List my_script" 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 " " -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 <= 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 '/:$/ && !/@/ { print $1 }' | sed -e /:/s/// ; \ + lpc -a status | awk '/@/ && !/:/ { split( $1, name, \"@\" ); print name[1]; }'</tt></b> +</pre><p> + </p></li><li><p> + 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 <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 >= 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 "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 <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> + ("eurofont.exe" can be unzipped using "unzip") + </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&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 "type1fix" 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 "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. + </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 ("xfs") 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 ("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 + <a href="http://xprint.mozdev.org/bugs/show_bug.cgi?id=2092" target="_top">xprint.mozdev.org bug 2092</a> + if they use "xfs"; 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 "model-config" ? + </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 "model-config" 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> + "<tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/<tt class="envar">${LANG}</tt>/print/models/${NAME_OF_MODEL}/model-config</tt>" + this file defines a set of attributes supported by this specific printer + (-family/-class/etc.) + and + </p></li><li><p> + "<tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/<tt class="envar">${LANG}</tt>/print/models/${NAME_OF_MODEL}/fonts/</tt>" - 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 <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 "fonts" ? + </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 + ("RFE: Need tool to create PMF (printer metrics file) fonts")</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&component=Server%3A%2BConfig%3A%2Bmodel-configs" target="_top"> + http://xprint.freedesktop.org/cgi-bin/bugzilla/enter_bug.cgi?product=xprint&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 "Xprint", component + "Server Config: model-configs"). + </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 &co. as "root" 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 "XPrintDir" Imake variable set + at build time. Default location for plain X11R6.x is + "<tt class="filename">${XProjectRoot}/lib/X11/xserver</tt>" (set at build time), but some + platforms modify "XPrintDir" 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 ("l10n") 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 + ("<tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/*/print/attributes/document</tt>", + "<tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/*/print/attributes/job</tt>", + "<tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/*/print/attributes/printer</tt>" and + "<tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/*/print/models/*/model-config</tt>"): + "document", "job" and "printer" attribute pools and printer + model-configs are sourced first from the + "<tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/C/print/</tt>"-directory, then they are overridden by any + attributes from the locale-specific pools (in + "<tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/<tt class="envar">${LANG}</tt>/print/</tt>"), e.g. any values set in + "<tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/C/print/attributes/*</tt>" and + "<tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/C/print/models/*/model-config</tt>" will automatically + apply to all other locales unless they are overridden by + locale-specific versions of these files + ("<tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/<tt class="envar">${LANG}</tt>/print/attributes/*</tt>", + "<tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/<tt class="envar">${LANG}</tt>/print/models/*/model-config</tt>") + </p></li><li><p> + "Xprinters" (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="C" 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 + "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. + </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 "xp-spooler-command" + value - the xprint.mozdev.org's + "PSspooldir" model config (see + "<tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/C/print/models/PSspooldir/</tt>" and + "<tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/C/print/attributes/printer</tt>" and + "<tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/C/print/Xprinters</tt>") + and + "PS2PDFspooldir-GS" model config (see + "<tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/C/print/models/PS2PDFspooldir-GS/</tt>" and + "<tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/C/print/attributes/printer</tt>" and + "<tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/C/print/Xprinters</tt>") + are good examples for that. + </p></li><li xmlns:ns81=""><p> + 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". + </p><div class="blockquote"><blockquote class="blockquote"><div class="procedure"><p class="title"><b>Procedure 2. + Example (using "SPSPARC2" as printer model, <tt class="filename">/w/xp_conv</tt> + as the script to execute and "myscriptprinter" 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 "%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): +</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 "%options%" +</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 "xp_ps_spooldir_tmp_Xprintjobs" / "xp_pdf_spooldir_tmp_Xprintjobs" 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 "Printer xp_ps_spooldir_tmp_Xprintjobs" + and "Printer xp_pdf_spooldir_tmp_Xprintjobs". + + </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 "xp_ps_spooldir_tmp_Xprintjobs" + and "Printer xp_pdf_spooldir_tmp_Xprintjobs" 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 "sh: lpc: command not found" 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 "meridian:52.0" 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 "failed to set default font path + '...' Fatal server error: could not open default font 'fixed'". + 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 "Fatal server error: could not + open default font 'fixed'". What am I doing wrong ? + </a></dt><dt>Q: <a href="#id2879012"> + 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></dt><dt>Q: <a href="#id2879040"> + Xprt refuses to start with the message "Fatal server error: Failed to + establish all listening sockets". What does that mean ? + </a></dt><dt>Q: <a href="#id2879085"> + 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></dt><dt>Q: <a href="#id2879112"> + Xprt refuses to start with the message "Fatal server error: no screens + found". What does that mean ? + </a></dt><dt>Q: <a href="#printout_only_covers_1_4_of_the_paper"> + "Printing itself works but the printout covers only 1/4 of the paper - what am I doing wrong ?" + </a></dt><dt>Q: <a href="#id2879502"> + "Printing works but I get large borders/margins..." / "[Top] margin is too small" / + "Margins are wrong" / etc. + </a></dt><dt>Q: <a href="#id2879587"> + Xprt prints a warning like "Xp Extension: could not find config dir + /usr/X11R6/lib/X11/C/print" - what does that mean ? + </a></dt><dt>Q: <a href="#id2879661"> + Xprt crashes with "Fatal server error: Beziers this big not yet supported" + What does that mean ? + </a></dt><dt>Q: <a href="#id2879688"> + "My PS Type1 font does not work with my Xserver - how can I fix this ?" + </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 "Fatal server error: + unable to exec '/usr/bin/lp'". What is going wrong here ? + </a></dt><dt>Q: <a href="#id2879888"> + 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></dt><dt>Q: <a href="#id2880176"> + "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></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 "error opening security policy file + /usr/X11R6/lib/X11/xserver/SecurityPolicy". What does that mean ? + </a></dt><dt>Q: <a href="#id2880368"> + 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></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 "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></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 "sh: lpc: command not found" 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 "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 <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 "lpc" 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 <your-options-come-here></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 "meridian:52.0" 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 + "cookie" 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 "-ac" (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 "-audit 4" 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<dpy>.hosts</tt> + (<dpy> == 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 "failed to set default font path + '...' Fatal server error: could not open default font 'fixed'". + 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 + "-fp") 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 "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 <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 "fixed" + </p></li><li><p> + ... an entry in <tt class="filename">fonts.dir</tt> or <tt class="filename">fonts.alias</tt> + with the name "fixed" 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 "Fatal server error: could not + open default font 'fixed'". 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 "mkfontdir" 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 "mkfontscale" (works for all types of scaleable fonts), + "type1inst" (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 "ttmkfdir" (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 "Fatal server error: Cannot + establish any listening sockets - Make sure an X server isn't already + running". 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 ":0" 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 "Fatal server error: Failed to + establish all listening sockets". 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 "root" to access these directories). + Either fix the permission or start Xprt with the option "-pn". Using this + option requires to access the server <span class="emphasis"><em>always</em></span> with + <hostname>:<displaynum> (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 "Fatal server error: could not + open default font 'fixed'" or "Fatal server error: could not open default + cursor font 'cursor'". + </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 + ("fixed") and one font for the cursor ("cursor"). 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 "Fatal server error: no screens + found". 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, "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...). + </p><p><b>Solution: </b> + Two solutions: + </p><div class="orderedlist"><ol type="1"><li xmlns:ns92=""><p><b> + Using "PSspooldir" model: + . </b> + Xprt releases from <a href="http://xprint.mozdev.org/" target="_top">http://xprint.mozdev.org/</a> provide the "PSspooldir" + model config for such cases. Just edit the "<tt class="filename">Xprinters</tt>" 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>) "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 + <a href="http://xprint.mozdev.org/bugs/show_bug.cgi?id=2475" target="_top">xprint.mozdev.org bug 2475 ("RFE: Need + model-config which spools print jobs in a predefined directory")</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 "Xprinters" spec file which contains a dummy + queue. + Example: +</p><pre class="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") +% <b class="userinput"><tt>echo "Augment_Printer_List %none%" >Xprinters_onlydummy</tt></b> +% <b class="userinput"><tt>echo "Printer ps_myscript" >>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 "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". + </p></li><li xmlns:ns95=""><p> + Start Xprt on display 18, passing the "Xprinters_onlydummy" + using the "-XpFile" 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> + "Printing itself works but the printout covers only 1/4 of the paper - 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> + 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. + </p><p><b>Workaround: </b> + Edit <tt class="filename"><tt class="envar">${XPCONFIGDIR}</tt>/C/print/attributes/document</tt> and replace the line + "*default-printer-resolution: 300" with + "*default-printer-resolution: 600" + (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 ("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). + </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> + "Printing works but I get large borders/margins..." / "[Top] margin is too small" / + "Margins are wrong" / 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 "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. + </p></li><li><p> + You are trying to print "US-letter" on a "DIN-A4" paper or "DIN-A4" on + "US-letter". + </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 - "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). + </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 "Xp Extension: could not find config dir + /usr/X11R6/lib/X11/C/print" - 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 "Fatal server error: Beziers this big not yet supported" + 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 "My PS Type1 font does not work with my Xserver" ... + </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> + "My PS Type1 font does not work with my Xserver - how can I fix this ?" + </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 "type1fix" 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 " ------- $i" ; + 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 "mkfontdir" (to update <tt class="filename">fonts.dir</tt>) ; + systems which use the Adobe font engine (like Solaris/Xsun) may require + to run "makepsres", 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 " ------- $i" ; + 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 "Fatal server error: + unable to exec '/usr/bin/lp'". 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 "<tt class="filename">/usr/bin/lp</tt>" + 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 + "FOOBAR not found, using Courier. CMEX0123 not found, using Courier." + etc. and uses "Courier" 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 "PostScript + resource database" file named "<tt class="filename">PSres.upr</tt>" 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 "<tt class="filename">PSres.upr</tt>" 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 "<tt class="filename">PSres.upr</tt>" using the "makepsres" 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 ("Solaris Xsun does not like CMEX10/CMSY10 Type1 fonts")</a></p></li><li><p><a href="http://bugzilla.mozilla.org/show_bug.cgi?id=142718" target="_top">bugzilla.mozilla.org 142718 ("Document how to get the MathML fonts to work on Solaris")</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> + "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..." + </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 "vendor" string of the Xprt server: +</p><pre class="screen"> +% <b class="userinput"><tt>Xprt :10 &</tt></b> +% <b class="userinput"><tt>xdpyinfo -display :10 | grep -i "vendor string"</tt></b> +</pre><p> + 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. + </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 "error opening security policy file + /usr/X11R6/lib/X11/xserver/SecurityPolicy". 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 "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 + <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 "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 ? + </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p> + The "HPLJ4family" and "HPDJ1600C" 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 + "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 <span class="emphasis"><em>only</em></span> (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"). + </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 "xp-ddx-identifier" 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 >=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 >=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 "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. + </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 + ("Solaris Xprt looses space when rendering with '-monotype-arial-*'-fonts")</a> + </p></li><li><p> + <a href="http://bugzilla.mozilla.org/show_bug.cgi?id=199957" target="_top">bugzilla.mozilla.org bug 199957 ("Solaris 8 Mozilla + removes spaces for text within <font face="Arial">...</font>"</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 + ("Solaris Xprt looses space when rendering with '-monotype-arial-*'-fonts")</a> + </b></p><table summary=" + Solaris patches to fix xprint.mozdev.org bug 3353 + ("Solaris Xprt looses space when rendering with '-monotype-arial-*'-fonts") + " 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&collection=fpatches" target="_top">108652-73</a></td><td><a href="http://sunsolve.sun.com/pub-cgi/retrieve.pl?patchid=108653&collection=fpatches" target="_top">108653-62</a></td><td><a href="http://sunsolve.sun.com/pub-cgi/retrieve.pl?patchid=112785&collection=fpatches" target="_top">112785-21</a></td><td><a href="http://sunsolve.sun.com/pub-cgi/retrieve.pl?patchid=112786&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 "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 + <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("print.xprint.font.rejectfontpattern", + "fname=-dt-.*;scalable=.*;outline_scaled=false;xdisplay=.*;xdpy=.*;ydpy=.*;xdevice=.*|" + + "fname=-monotype-arial.*;scalable=.*;outline_scaled=.*;xdisplay=.*;xdpy=.*;ydpy=.*;xdevice=.*"); +</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 "GISWxprint" / "GISWxprintglue" 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 </var/tmp/dstreAAA5Jayyz></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 ("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 <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 ("Blank Pages When Printing with + CUPS")</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 ("Blank Pages When Printing with CUPS")</a></p></li><li><p><a href="http://xprint.mozdev.org/bugs/show_bug.cgi?id=4181" target="_top">xprint.mozdev.org bug 4181 ("Two empty pages printed first")</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 ("Printing page results in 16 leading blank pages, followed by a correct, but offset, page")</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 "normal" 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 "offscreen" 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 "xdpyinfo" ? + </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 "white" ? + </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 "normal" 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 "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 (<a href="#what_does_pdl_mean">PDL</a>)" 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 "print-to-file" + with functions such as <tt class="function">XpuStartJobToFile</tt>). + </p></li><li><p> + Since printers support "paged" output, unlike video, a portion + of the Xp Extension supports APIs to delineate printed output + into a print job. + </p><p> + A "print job" in Xprint consists of one or more "documents" which itself + consists of one or more "pages". + </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 "print contexts". + </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 "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). + </p></li><li><p> + 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. + </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 "printer metric files" (.pmf) that describe at minimum the + metrics of the built in fonts. + </p></li><li><p> + 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. + </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 "offscreen" 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, "offscreen" 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 "xdpyinfo" ? + </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 "New Font Technology for X11R6" 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(..., "-adobe-courier-bold-r-normal--*-[~24 0 0 ~24]-0-0-m-*-iso8859-1"); +</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(..., "-adobe-courier-bold-r-normal--*-[0 24 ~24 0]-0-0-m-*-iso8859-1"); +</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 "only those drawings are printed on the paper which + were rendered between <tt class="function">XpStartPage</tt> and <tt class="function">XpEndPage</tt>". + <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 "paper sheet" 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 "paper" 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 "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 (<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 "synthetic" + <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 "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 <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 "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). + </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 "white" ? + </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 "white" 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 "0" (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 "0" (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 "scrolling" is replaced with "pagination" 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 "0" - 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 "*.pfa". + </a></dt><dt>Problem <a href="#id2884049"> + 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). + </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 "*.pfa". + </a></dt><dt>Problem <a href="#id2884049"> + 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). + </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 ("<tt class="filename">libXp.so</tt>") 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 "*.pfa". + </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 + "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). + </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 + ("PS DDX creates n^2 copies of a job instead of n copies")</a> and + <a href="http://bugzilla.mozilla.org/show_bug.cgi?id=140030" target="_top">bugzilla.mozilla.org 140030 + ("Setting number of copies causes too many copies to print")</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 "now" 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 "ps2pdf" 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 "xplsprinters -l"</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 "xset +fp path_to_font" not work in some cases ?</td></tr><tr><td>How can I get a "core"-dump when Xprt crashes ?</td></tr><tr><td>How can I debug Xprt (hint: use "-audit 4") ?</td></tr><tr><td>How can I debug Xprt with Sun Workshop (hint: "check -access") ?</td></tr><tr><td>How can I check whether Xprint is "active" ? / 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"><<a href="mailto:alan.coopersmith@sun.com">alan.coopersmith@sun.com</a>></tt></td></tr><tr><td><span class="othercredit"><span class="firstname">Giuseppe</span> <span class="surname">Ghibò</span></span> <tt class="email"><<a href="mailto:ghibo@mandrakesoft.com">ghibo@mandrakesoft.com</a>></tt></td></tr><tr><td><span class="othercredit"><span class="firstname">Thomas</span> <span class="surname">Gilg</span></span> <tt class="email"><<a href="mailto:thomas_gilg@hp.com">thomas_gilg@hp.com</a>></tt></td></tr><tr><td><span class="othercredit"><span class="firstname">Jay</span> <span class="surname">Hobson</span></span> <tt class="email"><<a href="mailto:jay.hobson@sun.com">jay.hobson@sun.com</a>></tt></td></tr><tr><td><span class="othercredit"><span class="firstname">Masaki</span> <span class="surname">Katakai</span></span> <tt class="email"><<a href="mailto:katakai@japan.sun.com">katakai@japan.sun.com</a>></tt></td></tr><tr><td><span class="othercredit"><span class="firstname">Simon</span> <span class="surname">Montagu</span></span> <tt class="email"><<a href="mailto:smontagu@smontagu.org">smontagu@smontagu.org</a>></tt></td></tr><tr><td><span class="othercredit"><span class="firstname">Drew</span> <span class="surname">Parsons</span></span> <tt class="email"><<a href="mailto:dparsons@debian.org">dparsons@debian.org</a>></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 ‐‐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&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 >= 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 >=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&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 <= 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 >= 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) <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. +</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 <printername> or + <printername>@<display> + + <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<dpy>.hosts</filename> (<dpy> == 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" = "" ] && 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 >= 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 >= 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 >= 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 <name>" for each printer <name>. + 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 <= release 008 sources (both lines are executed + to support both LPRng and CUPS (using the CUPS *BSD compatibility tools)): +<screen> +% <userinput>lpc status | awk '/:$/ && !/@/ { print $1 }' | sed -e /:/s/// ; \ + lpc -a status | awk '/@/ && !/:/ { split( $1, name, \"@\" ); print name[1]; }'</userinput> +</screen> + </para> + </listitem> + <listitem> + <para> + 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 <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 >= 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&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 <= 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&component=Server%3A+Config%3A+model-configs"> + http://xprint.freedesktop.org/cgi-bin/bugzilla/enter_bug.cgi?product=xprint&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 &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 <your-options-come-here></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<dpy>.hosts</filename> + (<dpy> == 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 ≥ 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 + <hostname>:<displaynum> (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"&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 &</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 >= 007, older releases + (e.g. <= 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 >=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 >=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 <font face="Arial">...</font>"</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&collection=fpatches">108652-73</ulink></entry> + <entry><ulink url="http://sunsolve.sun.com/pub-cgi/retrieve.pl?patchid=108653&collection=fpatches">108653-62</ulink></entry> + + <entry><ulink url="http://sunsolve.sun.com/pub-cgi/retrieve.pl?patchid=112785&collection=fpatches">112785-21</ulink></entry> + <entry><ulink url="http://sunsolve.sun.com/pub-cgi/retrieve.pl?patchid=112786&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 </var/tmp/dstreAAA5Jayyz></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ò</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 Binary files differnew file mode 100644 index 0000000..ad5d1ab --- /dev/null +++ b/hardcopy/XPRINT/dtprint_fspec.PS.gz |