°¡. Àμâ Á¤º¸

ÅؽºÆ® ÆíÁý±â¿¡¼­ Àμ⠱â´ÉÀº Çʼö ±â´ÉÀ̱â´Â ÇÏÁö¸¸ ±×´ÙÁö »ó¼¼ÇÏ°Ô ÀÛ¼ºÇÒ ÇÊ¿ä´Â ¾ø´Ù°í »ý°¢µÈ´Ù. ¹®¼­¸¦ ÆíÁýÇÏ´Â ÇÁ·Î±×·¥À̶ó¸é ÀμⰡ ÇÊ¿äÇÏÁö¸¸ ¿äÁòÀº Àμâ Àü¿ë Åøµµ ¸¹ÀÌ º¸±ÞµÇ¾î Àֱ⠶§¹®¿¡ ÆíÁý±â·Î Á÷Á¢ Àμ⸦ ÇÏ´Â °æ¿ì´Â ±×´ÙÁö ¸¹Áö ¾Ê´Ù. °Ô´Ù°¡ ÅؽºÆ®´Â ¼­½ÄÀÌ ¾ø±â ¶§¹®¿¡ ÆÄÀÏÀÇ ³»¿ë¸¸ Ãâ·ÂÇÒ ¼ö ÀÖÀ» »Ó º¸±â ÁÁ°Ô ¹®¼­¸¦ ²Ù¹Î´Ù°Å³ª Àå½ÄÀ» ´Ù´Â °ÍÀÌ ºÒ°¡´ÉÇÏ´Ù. ÅؽºÆ®¸¦ Ãâ·ÂÇÒ ÇÊ¿ä°¡ ÀÖÀ¸¸é ¿öµåÇÁ·Î¼¼¼­¸¦ ´ë½Å »ç¿ëÇÏ´Â °ÍÀÌ ´õ ÁÁÀ¸¸ç ±×·¡¼­ ´ç±ÙÀº ±âº»ÀûÀÎ Àμ⠱â´É¸¸ ÀÛ¼ºÇÒ °ÍÀÌ´Ù.

ÅؽºÆ®¸¦ ÀμâÇÏ´Â °Í Á¤µµ´Â »ç½Ç ¹«Ã´ ½±´Ù. ÇÁ¸°ÅÍ·Î ÅؽºÆ®¸¦ °è¼Ó º¸³»±â¸¸ ÇÏ¸é ³ª¸ÓÁö´Â ÇÁ¸°ÅÍ°¡ ¾Ë¾Æ¼­ ÇÒ °ÍÀÌ´Ù. ÇÁ¸°ÅÍ´Â ³»ÀåµÈ ±Û²ÃÀ» °¡Áö°í ÀÖÀ¸¸ç Çà ³¡¿¡¼­ °³ÇàÀ̳ª ¿ëÁö³¡¿¡¼­ ¿ëÁö ³Ñ±èµµ ÀÚµ¿À¸·Î ó¸®ÇÒ ¼ö ÀÖ´Ù. µµ½º ȯ°æ¿¡¼­ ¡®copy ¹®¼­ prn¡¯À̶ó´Â ¸í·ÉÀ» ³»¸®¸é ¹®¼­°¡ ÀÚµ¿À¸·Î ÀμâµÇ´Â °Íó·³ ¸»ÀÌ´Ù.

±×·¯³ª ÀÌ·± ½ÄÀÇ ÅؽºÆ® Àμâ´Â ÅؽºÆ®¸¦ Á¾ÀÌ¿¡ ±×´ë·Î ¿Å±â´Â °Í¿¡ ºÒ°úÇϸç ÅؽºÆ® ¿ÜÀÇ ¾î¶² °Íµµ Ãâ·ÂÇÒ ¼ö ¾ø´Ù. ´ç±ÙÀº ¹®¹ý ºÐ¼®±â¸¦ ³»ÀåÇÏ°í ÀÖÀ¸¹Ç·Î Ä÷¯ ÀμⰡ °¡´ÉÇÏ°í ÁÙ°£, ±Û²Ã, ÅÇ µî¿¡ ´ëÇÑ ¿É¼Ç Á¶Á¤ ±â´ÉÀ» °¡Áö°í ÀÖÀ¸¹Ç·Î ÀÌ·± ±â´ÉÀ» Àμ⿡µµ Àû¿ëÇÒ ¼ö ÀÖ´Ù. ¶ÇÇÑ ¾Æ¹«¸® Çü½ÄÀÌ ¾ø´Ù°í Çϳª ¸Ó¸®¸», ²¿¸®¸», ÆäÀÌÁö ¹øÈ£ Á¤µµ´Â Ãâ·ÂÇÒ ¼ö ÀÖ¾î¾ß Çϸç ÆäÀÌÁö ¿©¹éµµ Á¶Á¤ÇÒ ¼ö ÀÖµµ·Ï ÇÏÀÚ. ÀÌ·¸°Ô ÇÏÀÚ¸é °á±¹ ÇÁ¸°ÅÍ¿¡°Ô ¸Ã±æ ¼ö ¾øÀ¸¸ç ´ç±ÙÀÌ Á÷Á¢ Àμ⸦ ÇØ¾ß ÇÏ°í ÅؽºÆ® ¸ðµåÀÇ ÀμⰡ ¾Æ´Ñ ±×·¡ÇÈ ¸ðµåÀÇ ÀμⰡ µÈ´Ù.

