IBM Korea Skip to main content
       IBM Ȩ    |  Á¦Ç° & ¼­ºñ½º  |  °í°´Áö¿ø & ´Ù¿î·Îµå  |  È¸¿ø°¡ÀÔ  

Magic with Merlin: JDK 1.4ÀÇ ÇÁ¸°Æà (printing), Part 1
¸ñ Â÷:
ÇÁ¸°ÅÍ Ã£±â
Ãâ·Â Æ÷¸Ë ÁöÁ¤Çϱâ
Àμ⠼Ӽº ÁöÁ¤Çϱâ
³»¿ë ¼³Á¤Çϱâ
ÀμâÇϱâ
Àμ⠼³Á¤ È­¸é
½ÇÇà ¿¹Á¦
Âü°í ÀÚ·á
ÇÊÀÚ ¼Ò°³
±â»ç¿¡ ´ëÇÑ Æò°¡
°ü·Ã dW ¸µÅ©:
¼³°è ÆÐÅÏ °³·Ð
Magic with Merlin
US ¿ø¹® Àбâ
»õ·Î¿î Java Print Service API

John Zukowski
ȍˌ, JZ Ventures, Inc.
2002³â 3¿ù

1.1 ÀÌÈÄ ¸ðµç »õ·Î¿î ÀÚ¹Ù Ç÷§Æû Ãâ½ÃÆÇÀº Ç÷§ÆûÀÇ Àμâ Áö¿ø ÇÁ·¹ÀÓ¿öÅ©¿¡ º¯È­¸¦ °¡Á®¿Ô´ø °Íó·³ º¸ÀδÙ. Merlinµµ ¿¹¿Ü´Â ¾Æ´Ï´Ù. À̹ø ´ÞÀÇ Magic with Merlin ¿¡¼­ John Zukowski´Â ÃֽŠÀμ⠱â´É¿¡ °üÇÑ 2ȸ¿¡ °ÉÄ£ ³íÀǸ¦ ½ÃÀÛÇÑ´Ù.

¿©·¯ºÐÀÌ ÀÏÁ¤ ±â°£ µ¿¾È ÀÚ¹Ù Ç÷§ÆûÀ¸·Î ÀÛ¾÷ÇØ ¿Ô´Ù¸é ¿©·¯ºÐÀº ¾Æ¸¶ ³ªÃ³·³ Àμâ API°¡ ³¡¾øÀÌ °è¼Ó º¯°æµÇ´Âµ¥ È¥¶õÀ» °Þ¾úÀ» °ÍÀÌ´Ù. Merlinµµ ÀÚ¹Ù Ç÷§Æû¿¡ ¶Ç ´Ù¸¥ ¼¼Æ®ÀÇ Àμ⠱â´É°ú ±â¹ýµéÀ» °¡Á®¿Ô´Ù. Java Print Service API¶ó°í À̸§ ºÙ¿©Áø ÀÌ ÃֽŠ±â¹ýÀº 1999³âºÎÅÍ Java Community Process¿¡¼­ ÀÛ¾÷µÇ¾î ¿Ô´Ù. ´ÙÇàÈ÷µµ ÀÌ »õ API´Â ±àÁ¤ÀûÀÎ Ãß°¡¶ó ÇÒ ¼ö ÀÖ°í ´çºÐ°£ Àμâ Áö¿ø¿¡ ÀÖ¾î ¸¶Áö¸· Áß¿ä º¯È­°¡ µÉ °ÍÀÌ´Ù.

»õ·Î¿î Print Services API·Î ÀμâÇÏ·Á¸é ¹ß°ß, ÁöÁ¤, Àμâ¶ó´Â ¼¼ ºÎºÐÀ¸·Î µÈ ÇÁ·Î¼¼½º°¡ ÇÊ¿äÇÏ´Ù. ¼±ÅÃÀûÀÎ ³× ¹ø° ºÎºÐÀº Àμâ ÀÛ¾÷ÀÌ ÁøÇàµÉ ¶§ ÅëÁöÇÏ´Â °ÍÀÌ´Ù. ÀÌ ±Û¿¡¼­ ¿ì¸®°¡ ÀÛ¾÷ÇÒ ¸ðµç Ŭ·¡½º¿Í ÀÎÅÍÆäÀ̽º´Â javax.print ÆÐÅ°Áö³ª ÀÌ ÆÐÅ°ÁöÀÇ ÇÏÀ§ ÆÐÅ°Áö Áß Çϳª¿¡ µé¾î ÀÖ´Ù. (Âü°í ÀÚ·á)

