Atvaizdavimo modeliai
„Java“ yra du spausdinimo modeliai: Spausdinti
darbo vietų ir Puslapiu
darbo vietų.
Spausdintuvai
Spausdinti
darbai yra paprastesni iš dviejų spausdinimo modelių. Šis modelis naudoja tik vieną „PagePainter“
visam dokumentui. Puslapiai pateikiami eilės tvarka, pradedant nuliniu puslapiu. Kai atspausdinamas paskutinis puslapis, jūsų „PagePainter“
turi grąžinti NO_SUCH_PAGE
vertė. Spausdinimo posistemis visada prašys, kad programa puslapius pateiktų eilės tvarka. Pavyzdžiui, jei jūsų prašoma pateikti puslapius nuo penkių iki septynių, spausdinimo posistemis paprašys visų puslapių iki septintojo puslapio, tačiau spausdins tik penkis, šešis ir septynis puslapius. Jei jūsų programoje rodomas spausdinimo dialogo langas, bendras spausdinamų puslapių skaičius nebus rodomas, nes naudojant šį modelį neįmanoma iš anksto žinoti dokumento puslapių skaičiaus.
Puslapiai
Puslapiu
darbai suteikia daugiau lankstumo nei Spausdinti
darbo vietų, nes kiekvienas puslapis a Puslapiu
darbas gali turėti skirtingą išdėstymą. Puslapiu
darbai dažniausiai naudojami su Knyga
s, puslapių, kurie gali būti skirtingų formatų, rinkinys. Aš paaiškinsiu Knyga
klasė per akimirką.
A Puslapiu
darbas turi šias savybes:
- Kiekvienas puslapis gali turėti savo tapytoją. Pvz., Galite turėti dailininką, kuris spausdintų viršelį, kitą - turinį, trečią - visą dokumentą.
- Kiekvienam knygos puslapiui galite nustatyti skirtingą puslapio formatą. A
Puslapiu
darbą, galite maišyti portreto ir kraštovaizdžio puslapius. - Spausdinimo posistemis gali paprašyti jūsų programos spausdinti puslapius iš eilės, o prireikus kai kurie puslapiai gali būti praleisti. Vėlgi, jūs neturite jaudintis dėl to, jei galite pateikti bet kurį savo dokumento puslapį pagal pareikalavimą.
-
Puslapiu
darbui nereikia žinoti, kiek puslapių yra dokumente.
Knygos
Taip pat nauja, nes 1.2 versija yra Knyga
klasė. Ši klasė leidžia jums sukurti kelių puslapių dokumentus. Kiekvienas puslapis gali turėti savo formatą ir savo tapytoją, suteikdamas jums galimybę kurti sudėtingus dokumentus. Kadangi Knyga
klasė įgyvendina Puslapiu
sąsają, galėtumėte įdiegti savo Knyga
klasė, kai numatyta Knyga
klasėje trūksta reikiamų funkcijų.
A Knyga
klasė reiškia puslapių rinkinį. Pirmą kartą sukūrus Knyga
objektas tuščias. Norėdami pridėti puslapių, tiesiog naudokite vieną iš dviejų pridėti ()
metodus (daugiau informacijos žr. mano šios klasės paaiškinimą API skyriuje). Šio metodo parametrai yra „PageFormat“
objektas, apibrėžiantis fizines puslapio savybes, ir a „PagePainter“
objektas, kuris įgyvendina Spausdinti
sąsaja. Jei nežinote, kiek puslapių jūsų dokumente yra, tiesiog perduokite UNKNOWN_NUMBER_OF_PAGES
vertė pridėti ()
metodas. Spausdintuvo sistema automatiškai ras puslapių skaičių paskambinusi visiems knygos puslapių tapytojams, kol gaus a NO_SUCH_PAGE
vertė.
API apibrėžimas
Šiame skyriuje susitiks teorija ir praktika. Ankstesniuose skyriuose sužinojome apie puslapio struktūrą, matavimo vienetus ir atvaizdavimo modelius. Šiame skyriuje apžvelgsime „Java“ spausdinimo API.
Visos klasės, reikalingos spausdinti, yra java.awt.print
paketą, kurį sudaro trys sąsajos ir keturios klasės. Šiose lentelėse apibrėžtos spausdinimo paketo klasės ir sąsajos.
vardas | Tipas | apibūdinimas |
Popierius | Klasė | Ši klasė apibrėžia puslapio fizines savybes. |
„PageFormat“ | Klasė | „PageFormat“ apibrėžia puslapio dydį ir orientaciją. Taip pat apibrėžiama kuri Popierius naudoti pateikiant puslapį. |
„PrinterJob“ | Klasė | Ši klasė valdo spausdinimo užduotį. Jos atsakomybė apima spausdinimo užduoties sukūrimą, spausdinimo dialogo lango rodymą, kai reikia, ir dokumento spausdinimą. |
Knyga | Klasė |
|
Puslapiu | Sąsaja | A Puslapiu įgyvendinimas reiškia spausdinamų puslapių rinkinį. Puslapiu objektas pateikia bendrą rinkinio puslapių skaičių ir „PageFormat“ ir Spausdinti nurodytam puslapiui. Knyga klasė įgyvendina šią sąsają. |
Spausdinti | Sąsaja | Puslapio tapytojas turi įdiegti Spausdinti sąsaja. Šioje sąsajoje yra tik vienas metodas, spausdinti () . |
SpausdintuvasGrafika | Sąsaja | Grafika objektas įgyvendina šią sąsają. SpausdintuvasGrafika teikia „getPrinterJob“ () būdas gauti spausdintuvo užduotį, kuri sužadino spausdinimo procesą. |
Puslapio sąsaja
Puslapiu
sąsaja apima tris metodus:
Metodo pavadinimas | apibūdinimas |
int getNumberOfPages () | Grąžina dokumento puslapių skaičių. |
„PageFormat“ getPageFormat (int pageIndex) | Grąžina puslapio „PageFormat“ kaip nurodo puslapisIndex . |
„PrintPrintable“ (int pageIndex) | Grąžina Spausdinti instancija, atsakinga už puslapio nurodymą puslapisIndex . |
Spausdintina sąsaja
Spausdinti
sąsajoje yra vienas metodas ir dvi reikšmės:
vardas | Tipas | apibūdinimas |
„int print“ (grafinė grafika, „PageFormat pageFormat“, „int pageIndex“) | Metodas | Prašo, kad grafika, naudodama nurodytą puslapio formatą, pateiktų nurodytą puslapį. |
NO_SUCH_PAGE | Vertė | Tai yra pastovus dalykas. Grąžinkite šią vertę nurodydami, kad nebėra spausdintinų puslapių. |
PAGE_EXISTS | Vertė | spausdinti () metodas grąžinamas PAGE_EXISTS . Tai rodo, kad puslapis buvo perduotas kaip parametras spausdinti () buvo pateiktas ir egzistuoja. |
Kiekvienas puslapio dailininkas turi įdiegti Spausdinti
sąsaja. Kadangi yra tik vienas būdas įgyvendinti, gali atrodyti, kad puslapių dailininkus lengva sukurti. Tačiau nepamirškite, kad jūsų kodas turi sugebėti perteikti bet kurį puslapį iš eilės arba iš eilės.
Yra trys parametrai spausdinti ()
, įskaitant Grafika
, kuri yra ta pati klasė, kuria piešta ekrane. Kadangi Grafika
klasė įgyvendina „PrinterGraphic“
sąsają, galite gauti „PrinterJob“
kad suaktyvino šią spausdinimo užduotį. Jei jūsų puslapio maketas yra sudėtingas ir reikalingos pažangios piešimo funkcijos, galite perduoti Grafika
parametras a Grafika2D
objektas. Tada turėsite prieigą prie visos „Java 2D“ API.
Prieš pradėdami naudoti Grafika
objektas, atkreipkite dėmesį, kad koordinatės nėra išverstos į viršutinį kairįjį spausdintinos srities kampą. Norėdami rasti numatytosios kilmės vietą, žr. 3 paveikslą.
(0, 0) pasirodo viršutiniame kairiajame spausdintuvo paraštės kampe. Norėdami atspausdinti 1 x 1 colio stačiakampį, 1 colio atstumu nuo viršutinės ir kairės paraštės, naudokite šį kodą:
1: viešasis int spausdinimas (grafinė grafika, „PageFormat pageFormat“, „int pageIndex“) {2: grafika2D grafika2D = (grafika2D) grafika; 3: stačiakampis2D. Dvigubas stačiakampis = naujas stačiakampis2D. Dvigubas (); 4: stačiakampis.setRect (pageFormat.getImageableX () + 72, 5: pageFormat.getImageableY () + 72, 6: 72, 7: 72); 8: grafika2D.draw (stačiakampis); 9: grįžimas (PAGE_EXISTS); }
Iš ankstesnio pavyzdžio matome, kad stačiakampio kilmę turime rankiniu būdu išversti taip, kad ji būtų atspausdinta spausdinimo srities viršuje, kaip parodyta 1 paveiksle. Norėdami supaprastinti kodą, galėtume vieną kartą išversti koordinates ir naudoti (0, 0 ) kaip spausdinamos srities kilmę. Pakeitę ankstesnį pavyzdį, gausime:
1: viešasis int spausdinimas (grafinė grafika, „PageFormat pageFormat“, „int pageIndex“) {2: grafika2D grafika2D = (grafika2D) grafika; 3: grafika2D.translate (pageFormat.getImageableX (), pageFormat.getImageableY ()); 4: stačiakampis2D. Dvigubas stačiakampis = naujas stačiakampis2D. Dvigubas (); 5: stačiakampis.setRect (72, 72, 72, 72); 6: grafika2D.draw (stačiakampis); 7: grįžimas (PAGE_EXISTS); 8:}
Naudojant versti ()
metodas 3 eilutėje, galime išversti koordinates ir spausdinimo srities viršuje nustatyti savo kilmę (0, 0). Nuo šio momento mūsų kodas bus supaprastintas.
„PrinterGraphics“ sąsaja
SpausdintuvasGrafika
sąsaja susideda iš vieno metodo:
Metodo pavadinimas | apibūdinimas |
„PrinterJob getPrinterJob“ () | Grąžina „PrinterJob“ šiai pateikimo užklausai ir ją įgyvendina Grafika klasė |
Popieriaus klasė
Aštuoni metodai sudaro Popierius
klasė:
Metodo pavadinimas | apibūdinimas |
dvigubas getHeight () | Šis metodas pateikia puslapio fizinį aukštį taškais (1 colis = 72 taškai). Pavyzdžiui, jei spausdinate laiško dydžio puslapyje, grąžinimo vertė bus 792 taškai arba 11 colių. |
dvigubas getImageableHeight () | Šis metodas pateikia puslapio įsivaizduojamą aukštį. Įsivaizduojamas aukštis yra spausdinimo srities, ant kurios galite piešti, aukštis. Vaizduojamos srities grafinį vaizdą žr. 1 paveiksle. |
dvigubas getImageableWidth () | Šis metodas pateikia puslapio įsivaizduojamą plotį (spausdinimo srities plotį, ant kurio galite piešti). Vaizduojamos srities grafinį vaizdą žr. 1 paveiksle. |
dvigubas getImageableX () | Šis metodas pateikia vaizduojamos srities x kilmę. Kadangi paraštės nėra palaikomos, grąžinimo vertė reiškia kairę. |
dvigubas getImageableY () | Šis metodas pateikia vaizduojamos srities y kilmę. Pagal šį metodą grąžinta vertė yra lygi viršutinei paraštei. |
dvigubas getWidth () | Šis metodas pateikia puslapio fizinį plotį taškais. Jei spausdinate ant „letter“ dydžio popieriaus, plotis yra 8,5 colio arba 612 taškų. |
void setImageableArea (dviguba x, dviguba y, dvigubas plotis, dvigubas aukštis) | Šis metodas nustato vaizduojamą plotą ir nurodo paraštes puslapyje. Tiesą sakant, API nepateikia jokio metodo, kaip aiškiai nustatyti paraštes; juos turite apskaičiuoti patys. |
void setSize (dvigubas plotis, dvigubas aukštis) | Šis metodas nustato fizinį puslapio dydį. Norėdami apibrėžti 8,5 x 11 colių lapą, pateikite 612 ir 792 taškus. Atminkite, kad numatytasis dydis yra LAIŠKAS . |
Prieš pereidami į kitą skyrių, nepamirškite, kad Popierius
klasė apibrėžia puslapio fizines savybes. „PageFormat“
klasė atstovauja visos puslapio savybės, tokios kaip puslapio orientacija, dydis ir popieriaus rūšis. Ši klasė visada perduodama kaip parametras Spausdinti
sąsaja spausdinti ()
metodas. Naudokite Popierius
gauti vaizduojamos srities vietą, dydį ir puslapio orientaciją kartu su transformacijos matrica.
„PageFormat“ klasė
„PageFormat“
susideda iš 12 metodų:
Metodo pavadinimas | apibūdinimas |
dvigubas getHeight () | Šis metodas pateikia puslapio fizinį aukštį taškais (1 colis = 72 taškai). Jei jūsų puslapio dydis yra 8,5 x 11 colių, tada grąžinimo vertė bus 792 taškai arba 11 colių. |
dvigubas getImageableHeight () | Šis metodas pateikia puslapio įsivaizduojamą aukštį, tai yra spausdinimo srities, ant kurios galite piešti, aukštį. Vaizduojamos srities grafinį vaizdą žr. 1 paveiksle. |
dvigubas getImageableWidth () | Šis metodas pateikia puslapio įsivaizduojamą plotį - spausdinimo srities, ant kurios galite piešti, plotį. 1 paveiksle pavaizduotas vaizduojamos srities grafinis vaizdas. |
dvigubas getImageableX () | Šis metodas pateikia vaizduojamos srities x kilmę. |
dvigubas getImageableY () | Šis metodas pateikia vaizduojamos srities y kilmę. |
dvigubas getWidth () | Šis metodas pateikia puslapio fizinį plotį taškais. Jei spausdinate ant laiško dydžio popieriaus, plotis yra 8,5 colio arba 612 taškų. |
dvigubas getHeight () | Šis metodas pateikia puslapio fizinį aukštį taškais. Pavyzdžiui, laiško dydžio popierius yra 11 colių aukščio arba 792 taškų. |
dviguba [] getMatrix () | Šis metodas pateikia transformacijos matricą, kuri paverčia vartotojo erdvę į pageidaujamą puslapio orientaciją. Grąžinimo vertė pateikiama formatu, kurio reikalaujama „AffineTransform“ konstruktorius. |
int getOrientation () | Šis metodas grąžina puslapio orientaciją kaip bet kurią PORTRETAS arba KRAŠTAS . |
void setOrientation (int orientacija) | Šis metodas nustato puslapio orientaciją, naudojant konstantas PORTRETAS ir KRAŠTAS . |
Popierius „getPaper“ () | Šis metodas pateikia Popierius objektas, susietas su puslapio formatu. Ankstesniame skyriuje rasite aprašą Popierius klasė. |
void setPaper (popierinis popierius) | Šis metodas nustato Popierius objektas, kurį naudos „PageFormat“ klasė. „PageFormat“ turi atlikti prieigą prie fizinių puslapio charakteristikų, kad galėtų atlikti šią užduotį. |
Tai užbaigia puslapių klasių aprašymą. Kita klasė, kurią mokysimės, yra „PrinterJob“
.
„PrinterJob“ klasė
„PrinterJob“
klasė kontroliuoja spausdinimo procesą. Tai gali tiek iš karto, tiek valdyti spausdinimo užduotį. Žemiau rasite klasės apibrėžimą:
Metodo pavadinimas | apibūdinimas |
abstraktus negaliojantis atšaukti () | Šis metodas atšaukia dabartinę spausdinimo užduotį. Galite patvirtinti atšaukimą naudodami isCancel () metodas. |
abstraktus loginis yra atšauktas () | Šis metodas bus teisingas, jei užduotis bus atšaukta. |
PageFormat defaultPage () | Šis metodas grąžina numatytąjį puslapio formatą „PrinterJob“ . |
abstraktus „PageFormat“ numatytasis puslapis („PageFormat“ puslapis) | Šis metodas klonuoja „PageFormat“ perduoda parametrus ir modifikuoja kloną, kad sukurtų numatytąjį „PageFormat“ . |
santrauka int getCopies () | Šis metodas pateikia kopijų skaičių, kurį atspausdins spausdinimo užduotis. |
abstraktus niekinis rinkinys kopijos (int kopijos) | Šis metodas nustato kopijų skaičių, kurį spausdins užduotis. Atkreipkite dėmesį, kad jei parodysite spausdinimo dialogo langą, vartotojai gali pakeisti kopijų skaičių (žr puslapisDialogas metodas). |
abstrakti eilutė getJobName () | Šis metodas grąžina darbo pavadinimą. |
statinis „PrinterJob getPrinterJob“ () | Šis metodas sukuria ir grąžina naują „PrinterJob“ . |
abstrakti eilutė getUserName () | Šis metodas grąžina vartotojo vardą, susietą su spausdinimo užduotimi. |
santrauka „PageFormat pageDialog“ („PageFormat“ puslapis) | Šis metodas rodo dialogo langą, kuris leidžia vartotojui modifikuoti „PageFormat“ . „PageFormat“ , perduodamas parametrais, nustato dialogo laukus. Jei vartotojas atšaukia dialogo langą, tada originalas „PageFormat“ bus grąžinta. Bet jei vartotojas priima parametrus, tada naujas „PageFormat“ bus sukurta ir grąžinta. Kadangi jis neparodys tų pačių parametrų visose operacinėse sistemose, turite būti atsargūs naudodami puslapisDialogas . |
abstract void setPageable (puslapinis dokumentas) | Šis metodas klausia dokumento, kad gautų bendrą puslapių skaičių. Puslapiu taip pat grąžins „PageFormat“ ir Spausdinti objekto kiekvienam puslapiui. Žr Puslapiu sąsaja, kad gautumėte daugiau informacijos. |
abstract void setPrintable (spausdinamas tapytojas) | Šis metodas nustato Dailininkas objektas, dėl kurio puslapiai bus spausdinami. A Dailininkas objektas yra objektas, įgyvendinantis Spausdinti klasė ir jos spausdinti () metodas. |
abstract void setPrintable (spausdinamas tapytojas, „PageFormat“ formatas) | Šis metodas atlieka tas pačias užduotis kaip ir abstract void setPrintable (spausdinamas tapytojas) , išskyrus tai, kad jūs tiekiate „PageFormat“ kad Dailininkas naudos. Kaip nurodyta programos apibrėžime Spausdinti sąsaja, spausdinti () metodas praeina a „PageFormat“ objektas kaip pirmasis parametras. |
abstraktus tuščias spausdinimas () | Šis metodas spausdina dokumentą. Tai iš tikrųjų vadina spausdinti () metodas Dailininkas anksčiau priskirtas šiai spausdinimo užduočiai. |
abstraktus negaliojantis setJobName (String jobName) | Šis metodas nustato spausdinimo užduoties pavadinimą. |
abstraktus loginis spausdinimasDialog () | Šis metodas rodo spausdinimo dialogo langą, kuris leidžia vartotojui pakeisti spausdinimo parametrus. Atminkite, kad šios sąveikos rezultatas nebus grąžintas į jūsų programą. Vietoj to jis bus perduotas bendraamžių operacinei sistemai. |
santrauka „PageFormat“ „validatePage“ („PageFormat“ puslapis) | Šis metodas patvirtins „PageFormat“ perduodamas parametrais. Jei spausdintuvas negali naudoti „PageFormat“ kurį pateikėte, tada bus grąžinta nauja, atitinkanti spausdintuvą. |
Knygos klasė
Septyni metodai sudaro Knyga
klasė:
>
Metodo pavadinimas | apibūdinimas |
void append (spausdinamas tapytojas, „PageFormat“ puslapis) | Šis metodas prideda puslapį prie Knyga . dailininkas ir „PageFormat“ tam puslapiui perduodami parametrais. |
void append (spausdinamas tapytojas, „PageFormat“ puslapis, int numPages) | Šis metodas atlieka tas pačias užduotis kaip ir void append (spausdinamas tapytojas, „PageFormat“ puslapis) , išskyrus tai, kad nurodote puslapių skaičių. |
int getNumberOfPages () | Šis metodas pateikia puslapių, esančių šiuo metu, skaičių Knyga . |
„PageFormat“ getPageFormat (int pageIndex) | Šis metodas pateikia „PageFormat“ duoto puslapio objektas. |
„PrintPrintable“ (int pageIndex) | Šis metodas pateikia dailininkas nurodytam puslapiui. |
void setPage (int pageIndex, spausdintuvas, PageFormat puslapis) | Šis metodas nustato dailininkas ir „PageFormat“ tam tikram knygos puslapiui. |
Spausdinimo receptas
Spausdinimo receptas yra labai paprastas. Pirmiausia sukurkite a „PrinterJob“
objektas:
PrinterJob printJob = PrinterJob.getPrinterJob ();
Tada naudokite setPrintable ()
metodas „PrinterJob“
, priskirkite Dailininkas
prieštarauti „PrinterJob“
. Atkreipkite dėmesį, kad a Dailininkas
objektas yra tas, kuris įgyvendina Spausdinti
sąsaja.
printJob.setPrintable (Tapytojas);
Arba galite nustatyti „PageFormat“
kartu su Dailininkas
:
printJob.setPrintable (Tapytojas, pageFormat);
Galiausiai Dailininkas
objektas turi įgyvendinti spausdinti ()
metodas:
public int print („Graphics g“, „PageFormat pageFormat“, „int“ puslapis)
Pirmasis parametras yra grafinė rankena, kurią naudosite pateikdami puslapį puslapisFormatas
yra formatas, kuris bus naudojamas dabartiniam puslapiui, o paskutinis parametras yra puslapio numeris, kurį reikia pateikti.
Tai viskas, ko reikia - tai yra paprastas spausdinimas.
Įvadas į sistemą
Spausdinimo sistema, kurią sukursime šioje serijoje, bus visiškai nepriklausoma nuo „Java“ spausdinimo API. Tai leis suteikti daugiau lankstumo gaminant skirtingus rezultatus.Jo struktūra leis jums kurti dokumentus, puslapius ir spausdinti objektus. Spausdinimo objektus galėsite pridėti prie puslapio, pridėdami puslapius prie dokumento. Naudodami šią struktūrą galėsite lengvai įdiegti eksporto funkcijas į PDF arba HTML failus arba atsispausdinti tiesiai į spausdintuvą naudodami spausdinimo API. Tačiau pagrindinis sistemos tikslas yra supaprastinti spausdintų dokumentų kūrimą. Kai spausdinate naudodamiesi spausdinimo API, jūs gausite tik grafinę drobę, kuria galėsite piešti. Nepavyksta nagrinėti pastraipų, vaizdų, brėžinių, grafikos, lentelių ar einančių antraščių ir poraščių sąvokų. Kadangi turite apskaičiuoti (x, y) kilmę, spausdintinos srities plotį ir aukštį, paraštių nustatymas yra nemalonus darbas. Mūsų spausdinimo sistema pašalins visas šias silpnybes.
Išvada
Šioje pirmojoje dalyje apėmėme daug žemės. Mes apžvelgėme matavimo vienetus, puslapio struktūrą, du atvaizdavimo modelius (Puslapiu
ir Spausdinti
) ir Knygos
, ir mes padarėme išsamų spausdinimo API paaiškinimą. Kitą mėnesį daugiausia dėmesio skirsime kodui, nes viską įgyvendinsime praktiškai. Taip pat panagrinėsime problemas, kylančias spausdinant ant kelių platformų. Žvelgdamas į 3 dalį, aš išsamiai paaiškinsiu sistemos projektą ir įgyvendinimą.
Sužinokite daugiau apie šią temą
- „Spausdinimas Java kalba“, Jeanas-Pierre'as Dubé („JavaWorld“)
- 1 dalis. Susipažinkite su „Java“ spausdinimo modeliu (2000 m. Spalio 20 d.)
- 2 dalis. Pirmojo puslapio spausdinimas ir sudėtingų dokumentų pateikimas (2000 m. Gruodžio 1 d.)
- 3 dalis: Jeanas-Pierre'as Dubé'as pristato spausdinimo sistemą, veikiančią ant „Java Print API“ (2001 m. Sausio 5 d.)
- 4 dalis: koduokite spausdinimo struktūrą
- (2001 m. Vasario 2 d.)
- 5 dalis. Atraskite spausdinimo sistemos palaikymo klases
- (2001 m. Kovo 2 d.)
- Rasite daugybę knygų, apimančių „Java AWT“, tačiau nė viena neapims šios temos šios knygos mastu. Jei rašote GUI, šalia savo kompiuterio turite turėti šią knygą: Grafinė „Java 2“, JFCAWT įvaldymas, 1 tomas, Davidas M. Geary („Prentice Hall“, 1998)
//www.amazon.com/exec/obidos/ASIN/0130796662/javaworld
- Ši knyga buvo naudinga pasirodžius „Java 1.1“ ir pirmoji kalbėjo apie spausdinimą „Java“: Pereinama iš „Java 1.0“ į „Java 1.1“, Daniel I. Joshi ir Pavel A. Vorobiev („Ventana Communications Group“, 1997)
//www.amazon.com/exec/obidos/ASIN/1566046866/javaworld
- Turbūt geriausia „Java 2D“ knyga, ši knyga aprėpia visus 2D API aspektus ir pateikia
Grafika
pažangių 2D kompozicijų karkasas: „Java 2D“ API grafika, Vincentas J. Hardy („Prentice Hall“, 1999)//www.amazon.com/exec/obidos/ASIN/0130142662/javaworld
- Puikus įvadas į „Java 2D“ API „Pradžia nuo„ Java 2D ““, Bill Day („JavaWorld“, 1998 m. Liepos mėn.)
//www.javaworld.com/javaworld/jw-07-1998/jw-07-media.html
Šią istoriją „Spausdinimas„ Java “, 1 dalis“ iš pradžių paskelbė „JavaWorld“.