Summary: | handle io device not working | ||
---|---|---|---|
Product: | GhostPCL | Reporter: | Marcos H. Woehrmann <marcos.woehrmann> |
Component: | PCL interpreter | Assignee: | Henry Stiles <henry.stiles> |
Status: | NOTIFIED FIXED | ||
Severity: | normal | CC: | ken.sharp, norbert.janssen |
Priority: | P2 | ||
Version: | 1.53 | ||
Hardware: | PC | ||
OS: | Windows XP | ||
Customer: | 120 | Word Size: | --- |
Description
Marcos H. Woehrmann
2008-12-15 22:00:50 UTC
Created attachment 4658 [details]
00125.SPL
Passing to Leo for followup: ../gs/base/gxttfb.c(440): Returning error -28. Warning interpreter exited with error code -28 Flushing to end of job Ah this is another True Type Collection problem. The user is trying to download a true type collection which we do not support. Also note the pcl was probably generated for the EFI rip base on reading the PJL on the top of the file. I don't know if this means the pcl has been customized for an efi device. This should have been reassigned back with comment #3. Created attachment 4728 [details]
testfiles.zip
additional test files with similar problems.
*** Bug 690105 has been marked as a duplicate of this bug. *** We are still working on how we want to handle this. The problem is the driver writer is using a truetype collection header with a truetype font, resulting in a corrupt font. It looks like HP and other PCL rips don't look at the header and simply treat everything as truetype. If you are only running pcl the following patch is a workaround until we have a permanent fix. svn diff Index: base/gstype42.c =================================================================== --- base/gstype42.c (revision 9528) +++ base/gstype42.c (working copy) @@ -153,6 +153,7 @@ static const byte version_ttcf[4] = {'t', 't', 'c', 'f'}; READ_SFNTS(pfont, 0, 12, OffsetTable); +#if 0 if (!memcmp(OffsetTable, version_ttcf, 4)) { version = u32(OffsetTable + 4); if (version != 0x00010000 && version !=0x00020000) { @@ -169,11 +170,12 @@ } else { OffsetTableOffset = 0; } - if (memcmp(OffsetTable, version1_0, 4) && memcmp(OffsetTable, version_true, 4)) return_error(gs_error_invalidfont); - +#else + OffsetTableOffset = 0; +#endif numTables = U16(OffsetTable + 4); if (numTables > MAX_NUM_TT_TABLES) return_error(gs_error_invalidfont); Index: base/ttfmain.c =================================================================== --- base/ttfmain.c (revision 9528) +++ base/ttfmain.c (working copy) @@ -229,6 +229,7 @@ this->tti = tti; this->design_grid = design_grid; r->Read(r, sVersion, 4); +#if 0 if(!memcmp(sVersion, "ttcf", 4)) { unsigned int nFonts; unsigned int nPos = 0xbaadf00d; /* Quiet compiler. */ @@ -248,6 +249,7 @@ } if(memcmp(sVersion, sVersion1, 4) && memcmp(sVersion, "true", 4)) return fUnimplemented; +#endif nNumTables = ttfReader__UShort(r); ttfReader__UShort(r); /* nSearchRange */ ttfReader__UShort(r); /* nEntrySelector */ *** Bug 690323 has been marked as a duplicate of this bug. *** fixed in ghostpdl 9600. Changing customer bugs that have been resolved more than a year ago to closed. |