ÇÁ¸°ÅÍ Ã£±â

Àμâ ÀÛ¾÷À» ¼öÇàÇϱâ À§ÇÑ Ã¹¹ø° ´Ü°è´Â ÀμâÇÒ ÇÁ¸°Åͳª ÇÁ¸°ÅÍ ¼¼Æ®¸¦ È®ÀÎÇÏ´Â °ÍÀÌ´Ù. ÇÁ¸°ÅÍ °´Ã¼´Â ÇÁ¸°Æ® ¼­ºñ½º (print services)¶ó°í ºÒ¸®¸ç, È®ÀÎ ÀýÂ÷´Â °Ë»ö (lookup)À̶ó°í ºÒ¸°´Ù. °Ë»ö ÀÛ¾÷À» À§ÇÑ Áö¿ø Ŭ·¡½º´Â PrintServiceLookup¶ó°í ÀûÀýÇÏ°Ô ºÒ¸°´Ù. ÇÁ¸°Æ® ¼­ºñ½º¸¦ °Ë»öÇÏ·Á¸é Listing 1¿¡ ³ª¿Í ÀÖ´Â ¼¼ °¡Áö ¸Þ¼Òµå Áß Çϳª¸¦ »ç¿ëÇÑ´Ù.

Listing 1. ÇÁ¸°Æ® ¼­ºñ½º °Ë»öÇϱâ



  public static final PrintService 
    lookupDefaultPrintService()
  public static final PrintService[] 
    lookupPrintServices(DocFlavor flavor, AttributeSet attributes)
  public static final MultiDocPrintService[] 
    lookupMultiDocPrintServices(DocFlavor[] flavors, 
        AttributeSet attributes)

¼¼ ¸Þ¼Òµå´Â °¢°¢ ´Ù¸¥ ÀÛ¾÷¿¡ »ç¿ëµÈ´Ù.:

  • lookupDefaultPrintService()Àº ±âº» ÇÁ¸°Æ® ¼­ºñ½º¸¦ ¹ÝȯÇÑ´Ù.

  • lookupPrintServices()Àº ƯÁ¤ ¼Ó¼ºÀ» °¡Áö°í (¾ç¸é Àμâµî) ƯÁ¤ ¹®¼­ À¯Çü (GIFµî)ÀÇ Àμ⸦ Áö¿øÇÏ´Â ÇÁ¸°ÅÍ ¼¼Æ®¸¦ ¹ÝȯÇÑ´Ù.

  • lookupMultiDocPrintServices()Àº ÇÑ ¹ø¿¡ ¿©·¯ ¹®¼­¸¦ ÀμâÇÏ´Â °ÍÀ» Áö¿øÇÑ´Ù..

¿©·¯ºÐÀÌ »ç¿ëÇÒ ÇÁ¸°Æ® ¼­ºñ½º¸¦ ãÀº ÈÄ¿¡´Â Àμâ jobÀ» »ý¼ºÇØ¾ß ÇÑ´Ù. ³ªÁß¿¡ ÀÌ job¿¡ Ãâ·ÂÀ» º¸³¾ °ÍÀÌ´Ù. °Ë»ö °á°ú ¹ÝȯµÈ PrintService´Â ÀÚ½ÅÀÇ createPrintJob() ¸Þ¼Òµå·Î jobÀ» »ý¼ºÇϴµ¥ »ç¿ëµÉ ¼ö Àִµ¥, ÀÌ´Â ´ÙÀ½°ú °°´Ù.:


  PrintService printService = 
    PrintServiceLookup.lookupDefaultPrintService();
  DocPrintJob job = printService.createPrintJob();

Ãâ·Â Æ÷¸Ë ÁöÁ¤Çϱâ

