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

RESOLVED FIXED

Status

()

P2
major
RESOLVED FIXED
11 years ago
11 years ago

People

(Reporter: panemade, Assigned: vlad)

Tracking

({regression})

Trunk
x86
Linux
regression
Points:
---
Bug Flags:
blocking1.9 +
in-testsuite ?

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment)

(Reporter)

Description

11 years ago
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
(Reporter)

Updated

11 years ago
Keywords: regression
Version: unspecified → Trunk

Comment 1

11 years ago
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.

Comment 2

11 years ago
Created attachment 294692 [details]
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
(Reporter)

Comment 3

11 years ago
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.

Comment 4

11 years ago
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.

Comment 5

11 years ago
(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.
(Reporter)

Comment 6

11 years ago
(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 ?


Updated

11 years ago
Depends on: 411224

Comment 7

11 years ago
(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.

 

Comment 8

11 years ago
(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.
(Reporter)

Comment 9

11 years ago
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

Comment 10

11 years ago
(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?

Updated

11 years ago
Flags: blocking1.9?
(Reporter)

Comment 11

11 years ago
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
(Reporter)

Comment 12

11 years ago
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.

Comment 13

11 years ago
Fedora Firefox in Rawhide currently uses internal (not the system) cairo.
(Reporter)

Comment 14

11 years ago
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

Comment 15

11 years ago
(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.
(Reporter)

Comment 16

11 years ago
output of Bengali wikipedia print saved as .ps file at
http://paragn.fedorapeople.org/FF3/bn.ps

Comment 17

11 years ago
(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.

Comment 18

11 years ago
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
No longer depends on: 411224
Status: UNCONFIRMED → NEW
Ever confirmed: true
Status: NEW → RESOLVED
Last Resolved: 11 years ago
Resolution: --- → FIXED

Updated

11 years ago
Flags: in-testsuite?
You need to log in before you can comment on or make changes to this bug.