Closed Bug 409828 Opened 15 years ago Closed 15 years ago

Printing failed for Indic webpages (sometimes blank output sometimes garbage text printed)

Categories

(Core :: Printing: Output, defect, P2)

x86
Linux
defect

Tracking

()

RESOLVED FIXED

People

(Reporter: panemade, Assigned: vlad)

References

Details

(Keywords: regression)

Attachments

(1 file)

User-Agent:       Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9b3pre) Gecko/2007122504
Build Identifier: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9b3pre) Gecko/2007122504

With patch from bug 405393 Indic starts rendering correctly in post beta2 nightly builds but I see that when used print dialog to print on printer or print to file outputs garbage text or blank output.

Reproducible: Always

Steps to Reproduce:
1.Open Indic webpages http://bn.wikipedia.org or http://hi.wikipedia.org or http://pa.wikipedia.org or http://www.bbc.co.uk/hindi/ or http://www.bbc.co.uk/bengali/
2. print webpage to File or printer
3.
Actual Results:  
printed ps file failed to open on Fedora 8
printed webpages resulted blank or some garbage text.

Expected Results:  
It should print any Indic webpage correctly.
It should open any ps(Print to File option output) file.

Attaching various ps files
Keywords: regression
Version: unspecified → Trunk
I was able to print the Malayalam wikipedia (ml.wikipedia.org) without any problems. Only thing it took a long time to print it and the ps file is 6 MB. I was able to open it in Evince without any problem. I converted it to pdf file with ps2pdf and it is 1.5 MB. All this with a trunk compiled version (I compiled it last time when I got the patch for rendering ZWNJ). All this on Fedora core 8.

PS: I could not run a cvs update today (so the copy I have is not that latest trunk)

pravi@localhost:~/forge/firefox3/mozilla$ cvs update
cvs [update aborted]: connect to [cvs-mirror.mozilla.org]:2401 failed: No route to host
pravi@localhost:~/forge/firefox3/mozilla$ ping cvs-mirror.mozilla.org
PING cvs-mirror.glb.mozilla.com (63.245.213.100) 56(84) bytes of data.
64 bytes from cvs-mirror.nl.mozilla.com (63.245.213.100): icmp_seq=1 ttl=247 time=168 ms

Strange as it can resolve the host without any problem.
Attached image correctly printed page
converted from the ps file printed from firefox 3 (since bugzilla did not allow bigger than 300KB attachments I converted the first page to jpg with gimp).

 Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9b3pre) Gecko/2007121521 Minefield/3.0b3pre
Praveen,
  Thanks for testing this which gave me ack that Malayalam Indian language is not having printing issue which I already tested and knew it. :)  
  Reason behind reporting this bug as generic indic languages is that I was not sure how to summarize this bug as I got only Malayalam working thats why I skipped mentioning ml.wikipedia.org in bug reproducing step 1.
  In case you have time you may like to test Hindi languages web pages.
Parag,

I have tested hi.wikipedia.org and bn.wikipedia.org. Now I can confirm your observation - it does not work. I get a blank ps file and ps2pdf gives the following error.

pravi@localhost:~$ ps2pdf hi.wikipedia.org.ps 
Error: /typecheck in definefont
Operand stack:
   CairoFont-18-0   --dict:7/10(L)--   Font
Execution stack:
   %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--   false   1   %stopped_push   1905   1   3   %oparray_pop   1904   1   3   %oparray_pop   1888   1   3   %oparray_pop   1771   1   3   %oparray_pop   --nostringval--   %errorexec_pop   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   1861   2   3   %oparray_pop
Dictionary stack:
   --dict:1146/1684(ro)(G)--   --dict:0/20(G)--   --dict:81/200(L)--
Current allocation mode is local
Last OS error: 2
Current file position is 238964
GPL Ghostscript 8.61: Unrecoverable error, exit code 1

