Programmēšana

Drukāšana Java valodā, 1. daļa

Iepriekšējā 1 2 2. lapa 2. lapa no 2

Atveidošanas modeļi

Java ir divi drukas modeļi: Drukājams darbavietas un Pāriet darbavietas.

Printable

Drukājams darbs ir vienkāršāks no diviem drukas modeļiem. Šis modelis izmanto tikai vienu PagePainter par visu dokumentu. Lapas tiek renderētas secīgi, sākot ar nulles lapu. Kad pēdējā lapa tiek izdrukāta, jūsu PagePainter jāatdod NO_SUCH_PAGE vērtība. Drukas apakšsistēma vienmēr pieprasīs, lai lietojumprogramma renderētu lapas pēc kārtas. Piemēram, ja jūsu lietojumprogrammai tiek lūgts atveidot piecas līdz septiņas lappuses, drukas apakšsistēma pieprasīs visas lappuses līdz septītajai lappusei, bet drukās tikai piecas, sešas un septiņas lappuses. Ja jūsu lietojumprogrammā tiek parādīts drukāšanas dialoglodziņš, kopējais drukājamo lapu skaits netiks parādīts, jo, izmantojot šo modeli, nav iespējams iepriekš uzzināt lappušu skaitu dokumentā.

Pārskatāmas

Pāriet darba vietas piedāvā lielāku elastību nekā Drukājams darbavietas, jo katra a Pāriet darbam var būt atšķirīgs izkārtojums. Pāriet darba vietas visbiežāk tiek izmantotas Grāmatas, lapu kolekcija, kurai var būt dažādi formāti. Es paskaidrošu Grāmata klases pēc mirkļa.

A Pāriet darbam ir šādas īpašības:

  • Katrai lapai var būt savs gleznotājs. Piemēram, jums varētu būt gleznotājs, kas ieviesis vāka lapu, cits gleznotājs, lai izdrukātu satura rādītāju, un trešais, lai izdrukātu visu dokumentu.
  • Katrai grāmatas lapai varat iestatīt atšķirīgu lapas formātu. Iekšā Pāriet darbu, varat sajaukt portreta un ainavas lapas.
  • Drukas apakšsistēma var lūgt jūsu lietojumprogrammu drukāt lapas ārpus secības, un vajadzības gadījumā dažas lapas var tikt izlaistas. Atkal jums par to nav jāuztraucas, kamēr pēc pieprasījuma varat piegādāt jebkuru sava dokumenta lapu.
  • The Pāriet darbam nav jāzina, cik lappušu ir dokumentā.

Grāmatas

Arī jauns, jo 1.2 versija ir Grāmata klasē. Šī klase ļauj jums izveidot vairāku lapu dokumentus. Katrai lapai var būt savs formāts un savs gleznotājs, dodot jums iespēju izveidot sarežģītus dokumentus. Kopš Grāmata klase īsteno Pāriet interfeisu, jūs varētu ieviest savu Grāmata klasē, kad paredzēts Grāmata klasē trūkst nepieciešamo funkciju.

A Grāmata klase apzīmē lapu kolekciju. Pirmo reizi izveidojot, Grāmata objekts ir tukšs. Lai pievienotu lapas, jums vienkārši jāizmanto viens no abiem pievienot () metodes (lai iegūtu sīkāku informāciju, skatiet manu šīs klases skaidrojumu API sadaļā). Šīs metodes parametri ir PageFormat objekts, kas nosaka lapas fiziskās īpašības, un a PagePainter objekts, kas īsteno Drukājams interfeiss. Ja nezināt lappušu skaitu savā dokumentā, vienkārši nododiet UNKNOWN_NUMBER_OF_PAGES vērtība pievienot () metodi. Printera sistēma automātiski atradīs lappušu skaitu, piezvanot visiem grāmatas gleznotājiem, līdz tā saņem a NO_SUCH_PAGE vērtība.

API definīcija

Šajā sadaļā tiksies teorija un prakse. Iepriekšējās sadaļās mēs uzzinājām par lapu struktūru, mērvienībām un atveidošanas modeļiem. Šajā sadaļā mēs aplūkosim Java drukāšanas API.

Visas klases, kas nepieciešamas drukāšanai, atrodas java.awt.print pakete, kas sastāv no trim saskarnēm un četrām klasēm. Šīs tabulas nosaka drukas pakotnes klases un saskarnes.