¾îµð¿¡ ÀμâÇÒÁö ÁöÁ¤ÇØ¾ß ÇÒ »Ó ¾Æ´Ï¶ó Àμ⠹®¼­ÀÇ Æ÷¸Ëµµ ÁöÁ¤ÇØ¾ß ÇÑ´Ù. DocFlavor Ŭ·¡½º (ȤÀº ÀÌ Å¬·¡½ºÀÇ ÇÏÀ§ Ŭ·¡½º)°¡ ¾µ¸ð ÀÖ´Â °÷ÀÌ ¹Ù·Î ¿©±âÀÌ´Ù. DocFlavor Ŭ·¡½º´Â ¿©·¯ºÐÀÌ ÀμâÇÒ °´Ã¼ÀÇ MIME (Multipurpose Internet Mail Extensions) À¯ÇüÀ» È®ÀÎÇϴµ¥ »ç¿ëµÈ´Ù. MIME À¯ÇüÀº ÀüÀÚ½Ä µ¥ÀÌÅÍ°¡ ¾î¶»°Ô Çؼ®µÇ¾î¾ß ÇÏ´ÂÁö¸¦ ¼³¸íÇÑ´Ù. ¿©·¯ºÐÀº ÀüÀÚ ¿ìÆíÀ̳ª ÷ºÎ¹®¼­ ÀÛ¾÷À» ÇÒ ¶§ MIME À¯ÇüÀ» ¸¸³µÀ» °ÍÀÌ´Ù. ÇÏÁö¸¸ MIME »ç¾çÀº µ¥ÀÌÅÍ Çü½ÄÀ» È®ÀÎÇϱâ À§ÇÑ º¸´Ù ÀϹÝÀûÀÎ ¸ñÀûÀÇ ¸ÞÄ¿´ÏÁòÀ» ±â¼úÇÏ°í ÀÖ´Ù.

MerlinÀº Æ÷¸ËÀ» Á¤ÀÇÇϱâ À§ÇØ 7°³ÀÇ DocFlavor ÇÏÀ§ Ŭ·¡½º¸¦ ÀÚ½ÅÀÇ ³»ºÎ Ŭ·¡½º·Î Á¦°øÇÑ´Ù. ÀÌ Å¬·¡½ºµéÀº ¼¼ °³ÀÇ MIME ÇÏÀ§ À¯ÇüÀ¸·Î ³ª´©¾îÁø´Ù.: ¹ÙÀÌÆ® ÁöÇâÇü, ¹®ÀÚ ÁöÇâÇü ¹× ¼­ºñ½º ÁöÇâÇüÀÌ ±×°ÍÀÌ´Ù. ¹ÙÀÌÆ® ÁöÇâÇü ¿É¼ÇµéÀº ´ÙÀ½°ú °°´Ù. :

  • BYTE_ARRAY
  • INPUT_STREAM
  • URL

¹®ÀÚ ÁöÇâÇü ¿É¼ÇÀº ´ÙÀ½°ú °°´Ù.:

  • CHAR_ARRAY
  • READER
  • STRING

¼­ºñ½º ÁöÇâÇü ³»ºÎ Ŭ·¡½º´Â SERVICE_FORMATTEDÀÌ´Ù.

³»ºÎ Ŭ·¡½º ³»ÀÇ ³»ºÎ Ŭ·¡½º

°¢ ¿É¼Ç À¯ÇüÀº ÀÚüÀûÀÎ MIME À¯Çü ¼¼Æ®¸¦ Áö¿øÇÑ´Ù. ÀÌ MIME À¯ÇüµéÀÌ ´Ù½Ã Çѹø ³»ºÎ Ŭ·¡½º·Î Á¤ÀǵȴÙ. ´ÙÀ½°ú °°ÀÌ 19°³ÀÇ ¹ÙÀÌÆ® ÁöÇâÇü ¿É¼ÇÀÌ ÀÖ´Ù. :

  • AUTOSENSE
  • GIF
  • JPEG
  • PCL
  • PDF
  • PNG
  • POSTSCRIPT
  • TEXT_HTML_HOST
  • TEXT_HTML_US_ASCII
  • TEXT_HTML_UTF_16
  • TEXT_HTML_UTF_16BE
  • TEXT_HTML_UTF_16LE
  • TEXT_HTML_UTF_8
  • TEXT_PLAIN_HOST
  • TEXT_PLAIN_US_ASCII
  • TEXT_PLAIN_UTF_16
  • TEXT_PLAIN_UTF_16BE
  • TEXT_PLAIN_UTF_16LE
  • TEXT_PLAIN_UTF_8

