|
Description
|
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: customer 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 customer 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) customer 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(#`@ xxxxx@xxxxx
M1FEL=&5R("]&;&%T941E8V]D92`-/CX-<W1R96%M#0I(B6Q7R9$M-PZT0#XM"RJX$[1$! xxxxx@xxxxx /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&)(!,) xxxxx@xxxxx % xxxxx@xxxxx #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-% xxxxx@xxxxx [12'J"3I)05%@.+.FAJ5
M9B(;UR'AEJP^#-@R#[V[H;@UQO[&W04)A\WY3<==! customer \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& xxxxx@xxxxx =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`' xxxxx@xxxxx (OFUGEC'C5^+X2)7
M!66\V1`TI]=&[=LNQ`SD\D)H)](P@:AB/ xxxxx@xxxxx *W;?5GKJ>Q!ZH]2,+(+<$`
M@(06;_&6ZQ(-W>]UUWTU.KC24GQ6.3!@KM+`BG=S:ZR$'I,BHY4+QR>+SIF=
M!/699S') xxxxx@xxxxx >.,0M)01:K97J_A20I9I_ZVT_0EH0H=YGK$R.S%B5`NZ<H*
MUPS>=GH4[][!/5#7$@GI6' xxxxx@xxxxx ]T;KL-3<M0;L)54<M1;D-%NL`5U,/JD
M@^U>@O5H*518^=(8K(ETQSRQ!BP'J5>#TX? xxxxx@xxxxx *%-X3ZYYDL!DS6+,2
customer =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+<<. xxxxx@xxxxx <GU6Q48.96W&J'L4[!5>I5.MNM9CY[X
M9:A1B%[)Z>HQ)<E)-=N<YEG#G(1N4U([ xxxxx@xxxxx !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>`- xxxxx@xxxxx %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: xxxxx@xxxxx 'QGT\#2-LDX7(>)H&C6SN1-BG]*<A[5>SY-+@0'Z5MA)
ME:Q::YA5R,$JW%^<"[:WD":Y1.CKO(,(148,E= xxxxx@xxxxx [.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* xxxxx@xxxxx #&"\^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' xxxxx@xxxxx .$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?( xxxxx@xxxxx [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!_- xxxxx@xxxxx %:6/I9K/.;HT/6PP_1N xxxxx@xxxxx ;ZY`>]Z6QI7MDHG6W&
MKL)<X"]2&<P,1D4PA&A' xxxxx@xxxxx >#,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%( xxxxx@xxxxx <+ISQ
MZOB1ZB)I4%<]A] xxxxx@xxxxx &%)TL"8)6G0F`8O8+@I]6_.\, xxxxx@xxxxx :>P)(!RS&!,
M9; xxxxx@xxxxx ]6PYMM:8N`AFL";XTTG2K-Y6\QFFZ)UGW,PO#(G0QX1C^C*! xxxxx@xxxxx
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/ xxxxx@xxxxx ^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+&= xxxxx@xxxxx ".(_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%[! xxxxx@xxxxx >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% xxxxx@xxxxx "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` xxxxx@xxxxx &`*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^# xxxxx@xxxxx &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^ xxxxx@xxxxx '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^ xxxxx@xxxxx !-;B]:1>F)"L.SZPR7:VR@]=X
M`<`*?-+Z.>8XI&D.YU5RJP9FKP(``R"ZOQ<`>$P<`=;C,]]CUXAV=W+[PZ5H
xxxxx@xxxxx ) xxxxx@xxxxx !7IXYJ9G4I0^ xxxxx@xxxxx ;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$ xxxxx@xxxxx (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
xxxxx@xxxxx \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
xxxxx@xxxxx ?= xxxxx@xxxxx ^;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-$& xxxxx@xxxxx (Q(E[" xxxxx@xxxxx !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% xxxxx@xxxxx /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(#`@ xxxxx@xxxxx ^
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,@, xxxxx@xxxxx (#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@- xxxxx@xxxxx (#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@- xxxxx@xxxxx (#<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@- xxxxx@xxxxx (#,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- xxxxx@xxxxx ,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.&, xxxxx@xxxxx , xxxxx@xxxxx
;/ET-/CX-<W1A<G1X<F5F# xxxxx@xxxxx -#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 customer 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
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)
======================================================================
Posted Date : 2005-07-22 03:26:14.0
|