NosaukumsTipsApraksts
PapīrsKlaseŠī klase nosaka lapas fiziskās īpašības.
PageFormatKlasePageFormat nosaka lapas lielumu un orientāciju. Tas arī nosaka, kurš Papīrs izmantot renderējot lapu.
PrinterisDarbsKlase

Šī klase pārvalda drukas darbu. Tās pienākumos ietilpst drukas darba izveidošana, drukāšanas dialoglodziņa parādīšana, ja nepieciešams, un dokumenta drukāšana.

GrāmataKlase

Grāmata pārstāv dokumentu. A Grāmata objekts darbojas kā lapu kolekcija. Lapas, kas iekļautas Grāmata var būt vienādi vai atšķirīgi formāti un var izmantot dažādus gleznotājus.

PārietSaskarneA Pāriet ieviešana apzīmē drukājamo lapu kopu. The Pāriet objekts atgriež kopas kopējo lapu skaitu, kā arī PageFormat un Drukājams norādītajai lapai. The Grāmata klase ievieš šo saskarni.
DrukājamsSaskarneLapu gleznotājam ir jāievieš Drukājams interfeiss. Šajā saskarnē ir tikai viena metode, izdrukāt ().
PrinterGrafikaSaskarneThe Grafika objekts ievieš šo saskarni. PrinterGrafika nodrošina getPrinterJob () metode, lai iegūtu printera darbu, kas saīsināja drukas procesu.

Lapošanas saskarne

The Pāriet interfeiss ietver trīs metodes:

Metodes nosaukumsApraksts
int getNumberOfPages ()Atgriež dokumenta lappušu skaitu.
PageFormat getPageFormat (int pageIndex)Atgriež lapas PageFormat kā norādījis pageIndex.
Printable getPrintable (int pageIndex)Atgriež Drukājams instances, kas atbildīga par. lapas norādīšanu pageIndex.

Drukājama saskarne

The Drukājams saskarnē ir viena metode un divas vērtības:

NosaukumsTipsApraksts
int druka (grafikas grafika, PageFormat pageFormat, int pageIndex)Metode

Pieprasa, lai grafikas apstrāde, izmantojot norādīto lapas formātu, renderētu norādīto lapu.

NO_SUCH_PAGEVērtībaTas ir nemainīgs. Atgriežot šo vērtību, norādiet, ka vairs nav drukājamu lapu.
PAGE_EXISTSVērtībaThe izdrukāt () metode atgriež PAGE_EXISTS. Tas norāda, ka lapa tika nodota kā parametrs izdrukāt () ir atveidots un pastāv.

Katram lapas gleznotājam ir jāievieš Drukājams interfeiss. Tā kā ieviest ir tikai viena metode, lapu gleznotāju izveide var šķist viegli. Tomēr atcerieties, ka ar jūsu kodu jāspēj atveidot jebkuru lapu secībā vai ārpus tās.

Ir trīs parametri izdrukāt (), ieskaitot Grafika, kas ir tā pati klase, kuru izmantoja, lai zīmētu uz ekrāna. Kopš Grafika klase īsteno PrinterisGrafisks interfeisu, varat iegūt PrinterisDarbs kas šo drukas darbu padarīja aktuālāku. Ja jūsu lapas izkārtojums ir sarežģīts un tam ir nepieciešamas dažas uzlabotas zīmēšanas funkcijas, varat to apraidīt Grafika parametrs a Grafika2D objekts. Pēc tam jums būs piekļuve pilnai Java 2D API.

Pirms sākat lietot Grafika objektu, ņemiet vērā, ka koordinātas netiek tulkotas izdrukājamās zonas augšējā kreisajā stūrī. Skatiet 3. attēlu, lai atrastu noklusējuma izcelsmes vietu.

(0, 0) parādās printera piemales augšējā kreisajā stūrī. Lai drukātu 1 x 1 collu taisnstūri, 1 collu gan no augšējās, gan kreisās malas, izmantojiet šādu kodu:

1: public int print (grafikas grafika, PageFormat pageFormat, int pageIndex) {2: Graphics2D graphics2D = (Graphics2D) grafika; 3: taisnstūris2D. Dubultstaisnstūris = jauns taisnstūris2D. Divkāršs (); 4: taisnstūris.setRect (pageFormat.getImageableX () + 72, 5: pageFormat.getImageableY () + 72, 6: 72, 7: 72); 8: graphics2D.draw (taisnstūris); 9: atgriešanās (PAGE_EXISTS); }

