-
Bug
-
Resolution: Fixed
-
P3
-
8-pool
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8033698 | 9 | Anton Nashatyrev | P3 | Resolved | Fixed | |
JDK-8051257 | 8u40 | Anton Nashatyrev | P3 | Resolved | Fixed | b01 |
JDK-8042545 | 8u25 | Anton Nashatyrev | P3 | Resolved | Fixed | b01 |
JDK-8033755 | 8u20 | Anton Nashatyrev | P3 | Closed | Fixed | b01 |
JDK-8041357 | 8u11 | Anton Nashatyrev | P3 | Resolved | Fixed | b05 |
JDK-8053505 | emb-8u26 | Anton Nashatyrev | P3 | Resolved | Fixed | b17 |
JDK-8023991 | 7u80 | Anton Nashatyrev | P3 | Resolved | Fixed | b01 |
JDK-8060949 | 7u79 | Anton Nashatyrev | P3 | Resolved | Fixed | b01 |
JDK-8057420 | 7u76 | Anton Nashatyrev | P3 | Resolved | Fixed | b01 |
JDK-8047608 | 7u72 | Anton Nashatyrev | P3 | Resolved | Fixed | b01 |
JDK-8040743 | 7u71 | Anton Nashatyrev | P3 | Resolved | Fixed | b01 |
JDK-8040547 | 7u66 | Anton Nashatyrev | P3 | Resolved | Fixed | b01 |
JDK-8040196 | 7u65 | Anton Nashatyrev | P3 | Resolved | Fixed | b08 |
JDK-8023992 | 6u81 | Anton Nashatyrev | P3 | Resolved | Fixed | b01 |
getFontDiscriptors() method. Originally the implementation of this method
was empty and then it was modified later on to return an empty
fontDescriptors array. Understanding the reasons behind this will help us to
validate our fix proposals (removing the overriding method).
Under certain circumstances, postscript files generated by the AWT Printing
API on Linux are significantly increased from 6u17 onwards (e.g. from a few
KB to multiple MB). The problem also exists on Java 7. The reasons for the
behaviour difference seem to be different in Java 6 vs Java 7.
In Java 6, the addition of the Ubuntu fontconfig files in update 18 seems to
have introduced this issue (CR 6551584 -subCR
In Java 7 the execution flow is completely different. From our analysis of
the code, the drawString method of PSPathGraphics class calls
psPrinterJob.textOut and passes the string. If the textOut method was able to
encode the string successfully it returns true, and the generated postscript
file is of normal size. If psPrinterJob.textOut() returns false we call
super.drawString() from PSPathGraphics, and this seems to cause the increase
in the size of the postscript file.
The psPrinterJob.textOut() call returns False when makeMultiCharsetString()
returns NULL. In PlatformFont.java, the ComponentFonts array was NULL, hence
the input String encoding was not successful. ComponentFonts is obtained by
calling
fontConfig.getFontDescriptors(familyName, style).
In Java 7, fontConfig is FcFontConfiguration which has getFontDescriptors
defined to return an empty FontDescriptor array.(Oracle bug id 6378099 and
6752622).
In Java 6, fonfConfig is MFontConfiguration and it does not implement
getFontDescriptors and calls FontConfiguration.getFontDescriptors() to obtain
the font descriptors.
When we remove the implementation of getFontDescriptors in
FcFontConfiguration the size of the generated postscript file is normal.
Originally FcFontConfiguration.getFontDescriptors() was not implemented.
Perhaps the intention was to specify some functionality here at some point in
the future, but it ended up being modified to return an empty font descriptor
array under the fix for CR 6752622.
We feel that either the implementation of
FcFontConfiguration.getFontDescriptors() should be removed so that
FontConfiguration.getFontDescriptors() is called instead. However, it is not
clear what the original intentions were/are for
FcFontConfiguration.getFontDescriptors().
- backported by
-
JDK-8023991 Regression: postscript size increase from 6u18
-
- Resolved
-
-
JDK-8023992 Regression: postscript size increase from 6u18
-
- Resolved
-
-
JDK-8033698 Regression: postscript size increase from 6u18
-
- Resolved
-
-
JDK-8040196 Regression: postscript size increase from 6u18
-
- Resolved
-
-
JDK-8040547 Regression: postscript size increase from 6u18
-
- Resolved
-
-
JDK-8040743 Regression: postscript size increase from 6u18
-
- Resolved
-
-
JDK-8041357 Regression: postscript size increase from 6u18
-
- Resolved
-
-
JDK-8042545 Regression: postscript size increase from 6u18
-
- Resolved
-
-
JDK-8047608 Regression: postscript size increase from 6u18
-
- Resolved
-
-
JDK-8051257 Regression: postscript size increase from 6u18
-
- Resolved
-
-
JDK-8053505 Regression: postscript size increase from 6u18
-
- Resolved
-
-
JDK-8057420 Regression: postscript size increase from 6u18
-
- Resolved
-
-
JDK-8060949 Regression: postscript size increase from 6u18
-
- Resolved
-
-
JDK-8033755 Regression: postscript size increase from 6u18
-
- Closed
-
- duplicates
-
JDK-8040274 Postscript printer fonts not used by StreamPrintService on Linux
-
- Closed
-
- relates to
-
JDK-2178357 Need fontconfig.properties for Ubuntu
-
- Closed
-
-
JDK-6752622 java.awt.Font.getPeer throws "java.lang.InternalError: Not implemented" on Linux
-
- Closed
-
-
JDK-8067364 Printing to Postscript doesn't support dieresis
-
- Closed
-
-
JDK-8068168 cannot print special characteres using PrinterJob since patch JDK-8023990
-
- Closed
-
-
JDK-8068169 Printing national characters, e g, Å, Ä and Ö, produces garbage on PS printers.
-
- Closed
-
-
JDK-6378099 RFE: Use libfontconfig to create/synthesise a fontconfig.properties
-
- Closed
-