ÀÌ·¸°Ô ÀμâÇÏ°íÀÚ ÇÒ ¶§ °¡Àå Å« ¹®Á¦Á¡Àº ÅؽºÆ® ÆÄÀÏÀº À§ÁöÀ¨ÀÌ ¾Æ´Ï±â ¶§¹®¿¡ È­¸é¿¡¼­¿Í ¿ëÁö¿¡¼­ÀÇ ¹®¼­ ¸ð¾çÀÌ ´Þ¶óÁø´Ù´Â Á¡ÀÌ´Ù. È­¸é¿¡¼­´Â âÀÇ ¿À¸¥ÂÊ °æ°è¿¡ ¸ÂÃß¾îÁöÁö¸¸ ÀμâÇÒ ¶§´Â ¿ëÁöÀÇ Æø¿¡ ¸ÂÃß¾î¾ß ÇϹǷΠÁ¤·ÄÀ» ´Ù½Ã ÇØ¾ß ÇÑ´Ù. Á¤·Ä »óÅ°¡ ¹Ù²î¹Ç·Î ¹®¹ý ºÐ¼®µµ ´Ù½Ã ÇØ¾ß Çϸç ÁÙ°£, ±Û²ÃÀÇ Å©±â, ÅÇ Å©±âµµ È­¸é¿¡¼­¿Í´Â ´Þ¶óÁø´Ù. ÀÌ·± Â÷ÀÌ°¡ ¹ß»ýÇÏ´Â ±Ùº»ÀûÀÎ ÀÌÀ¯´Â È­¸é°ú ÇÁ¸°ÅÍÀÇ Çػ󵵿¡ Çö°ÝÇÑ Â÷ÀÌ°¡ Àֱ⠶§¹®ÀÌ´Ù.

¸Ó¸®¸»À̳ª ²¿¸®¸»Àº ¿ø·¡ ÅؽºÆ® ÆÄÀÏ¿¡ ÀÖ´Â Á¤º¸°¡ ¾Æ´Ï¶ó »ç¿ëÀÚ¿¡ ÀÇÇØ ÀÎÀ§ÀûÀ¸·Î ¸¸µé¾îÁö´Â Á¤º¸ÀÌ´Ù. ¶ÇÇÑ º»¹®°ú ¸Ó¸®, ²¿¸®¸»ÀÇ ±¸ºÐÀ» À§ÇÑ ±¸ºÐ¼±ÀÌ ÇÊ¿äÇÏ¸ç ¿©¹é¿¡ ´ëÇÑ Á¤º¸µµ ÇÊ¿äÇÏ´Ù. Áï, Àμ⸦ À§ÇÑ ¿©ºÐÀÇ Á¤º¸µéÀÌ ´õ ¸¹ÀÌ ÇÊ¿äÇÏ´Ù´Â ¾ê±â´Ù.

Àμâ´Â È£½ºÆ®¿Í ÄÁÆ®·Ñ ¾çÂÊÀÌ Çùµ¿ÀûÀ¸·Î ¼öÇàÇØ¾ß ÇÒ ÀÛ¾÷ÀÌ´Ù. ÅؽºÆ® º»¹®Àº ÄÁÆ®·ÑÀÌ °¡Áö°í ÀÖÀ¸¹Ç·Î ÄÁÆ®·ÑÀÌ ÀμâÇÏ´Â °ÍÀÌ È¿À²ÀûÀÌ°í ¸Ó¸®¸», ²¿¸®¸»Àº ¹®¼­¿¡ ÀÖ´Â Á¤º¸°¡ ¾Æ´Ï¹Ç·Î È£½ºÆ®°¡ Á÷Á¢ ÀμâÇØ¾ß ÇÑ´Ù. È£½ºÆ®´Â ¶ÇÇÑ ÀμâÇÒ ÇÁ¸°Å͸¦ ¼±ÅÃÇÏ°í Ư¼ºÀ» Á¶»çÇÏ¸ç ¿©¹é, ±Û²Ã µîÀÇ Á¤º¸¸¦ »ç¿ëÀڷκÎÅÍ ÀÔ·Â¹Þ¾Æ ÄÁÆ®·Ñ¿¡°Ô Àü´ÞÇÑ´Ù. ±×·¡¼­ È£½ºÆ®¿Í ÄÁÆ®·Ñ°£ÀÇ Àμâ ÀÛ¾÷À» À§ÇÑ Åë½Å Á¤º¸°¡ ÇÊ¿äÇÏ´Ù. ´ÙÀ½ ±¸Á¶Ã¼¸¦ ApiEdit.h¿¡ ¼±¾ðÇÑ´Ù.

 