No iepriekšējā piemēra mēs redzam, ka mums ir manuāli jātulko taisnstūra izcelsme, lai tas tiktu izdrukāts drukājamā apgabala augšdaļā, kā parādīts 1. attēlā. Lai vienkāršotu kodu, mēs varētu vienreiz tulkot koordinātas un izmantot ) kā drukas laukuma izcelsmi. Pārveidojot iepriekšējo piemēru, mēs iegūstam:

1: public int print (grafikas grafika, PageFormat pageFormat, int pageIndex) {2: Graphics2D graphics2D = (Graphics2D) grafika; 3: graphics2D.translate (pageFormat.getImageableX (), pageFormat.getImageableY ()); 4: taisnstūris2D. Dubultā taisnstūris = jauns taisnstūris2D. Divkāršs (); 5: taisnstūris.setRect (72, 72, 72, 72); 6: graphics2D.draw (taisnstūris); 7: atgriešanās (PAGE_EXISTS); 8:}

Izmantojot tulkot () metodi 3. rindā, mēs varam tulkot koordinātas un iestatīt mūsu izcelsmi (0, 0) izdrukājamā apgabala augšpusē. No šī brīža mūsu kods tiks vienkāršots.

PrinterGraphics saskarne

The PrinterGrafika saskarne sastāv no vienas metodes:

Metodes nosaukumsApraksts
PrinterJob getPrinterJob ()Atgriež PrinterisDarbs šim renderēšanas pieprasījumam, un to īsteno Grafika klasē

Papīra klase

Astoņas metodes veido Papīrs klase:

Metodes nosaukumsApraksts
dubultā getHeight ()Šī metode atgriež lapas fizisko augstumu punktos (1 colla = 72 punkti). Piemēram, ja drukājat uz burta lieluma lapu, atgriešanās vērtība būs 792 punkti jeb 11 collas.
dubultā getImageableHeight ()Šī metode atgriež lapas iedomājamo augstumu. Iedomājamais augstums ir drukas laukuma augstums, uz kura jūs varat uzzīmēt. Iedomājamā laukuma grafisko skatu skatiet 1. attēlā.
dubultā getImageableWidth ()Šī metode atgriež lapas iedomājamo platumu (drukas laukuma platumu, uz kuru varat uzzīmēt). Iedomājamā laukuma grafisko skatu skatiet 1. attēlā.
dubultā getImageableX ()Šī metode atgriež iztēlojamā apgabala x izcelsmi. Tā kā piemales netiek atbalstītas, atgriešanās vērtība apzīmē kreiso rezervi.
dubultā getImageableY ()Šī metode atgriež iedomājamā apgabala y izcelsmi. No šīs metodes atgrieztā vērtība ir ekvivalenta augšējai robežai.
dubultā getWidth ()Šī metode atgriež lapas fizisko platumu punktos. Ja drukājat uz burta izmēra papīra, platums ir 8,5 collas jeb 612 punkti.
void setImageableArea (dubultā x, dubultā y, dubultā platumā, dubultā augstumā)Šī metode nosaka iedomājamo laukumu un norāda malas lapā. Patiesībā API nenodrošina metodi, kā skaidri iestatīt rezerves; jums tie jāaprēķina pašiem.
void setSize (dubultā platumā, dubultā augstumā)Šī metode nosaka fizisko lapas lielumu. Lai definētu 8,5x11 collu lapu, jums jānodrošina 612 un 792 punkti. Ņemiet vērā, ka noklusējuma izmērs ir VĒSTULE.

Pirms pārejam uz nākamo sadaļu, atcerieties, ka Papīrs klasē definē lapas fiziskās īpašības. The PageFormat klasē pārstāv visas lapas īpašības, piemēram, lapas orientācija, izmērs un papīra veids. Šī klase vienmēr tiek nodota kā parametrs Drukājams saskarnes izdrukāt () metodi. Izmantot Papīrs lai iegūtu iztēlojamā apgabala atrašanās vietu, izmēru un lapas orientāciju kopā ar transformācijas matricu.

PageFormat klase

The PageFormat sastāv no 12 metodēm:

Metodes nosaukumsApraksts
dubultā getHeight ()Šī metode atgriež lapas fizisko augstumu punktos (1 colla = 72 punkti). Ja jūsu lapas izmērs ir 8,5 x 11 collas, atgriešanās vērtība būs 792 punkti jeb 11 collas.
dubultā getImageableHeight ()Šī metode atgriež lapas iedomājamo augstumu, kas ir drukas laukuma augstums, uz kura jūs varat uzzīmēt. Iedomājamā laukuma grafisko skatu skatiet 1. attēlā.
dubultā getImageableWidth ()Šī metode atgriež lapas iedomājamo platumu - drukas laukuma platumu, uz kura varat uzzīmēt. 1. attēlā parādīts iedomājamā laukuma grafiskais skats.
dubultā getImageableX ()Šī metode atgriež iztēlojamā apgabala x izcelsmi.
dubultā getImageableY ()Šī metode atgriež iedomājamā apgabala y izcelsmi.
dubultā getWidth ()Šī metode atgriež lapas fizisko platumu punktos. Ja drukājat uz burta izmēra papīra, platums ir 8,5 collas jeb 612 punkti.
dubultā getHeight ()Šī metode atgriež lapas fizisko augstumu punktos. Piemēram, burtu formāta papīra augstums ir 11 collas jeb 792 punkti.
dubultā [] getMatrix ()Šī metode atgriež transformācijas matricu, kas pārveido lietotāja vietu pieprasītajā lapas orientācijā. Atgriešanās vērtība ir formātā, kuru pieprasa AffineTransform konstruktors.
int getOrientation ()Šī metode atgriež lapas orientāciju kā vienu vai otru PORTRETS vai AINAVA.
void setOrientation (int orientācija)Šī metode nosaka lapas orientāciju, izmantojot konstantes PORTRETS un AINAVA.
Papīrs getPaper ()Šī metode atgriež Papīrs objekts, kas saistīts ar lapas formātu. Skatiet iepriekšējo sadaļu, lai aprakstītu Papīrs klasē.
void setPaper (papīra papīrs)Šī metode nosaka Papīrs objekts, kuru izmantos PageFormat klasē. PageFormat Lai veiktu šo uzdevumu, ir jābūt piekļuvei fiziskajām lapas īpašībām.

Ar to tiek pabeigts lapu klašu apraksts. Nākamā klase, kuru mācīsimies, ir PrinterisDarbs.

PrinterJob klase

The PrinterisDarbs klase kontrolē drukāšanas procesu. Tas var gan saīsināt, gan kontrolēt drukas darbu. Zemāk jūs atradīsit klases definīciju:

Metodes nosaukumsApraksts
abstrakts anulēt atcelt ()Šī metode atceļ pašreizējo drukas darbu. Jūs varat apstiprināt atcelšanu, izmantojot isCancel () metodi.
abstraktais būla skaitlis ir atcelts ()Šī metode atgriež vērtību true, ja darbs tiek atcelts.
PageFormat defaultPage ()Šī metode atgriež noklusējuma lapas formātu PrinterisDarbs.
abstrakts PageFormat defaultPage (PageFormat lapa)Šī metode klonē PageFormat parametros un modificē klonu, lai izveidotu noklusējumu PageFormat.
abstrakts int getCopies ()Šī metode atgriež drukas darba izdrukājamo kopiju skaitu.
abstract void setCopies (int kopijas)Šī metode nosaka kopiju skaitu, ko darbs izdrukās. Ievērojiet, ka, parādot drukāšanas dialoglodziņu, lietotāji var mainīt kopiju skaitu (skatiet pageDialog metode).
abstrakta virkne getJobName ()Šī metode atgriež darba nosaukumu.
statiskais PrinterJob getPrinterJob ()Šī metode rada un atgriež jaunu PrinterisDarbs.
abstrakta virkne getUserName ()Šī metode atgriež ar drukas darbu saistīto lietotāja vārdu.
abstrakta PageFormat pageDialog (PageFormat lapa)Šī metode parāda dialoglodziņu, kas ļauj lietotājam modificēt PageFormat. The PageFormat, kas nodots parametros, iestata dialoglodziņa laukus. Ja lietotājs atceļ dialogu, tad oriģināls PageFormat tiks atgriezta. Bet, ja lietotājs pieņem parametrus, tad jaunu PageFormat tiks izveidoti un atgriezti. Tā kā tas neparādīs vienādus parametrus visās operētājsistēmās, jums jābūt uzmanīgiem, lietojot pageDialog.
abstract void setPageable (lapojams dokuments)Šī metode vaicā dokumentu, lai iegūtu kopējo lapu skaitu. The Pāriet atgriezīs arī PageFormat un Drukājams objekts katrai lapai. Skatīt definīciju Pāriet interfeiss, lai iegūtu vairāk informācijas.
abstract void setPrintable (apdrukājams gleznotājs)Šī metode nosaka Gleznotājs objekts, kas padarīs drukājamās lapas. A Gleznotājs objekts ir objekts, kas īsteno Drukājams klase un tās izdrukāt () metodi.
abstract void setPrintable (drukājams gleznotājs, formāts PageFormat)Šī metode izpilda tos pašus uzdevumus kā abstract void setPrintable (apdrukājams gleznotājs), izņemot to, ka jūs piegādājat PageFormat ka Gleznotājs izmantos. Kā norādīts programmas definīcijā Drukājams interfeiss, izdrukāt () metode iet a PageFormat objekts kā pirmais parametrs.
abstrakta tukša druka ()Šī metode izdrukā dokumentu. Tas faktiski sauc izdrukāt () metode Gleznotājs iepriekš piešķirts šim drukas darbam.
abstrakts void setJobName (virknes darba nosaukums)Šī metode nosaka drukas darba nosaukumu.
abstrakts Būla drukājumsDialog ()Šī metode parāda drukāšanas dialoglodziņu, kas ļauj lietotājam mainīt drukas parametrus. Ņemiet vērā, ka šīs mijiedarbības rezultāts netiks atgriezts jūsu programmā. Tā vietā tā tiks nodota vienaudžu operētājsistēmai.
abstrakts PageFormat validatePage (PageFormat lapa)Šī metode apstiprinās PageFormat nodots parametros. Ja printeris nevar izmantot PageFormat ko piegādājāt, tad tiks atgriezta jauna, kas atbilst printerim.