¹®ÀÚ ÁöÇâÇü ½ºÆ®¸²Àº º¸´Ù Æò¹üÇÏ¿©, ´ÙÀ½ µÎ Æ÷¸Ë¸¸À» Á¦°øÇÑ´Ù.:

  • TEXT_HTML
  • TEXT_PLAIN

¼­ºñ½º Á᫐ ½ºÆ®¸²Àº ¼¼ °³ÀÇ Æ÷¸äÀ» Æ÷ÇÔÇÑ´Ù. :

  • PAGEABLE
  • PRINTABLE
  • RENDERABLE_IMAGE

¿©·¯ºÐÀº ¿É¼ÇÀ» ´ÙÀ½°ú °°ÀÌ ±¸¼ºÇÑ´Ù. (ÀÌ ¿¹¿¡¼­´Â PNG À̹ÌÁö·Î) :


DocFlavor flavor = DocFlavor.INPUT_STREAM.PNG;

Àμ⠼Ӽº ÁöÁ¤Çϱâ

ÀμâÇÒ ¶§ ¿©·¯ºÐÀº ¹®¼­¸¦ ¾î¶»°Ô ÀμâÇϱ⠿øÇÏ´ÂÁö¸¦ ±â¼úÇÏ´Â ¼Ó¼ºÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. ¼Ó¼ºÀÇ ¿¹·Î´Â Àμ⠸żö, ÀμâÇÒ ÆäÀÌÁö ¹× ¹®¼­ À̹ÌÁö À¯Çü (¿¹ : °¡·Î ´ë ¼¼·Î)µîÀÌ ÀÖ´Ù. ¼Ó¼ºÀ» ÁöÁ¤ÇÏ·Á¸é ´ÙÀ½ µÎ Ŭ·¡½º Áß Çϳª¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù.:

  • DocAttributeSet ÇÑ ¹®¼­ÀÇ Æ¯¼ºÀ» ÁöÁ¤ÇÑ´Ù.
  • PrintRequestAttributeSet ÇÑ Àμâ ÀÛ¾÷ÀÇ Æ¯¼ºÀ» ÁöÁ¤ÇÑ´Ù.

Àμ⸦ ¼öÇàÇϱâ À§ÇØ ¼Ó¼ºÀ» ÁöÁ¤ÇÏ·Á¸é ¸ÕÀú ÀûÀýÇÑ ¼¼Æ®ÀÇ ÀνºÅϽº¸¦ »ý¼ºÇÏ°í (DocAttributeSet or PrintRequestAttributeSet), ±× ´ÙÀ½ ¿©·¯ºÐÀÇ Àμ⸦ ¼öÇàÇϱâ À§ÇØ ¿øÇÏ´Â ¼Ó¼ºÀ» ±× ÀνºÅϽº¿¡ ä¿î´Ù. ¿©·¯ºÐÀÌ ÁöÁ¤ÇÏÁö ¾ÊÀº ¼Ó¼ºµéÀº ÀûÀýÇÑ ±âº»°ªÀ¸·Î ±¸¼ºµÉ °ÍÀÌ´Ù. javax.print.attribute ÆÐÅ°Áö´Â ¾à 70°³ÀÇ ¼­·Î ´Ù¸¥ ¼Ó¼ºÀ» °¡Áö°í Àִµ¥, °¢°¢Àº º°°³ÀÇ Å¬·¡½º·Î Á¤ÀǵȴÙ. °¢ ¼Ó¼ºÀº ÇÑ °³, ȤÀº ±× ÀÌ»óÀÇ ¼Ó¼º ¼¼Æ®¿Í ÇÔ²² ÀÛµ¿µÈ´Ù. ÀÌ ±Û¿¡¼­ ¼³¸íÇÑ µÎ ¼Ó¼º ¼¼Æ® ¿Ü¿¡ Á¤º¸ Á¶È¸¸¦ À§ÇØ ¶Ç ´Ù¸¥ µÎ °³ÀÇ ¼¼Æ®¸¦ ÀÌ¿ëÇÒ ¼öµµ ÀÖ´Ù. javax.print.attribute ÆÐÅ°Áö¿¡¼­ ¸ðµç À¯ÇüµéÀ» ã¾Æº¼ ¼ö ÀÖ´Ù.