Also in the advanced font selection list Hindi is missing.
(In reply to comment #4)
> Error: /typecheck in definefont
> Operand stack:
>    CairoFont-18-0   --dict:7/10(L)--   Font

There was a bug in cairo where embedded bitmap fonts in PostScript would cause
the above error on ghostscript 8.56 or later. This has been fixed in the cairo git repository.
(In reply to comment #5)
> (In reply to comment #4)
> > Error: /typecheck in definefont
> > Operand stack:
> >    CairoFont-18-0   --dict:7/10(L)--   Font
> 
> There was a bug in cairo where embedded bitmap fonts in PostScript would cause
> the above error on ghostscript 8.56 or later. This has been fixed in the cairo
> git repository.
> 
Thanks for your comment. Do you mean that I can get above error fixed by installing http://cairographics.org/snapshots/cairo-1.5.4.tar.gz ?


Depends on: 411224
(In reply to comment #6)
> Thanks for your comment. Do you mean that I can get above error fixed by
> installing http://cairographics.org/snapshots/cairo-1.5.4.tar.gz ?

No. The fix is more recent than that snapshot.

 

(In reply to comment #7)
> (In reply to comment #6)
> > Thanks for your comment. Do you mean that I can get above error fixed by
> > installing http://cairographics.org/snapshots/cairo-1.5.4.tar.gz ?
> 
> No. The fix is more recent than that snapshot.

I just checked the commit dates. This fix is in 1.5.4.
I checked this on Fedora rawhide/9 version and I can see still same errors. Following packages are installed on Fedora system.
ghostscript-8.61-6.fc9
cairo-1.5.4-1.fc9
firefox-3.0-0.beta2.8.fc9

Also,verified with nightly build Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9b3pre) Gecko/2008010904
Found same result. Unable to see .ps file in evince and gs.

When started bn.ps(print of http://bn.wikipedia.org/), I got
gs bn.ps =>
GPL Ghostscript 8.61 (2007-11-21)
Copyright (C) 2007 Artifex Software, Inc.  All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
Error: /undefined in if11
Operand stack:
   false   --nostringval--
Execution stack:
   %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--   false   1   %stopped_push   1905   1   3   %oparray_pop   1904   1   3   %oparray_pop   1888   1   3   %oparray_pop   1771   1   3   %oparray_pop   --nostringval--   %errorexec_pop   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--
Dictionary stack:
   --dict:1143/1684(ro)(G)--   --dict:0/20(G)--   --dict:81/200(L)--
Current allocation mode is local
Last OS error: 2
Current file position is 103908
GPL Ghostscript 8.61: Unrecoverable error, exit code 1
(In reply to comment #9)
> I checked this on Fedora rawhide/9 version and I can see still same errors.
> Following packages are installed on Fedora system.
> ghostscript-8.61-6.fc9
> cairo-1.5.4-1.fc9
> firefox-3.0-0.beta2.8.fc9
> 

What is the cairo version listed at the start of the PostScript output?
Flags: blocking1.9?
initial lines from bn.ps file are
%!PS-Adobe-3.0
%%Creator: cairo 1.5.3 (http://cairographics.org)
%%CreationDate: Thu Jan 10 17:17:58 2008
%%Pages: 4
%%BoundingBox: 0 0 612 792
%%DocumentData: Clean7Bit
%%LanguageLevel: 3
%%EndComments
%%BeginProlog
Strange I got cairo version 1.5.3 in .ps files for fedora installed firefox rpm and nightly build also.
I checked about:buildconfig for nightly build but didn't find cairo mentioned in configure arguments.
Fedora Firefox in Rawhide currently uses internal (not the system) cairo.
With yesterday's nightly build, I am still facing same error.
evince bn.ps 
------------------------------------------------------------------------------
Error: /undefined in if11
Operand stack:
   false   --nostringval--
Execution stack:
   %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--   false   1   %stopped_push   1909   1   3   %oparray_pop   1908   1   3   %oparray_pop   1892   1   3   %oparray_pop   1771   1   3   %oparray_pop   --nostringval--   %errorexec_pop   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--
Dictionary stack:
   --dict:1148/1684(ro)(G)--   --dict:0/20(G)--   --dict:81/200(L)--
Current allocation mode is local
Last OS error: 2
GPL Ghostscript 8.61: Unrecoverable error, exit code 1
Error: /undefined in if11
Operand stack:
   false   --nostringval--
Execution stack:
   %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--   false   1   %stopped_push   1909   1   3   %oparray_pop   1908   1   3   %oparray_pop   1892   1   3   %oparray_pop   1771   1   3   %oparray_pop   --nostringval--   %errorexec_pop   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--
Dictionary stack:
   --dict:1148/1684(ro)(G)--   --dict:0/20(G)--   --dict:81/200(L)--
Current allocation mode is local
Last OS error: 2
GPL Ghostscript 8.61: Unrecoverable error, exit code 1

** (evince:5384): WARNING **: Interpreter failed.

(evince:5384): GLib-WARNING **: Error flushing string: Broken pipe

** (evince:5384): WARNING **: Interpreter failed.

(evince:5384): GLib-WARNING **: Error flushing string: Broken pipe
------------------------------------------------------------------------------

Also, output of  head -n 10 bn.ps
%!PS-Adobe-3.0
%%Creator: cairo 1.5.5 (http://cairographics.org)
%%CreationDate: Mon Jan 21 12:25:45 2008
%%Pages: 4
%%BoundingBox: 0 0 612 792
%%DocumentData: Clean7Bit
%%LanguageLevel: 2
%%EndComments
%%BeginProlog
/languagelevel where{pop languagelevel}{1}ifelse 2 lt{/Helvetica
(In reply to comment #14)
> With yesterday's nightly build, I am still facing same error.
> evince bn.ps 
> ------------------------------------------------------------------------------
> Error: /undefined in if11

Can you attach (or provide a download link to) the PostScript output.

This looks like the bug that that I fixed a couple of days ago with this commit:
http://gitweb.freedesktop.org/?p=cairo;a=blobdiff;h=8b96aa7065394516244217c183a9d57ee518c9e1;hp=bc46954aed524098cf40c95a3e7a4e538d6924ef;hb=574bdd01fd5df8f378c901de5cd9b24bd720ad37;f=src/cairo-type1-subset.c

The version of cairo in firefox is from before this bug was fixed. See around line 1029 in http://mxr.mozilla.org/mozilla/source/gfx/cairo/cairo/src/cairo-type1-subset.c

The problem is that some Type 1 fonts do not have a newline at the end of the last line. It looks like in your case you have one of these fonts and the last line ends in an "if". It looks like the next font to appear in your PS output is a TrueType font. The TrueType subsetting starts with "11 dict begin" so you end up with "if11 dict begin". The "if11" is not a defined name or operator so ghostscript is going to complain about it.
output of Bengali wikipedia print saved as .ps file at
http://paragn.fedorapeople.org/FF3/bn.ps
(In reply to comment #16)
> output of Bengali wikipedia print saved as .ps file at
> http://paragn.fedorapeople.org/FF3/bn.ps
> 

The problem is exactly what I described in comment #15. If you edit the PS file, search for "if11" and insert a space or newline to make it "if 11" it will work.
Given comment 15 looks like this will get fixed with next Cairo drop so assigning to vlad..
Assignee: nobody → vladimir
Flags: blocking1.9? → blocking1.9+
Priority: -- → P2
Status: UNCONFIRMED → NEW
Ever confirmed: true
Status: NEW → RESOLVED
Closed: 15 years ago
Resolution: --- → FIXED
Flags: in-testsuite?
You need to log in before you can comment on or make changes to this bug.