Closed Bug 135772 Opened 22 years ago Closed 17 years ago

US-centric printer interface

Categories

(Core :: Printing: Output, defect)

x86
Linux
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: Markus.Kuhn, Assigned: roland.mainz)

References

Details

(Keywords: intl)

In the Print|Properties menu of Mozilla 0.9.9 for Linux, the margins have to be
specified by the user in Flintstone units (inches), which are even in England
considered to be highly politically incorrect (and even more so everywhere
else). Please, please use millimeters instead! I know that Postscript is
horribly rooted on the awful inch (72 pt) internally, but please spare the poor
end users from such shameful ignorance about contemporary measurements. Don't
export Americas failure to introduce the metric system into the rest of the
world. (1 pt = 25.4/72 mm)

Also, for the paper size in the same menu, you write "DIN A4", "DIN A3", etc.
"DIN" is just the name of the German standards body, which has specified this
format just like almost any other standards organization on this planet. To make
it culturally a bit more neutral, please write "ISO A4", "ISO A3", etc. instead.
The international paper size system has been specified in the international
standard ISO 216 since at least the early 1970s.

Also, considering that ISO A4 is worldwide the most widely used laser printer
format (only the US and Canada use a different format, awfully even one that
doesn't enjoy a sqrt(2) width/height ratio), it would seem appropriate to list
ISO A4 at the first position of the paper selection menu and make it the default
setting. After all, around 94% of the world population use ISO A4, and only
North Americans haven't learned to appreciate it's advantages yet. Don't punish
the rest for this.

More information on A4 paper:

  http://www.cl.cam.ac.uk/~mgk25/iso-paper.html

If you really think that A4 paper and millimeters are too shocking for the
average American, then you can make the Flintstone alternatives the default,
depending on the locale variable settings. The following simple example code
illustrates this:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

/* LC_PAPER and LC_MEASUREMENT were introduced in ISO/IEC TR 14652 */

int main()
{
  char *units = "mm";
  char *paper = "A4";
  char *s;

  if (((s = getenv("LC_ALL"))   && *s) ||
      ((s = getenv("LC_PAPER")) && *s) ||
      ((s = getenv("LANG"))     && *s))
    if (strstr(s, "en_US") || strstr(s, "en_CA"))
      paper = "Letter";
  if (((s = getenv("LC_ALL"))   && *s) ||
      ((s = getenv("LC_MEASUREMENT")) && *s) ||
      ((s = getenv("LANG"))     && *s))
    if (strstr(s, "en_US"))
      units = "inches";

  printf("Paper: %s\nUnits: %s\n", paper, units);
  
  return 0;
}

Thanks. :)
printing in inches: dup of bug 118954
Nice example code (lacks some things... like it has to catch the "en_US"
variants like "en_US.UTF-8" and "en_US.ISO-8859-15" and other issues) ...

... I agree - we should fix the user interface. The backend API can differ
between inches and millimeters, but some things like the PostScript module uses
inches exclusively...
<smile>I suggest to mark bug 118954 a DUPlicate of this one because this bug has
the better description and details</smile> ... :-)

BTW: Another solution to get locale-based defaults (which includes setting
US_letter or DIN-A4 on a per-locale basis) is to use the Xprint module which
should be able to handle that... :)
Roland complained:
> Nice example code (lacks some things... like it has to catch the "en_US"
> variants like "en_US.UTF-8" and "en_US.ISO-8859-15" and other issues) ...

The strstr() call is a substring search, therefore it *will* catch
"en_US.UTF-8" and "en_US.ISO-8859-15". This example code was very
carefully engineered. I submitted it to verious other projects
before.
A related much more severe problem is that in Mozilla 0.9.9 for Linux, the
printer paper size setting is not persistent and keeps jumping back to US Letter
format across Mozilla sessions. It really should be ISO A4 by default and the
setting should persist across sessions.

Severity: trivial → normal
Blocks: 125824
See bug 118563 for the issue about not saving paper size across sessions.

Confirming. Setting this bug to depend on bug 118954. This bugalls for some
additional simple changes to the interface, such changing "DIN A4" to "ISO A4." 
Status: UNCONFIRMED → NEW
Depends on: 118954
Ever confirmed: true
Keywords: intl, mozilla1.0.1
Taking...
Assignee: rods → Roland.Mainz
Andrew Hagen wrote:
> This bugalls for some additional simple changes to the interface,
> such changing "DIN A4" to "ISO A4."

Xprint module already uses "ISO-A4" instead of "DIN A4", AFAIK we only have to
adjust the name in the PostScript module and the nsPrinterFeatures prototype
(see bug 136058) will forward this info to the dialog... :)
"ISO" A4 sounds dorky. Nobody calls it that. Everyone just sais *A4*. We should
also only call it *A4*. Every program I use calls it *A4* (WordPerfect, Lotus
Organizer, etc.). € 0.02
"ISO A4" has been pretty common for quite some time, even if Peter Lairo hasn't
seen it used yet. "A4" is just as good. The "ISO" is critical though when you
refer to the B series of paper formats, because "ISO B5" and "JIS B5" are
unfortunately *not* the same thing (ISO A = JIS A = DIN A, ISO B = DIN B != JIS
B). ISO B is the geometric mean between two ISO A sizes, whereas JIS B is the
arithmetic mean between two ISO A sizes. B sizes are not particularly widely
used in a normal office environment, though the paper trays of many laser
printers and copying machines support them. See
http://www.cl.cam.ac.uk/~mgk25/iso-paper.html for details. As there are also two
different American A paper formats (one by ANSI and one apparently formerly used
by architects), adding the name of the standards body to avoid potential
ambiguity won't do any harm.

Summary: If you want to make the interface look like you really have done your
homework and know what you are doing, write "ISO A4" and use "mm". If you want
to make it look like it has been written by an American who was told my his
manager to sprinkle some last-minute export icing over the finished product,
then best write "Din a-4 (Europe) 29.7 x 21 cm" ... :-)

Sorry for the nitpicking followup ...
Bug 193001 has been fixed and GNOME natvie print dialog
is used now.
But it is not possible to set margins in the dialog.

Is this bug worksforme or invalid?
This was essentially fixed by the patch for bug 193001, which switches Gecko to use the GTK printing system's print dialogs. The GTK dialogs are generally localized. The printer's printable-region margin, which is the margin that was shown in the printer properties dialog, is not currently exposed to the user.
Status: NEW → RESOLVED
Closed: 17 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.