Grāmatu klase

Septiņas metodes veido Grāmata klase:

>

Metodes nosaukumsApraksts
void append (Drukājams gleznotājs, PageFormat lapa)Šī metode pievieno lapu Grāmata. The gleznotājs un PageFormat šai lapai tiek nodoti parametros.
void append (Drukājams gleznotājs, PageFormat lapa, int numPages)Šī metode izpilda tos pašus uzdevumus kā void append (Drukājams gleznotājs, PageFormat lapa), izņemot to, ka jūs norādāt lapu skaitu.
int getNumberOfPages ()Šī metode atgriež pašreizējo lapu skaitu Grāmata.
PageFormat getPageFormat (int pageIndex)Šī metode atgriež PageFormat objekts norādītajai lapai.
Printable getPrintable (int pageIndex)Šī metode atgriež gleznotājs par konkrēto lapu.
void setPage (int pageIndex, apdrukājams gleznotājs, PageFormat lapa)Šī metode nosaka gleznotājs un PageFormat par konkrētu lapu, kas jau ir grāmatā.

Drukas recepte

Recepte drukāšanai ir ļoti vienkārša. Vispirms izveidojiet a PrinterisDarbs objekts:

PrinterJob printJob = PrinterJob.getPrinterJob ();

Tālāk, izmantojot setPrintable () metode PrinterisDarbs, piešķiriet Gleznotājs iebilst pret PrinterisDarbs. Ņemiet vērā, ka a Gleznotājs objekts ir tāds, kas īsteno Drukājams interfeiss.

printJob.setPrintable (gleznotājs);

Vai arī jūs varētu iestatīt PageFormat kopā ar Gleznotājs :

printJob.setPrintable (Painter, pageFormat);

Visbeidzot Gleznotājs objektam ir jāievieš izdrukāt () metode:

public int print (Grafika g, PageFormat pageFormat, int lapa)

Pirmais parametrs ir grafiskais rokturis, kuru izmantosit lapas renderēšanai pageFormat ir formāts, kas tiks izmantots pašreizējai lappusei, un pēdējais parametrs ir lappuses numurs, kas jāatveido.

Tas viss ir - vienkāršai drukāšanai, tas ir.

Ievads sistēmā