struct Ae_PrintInfo

{

     HDC pdc;

     int dpiY;

     RECT prt;

     int ParseID;

     int nWrap;

     BOOL bLineNum;

 

     int Origin;

     int TabSize;

     int LineHeight;

     int LinePerPage;

     int TotalPage;

     tagLine *pLine;

     CParse *Parser;

};

 

#define Mili(n,r) int((n)*(r)/25.4)

 

Mili ¸ÅÅ©·Î´Â ¹Ð¸®¹ÌÅÍ ´ÜÀ§¸¦ Çȼ¿ ´ÜÀ§·Î ¹Ù²Ù¾î ÁØ´Ù. ´ç±ÙÀº Àμâ½Ã ¸ðµç ´ÜÀ§¸¦ ¹Ð¸®¹ÌÅÍ·Î °è»êÇϴµ¥ Àμâ Äڵ忡¼­ Á÷Á¢ ´ÜÀ§¸¦ ´Ù·ç±â´Â ¹ø°Å·Î¿ì¹Ç·Î ¸ÅÅ©·Î¸¦ ¼±¾ðÇصξú´Ù. ¸ÅÅ©·Î ³»¿ëÀº ¾ÆÁÖ ½±´Ù. ÇØ»óµµ rÀº ÀÎÄ¡´ç Çȼ¿ÀÌ ¸î °³Àΰ¡¿¡ ´ëÇÑ Á¤º¸ÀÌ°í 1ÀÎÄ¡´Â 25.4¹Ð¸®¹ÌÅÍÀ̹ǷΠÇػ󵵸¦ °öÇÏ°í 25.4·Î ³ª´©¸é n¹Ð¸®¹ÌÅÍ°¡ ¸î Çȼ¿ÀÎÁö¸¦ ¾Ë ¼ö ÀÖ´Ù.

Ae_PrintInfo ±¸Á¶Ã¼ÀÇ ¸â¹ö´Â µÎ °³ÀÇ ±×·ìÀ¸·Î ³ª´¶´Ù. ¾ÕÂÊ ±×·ìÀº È£½ºÆ®°¡ ÄÁÆ®·Ñ¿¡°Ô Àü´ÞÇÏ´Â Àμâ Á¤º¸ÀÌ°í µÚÂÊ ±×·ìÀº ÄÁÆ®·ÑÀÌ ÀμâÁß¿¡ Á÷Á¢ Á¤ÀÇÇÏ¿© »ç¿ëÇÏ´Â ÀÓ½ÃÁ¤º¸ÀÌ´Ù. °¢ ¸â¹öÀÇ Àǹ̴ ´ÙÀ½°ú °°´Ù.

 

¸â¹ö

¼³¸í

pdc

Àμ⿡ »ç¿ëÇÒ ÇÁ¸°ÅÍ DCÀÌ´Ù.

dpiY

ÇÁ¸°ÅÍÀÇ ¼öÁ÷ ÇØ»óµµÀÌ´Ù.

prt

¿©¹é, ¸Ó¸®¸» µîÀ» Á¦¿ÜÇÏ°í º»¹®ÀÌ ÀμâµÉ ¿µ¿ªÀÌ´Ù. ÄÁÆ®·ÑÀº ÀÌ ¿µ¿ª¿¡ º»¹®À» Á¤·ÄÇÏ¿© ÀμâÇÑ´Ù.

ParseID

±¸¹® ºÐ¼®¿¡ »ç¿ëÇÒ ºÐ¼®±â IDÀÌ´Ù. -1À̸é ÄÁÆ®·ÑÀÌ °¡Áö°í ÀÖ´Â ºÐ¼®±â·Î ºÐ¼®ÇÏ°í 0ÀÌ¸é ±¸¹® ºÐ¼®À» ÇÏÁö ¾Ê´Â´Ù.

