Can't print certain text files
Helge Blischke
h.blischke at srz.de
Sat Jul 28 08:34:55 PDT 2007
Kurt Pfeifle wrote:
> James Egan wrote:
>
>>Using cups 1.1.23 on an HP-UX 11i server, I was getting this
>>error when attempting to print someone's .bash_profile:
>>
>> lp -dhp1 .bash_profile
>> lp: unable to print file: client-error-document-format-not-supported
>>
>>
>>I found the problem to be an embedded ^U character in this stty command
>>in the .bash_profile:
>>
>> stty icanon intr \^c echo echoe \$
>> ^Iechok erase \^h kill ^U icrnl isig onlcr opost parenb cs7 $
>>
>>
>>
>>Here's the error_log entry when attempting to print the .bash_profile:
>>
>>E [24/Jul/2007:13:14:13 +0500] print_job: Unsupported format
>>'application/octet-stream'!
>>I [24/Jul/2007:13:14:13 +0500] Hint: Do you have the raw file printing
>>rules enabled?
>
>
> This ^U character does mislead "auto-typing" operation of CUPS into
> thinking it is not a text file.
>
> Your current mime.types file probably contains this line:
>
> text/plain txt printable(0,1024)
>
> and your ^U char (which is unprintable) probably appears within the
> first 1024 bytes.
>
> You should create your own auto-typing rule and insert it into
> /etc/cups/mime.types (or better create a "local.types" file there):
>
> text/misctext txt string(0,##.bash_profile)
>
> Then, insert '##.bash_profile' into the very first line of your
> .bash_profiles, and CUPS will auto-type that file as that specific
> mime type "text/misctext". (Read the comments in that file to learn
> more about it --you can add more rules to that line in order to
> recognize more different files as your new mime type).
>
> Next, create your "which conversion filter should be applied to
> that mime type"-rule. Edit /etc/cups/mime.convs (or better create
> a "local.convs" file there) and add this line:
>
> text/misctext application/postscript 33 texttops
>
> I've not tested the texttops filter's behavior if it encounters
> ^U characters. If it does not work, you may want to use another
> utility (a2ps or enscript come to mind, or even wrap your own
> script around texttops which first calls something like "recode
> xyz..abc" to get rid of the ^U (and other weird characters)
> initially...
>
> (This is a very specific recipe -- you can come up with a more
> elegant and more generic one if you study the mime tying rules a
> bit that are offered by CUPS)
>
>
>
>>So, I uncommented these lines in the mime.convs and mime.types files, to
>>enable the above mime type, and enable the raw file printing rules:
>>
>>usr/local/cups/etc/cups> grep octet mime*
>>mime.convs:# Uncomment the following filter and the
>>application/octet-stream type mime.convs:#application/octet-stream
>>application/vnd.cups-raw 0 -
>>mime.types:# Uncomment the following type and the application/octet-stream
>>mime.types:#application/octet-stream
>>
>>
>>This has the same affect as using the -o raw switch to lp. Anyway, now
>>when I print this text file (.bash_profile) the text stair steps like this:
>>
>>line one
>> line two
>> line three
>>
>>
>>What can I do now to have this mime type add the CR/LF to each line?
>>I know I could do something that's really a pain in the ass and write
>>a filter using sed, or something, but I'm hoping there's a sane
>>solution.
>>
>>-Thanks
>
>
>
Just for information, CUPS accepts the following "control" codes
as part of "printable" or "ascii":
8 to 13
26 and 27,
i.e. ^H to ^M, ^Z and ESC.
Helge
--
Helge Blischke
Softwareentwicklung
H.Blischke at acm.org
More information about the cups
mailing list