Áß ÍË ÄÝ Ĺ Ä Ăß Í Ţ ˙Đ Ř Jean-Pierre Dube ŕ ß JavaWorld ËÁË ŕÍÁÍ :ÝÍ ŕ ÜßéÁ ŕÍéÍË Jean-Pierre Dube .Ë˙ ŕ ĂßÍ ÉÍÔ ŕ ŢÁ .Ë˙ Ĺ Ţ ÜÍ ß Ä Ń Ń ˙Ďß ŹÚÁÍ ŕßÁ ˙ééËé ÜßÁ Ĺ ÍË .ËËŔ Ńß Áß ÍË Ä Ĺ ŢÍŔ ß Ţ ŕ .ËéËé ééŔ ŹËé˙ ŕË Á Ä ˙ßÍ Ëß ˙ÁÍ Java API ŕ ˙ ÍË ß ŹÄ Ăß Í Ýß Ĺ ÍË ŹË ŢÁ ˙Ë ŕß ÝßË Ĺ ÍË ÁËéé ˙Ŕ ŹËË˙ Ü ÁÍ ĂßÍ ŕ ˙Á ˙Đ Ý ÝÍ Ĺ ŕéé ß PFDocument ŹPFPage ŹPFPrintObject ŕÍéÍË Ţ ŕ ÍßÔ .ËËÍ ˙éĐé ŕÍéÍË Ýééé Ĺ ÍË ŹÝËÁË Éß ŕ áÍ ŕÎÁËÁ ˙Đ ÖßÍé PFParagraph Đé é ÁËé éÁ .ËÁË ÝéÁß Éß Ăß Í ˙ .Ý˙ Ţ ĹÍË ˙ÁŕéßÁ Ĺ ŕ Đ ŢÁ .ĹÁ Ä ˙ Ăß Í Ú PFParagraph Đ PFParagraph ÎÁ ŕËéé éÁ .ËÎ˙ ĹÁ ÝÎ Ţ ËÁ ˙ÁÍ ŕ ÁÍ ß ÎéÍ ĹÁÍ ŹÄ ÎÁ :Ë ÎÁÍ ÍÎ ˙ Í ŕ ß ËÁ ÁÍ Ţ ËÁß ˙ Ĺéß ŕÎÁËÁ ß ŰÍ ËÎ˙ ÍË ÁÍ Đ ŢÁ ŕß .Ü ÍßÔ ÎÁÍ ÁÍ Ţé é áËßÍß Ëé é ßË Ţéééé PFParagraph .Ë ÝŐ Î ÁÍ Ţ ÍÁ ß String Ý ËÍÁË Á Đ Ú ÎÁ ËÁß ˙ .Ë˙ ˙ Úé ÎÁ ËéÍÁË Îéé Ţé é ŢËßéé ËÍÁß ˙ÁÍé áÍé éé ß Í Ë ŃßÍ ŕ ˙éééŔÍé ŕé Ţ PFParagraph .Ë ŕË Á AttributedString Ëßéß .ËÍÁĚ˙ Í Á ÍË ŹË ŕËÁË Éß ŕ ÁÍ PFPrintObject ÍÁÍé ĐÍé éË ÍË éŕé ˙ÁÍ ÁÍ ˙ ˙ PFParagraph ŕ ŢÁ Ëé ËééÁß ˙ .Ë ŕË Á PFPrintObject Ë ÎÁ ËÁß ˙ ˙ß ŹËË˙ .Ë ą Ĺ ÍË ÁÍ PFParagraph PFParagraph :ą Ĺ Ţé ŹĹéÁ Ýé Ü ß ŕË PFParagraph ˙ Í ŕěŔ ÎÁ print() Ë ÍË áÎÍËÍ ËÁÍ .Ý˙ Ë ŢŔ áÎÍËÍ ˙Ë ˙ßÍ Ô Ĺéß ß ŰÍ Ë ŢÁ ÁË Á .ËÍÁË Ëßß ą Ĺ ÍË ąˇš Ô ÍË ŕ Ëß˙ ÖßÍ (ŕËéÎé) ÎÍËÍ Ë ŹŢŔ ˙Á ÎÁÍ ŕ ŕ Đ .Ë˙ ÝŐ ÁÍ Ţ print Ëé ŹË Ý áÎÍËÍ ËÁÍ Í ˙ ß .ËÁß˙ ÁÍ ÁÍ Ţ Ă .Ë˙ ŕË Á ŢŔ Üß ˙Í ˙ Í áÎÍËÍ ˙ÁÍ printChilds() Ë ÎÁ :ËÍÁË Ëßß Ţ Ţ ÍËÍ ˙ÁÍ private Ë ´ ŹrenderLeftJustified() - ŹrenderFullyJustified() - ß ŹrenderCenterJustified() - .renderRightJustified() - ÝßË Ĺéé ÍË ŕ áË Ţ ÎÁ Í (ł¸ˇ Ô) renderLeftJustified() Ë .Ë˙ ŕË Á ŹË ˙Í ´ Ĺ ÍË Ţéé ÁÍ renderLeftJustified() ß renderRightJustified() Ĺß ł˛ľ Ô ˙Áŕ Í ÓÍ Đ .Ë ˛ Í Ý ÁÍ ŢŔ ÓÍ Ź˙ ÎÍ ŕ ˙ÁÍ .ËË˙ Ëéé .Ëéé ˛ Í Ý ŹËŔ ˙ ĹË layout.getAdvance() Ë ÎÁ ŕ ÁÍ ĹéËé ÁÍ ŕé éÍ áÎ ÍËÍ Ü Ë Ý ŕ Í ŢŔ ÎÍ ÎÁ ÁÍ ˙ ÎÍ .ĹéÁ renderLeftJustified() ŕé ŕ renderRightJustified() Ë .ËÍßŔ .(ËË˙ ÝÁ Ý Ĺ ŢßË ÁÍ Ĺ Ţ ˙) é .ËÍÁË ŮÍé áÎéÍËéÍ ˙éËé é ÍË renderFullyJustified() Ë ß renderCenterJustified() ß renderLeftJustified() ˙éËé é ÎÁ ŕË Á Úé ÍË ŕ ÍË ŹËß˙ ÎÁÍ ŘÁÍÁÍ ÔßÔ ŕ renderRightJustified() Đé Ţßé .Ëéé ÎÁÍé Ëééé ÍéŔ Ôé ŕËé ÎÁÍé éé ŘÁÍéÁÍé ŘÁÍéÁÍé ÍéŔ Ôé ŕ ˙Î ŕ ŕ Ë Ţ ËÁß ˙ LineBreakMeasure ŢÁ Ü ŕÁÍ ŕ ß .ËË ÝÁ ÁÍ ÍÁ Ţ Ëß Ë ÁĚ ŹËÍ˙ ß ŢééÁ Vector ˙éé Ú ÍË ÁÍ ŘÁÍÁÍ Ô Í Ë Ô .ĹÁ ŕË Ü ˙Ô Í Ëß˙ ˙Áŕ ËÍÁß Ë ŢÁ Đ - (´´š-ł˛´ ÔßÔ) .Ë ŕÍĚ Íßé éË ÎÁ .Ëé ÍËÍ ŹĹÁ ŕË ŕÍĚ ˙ ŕË ËÁ vector ÍË ŕ ÁÍ Ë ÍËÍ ÁÍ ŢŔ Đ ß Ë ÜÍ ÁÍ ÍŔ Ô .Ë ŕË Á (´ľš Ô) Ëééé é ËÍéÍé ŕé ´ś° Ôé ÍË .Ëéé ÎÁÍé Äé Ĺéé ÎÁ ŕééÍßéÔé ÎÁÍé ÜééÍßéÔ ÁÍ Ţ Ô Ú Ë ŢÁ .Ë ŕß getJustifiedLayout() .Ë˙ TextLayout Đ ÎÁ Ë ˙Ďß Ú ŢÁ .Ë˙ ÁÍ ÍÎ Ë ßË Ţ ŕ Ú ˙ßÍ ÁÍÁÍ ˙Ë ŃÁÍŔ ŢËß ŢŔ ÍßŐ ŕ ß ŘÁÍéÁÍé Öéé ÍÁ ŕ getTextHeight() ˙ :ÝËÍ Í PFParagraph ÍË ÁÍ áËéé ŘÁÍéÁÍé áÍ ÍÁÍ Ü ŕ getNextParagraphPosition() áÍË ŕ Ë ŕË Á ˙Î getNextParagraphPosition() Ë ÎÁ .Ë˙ ÜÍ ÍË ŕé ÍßÔ .Ë Ă Í áÍË ÎÁ Đ ˙ ÁÍ ŘÁÍÁÍ ŢË ËÁß˙ .ĹÁ ŕË ŕËÁË Ţ ą Ü ![]() getNextParagraphPosition Ë ÎÁ ŕË Á ŘÁÍÁÍ ŃÁÍŔ :ą Ü .ÝËÍ ŕË Á ÍÎ ˙Ë ÎÁ Ţ Źą Ü ÎÁ ĹĆ áÍ ŕ ˙ÁÍ
1|PFParagraph paragraph = new PFParagraph (); ß paragraph ŕé Ţé é ŕé Ëééé ÓÍ ŢŔ ŢËÍ ÚÍË Í ß ŢË ŢßÍ ˙ÁÍ Ë ŕ ˙ .ËÍÁË ÍÁÍ ął Ô ÍË ËÍ ŢÁ .ĹÁ ŕ Ň Á paragraph1 Üéé é ŕËÍé ÁËé ÁÍ setPosition() Ëé é getNextParagraphPosition() ÎÁ ŕËéé Á ÁÍ ˙ ËÁß˙ Ë ÓÍ .Ë Ţ ÁÍ áË ŘÁÍÁÍ ÁÍ PFParagraph ÎÁ instance Ú Ë ÍßŐ ŢÁ ˙ÁÍ .Ë Ä Ăß Í Ăéé Í ß ŃÁÍŔ ˙ÁÍ getNextParagraph() Ë ÎÁ ß ŕËÍ ËÁ Ô Í ˙ÁÍ áÍË ŕ ËÁß ˙ Ĺß ŕ ŕÁ ŕ ŢËÍ ˙ ˙ÁÍ .Ë ŕË Á Ô Í .Ë ŕË Á getTextHeight() Ë ÎÁ Ë ËÁ ÁÍ ÎÁ ŕËéé éÁ é Ţ áÎÍËÍ ŕÍÍË Ţß ÁÍ ŕŔ Ë ŢßÁ Ăß ËÎé˙ ÍË ÁÍ PFParagraph Đ .Ý ÍßÍ ËÁŕ ßŔ Ä Ăß Í ŹÄé ŘÍéÔ ÎÁ :ËéÎ ÍËÍ ÁÍ Ëß Ţ ÍÎ ÎÁÍ ˙Ĺ ÎÁ ŕË Á ˙ Ú ŢÁß ÁÍ Ţ Đ ŢÁ .(ŘÍÔ ßË Í ÎÁ) Ü ÍßÔ ß ÎÍ ŹĹÁÍ ÁÍ ˙émetrics Ţ PFParagraph .ËÍĚ˙ String AttributedString .Ëéé Ú Ţ Ĺß ŃÁÍŔ ÍË ŕßË ËÍÁĚ˙ Ţ Í Á ÍË éé ŕé ÝéÍ ˙ÁÍé ÁÍ Ăß Í ÍË Ëßß ŕßÁ ÜßÁ ÝÁß˙ ŹŕÁËÁ ÍË .Ý ˙Í ÝÍ ŕßÁ ÜßÁ :Ë˙ ˙Í ŕ ÁÍ ÝÍ ŕ Đ ŕ Ä ĂßÍ .ÜÔ ÝÍ ˙ÁÍ PFFrame -ą .ÔßÔ ŢËß ÍËÍ ˙ÁÍ PFLine -˛ ŕÍÁË ŢËß ÍËÍ ˙ÁÍ PFCircle -ł ŕééßé ÁÍ Ëß ŕË Ä ˙ßÍ ËË˙ ŢÁ ŕ ˙Áŕ Đ ŕ ŢÁ .ËË Ü Ëß Í ŕË Íß ÝÍ ˙ÁÍ ÁÍ ˙ ß ŕËÁË Ô PFRectangle é ÁÍ ŢŔ .ĹÁ ÜÔ ÝÍ ŘÍ PFFrame Đ Ä Ăß Í ÍË .ËÍ ŕ Á Ëß˙ ŕË Á áÍ ŕÎÁËÁ Ý ˙ÁÍ ŕ ß Ôé ŰéÍ ŹÔ Ĺ :Ë ËÁ ˙Ďß ŢË ÁÍ Ô ËÁß ˙ ŕËééé ÝŐ /ŕËÍ ÜÁ ÍË Ë ŢÁ ŕ Ţß ß Ü ŢËÍ Í Ňß ŰÍ ÍË ąˇ° ß ął° ÔßéÔé Ţéé ŕ print() Ë ˙ßÍ Ţ ŹË (getter/setter) .Ý˙ ŕ ËÍÁË ÍÁÍ ˛ Ĺ PFFrame :˛ Ĺ ŕÎÁËéÁ (ą´ľ Ô) computePositionAndSize() Ë ÎÁ ŕË Á Ë ÁË Á Rectangles2D.Double ˙éé ˙ ß Đ .Ë ŕ ÁÍ PFFrame ˙ Ü ß .Ëéé ŕË Á ŕË ÍËÍ ˙ ŢÁß ÜÔ ˙ ÎÁ Ź(ą´¸ Ô) Ë ËÁ ŕÎÁËéÁ ß Ü ŕ getDrwingSize() ß getDrawingOrigin() ˙Ë ËÍÍ ŕ ˙éé ÎÁ Ôé Ĺ ÝŐ ˙ÁÍ .Ë ŕ ÁË ŕß Ë˙ Ţ ÁÍ ÜÔ ÍË áÎé ÍËÍ ËŔÍ ŕÍ ß .Ë ŕË Á (ąśą ß ąś° Ô) BasicStroke ˙éé ŹËééé Äé ÁÍ ˙Í ˙Á ŕÁ ÎÁ Ń Á .Ëß˙ ÝÁ ąśł Ô .Ë restore Ń ŰÍ ÁÍ Graphics2d ËÍÁß Ţé ÁĚé ŹËééé˙é Ü PFFrame Ü PFCircle ß PFLine ˙Đ Ţß .Ýß˙ Ţ ěÎ PFImage Đé ËÍé ËééÁßé ˙éÍÍ ß ŕÔ ÁÍŔ ŕ áË áÎ ÍËÍ Đ .ËÎ˙ JPEG ß GIF Íß ËÁ ŕ ÍË ÁÍ ŕ Ë˙ Íß é ˙éß .ËéŔ˙é ŕËéé ŕ áËŔÍ ÍŐ ŕ Íß ËÁ ÜßÁ ŕ ÍË .ĹéÁ ÍéĚé ŢÁ ˙Ë ŕ Íß áÎ ÍËÍ Java Print API ÎÁ ŕË Á Ëé Íß Ú ËÁ ˙ÁÍ .ĹÁ ŢŔ Ĺ˙ Î PFImage Đ ŢËÍ ŕËŔ ÁÍ URL Ëé ŢÁ .Ë Ţ ÁÍ Íß ĐÍËŔ setURL() Ë ÎÁ ŕË Á ÔßéÔ Ţ ŕ print() Ë .ËË˙ ÍÁÍ ŕŐ ÍË ÁÍ Íß ß Ë˙ ŕÍĚ ŕé ÍßÔ .Ë˙ ŕË Á Í Ţ ÎÁ ËÍÁË ÍÁÍ ł Ĺ ÍË š¸ ß ˇś computePositionAndSize() Ëé é ÁË Á ŹË ŕËÁË Éß ˙ Ä ˙Ë ÍË .ËË ËÁ áË ˙˙ ŕÍ ß ËÁ Image ˙ Đ ß ŕË ŕ Í Í PFImage :ł Ĺ Ôéé Î Íß ÍË ˙ Í ÎÁ ˙ ˙ÁÍ ÁÍ Ë ŢÁ ËÁß ˙ ŕ Á ŕß ˙ÁÍ (Java Advanced Imaging) Ţ JAI ŕ ÎÁ ËÁß ˙ ß ËË .Ë ŕË Á Đ ŢÁ Ä Ń Ń ŕÍ .ÝËÍé ÖßÍ Ýß Ĺ ÍË Ä Ń Ń ŕÍ Í ˙Í ÁÍ ÝÍ Ţ ˙éßÁ :Ëé˙é Ýéé ˙Á Đ ßË ŕ Ä Ń Ń ŕÍ ŕ Ĺ Ţ Ë ˙éééßË ß .ËÎééé˙ééé ŕééééééé ˙ßÍ ÁÍ Íéßéé ŕé PFPrintPreview Ëéé Ú ÍÍ ˙ ß ß Ë˙ ˙Í ÁÍ Í Üß ŕ PFPrintPreviewToolbar .ËÍééé˙éé Íéé ŢŔ ˙ÁÍé ÁÍ ˙éééé Ëé é ŹËéé˙é Ăéé éÁ ÁÍ ÜßÁ Ëéé .Ë˙ PFPrintPreview ˙ÁË Đ Ú PFPrintPreivewToolbar ËÍÁË ÍÁÍ ´ Ĺ ÍË ´¸¸ ß łśš ÔßÔ Ţ ŕ PFPrintPreviewToolbar Đ ŕ .ÝÎÁË ˙ PFPrintPreview :´ Ĺ ŕÍéééÍË ŕéé áÍééË Ýéé Îéé ééé Íé Üßé ËééÁ Íéé ÍË ˙éé Úé Ëéé éé ŕ ĹÁ ŢÁ ŹĹÁ ÍĚ Ţ PFPrintPreviewToolbar ˙éééé Íé Üß .(´°ł Ô) ËÍ ŢŔ ŕËÎ ŕ ÁÍ PFPrintPreview ˙Í Í ActionPerformed() Ë .Ë Í˙ PFPrintPreview ŕ ÁÍ ÍÍ ÁÍ ŕééé ËééÁ ËŔÍ PagePanel Đ (´¸ś-˛ś´ ÔßÔ) .ËË˙ ÝÁ ÁÍ ÔßéÔé) paint() Ëé é ˙ßÍ Í Ţ Ĺß .(˛ˇ°-łśś ÔßÔ) ËË˙ ÝÁ éé .Ëé˙ ËÁ ÁÍ JPanel ˙ Ú PagePanel Đ .ËÍÁË ŕ (´śł-łł¸ Ý ŕ Í Ú Đ .Ë override ŕ ËÁ ˙ÁÍ ÁÍ paint() Ë Ë Äé ŕé ŕ Ĺ ÁÍ ŕ Ă Ë ËÁ ÁÍ (ł´¸ Ô) ScaleFactor Ëé˙ ˙ ÁÍ ˙ Ô Ä Ń Ń ß ŢÁ ÍË .ËÍÁË ŕË ĂÍ Ź˙Á ąą ÍË ¸/ľ ŕ Ú ˙ÁÍ .ËÁŕË áË Î ŢßÍ ĐÁÍ ŕ ÍÁËé ŢÁ ŕ Ń ÍÁ ŕ ŕ ÓÍ Ý ËÁß ˙ .Ë˙ 0.77 Đ .ËÍ ˙ÁÍ ˙ ŢÁ .(łľ° ÍÔ) ĹÁ ŕË ËÁ BufferedImage ˙ Ú ŕÔ ŢÁ ÍË Ĺéé Ë Ë .Ëß ˙ ËÁ ŕ ˙ßÍ Íß Đ ŹËßÍ˙ Í ŕ ËÁ éé ÁÍ ÝÍ Ü ŕÎÁËÁ ËÁß ˙ ŕ ÍË .(łľ˛ Ô) Ë Ë ÁÍ ŕÎ ŢŔ ËÍéÍ ß ˙ ŕË ŕ Đ ĂÍ ÎÁ ŕË Á ß Ě ŕÎÁËÁ ŕ -(łľš - łľ¸ ÔßéÔé) Ë ËÁ ÁÍ ŕ Ĺ ÍË .ËË Í g2d ˙ ÍË .Ëéé ËÁ ËÍÁË ˙Í Ëßß ŕ ˙Áŕ ŕ Ë Ü ŢÔÁ ÁË Á ßË ŢéÁ ÜéË .Ë ŕË Á Graphics2d ˙ ß page.print() Ë ÎÁ Đ ŢÍŔ .Ë ËÁß ËÁ doubleBuffer ĹÍß Íß ĹŔ ÍË Î ŕ Ë Ô Đé Ćé ŢÍŔ ŕÍ ß (˛śł-ąśł Ô ) ĹÁ ŕ ˙ßÍ Íß ËÁ ŕÍ Ńéé Ýé é ÍË ŕ ˙Đ ÍßÔ ŕ Ë ßŔ .Ë˙ PFPrintPreview ŢÁÍéÍé ŕé é Ëé˙ ÍÁÍÍ Ô ÍÁ ÍË ËÍÁË ÍÁÍ Ä Ń ŕééÎ ÍË ŢßÁ .ËÍÁĚ Ń Ń ŕ ŕ ˙ßÍ ÁÍ ËÁ ŕ ËË ŢÁ .Ý˙ ß PFPageSetupDialog ŕ ÝŐ ŕÍ ŹĚéé ŕÎÁËéÁ ËééÁßé ˙ PFPageSetupDialog ŕË ŕÍ ÎÁ ŕË Á .Ëééé Ă Á ÁÍ Ě ĐÍß Ë ŕËŔ JDK 1.4 ˙ ß ŕËŔ ÍË ß Źŕ Ë ÁÍ ÝÍ Ĺ .Ë ŕË Á PFPageFormat Đ ÝÁß ÁÍ Đ ŢÁ ŕéé ˙Í ˙ÁÍ container Ú ŢÁß PFPageFormat ŢÁ ÍË ŕ ËÍß PFPageFormat ˙ Ë PFPageSetupDialog ÎÁ ŕË Á ÍßŐ ŕ .Ë˙ Ü ÍÍ ŕ ÁÍ PFPageForamt ÍË ŰßË Đ .Ë ÜÍÁ ŢŔ ŕËÎ ŕ ÁÍ Íé ÁÍ Ŕ ËÍĚ ÁÍ ŕ ĹÍ ÍË ËÁß ˙ ßÁ ŕ ËË˙ Ţ .ËË ![]() ŕ ÝŐ ŕÍ :˛ Ü :ÝÎÁË ˙ Ë ŢÁ ŕ ÜÁÍ ŕ ŢßÁ PFPageSetupDialog :ľ Ĺ FormPanel ˙éé ÎÁ ŕÍééé ˙éŕß ŃÁÍŔ ß ÉÍÔ Ţ ŕ ÍßŐ ŕ ÝééÁ Ţé éÁÍ ÁÍ FormLayout ˙ÁÍŔ ŕ ÍË Ú Í ŕ Ë ŕË Á ŕééÁÍ Resources ŕ FormLayout ŕÍ ÍË Í ĹÔÁ Ă ˙ÁÍ) .ËË˙ ÁÍ áËßÍß ˙éÍé ß Í ËÁß ˙ FormLayout ÎÁ ŕË Á .(Ë ˙éé éé Ţßé é/ŘéËÍ ÍéËéé ÎÁ ŕË Á Đ .ËÍ ÍŐ ÍË ˙ Í ŢŔ ˙ Formlayout ÎÁ ŕË Á .ËË ÍÁÍ Ëß Ü ÍË ÁÍ Ţß /ĂÍ (ąš-¸¸ ÔßÔ) .Ë initialize ÁÍ ŰßË ŕÍ .Ë˙ GridBaglayout ÎÁ ŕÍĚ PFPageFormat ÍË ŕ ˙Í ÁÍ setFields() Ë ÎÁ ŕË Á Đ éËé ŃÁÍŔ ß ÉÍÔ Đ .Ëß˙ ŕËÁË Ĺ Ëß Ňß ˙Ë ŕ ËÁŕË é éËééé ŕé ˙éË ŃÁÍŔ ÉÍÔ ŕ Ë˙ .(šľ-ą°° ÔßÔ) Ëß˙ ŕËÁË ˙éé ŕÍéé ˙ßÍ Ë ßË Đ .ĹÁ ŕË ÍË (FormPanel Đ ÎÁ ŕË Á ŕËÁË Ńééé Page setup ŕÍ ˙ ß .Ëß˙ Ü Cancel áÍË ß Accept ß ËÍéĚ ÁÍ ŕË ËÁ ĹÁÍ Accept Ë Ă Á ËÁß ˙ ÍÍ ŹË Ëé é ŕé .ËÍééé ŕËéËé ÁÍ ĹÁÍéééé Cancel Ëéé Ă Á ÁÍ Accept ÍéÍé ˙é éß .ËéÎÁËé ˙ ą¸˛ Ô ÍË ActionPerformed() ˙éé ÍË ÁÍ Ë ÍË Ëß˙ ŕËÎ ÁË getField() Ë Ë˙ Ă Á ÁÍ Cancel ÍéÍé ÍéÁ .Ëßé˙ ŘĚ ŕÍ Đ .Ë ŕÍĚ PFPageFormat Ëééé ŕÍĚ PFPageFormat ˙ ÍË ÁÍ ÍË ŕŔ ˙ ŕÍ ŹË Ă Á .ËßÍ˙ Í ß ËË˙ ÍÁÍ ĐÍ Ë ÍË ÁÍ Ü Ý ÎÁ Ü ŕÍ Ú Page Setup ŕÍ .ËÎ˙ Ű ß ŕÍ Ú Ä Ăß Í ÁÍ Ëß Äé :ĹéÁ ŕËß áÍ ĹÁß Ü ŕ Ý Ĺ ˙ßß ˙ßÍ ÝÁß˙ ŢßÁ ÁÍ PFVisualComponent ŹĂßé Í ŕ ŢÁ ŢËßÎÁ ˙ÁÍ .˙Í ˙ŕß .ÝËß ËÁ AWT/Swing ˙ŕß Ä ŢéÁ Ä ÁĚ ŹË ˙ layout manager ˙ŕÍ ŕ áÍ ˙ŕß Ţß Úé Ţé Ĺééé ŢéÁ ŕ ŕ ÍßŐ ŕ .Ë ŕÁÍ ËÍ Ë ŕß ÁÍ Íéßéé Ú .ÁÍ ŕß Ëß ÝËÍ ÍËÍ ÁÍŔ ß ËÁ component image .ËË Í ÁÍŔ ŕÎÁËÁ ß ŕËÁË ÍÁÍ canvas Ú ˙ßÍ Í ËÁß ˙ Í ÁÍ ÁÍ BufferedImage .Ëéé ŕ ś Ĺ ÍË ą°ą ß ľ¸ ÔßÔ Ţ print Ë ŕ .ÝÁŕËÍ ËÁ ŕß Íß áÍÁË ˙ÁÍ ÁÍ ŢŔ Ţ ŕ Ë˙ PFVisualComponent :ś Ĺ ß .Ë ÍËÍ double-buffer image ˙ßÍ Í ÁÍ Ëß ŕ ŕË ŕ Áß ŕß ÎÁ .Ëß˙ ÍËÍ ŕ ˙ßÍ ŕß Íß ŕÍ ĹéÁ ŕËé ÁÍéÁ Äé Ăßé Íé ÍË Í Ü ÍË ŕ ÁÍ ˙Ďß ŕ .ËÍÁË ˙Î Îß ˙Ďß ŢÁ ˙ß ËÁŕËË ËÁŕË ŕÁ Îß ŕ ˙Ďß Ń ÍË ŕ Ëß ÍÁËÍßÍ Ŕ ÎÁ ÍÁ ŕ ĹÁ ˙Ďß ŢË Ë Ä Ăß Í ˙é ÍË ŕé Ëéé ˙é flow ˙ Ú Ë ŕÁ ŕ ÎÁ ÜßÁ .Ë˙ ŕËßÎÁ é Úé ˙ßÍ Í ÍË ß Íß ŹŢ Ä ŢÍ ß ŕ Í ÍÁÍ Ä ĂßÍ .ËÎ˙ ŢŔ ÁÍ ß ËÁ Í ˙ ŢÁ .Ë ÜÍ ŕ Ë .Ëéé export ÁÍ ˙ßÍ ËÁß ˙ PDF ß HTML ˙ Í ŕ ĂßÍ Ţ .ÝËß ŘĚ ÁÍ Ţ HTML ß RTF ˙ Ä ˙ÁÍ Ţ Ţ XML Ĺ Ţ Ý Ú Ë ŹHTML ß RTF ŹPDF ˙ ŢËßÎÁ Í ŕß XML ˙éŰé ÎÁ ŕËé Á Ţ ŢËß ĹÍ ˙ÁÍ ËÁß ˙ .ËÎ ÁÍÁ ÁÍ .Ë ŢÎ ÁÍ ĹÁÍß Ë ŕ ÎÁ ŕËéé éÁ ŕßéé ÎÁ -ËéËßéé Ă ÁÍ áÍ ĹÔÁ Źŕß ŢÁ ÍË Ýé éé ŕ ÁÍ áÍË ˙˙ŔÍ ŕ Ä Ăß Í ËÁ Java Print API Ë ŕË Á Ń Ń Ţ Ăß Í ÎÁ ËÁß ˙ .ËÁÎÁ˙ Áß Ń Ý Áß ŕ Á Ţ .˙ Ŕ ŕß ˙ÁÍ ˙Á ß ŕ ŢÁß ŢŔ ÎÁ .ÝÍÁĚé Ţ Í Á ÍË ËßË ŢÎ ß Ţ ŢÁ ÍË ÁÍ ĹÔÁ ˙ ŕ ÝËÍ ËË Java Print API Éß ˙ÁÍ Ţ Ë ŕÍ ÁÍ JDK 1.4 Ţ ŕ ˙ ß é ĹÁßéěé ŕéßé ŢÁ ŕÔÁÍ ÍË ÍÁ ß ŢŔ .ÝÍ˙ ĹË ÁËË .Ë ŰÍË ˙ÁŕŐ Ţ ŕ ˙ßÍ Á ŕ ÜÍÁ ÍË Ë ÁË ˙ ÁË ŕËß ˙Í ąš¸¸ Üé ÍË ÁÍ Infocom ßÁ .Ëéé˙ Áß Ü Íß Jean-pierre Dube ĹÍË Ëß ˙ÁÍ ÁÍ ˙ Á ŕÍ ŢË Infocom ŢŔ ÎÁ Đ .Ëß Đ .ĹÁ ŕËÁË ˙Í ÔßÔ ŮÍÔ ÎÁ áÍ ŕÎÁËÁ ŕËÍ ĹÍË ß Ë ß C ŹVisualBasic ˙ß ŕÍ ŕÎ ÍË ˙ÁßÁÍ ŕÍ ˙ÁÍÁË Jean-pierre .ËßÍ˙é Íé ËË ˙ŕĎßÍ ŕ ˙ÁÍ Ý ŢÎ Ú ŢßÁ ŕ Ë˙ Java ĹéÍ ééË ÎÁ ŕéé ŢÁ Ţ ß Ý ÍË ŕ ŃÍË ŕ ÁÍ ŕß ŢÁ ßÁ .ĹÁ ŕËß ÝË
Resources |
![]()
Copyright 2001, JavaWorld/International Data Group Inc./PC WORLD Iran. All rights reserved.