nWrap

Àμâ½ÃÀÇ Á¤·Ä ¹æ½ÄÀ» ÁöÁ¤ÇÑ´Ù.

bLineNum

TRUEÀÌ¸é º»¹®ÀÇ ¿ÞÂÊ¿¡ ¹®´Ü¹øÈ£¸¦ Ãâ·ÂÇÑ´Ù.

Origin

ÁÙ¹øÈ£ ¿µ¿ªÀ» Á¦¿ÜÇÏ°í º»¹® Àμ⸦ ½ÃÀÛÇÒ ¼öÆòÁÂÇ¥ÀÌ´Ù.

TabSize

ÅÇ Å©±âÀÌ´Ù.

LineHeight

ÁÙ°£ÀÌ´Ù.

LinePerPage

ÇÑ ÆäÀÌÁö¿¡ µé¾î°¡´Â ÁÙ ¼ö

pLine

Àμ⸦ À§ÇÑ Àӽà Á¤·Ä Á¤º¸ ¹è¿­

Parser

Àμ⸦ À§ÇÑ ±¸¹® ºÐ¼®±â °´Ã¼À̸ç È£½ºÆ®°¡ Àü´ÞÇØ ÁØ ParseID°ª´ë·Î ºÐ¼®±â¸¦ ¼±ÅÃÇÑ´Ù.

 

ÀμâÁß¿¡ Âü°íÇÒ¸¸ÇÑ ¿©·¯ °¡Áö Á¤º¸µéÀÌ Æ÷ÇԵǾî Àִµ¥ È£½ºÆ®´Â Àμ⠴ëÈ­»óÀÚ¿¡¼­ »ç¿ëÀÚ°¡ ¼±ÅÃÇÑ ¿É¼Ç°ú ¼³Á¤Á¤º¸¿¡ ¹Ì¸® ¼±ÅõǾî ÀÖ´Â °ªÀ» ÀÌ ±¸Á¶Ã¼¿¡ ´ëÀÔÇÏ¿© ÄÁÆ®·Ñ¿¡°Ô Àü´ÞÇÏ°í ÄÁÆ®·ÑÀº ÀÌ ±¸Á¶Ã¼ÀÇ Áö½Ã´ë·Î ÀμâÇÑ´Ù. Àμ⠱۲ÿ¡ ´ëÇÑ ¼³Á¤Àº Æ÷ÇԵǾî ÀÖÁö ¾ÊÀºµ¥ ±Û²ÃÀº È£½ºÆ®°¡ pdc¿¡ ¼±ÅÃÇÑ´Ù. µû¶ó¼­ ÄÁÆ®·ÑÀº º°´Ù¸¥ ÆùÆ® ¼±ÅþøÀÌ pdc¿¡ ¼³Á¤µÈ ±Û²Ã·Î ÀμâÇÏ¸é µÈ´Ù.

ApiEdit´Â Àμ⠱â´É Áö¿øÀ» À§ÇØ 4°³ÀÇ ÇÔ¼ö¸¦ Á¦°øÇÑ´Ù. ´ÙÀ½ 4°³ÀÇ ¸â¹öÇÔ¼öµéÀ» CApiEdit Ŭ·¡½ºÀÇ ¸â¹ö·Î Ãß°¡ÇÏÀÚ.

 

class CApiEdit

{

     ....

     void BeginPrint(Ae_PrintInfo *pi);

     BOOL PrintPage(Ae_PrintInfo *pi,int nPage);

     void EndPrint(Ae_PrintInfo *pi);

     void GetLine(int Line, int &s, int &e,Ae_PrintInfo *pi);

 

°¢°¢ Àμâ Áغñ, ÇÑ ÆäÀÌÁö Àμâ, Àμâ Á¾·á ÇÔ¼öµéÀ̸ç ÀÌ ÇÔ¼öµéÀº È£½ºÆ®¿¡ ÀÇÇØ Àû´çÇÑ ¶§¿¡ È£ÃâµÈ´Ù. ´ÙÀ½Àý¿¡¼­ ´ç±ÙÀÇ Àμâ Äڵ带 ÀÛ¼ºÇÒ ¶§ ÀÌ ÇÔ¼öµéÀ» È£ÃâÇÏ°Ô µÉ °ÍÀÌ´Ù. GetLine ÇÔ¼ö´Â Àμ⸦ À§ÇØ ¹®¼­¸¦ ´Ù½Ã Á¤·ÄÇϴµ¥ BeginPrint ÇÔ¼ö¿¡ ÀÇÇØ È£ÃâµÈ´Ù.