Drukas ietvars, ko mēs izveidosim šajā sērijā, būs pilnīgi neatkarīgs no Java drukāšanas API. Tas ļaus lielāku elastību dažādu rezultātu ražošanā.Tās struktūra ļaus jums izveidot dokumentus, lapas un drukāt objektus. Jūs drīkstat pievienot drukas objektus lapai, vienlaikus pievienojot lapas dokumentam. Izmantojot šo struktūru, jūs varēsiet ērti ieviest eksportēšanas funkcijas uz PDF vai HTML failiem vai drukāt tieši uz printeri, izmantojot drukas API. Bet ietvara galvenais mērķis ir vienkāršot drukātu dokumentu izveidi. Drukājot, izmantojot drukas API, jūs iegūstat tikai grafisku audeklu, uz kura var zīmēt. Tas nespēj pievērsties rindkopu, attēlu, zīmējumu, grafiku, tabulu vai skriešanas galvenes un kājenes jēdzieniem. Tā kā jums jāaprēķina (x, y) izcelsme, izdrukājamā laukuma platums un augstums, piemales iestatīšana ir sarežģīts darbs. Mūsu drukas ietvars novērsīs visus šos trūkumus.

Secinājums

Šajā pirmajā daļā mēs daudz pārklājām. Mēs apskatījām mērvienības, lapas struktūru, divus renderēšanas modeļus (Pāriet un Drukājams), un Grāmatas, un mēs secinājām ar detalizētu skaidrojumu par drukāšanas API. Nākamajā mēnesī mēs galvenokārt pievērsīsimies kodam, jo ​​visu īstenosim praksē. Mēs izskatīsim arī problēmas, kas rodas, drukājot uz vairākām platformām. Skatoties 3. daļu, es detalizēti paskaidrošu ietvara dizainu un ieviešanu.

Žans Pjērs Dobē ir neatkarīgs Java konsultants. Viņš dibināja Infocom 1988. gadā. Kopš tā laika Infocom ir izstrādājis pielāgotas lietojumprogrammas tādās jomās kā ražošana, dokumentu pārvaldība un liela mēroga elektropārvades līniju pārvaldība. Žanam Pjēram ir liela programmēšanas pieredze programmās C, Visual Basic un Java; pēdējā ir visu jauno projektu galvenā valoda. Viņš velta šo sēriju savai mātei, kura aizgāja mūžībā, kamēr viņš rakstīja šo rakstu.

Uzziniet vairāk par šo tēmu

  • "Druka Java valodā", Žans Pjērs Dubē (JavaWorld)
  • 1. daļa: Iepazīstieties ar Java drukāšanas modeli (2000. gada 20. oktobris)
  • 2. daļa: Izdrukājiet savu pirmo lapu un atveidojiet sarežģītus dokumentus (2000. gada 1. decembris)
  • 3. daļa: Žans Pjērs Dubē iepazīstina ar drukas sistēmu, kas darbojas virs Java Print API (2001. gada 5. janvāris)
  • 4. daļa: kodējiet drukas sistēmu
  • (2001. gada 2. februāris)
  • 5. daļa: Atklājiet drukas ietvara atbalsta klases
  • (2001. gada 2. marts)
  • Jūs atradīsit daudz grāmatu, kas aptver Java AWT, taču neviena neaptvers šo tēmu šīs grāmatas apjomā. Ja rakstāt GUI, datoram jābūt blakus šai grāmatai: Grafiskā Java 2, JFCAWT apgūšana, 1. sējums, Deivids M. Gērijs (Prentice Hall, 1998)

    //www.amazon.com/exec/obidos/ASIN/0130796662/javaworld

  • Šī grāmata bija noderīga, kad iznāca Java 1.1, un tā bija pirmā, kas runāja par drukāšanu Java: Migrēšana no Java 1.0 uz Java 1.1, Daniels I. Joshi un Pāvels A. Vorobjevs (Ventana Communications Group, 1997)

    //www.amazon.com/exec/obidos/ASIN/1566046866/javaworld

  • Iespējams, ka tā ir labākā Java 2D grāmata, šī grāmata aptver visus 2D API aspektus un nodrošina arī Grafika ietvars uzlabotām 2D kompozīcijām: Java 2D API grafika, Vinsents Dž. Hārdijs (Prentice Hall, 1999)

    //www.amazon.com/exec/obidos/ASIN/0130142662/javaworld

  • Lielisks ievads Java 2D API "Getting Started with Java 2D", Bill Day (JavaWorld, 1998. gada jūlijs)

    //www.javaworld.com/javaworld/jw-07-1998/jw-07-media.html

Šo stāstu "Drukāšana Java, 1. daļa" sākotnēji publicēja JavaWorld.

$config[zx-auto] not found$config[zx-overlay] not found