´ÙÀ½Àº PrintRequestAttributeSet¸¦ »ç¿ëÇÏ°í ±× °´Ã¼¸¦ 5ºÎ ÀμâÇÏ´Â ÇÁ¸°Æ® ½ÇÇàÀÌ´Ù.:


  PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
  pras.add(new Copies(5));

»ç¿ë °¡´ÉÇÑ ¸ðµç ¼Ó¼ºÀÇ ¸ñ·ÏÀº javax.print.attribute ÆÐÅ°Áö¸¦ º¸¾Æ¾ß ÇÑ´Ù.

³»¿ë ¼³Á¤Çϱâ

Doc ÀÎÅÍÆäÀ̽º´Â Àμâ job¿¡ µ¥ÀÌÅ͸¦ Á¦°øÇÑ´Ù. ÀÎÅÍÆäÀ̽ºÀÇ ±¸ÇöÀÚ´Â SimpleDoc Ŭ·¡½ºÀÌ´Ù. ´Ü ÇϳªÀÇ »ý¼ºÀÚ°¡ »ç¿ëµÇ¸ç, ¿©·¯ºÐÀº Àμ⠳»¿ëÀ» ù¹ø° ¸Å°³º¯¼ö·Î, ¿É¼ÇÀ» µÎ ¹ø° ¸Å°³º¯¼ö·Î, ¼Ó¼ºÀ» ¼¼ ¹ø° ¸Å°³º¯¼ö·Î Á¦°øÇÑ´Ù. »ý¼ºÀÚ´Â ´ÙÀ½°ú °°´Ù.:


public SimpleDoc(Object printData, DocFlavor flavor, 
  DocAttributeSet attributes)

±×·¯¸é µ¥ÀÌÅÍ ¹®Á¦°¡ ³²´Â´Ù. ±× ´äÀº DocFlavor¿¡ ´Þ·Á ÀÖ´Ù. ¿©·¯ºÐÀÌ DocFlavor.INPUT_STREAMÀÇ ¿É¼ÇÀ» ÁöÁ¤ÇÏ¸é µ¥ÀÌÅÍ´Â ±× InputStream¿¡ ÀÇÇØ È®À뵃 °ÍÀÌ´Ù. ¿©·¯ºÐÀÌ DocFlavor.BYTE_ARRAY¸¦ ÁöÁ¤Çß´Ù¸é µ¥ÀÌÅÍ´Â ÇϳªÀÇ ¹ÙÀÌÆ® ¹è¿­ (byte [ ])ÀÌ µÉ °ÍÀÌ´Ù.

µû¶ó¼­ PNG À̹ÌÁö ÆÄÀÏÀ» ÀμâÇÏ·Á¸é Listing 2¿¡ ³ª¿Í ÀÖ´Â ±¸¹®À» »ç¿ëÇÑ´Ù.

Listing 2. ³»¿ë ¼³Á¤Çϱâ


  DocFlavor flavor = DocFlavor.INPUT_STREAM.PNG;
  String filename = ...;
  FileInputStream fis = new FileInputSteam(filename);
  DocAttributeSet das = new HashDocAttributeSet();
  Doc doc = new SimpleDoc(fis, flavor, das);

ÀμâÇϱâ
ÀÏ´Ü ¿©·¯ºÐÀÌ ÇÁ¸°Å͸¦ È®ÀÎÇÏ°í Ãâ·Â Æ÷¸Ë, ¼Ó¼º ¹× ³»¿ëÀ» ÁöÁ¤Çß´Ù¸é ³²°ÜÁø ÀÏÀº Àμâ»ÓÀÌ´Ù. ½ÇÁ¦ Àμâ jobÀº Listing 3°ú °°ÀÌ PrintService·ÎºÎÅÍ Á¶È¸µÇ´Â DocPrintJobÀÇ print() ¸Þ¼Òµå¸¦ ÅëÇØ ½ÇÇàµÈ´Ù.

