JDK-4727913 : TextLayout.draw from a LineBreakMeasurer produces low quality output
  • Type: Bug
  • Component: client-libs
  • Sub-Component: 2d
  • Affected Version: 1.4.0
  • Priority: P4
  • Status: Closed
  • Resolution: Duplicate
  • OS: windows_nt
  • CPU: x86
  • Submitted: 2002-08-07
  • Updated: 2002-08-07
  • Resolved: 2002-08-07
Related Reports
Duplicate :  
Description
ponent(g);
	Graphics2D g2 = (Graphics2D) g;
	drawShapes(g2);
}
public void drawShapes(Graphics2D g2){

	g2.setColor(Color.black);
	Font f=new Font("Arial", Font.PLAIN, 24);
	Map fontAttributes = f.getAttributes();
	AttributedString atext = new AttributedString("abcdefghABCDEFGHmjkw.measurer",
fontAttributes);
	AttributedCharacterIterator paragraph = atext.getIterator();
	int paragraphStart = paragraph.getBeginIndex();
	LineBreakMeasurer lineMeasurer = new
LineBreakMeasurer(paragraph,g2.getFontRenderContext());
	lineMeasurer.setPosition(paragraphStart);
	
	TextLayout layoutm = lineMeasurer.nextLayout(500);
	layoutm.draw(g2, 150, 100);

	TextLayout layoutd=new TextLayout("abcdefghABCDEFGHmjkw.draw", f,
g2.getFontRenderContext());
//
System.out.println("d="+layoutd);
	layoutd.draw(g2, 150, 120);
    }


    public int print(Graphics g, PageFormat pf, int pi) throws PrinterException {
        if (pi >= 1) {
            return Printable.NO_SUCH_PAGE;
	}
	drawShapes((Graphics2D) g);
        return Printable.PAGE_EXISTS;
    }
  
   public static void main(String s[]){
	WindowListener l = new WindowAdapter() {
		public void windowClosing(WindowEvent e) {System.exit(0);}
		public void windowClosed(WindowEvent e) {System.exit(0);}
	};
	JFrame f = new JFrame();
	f.addWindowListener(l);
	JPanel panel = new JPanel();
	panel.add(button);
	f.getContentPane().add(BorderLayout.SOUTH, panel);
	f.getContentPane().add(BorderLayout.CENTER, new ShapesPrint());
	f.setSize(580, 500);
	f.show();
    }

}

---------- END SOURCE ----------
(Review ID: 159899) 
======================================================================


Name: jk109818			Date: 08/07/2002


FULL PRODUCT VERSION :
java version "1.4.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0-b92)
Java HotSpot(TM) Client VM (build 1.4.0-b92, mixed mode)

FULL OPERATING SYSTEM VERSION : Windows NT Version 4.0,
service pack 6a, german


EXTRA RELEVANT SYSTEM CONFIGURATION :
Acrobat PDF Writer: Adobe Portable Document Format Driver 4.05
Seiko Smart Label Printer 240, Driver CD is Labeled "Version
4.56"

A DESCRIPTION OF THE PROBLEM :
Calling draw on a TextLayout object from a LineBreakMeasurer
produces lower quality rendering under some circumstances.
The quality is as expected when draw is called on a directly
instatiated TextLayout or when calling Graphcis.drawString.

The poor quality is only visible when printing to
a) Seiko smart label printer 240
b) Adobe Acrobat PDF writer
and the output is ok for a Laserjet 3150 and the screen.

For the PDF produced by the Acrobat PDF writer the
difference is visible only on the screen, the file can be
printed perfectly on a Laserjet 3150.

When printing small fonts on the label printer (e.g. size 7)
the quality of the output is unacceptable low.

Here is a uuencoded PDF produced from the attached example code:

begin 744 JavaPrinting.pdf
M)5!$1BTQ+C(@#27BX\_3#0H@#38@,"!O8FH-/#P-+TQE;F=T:"`W(#`@4@TO
M1FEL=&5R("]&;&%T941E8V]D92`-/CX-<W1R96%M#0I(B6Q7R9$M-PZT0#XM"RJX$[1$!B@4FD/W1(S\/PR!1(*L_C_ZT`_@4D`BL?!_GS]R3X^TSZSC6>53
M9WGJ^)3R]/'Y]^_/?SY_?O[[^2-]]._??W3[>F;YS%:?7C[?JI!'9"N*GE<I
M#Y-:V]+4?RJ5S^<OW3QP.C]K[.5A/Z>>ZSAG$K96;K7U\DS<FV1+63^FDOCF
M_,`H_2@<:NTIE]2?RHM#8P8G-66VH?[H/54OFG&MV;C=N+XZ];Q:I+=(N%:`
M@^@1M;X.D\0$P=[%S0W?64_2JQHN7HJ!0F&NFH3=#N,R]X3+0Z6EILV>?"=%
M^+[WF%#')32)O:HPCU6HD#R*ZLMVJ7"SJ+>(@MJCL/2J(7SP"[NZHHB%]N`&
MD0_=W5(_T15<F(&6F9V)76EFZKBCBTA]058\]C]$90COSKAP6_#D$Y?13'-=
MW4"C:K&'=8R+F&)(!,)TZJ@T%Q@4#9JO"K?:08]"4S-M\TCZ0=5L&[<`^(Q'
M6[)[:@1F9(7=?5`)0&FXM]`!9&JQ>0`+_3(E@^J2"(9K-H4W#%^7PM)#)>-6
MXY=-JA&UK3&.5Z/M*+I-LU"C-@H8;QEZ.PW-%Q@G[12'J"3I)05%@.+.FAJ5
M9B(;UR'AEJP^#-@R#[V[H;@UQO[&W04)A\WY3<==!02\0$FP#/-,'D^+O05[
M$Y;MP]T3W85V-INFH6;X70TV>85KP3T`,!K3QPM:1XQJ6#"`#%;G?6S:,>ZS
MI.77O$Z[)0M.7)8ZW%X671IWE;G1O8-C1!I/Q%J#-1K;@@??%?BP*:8"^!N%
M0>8*.5FSF$(;Z)F>5S+.;##[8F:J*B]G0;:=))^5^:4\VI((Z\-LJ`]>S[8X
MD6X;A-EA@%6=V5'1+-&PM^,[*+U;TJJ$DDU!`FQJAEJB$CBB3)X-C#F),"U#
M%$K-4??.^^(&PEA^^N:0>WU#.,Y9#Y)Q!9NOJ%U1C)1S&6GA\0'5MX#?D>WB
M3/_HSQ6%0TW,[S(R\UET;RP(C!60H.]VN".6=HBLI"1W9#L:J=V&LSM@Z=R-
M#D?26/E':26%:H!*%FSF55_9GC4YU=CYF4G#K;B^Z.#!F!M9VRN#=65?I5@+
MLM4H\04YCTA8\7)7K0.+SU$EG)'.`6FC*E[MP`'Q@G4X(OFUGEC'C5^+X2)7
M!66\V1`TI]=&[=LNQ`SD\D)H)](P@:AB/3R@VK*W;?5GKJ>Q!ZH]2,+(+<$`
M@(06;_&6ZQ(-W>]UUWTU.KC24GQ6.3!@KM+`BG=S:ZR$'I,BHY4+QR>+SIF=
M!/699S')6LV@1>.,0M)01:K97J_A20I9I_ZVT_0EH0H=YGK$R.S%B5`NZ<H*
MUPS>=GH4[][!/5#7$@GI6'NRDD@GD]T;KL-3<M0;L)54<M1;D-%NL`5U,/JD
M@^U>@O5H*518^=(8K(ETQSRQ!BP'J5>#TX?TJSYRE@M*%-X3ZYYDL!DS6+,2
MDE=B\BDH6XJ6#K]\=K'"*.R5YV?D!Q5($#]F<ZY>ZMUE.).WYB+!-L@'VV8&
MO_)CVW]UO.WHB$[I.)P$69W#J1AFWE3MX.!!4F<C?+7*+<W!5KF$]9+1,I'=
MO"0OHC\5I]F\`OP%T`??5-^7#.*NP]KM[[M-;)<OUFZ?4_!T._RB[/;_:D[N
M,@].'YB(J\1HO(VMYYU(2:+]46.Y9@<].W'G*7P$V</:$;EJ5LO5=;9+R[O.
M_EG.B?*\V]@ZE8"`H1+<<.K.D@MPL<GU6Q48.96W&J'L4[!5>I5.MNM9CY[X
M9:A1B%[)Z>HQ)<E)-=N<YEG#G(1N4U([HRQVU@A!2<6GCWR$<`8RQBT_!5!X
MIP/)#]H46=+@2"EF9B0*?$JHR+::,U?A_GR]*PF6?S,WSH/[`DJG!E^:LQD/
MF4L*M#!I0O-U*?0-HD*+)YLZY%/"\,.#;S11%^?UK&)<(AE*6JB@'N-T%5B5
MO#6$R]X;G!_Y07H`GL.LEP_V@>^+?*;XPFTK6FJ@;9_@ER)KU)@8U=1J!..$
MD+&&N[;BD;;`J52$/?I%"Z.Q2BS%;]/Q]0G'V8JH0$\W9[H!^:O"1H^OZ\@O
M"IM1;H6.*2I8]9_``]/?EH:$2>J/J%LE^[PB")Q@'EF^<[$R&S47:&N=J)3T
M"`7;7/)SK1:>=,E/5J?:UEBB3;I4BDG;5+UHM%O*@Q+.)GIDZ][][*:P<4;A
M6A;]@7Q!$^V#_IC4.3>$)H#>'Y??*DZP%L?ZMR):TYL!=H?5Y):-#J4C<9)/
M)JJP;I"4;BIMH2ZXBOY35]2&,BS4U5Y-I>`-L26ME@5M%1)V+X.*Z^N1.%J3
M!N^Z>2O4T:W9M"DUT\H"R5S,OC4_&)<45!=0HEV(1Z/>ZF]*\V>QGFL?<'LA
MW=YQO7-=+2J-XZ5P=_6.E`[CT/]#.D65&DM4E=9@#N][6KO'*=5$V]4/=XQ0
M%2%Y/SC4Z#,7:4@2'QGT\#2-LDX7(>)H&C6SN1-BG]*<A[5>SY-+@0'Z5MA)
ME:Q::YA5R,$JW%^<"[:WD":Y1.CKO(,(148,E=UU@J[.N1FULF!FX3HFR&JS
M(:&L!^9^T=?"Z?R+E,%&C#L[G`W#"!56MR.E.H[ZT-;N"/7![J01:L1-[:^!
M(D/DX^%$FN1S=$OS?34SHS-KG(1R26;U*ZHI4@K#&"\^DYIJ4CL<A%':J]QB
M$@7>V`*\Y`F@<-U(YN*+CJ":\D(7'_>Y('J8*\Z`OL.4VN\4U:26R.M-1V9`
M:>7]OB@*\EEM2$/DT48T<Q+#WNXCKU&V#4?!DE*SGNT;FP>`MA9>]G#D[Z42
M`N9>;'9-U&N-;_F=8K'FNV+7#ZVEK7$>@1MH[N6'DQ@N6N532.$HUSS2,L<3
M_9G./-(2.PYG#(.W6#IJOD3Q4JFYHPCD`HI6YSQ$\"(D83"H"*]?+#"OA<7<
M:=&=4L&"/GV<H&(T#(9QQR@_P!X@^@X"[T!MOA3YAV$O.VP'"DDS;\VPA49B
MBMLP8X\KC*_="E/WA]:PZ47'A<()P[#I7N,Q1W1_B!E%5?(9@FWL98[Y.)X7
M;I`/2M,3XR@:OF>*,CT7UOZ)T8T\GP/<$JWR<])L,0%#$HV:`K;!A2WUPE$H
MI$C,H]!:P:-(MGWS"CYC]V3E43SF8.7ID'*Y*3FG3\_2SEWI-JJMZ#P3\^@.
MN#Z<YD*Q%ECETHRM)N(%R(/V_M&+C<E-/WH[Z'5]2^D\7]V=9DV3-B<^:-4C
MG_?,OTXN<M*8=_4HLX+-+I4KI6SW30VCBC]2K')]@QM1R8P:%94/I8U$">D$
M`L8X=<H#'OG#8T":5R-AH*JEP);.F!-2B_F!FLZ0YXM-7JE'/`8=)$\OVC1`
M@<;48T^=J*"3^!7.]XI%>@W[1$L5OZ!W*1!GAU-"X7B>!H]/'\&*R'G4,K2-
M:8GE.@)-;04O/,$YE8R=W=RP=M7ZC:;/#:E%`FVIER/-V.K5$;C[A%$.+R7&
M6)JP$"1G*B9@#\*=:XU52X"[599DJ`],+2_,TZ\`JV)YQ1<6NS7-W`9^KX'$
MP\"T.B<S!70U#F.D[\+@JIUR+_/9H=.BV&,&@FT5.6NO9X3X^ZK$)"3QE%"Z
M2L7`UW"VP/P1-@A>MD!<,L(,2%W:Y2NL<(WU:A[U,BJ%;<,1%W]X#'RY/8W5
M>]OL=9TM?_MDE=+JVG861<">GHJ%KS6//*#RY0VBSVIZ=#4DE!R0.\RP]J$!
M\NS,D,8[\SU(J`P(>+31_:5VCA8F-L'95EEG\`]E^ZE%%,&$X,%$3_7E^40)
M$)]R!_-L0V6R@A8%:6/I9K/.;HT/6PP_1N.0KA@VIH;ZY`>]Z6QI7MDHG6W&
MKL)<X"]2&<P,1D4PA&A'V@Y>#,2K$!*0PM/0UQTW+TNKL`BQF2U_^5DR118-
MG+W3$;O7CRG.%3%]U-1_*KREFZ*F>5'Q_VQ729;L.`B\2I\@GR6AZ4Y5]]^V
M(`B0L_[.8%EFCJ`]RP_;[>W9GZ`HK3RH+.,/K11$>CK+:,7;PVY7R6I>'ULL
M#3C8G!I_\'('PPXITD>-*!56`<D[%:>"!-7DV0=[I-WEO6_]H%(5S@6<+ISQ
MZOB1ZB)I4%<]A]Y6J@G2H&%)TL"8)6G0F`8O8+@I]6_.\,J@Y:>P)(!RS&!,
M9;URQ@G]6PYMM:8N`AFL";XTTG2K-Y6\QFFZ)UGW,PO#(G0QX1C^C*!D.@KI
M7D_I3F0A7>D9;LP=AKL+ASK#W2U::F8;9!SJ3Z]D'(SW#I(1]:T31F/7ZT4R
M&%V2C'>T55'FM:#\IB(;J.[/OV3>6#:9^UNV']GY]5E_Y=A'^<%?1=A8]YOW
MA"**Z.6%*EJ[?5(I'1#Y&A%4T(76D:YO.5P0![]O1?K@G_Q5_,-"E;J3"8W-
M;\I8-?3``/?[H\"(-D7Y9$N?S31X0^O;>;JOA$V'FC$.+<<^23[TKR]BTKH`
M(_QUA9'H;5V+Q&>$'99]&7`\\:8=*A!G<'`B%E/K7*5'N"=1ZH]C9"@P,@5P
M:@3/K@5ZX^3R(8R7Q&686KAJPJ^*!`(&SG5KD7)$Z(.1-.V]Z_TDH*CU?:'!
M;.K8Z?&0_&@6)GI#73L):J_F'-Z<:/11464=GU:R`"8-*55;O0`>C`G;0?!7
M96>:[2$<)K!_X^9!BYW;Z$RD-Y,36C6^M2B2],&)HL.?L0FVHQ4R\G5C(]FG
M]9I3#'LFJ(/GN5&%6U@8_=`-O>J!!V+9?%`1PCCJ%$9H"A*?`RBD',T2\Z:,
M__CMJ:N%_Q3PCR\S@!#G3B]E:X#*'8NQ:)\`+@V,H!TF`C="8E'9Q?Y^8I.S
M]/A:043K&UAC8*YI=]J6;1[;&!4Z1K['BM7,X#[AD]$5.0O'^AJ.5%2-C"KF
M)+1]*>*3B=;[DG/8^0=_%/WA@.=/OQ7YR<L359R%)`?L;RK007:B.S-[RU43
MX+*7D5;D\EW"^DVE.>Z:6Y/=IX6_%@#<ZG/Y2`@*N`!7>+O1QOCNL.-ZW[IM
MAOL_=R5KJ)`\[$ZTFVXLBXM"V_+)?PP:YQ;L"=?PUAF%!:+MC<YKT2`;-.FL
M&_(\'J+3<!0XF5W.#)Q[WR!,18"@*]",(=E85!,WVG:DT8L_5T%0AA">]8X%
M.&(W4`S_VWD$`SV/.-?QSV8!BWAJ+&=XRN@6V".(_ASN/`4L63CLFG0=D_^/
M(BN:BH+L/<AE\1*I`7FO"K+?J.3[H-8::C:J<KOC+%#_9/""S@(>GVAK%3P5
MBB6K.V/CW%[!1@2OG>QHY"BM`"IJ_MV:/UHY#?=9TGXO!4>&'"([Z[\4]LF?
M.WY0CEI`;:I'=BE8=UL:DQ\H-$M'L;2<Z_5H`8>$VL8ZQ?=8M7"32OIJ<XM0
MA3K<#$IHF!ADA50XSL-PSJ%P[5N!;RY%TSFJ@L"8HU.IP-!":\!FFS(E_9GB
M3IOHX*JS!X*[F>]LO:%PQQ(GU[77_:8B,U0<PK\5MLR:[!,U_"SKLUZR\`/,
M"RG[JW#*>/>9E$J`D_=/YTO*RKO=4$5M9+'N5]G7=+03A>L:%>TSR%Y-%NXK
M(3LOT`15@85&`*1B_HAQ+`ML]?TMK_>!'(I6KF]<,81;K2GDR^8VOFJLU<_+
M[?:\>U3JNA9:5_A(Z.Y6?Z/V.W1VZ7>-4,$=15#2_U#\^PX[863KNM05Z=O)
M];=$3!?Q*6B8KM(.3!=9#))W#BBA8[/(A=K2'_8H1J+TJ`I]6S\2W_5VW]E;
MLG8!5#NBJ]1>B"Z]D[(\>NOXC/C#HFG\_TZ(%UT%(O\J[1>BRT#!***/Q//Q
M0O/QRFT'!_BKB-YT!0(3DF&Y2O.%Y:H9\6.,"&"Y8'-Z16&1Z:S+\V.[DN3$
M<L$&@S>#-PCVIPO)-<X[D%R0)3A.(9$\-.EX_2I[5P22AZ(@:\[:BA?&\T+R
MJ!NK4,$W<.$A9V$M3G>;98E/9/&"SK)=G^#C@D7&0Z_2N)$\^L&07#!2',E#
M"B0/S;^;416S6?;$^(-VYP23L'W)#OCB8QVOTH,UZ!@O4SB=W;IY$P69%8>+
M5=CT1:QD52^4)-Z/^8&I6H"Z'53[CWLR.CS1&2T#""F&1R$MMJPKNK$P?HEU
MDA<S2_BI=;N:$R-"K>VO>7&<R9>-+Q&$V%UQ$A'S'TX'3:L.2L=6<H_4Y&&,
MN4N*B`WK!&A^+H5R076F8KNU$*YKM:5S8NF6L=$DGL:'FRPK<OI4]_>52=<J
MFY7[;3C<8*>72,-MW1RZR^OE@N'4[U6!`5Q',;/$&6L,)O^5-2?3XFN%V58^
MWG/,'_.\2;,CS>C&L0#6.6V\)#!LQN3",_Y[FVYG%R88XO1K"BMA3?SJ[`6]
M:,58XJ>-Q:^I7EA6O!461M#5*NNY6V4"V=AFFVL;8[*R>61.0GB]I)[U%QJK
MUH54#R1^@63,N->*:B(QFZQ&D7&"=643KL<D!=2%W4B4+:JP4>^;)PO7$<66
M5;ES:F^ORN(@CUTQ\<5B[*\U^PMX^T1N1@R!-;B]:1>F)"L.SZPR7:VR@]=X
M`<`*?-+Z.>8XI&D.YU5RJP9FKP(``R"ZOQ<`>$P<`=;C,]]CUXAV=W+[PZ5H
M.@LRO)I@Y!7IXYJ9G4I0^EQ7@ZRL0E;6,B\;4TZ1R#.!`7A<W2\VLT"+_6WG
M4?N0+(B@=!;;&)Z+C,"*:#EE;9F7]1%ZH$(/OJ72D%?G'LT<`9V4'C182(R%
M:Y*54X'QN4!K,.9"RA&YMHE6LILH:QG;J/8:F`V'$W/7($46E*;/D.<E73,F
M$.,7H5XK,,+K#XB@>:G"#F45"G<=S:@?MIXH&!,S0^*].5"GH,Q'LG![$P\B
MLI</1KM*E;3A$B0/U]AXXBZ!53[;),K.I]>0:!W,LE61H6`%"YL<7LKK.W#&
MN-1W'__C2%,&O+A,1;R[]_YG9`B&[XW7U(C4:&)W`1!J$#15N\$D"]$/%!+8
M>(3`:-F"D9^H>C3NK,Z9W1$R(/(>N">K9(,]^6N`FH?B2&^\WAM#'GA]I(;0
M:#U1RGBD1@/";X>:JU=GB>#T8IF8U=-[S$SN@Y6(HSWJ]H1B`SUT%#%L29)V
MQ7^`)T=J(P#C"Y*WKTK/?_K8N2*%4#YYL,>.$Y]5^%6XT\P1%I0:F]^19'&.
M'B&74AQN7.?<G1&3E8G&FL)$7^/2$XU)>H+VK'O.[GG-V7U]%=RU99)%TH9]
MK93]>0@,%1:KQMT_#JOD[I^?]:<0&)GA'7/U!XIK8T&U.93M8%=7G<X14$AW
MFKEZ$_,3!M^F-#YNFWTB7*;BRN:85Q'L1,,4)#/CFFQ`1PB_Y@G.=?[DW$]6
MY@U\8L>*<;6KQ>S)7MTP>)"P9(\$OV$[+397'RQSYB7W!68)H]_RDL/HB.B*
MJ6]R5H=@6PE/^OC%-?C.1B-3CZE#$SJ&B1N\:V`=S:]W==AMH+4GOSUI+2-1
M[A"OW!`Y$$%K3UNM%ZU-'#CM*3F_KJ%K!I<*A5WS>RELT?A117%`%HW/OFSH
MS_K4V\3^3`3+7P\,M**VJ51N4M^?3I9O-W=&9QU!N(!5ID$XTH?8>T?("JE4
M@I2?=MS@T^;CR%0)B99Z^8S//Q6G9L9+-K(?SEB=J)2[)"X?GT!P%89DT<Q`
MVHA7PR197!T[@CM>+$J#7Z_W^RJ^7H(E>(^I9F>I%M\;8%$I"'T`EVI61*HX
MCQBXVJ49X2U!=CU813AZWXJ@<>\Z,\4$;F7A3>(`[P!3_*LP2NL*+!'J>Z_/
M)W!$A3[N&:^:9.B]6E<8-.ASL'4<K9\1+P.>SGV]"LODX5E_;_[]X.,%*T^@
M*]`7)NN/9DCXNF!0^ON'JX^D!Y7;'!TLR-$&LE@F(Q(E["I@UAC!E&P1#"$G
M9[EI^)_LJ*(U5)MU@::K>3_H)+$#G01-<]'Z7<K-&Y3326^K\;_>*@YC:C2?
MVSE5*C#S_ZK+'3F!&`;#)_`=7"9%R%I^L)0A0-)F9B]`>`X9&AJNG[6EW[*'
M!EDLUDKRI]_B)Q9OA:*1$G0L$AI!!JY6XC/K&FL$@*C.I9PB>5+22]V$E4W+
M-2R'(_)A+-%&:GO'TT*='DY.0FKOE\B8;.B9*+%<%&"IJFM6],<RV]2J&4LX
MLDOBIDPXT:%D4'$5";(:N1;RCKGY9<9*&:4R2B0OXU#\A*+G9O;$SRJ1O.<X
MI44\_UO!=-=>W2L4L7IO.K`L2$O*+34TN2[:"UL598.RA,J.'#?KI5H_U)E?
M.'M09E9Y5,59#9!;HG`U&R)_DNU#Y]W'9EC?=4'9%@9!3F]7U`7'A&74!0>Z
M#6RM.CT;`T$W9]8%O@ER3P8/JDIFYH65>@/BRE3)\Z&#'=P5=GD"`UC!(V&)
M+5<M!)6T!`B1'W4`'UB'-^3#$?B:*[!#+A1V<[9&/<EB,>Q@*.RPHFQKJS,O
M7*TYFQ]KUI-QLT1=$A=]VIC!YL_C8LW[;K#Y/C"=S=NP&)R+\_?#[+33T[[L
M?P_'T_ER_5A_;K:[K^_[[>^Y.#[VSU<[W<QV,O_>MM6N#65N9'-T<F5A;0UE
M;F1O8FH--R`P(&]B:@TV,S`Q#65N9&]B:@TT(#`@;V)J#3P\#2]4>7!E("]0
M86=E#2]087)E;G0@-2`P(%(-+U)E<V]U<F-E<R`\/`TO1F]N="`\/`TO1C`@
M."`P(%(@#3X^#2]0<F]C4V5T(#(@,"!2#3X^#2]#;VYT96YT<R`V(#`@4@T^
M/@UE;F1O8FH-."`P(&]B:@T\/`TO5'EP92`O1F]N=`TO4W5B='EP92`O5')U
M951Y<&4-+TYA;64@+T8P#2]"87-E1F]N="`O07)I86P-+T9I<G-T0VAA<B`S
M,@TO3&%S=$-H87(@,C4U#2]7:61T:',@6R`R-S@@,C<X(#,U-2`U-38@-34V
M(#@X.2`V-C<@,3DQ(#,S,R`S,S,@,S@Y(#4X-"`R-S@@,S,S(#(W."`R-S@@
M#34U-B`U-38@-34V(#4U-B`U-38@-34V(#4U-B`U-38@-34V(#4U-B`R-S@@
M,C<X(#4X-"`U.#0@-3@T(#4U-B`-,3`Q-2`V-C<@-C8W(#<R,B`W,C(@-C8W
M(#8Q,2`W-S@@-S(R(#(W."`U,#`@-C8W(#4U-B`X,S,@-S(R(#<W."`--C8W
M(#<W."`W,C(@-C8W(#8Q,2`W,C(@-C8W(#DT-"`V-C<@-C8W(#8Q,2`R-S@@
M,C<X(#(W."`T-CD@-34V(`TS,S,@-34V(#4U-B`U,#`@-34V(#4U-B`R-S@@
M-34V(#4U-B`R,C(@,C(R(#4P,"`R,C(@.#,S(#4U-B`U-38@#34U-B`U-38@
M,S,S(#4P,"`R-S@@-34V(#4P,"`W,C(@-3`P(#4P,"`U,#`@,S,T(#(V,"`S
M,S0@-3@T(#<U,"`--34V(#<U,"`R,C(@-34V(#,S,R`Q,#`P(#4U-B`U-38@
M,S,S(#$P,#`@-C8W(#,S,R`Q,#`P(#<U,"`V,3$@-S4P(`TW-3`@,C(R(#(R
M,B`S,S,@,S,S(#,U,"`U-38@,3`P,"`S,S,@,3`P,"`U,#`@,S,S(#DT-"`W
M-3`@-3`P(#8V-R`-,C<X(#,S,R`U-38@-34V(#4U-B`U-38@,C8P(#4U-B`S
M,S,@-S,W(#,W,"`U-38@-3@T(#,S,R`W,S<@-34R(`TT,#`@-30Y(#,S,R`S
M,S,@,S,S(#4W-B`U,S<@,C<X(#,S,R`S,S,@,S8U(#4U-B`X,S0@.#,T(#@S
M-"`V,3$@#38V-R`V-C<@-C8W(#8V-R`V-C<@-C8W(#$P,#`@-S(R(#8V-R`V
M-C<@-C8W(#8V-R`R-S@@,C<X(#(W."`R-S@@#3<R,B`W,C(@-S<X(#<W."`W
M-S@@-S<X(#<W."`U.#0@-S<X(#<R,B`W,C(@-S(R(#<R,B`V-C<@-C8W(#8Q
M,2`--34V(#4U-B`U-38@-34V(#4U-B`U-38@.#@Y(#4P,"`U-38@-34V(#4U
M-B`U-38@,C<X(#(W."`R-S@@,C<X(`TU-38@-34V(#4U-B`U-38@-34V(#4U
M-B`U-38@-30Y(#8Q,2`U-38@-34V(#4U-B`U-38@-3`P(#4U-B`U,#`@#5T-
M+T5N8V]D:6YG("]7:6Y!;G-I16YC;V1I;F<-+T9O;G1$97-C<FEP=&]R(#D@
M,"!2#3X^#65N9&]B:@TY(#`@;V)J#3P\#2]4>7!E("]&;VYT1&5S8W)I<'1O
M<@TO1F]N=$YA;64@+T%R:6%L#2]&;&%G<R`S,@TO1F]N=$)";W@@6R`M,C4P
M("TR,3(@,3(Q-R`Q,#`P(%T-+TUI<W-I;F=7:61T:"`R-S@-+U-T96U6(#@P
M#2]3=&5M2"`X,`TO271A;&EC06YG;&4@,`TO0V%P2&5I9VAT(#DP-0TO6$AE
M:6=H="`T-3,-+T%S8V5N="`Y,#4-+T1E<V-E;G0@+3(Q,@TO3&5A9&EN9R`Q
M-3`-+TUA>%=I9'1H(#$P,30-+T%V9U=I9'1H(#0T,0T^/@UE;F1O8FH-,B`P
M(&]B:@U;("]01$8@+U1E>'0@(%T-96YD;V)J#34@,"!O8FH-/#P-+TMI9',@
M6S0@,"!2(%T-+T-O=6YT(#$-+U1Y<&4@+U!A9V5S#2]-961I84)O>"!;(#`@
M,"`U.34@.#0R(%T-/CX-96YD;V)J#3$@,"!O8FH-/#P-+T-R96%T;W(@/$9%
M1D8P,#0U,#`V.3`P-D4P,#8W,#`V,3`P-C(P,#8U,#`V,3`P-S4P,#8V,#`V
M-C`P-D8P,#<R,#`V-#`P-C4P,#<R,#`W-3`P-D4P,#8W,#`R,#`P,D0P,#(P
M,#`V03`P-C$P,#<V,#`V,3`P,C`P,#4S,#`V.#`P-C$P,#<P,#`V-3`P-S,P
M,#4P,#`W,C`P-CDP,#9%,#`W-#X-+T-R96%T:6]N1&%T92`H1#HR,#`R,#<R
M-3$Q,C8S,"D-+U1I=&QE(#Q&149&,#`T03`P-C$P,#<V,#`V,3`P,C`P,#4P
M,#`W,C`P-CDP,#9%,#`W-#`P-CDP,#9%,#`V-SX-+T%U=&AO<B`\1D5&1C`P
M,S,P,#,U,#`S,#`P-C<P,#8Q,#`W,S`P-S0P,#5&,#`W,#`P-S(P,#9&,#`V
M.3`P-S,P,#<S,#`V0SX-+U!R;V1U8V5R("A!8W)O8F%T(%!$1E=R:71E<B`T
M+C`U(&9O<B!7:6YD;W=S($Y4*0T^/@UE;F1O8FH-,R`P(&]B:@T\/`TO4&%G
M97,@-2`P(%(-+U1Y<&4@+T-A=&%L;V<-/CX-96YD;V)J#7AR968-,"`Q,`TP
M,#`P,#`P,#`P(#8U-3,U(&8@#3`P,#`P,#<Y.#<@,#`P,#`@;B`-,#`P,#`P
M-S@W,B`P,#`P,"!N(`TP,#`P,#`X-#`P(#`P,#`P(&X@#3`P,#`P,#8T,38@
M,#`P,#`@;B`-,#`P,#`P-SDP,R`P,#`P,"!N(`TP,#`P,#`P,#$Y(#`P,#`P
M(&X@#3`P,#`P,#8S.38@,#`P,#`@;B`-,#`P,#`P-C4S-"`P,#`P,"!N(`TP
M,#`P,#`W-C$Y(#`P,#`P(&X@#71R86EL97(-/#P-+U-I>F4@,3`-+U)O;W0@
M,R`P(%(-+TEN9F\@,2`P(%(-+TE$(%L\83%B-F$V-V$U-#5F.34U-3<Y8C`U
M,#@X8S%E.#`R.#(^/&$Q8C9A-C=A-30U9CDU-34W.6(P-3`X.&,Q93@P,C@R
;/ET-/CX-<W1A<G1X<F5F#3@T-#D-)25%3T8-
`
end


STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
1. run the attached example code
2. print to an Acrobat pdf writer
3. view the pdf on screen
   notice the visual difference betweem the two lines
   which are produced from different TextLayouts

Another effect:
1. remove the commented line
//
System.out.println("d="+layoutd);
2. compile, run
3. print to adobe acrobat writer
4. view the PDF: both lines have the same bad quality!



EXPECTED VERSUS ACTUAL BEHAVIOR :
Same viusal quality for both TextLayouts and Graphcis.draw.

REPRODUCIBILITY :
This bug can be reproduced always.

---------- BEGIN SOURCE ----------
import java.awt.geom.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.print.PrinterJob;
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
import java.awt.print.*;
import java.awt.font.*;
import java.text.*;
import java.util.*;

public class ShapesPrint extends JPanel implements Printable, ActionListener {
    final static Color bg = Color.white;
    final static JButton button = new JButton("Print");

    public ShapesPrint() {
	setBackground(bg);
        button.addActionListener(this);
    }

   public void actionPerformed(ActionEvent e) {
        if (e.getSource() instanceof JButton) {
        PrinterJob printJob = PrinterJob.getPrinterJob();
        printJob.setPrintable(this);
        if (printJob.printDialog()) {
            try {
                printJob.print();
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        }
	}
}
    public void paintComponent(Graphics g) {
	super.paintCom

Comments
EVALUATION This is becuse TextLayout some times prints as filled shapes. This is more likely to be visible on low-res printers. See bug 4480930 ###@###.### 2002-08-07 ============================
07-08-2002