Listing 3.Àμâ job


  DocPrintJob job = ...;
  PrintRequestAttributeSet pras = ...;
  Doc doc = ...;
  job.print(doc, pras);

print()¸¦ È£ÃâÇÏ¸é ¿©·¯ºÐÀº Àμ⠳»¿ëÀ» ´Ù¸¥ ½º·¹µå¸¦ ÅëÇÏ¿© ÇÁ¸°Æ® ¼­ºñ½º·Î º¸³»´Â ¸ÞÄ¿´ÏÁòÀ» ÀÛµ¿ÇÏ°Ô µÈ´Ù.

Àμ⠼³Á¤ È­¸é

Áö±Ý±îÁö ÁÖ¸ñÇÒ¸¸ÇÑ °ÍÀÌ Çϳª ºüÁ³´Âµ¥ ÀÌ°ÍÀº Àμ⠼³Á¤ È­¸éÀÌ´Ù. Àμ⠼³Á¤ È­¸éÀº ¿©·¯ºÐÀÌ ±×·¡ÇÈ ±â¹ÝÀ¸·Î ÇÁ¸°ÅÍ ¼Ó¼ºÀ» ±¸¼ºÇϵµ·Ï ÇØÁÖ´Â ½Ã½ºÅÛ Æ˾÷À» ¸»ÇÑ´Ù. ±×¸² 1Àº »õ·Î¿î Java Print Service API¸¦ À§ÇÑ Àμ⠼³Á¤ È­¸éÀ» º¸¿©ÁÖ°í ÀÖ´Ù.

±×¸² 1. Àμ⠼³Á¤ È­¸é
Printer dialog

Èï¹Ì·Ó°Ôµµ, Àμ⠼³Á¤ È­¸éÀÇ ±âº» ÇൿÀÌ »õ·Î¿î API¿¡¼­´Â ¹Ù²î¾ú´Ù: ¼³Á¤ È­¸éÀº ±âº»ÀûÀ¸·Î ³ªÅ¸³ªÁö ¾Ê´Â´Ù. µû¶ó¼­ ¿©·¯ºÐÀº À§¿Í °°Àº Àμ⠼³Á¤ È­¸éÀ» ¸¸µé±â À§Çؼ­ ServiceUI Ŭ·¡½º¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù.

ServiceUI Ŭ·¡½º´Â ÇÁ¸°ÅÍ ¼±Åà ȭ¸éÀ» Ç¥½ÃÇϵµ·Ï ÇÏ´Â ÇϳªÀÇ ¸Þ¼Òµå¸¦ Á¦°øÇÑ´Ù.:


printDialog(GraphicsConfiguration gc, int x, int y, 
  PrintService[] services, PrintService defaultService, 
  DocFlavor flavor, PrintRequestAttributeSet attributes)

±×·¯¸é ¿©·¯ºÐÀº ¹ÝȯµÈ PrintService¸¦ »ç¿ëÇÏ¿© ÀμâÇÒ DocPrintJobÀ» ¾ò´Âµ¥, Listing 4¿Í °°´Ù.

Listing 4. Àμ⠼³Á¤ È­¸éÀ¸·Î ÀμâÇϱâ


  String filename = ...;
  PrintRequestAttributeSet pras = ...;
  DocFlavor flavor = ...;
  PrintService printService[] = 
    PrintServiceLookup.lookupPrintServices(flavor, pras);
  PrintService defaultService = 
    PrintServiceLookup.lookupDefaultPrintService();
  PrintService service = ServiceUI.printDialog(null, 200, 200,
    printService, defaultService, flavor, pras);
  if (service != null) {
    DocPrintJob job = service.createPrintJob();
    FileInputStream fis = new FileInputStream(filename);
    DocAttributeSet das = new HashDocAttributeSet();
    Doc doc = new SimpleDoc(fis, flavor, das);
    job.print(doc, pras);
  }

½ÇÇà ¿¹Á¦

¿©·¯ºÐÀÌ »õ·Î¿î Print Service APIÀÇ ±â´ÉÀ» ½ÃµµÇØ º¸µµ·Ï ÇØ ÁÙ ½ÇÇà ¿¹Á¦·Î ÀÌ ±ÛÀ» ¸¶¹«¸®ÇÏ°Ú´Ù. ´ÙÀ½ ÄÚµå´Â ¾ÕÀÇ ¸ðµç ¿¹Á¦ ÄÚµåµéÀ» ÇϳªÀÇ ½ÇÇà °¡´ÉÇÑ ÇÁ·Î±×·¥À¸·Î °áÇÕ½ÃŲ °ÍÀÌ´Ù. ÇÁ·Î±×·¥À» ½ÇÇà½Ãų ¶§ ¹Ýµå½Ã PNG À̹ÌÁö ÆÄÀÏÀÇ À̸§À» ¸í·ÉÇà¿¡ ÀüÇØ¾ß ÇÑ´Ù. ´Ù¸¥ Æ÷¸ËÀ» ÀμâÇÏ°í ½ÍÀ» °æ¿ì DocFlavorÀ» ¹Ù²Ù±â¸¸ ÇÏ¸é µÈ´Ù.

Listing 5. Àμ⠿¹Á¦


import javax.print.*;
import javax.print.attribute.*;
import java.io.*;

public class Printing {
  public static void main(String args[]) throws Exception {
    String filename = args[0];
    PrintRequestAttributeSet pras = 
      new HashPrintRequestAttributeSet();
    DocFlavor flavor = DocFlavor.INPUT_STREAM.PNG;
    PrintService printService[] = 
      PrintServiceLookup.lookupPrintServices(flavor, pras);
    PrintService defaultService = 
      PrintServiceLookup.lookupDefaultPrintService();
    PrintService service = ServiceUI.printDialog(null, 200, 200,
      printService, defaultService, flavor, pras);
    if (service != null) {
      DocPrintJob job = service.createPrintJob();
      FileInputStream fis = new FileInputStream(filename);
      DocAttributeSet das = new HashDocAttributeSet();
      Doc doc = new SimpleDoc(fis, flavor, das);
      job.print(doc, pras);
      Thread.sleep(10000);
    }
    System.exit(0);
  }
}

Magic with Merlin ¿¬ÀçÀÇ ´ÙÀ½ Æí¿¡¼­ ¿©·¯ºÐÀº È­¸éÀ̳ª ÄÄÆ÷³ÍÆ®ÀÇ ³»¿ëÀ» ÀμâÇÏ´Â ¹æ¹ý¿¡ °üÇØ ¹è¿ï °ÍÀÌ´Ù. ¶ÇÇÑ Àμâ¿Í °ü·ÃµÈ À̺¥Æ® ó¸® ÀÛ¾÷µµ ¼³¸íÇÒ °ÍÀÌ°í, ¿©·¯ºÐÀÇ Àμâ ÀÛ¾÷¿¡¼­ sleep() È£ÃâÀ» ¾ø¾Ö´Â ¹æ¹ýµµ º¸¿© ÁÖ°Ú´Ù.

Âü°í ÀÚ·á

ÇÊÀÚ ¼Ò°³

John Zukowski´Â JZ Ventures, Inc.¿¡¼­ Àü·«Àû ÀÚ¹Ù ÄÁ¼³ÆÃÀ» ¼öÇàÇÏ°í ÀÖÀ¸¸ç, jGuru ±×·ìÀÌ À̲ô´Â ¼ö¸¹Àº Java FAQsÀÇ Ã¼Àç Àü¹®°¡·Î È°µ¿ÇÏ°í ÀÖ´Ù. ÃÖ±Ù Apress¿¡¼­ Java Collections°ú Definitive Guide to Swing for Java 2 (Á¦ 2ÆÇ)¸¦ ¹ß°£ÇÏ¿´´Ù.



ÀÌ ±â»ç¿¡ ´ëÇÏ¿© ¾î¶»°Ô »ý°¢ÇϽʴϱî?

Á¤¸» ÁÁ´Ù (5) ÁÁ´Ù (4) ±×Àú±×·¸´Ù (3) ¼öÁ¤º¸¿ÏÀÌ ÇÊ¿äÇÏ´Ù(2) ÇüÆí¾ø´Ù (1)

  È¸»ç¼Ò°³  |  °³ÀÎÁ¤º¸ º¸È£Á¤Ã¥  |  ¹ý·ü  |  ¹®ÀÇ