29.5. Drawing

29.5.1. Áö¿À¸ÞÆ®¸®

PDF ÇÏ PostScript (¿Í)°ú °°Àº Áö¿À¸ÞÆ®¸®¸¦ »ç¿ëÇÕ´Ï´Ù.ÆäÀÌÁöÀÇ ¿ÞÂÊ ÇÏ´Ü ¸ð¼­¸®¸¦ ±âÁØÀ¸·Î ÇØ, µðÆúÆ®¿¡¼­´Â Æ÷ÀÎÆ®¼ö (1 ÀÎÄ¡ÀÇ 1/72) ±×¸®°í Àå¼Ò¸¦ ÁöÁ¤ÇÕ´Ï´Ù.

ÆäÀÌÁöÀÇ Å©±â´Â ÆäÀÌÁö ¿ÀºêÁ§Æ®·ÎºÎÅÍ ÃëµæÇÒ ¼ö ÀÖ½À´Ï´Ù.


<?php
$width  
$pdfPage->getWidth();
$height $pdfPage->getHeight();

29.5.2. »ö

PDF ¿¡´Â, »öÀ» Ç¥ÇöÇϱâ À§ÇÑ ´Ù¾çÇÑ ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù.Zend_Pdf ±×·³, gray scale,RGB ¹× CMYK »ö°ø°£(color space)¸¦ ¼­Æ÷Æ®Çϰí ÀÖ½À´Ï´Ù. Zend_Pdf_Color ¿ÀºêÁ§Æ®°¡ ¿ä±¸µÇ´Â °³¼Ò¿¡¼­´Â, ÀÌ·¯ÇÑ ¾î¶² °Í¿¡¼­µµ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.°¢°¢ÀÇ »ö°ø°£(color space)¿¡ ´ëÀÀÇÏ´Â ±â´ÉÀ» Á¦°øÇÏ´Â °ÍÀÌ Zend_Pdf_Color_GrayScale,Zend_Pdf_Color_Rgb ¹× Zend_Pdf_Color_Cmyk Ŭ·¡½ºÀÔ´Ï´Ù.


<?php
// $grayLevel (float ÇüÅÂÀÇ ¼öÄ¡).0.0 (Èæ) - 1.0 (¹é)
$color1 = new Zend_Pdf_Color_GrayScale($grayLevel);

// $r, $g, $b (float ÇüÅÂÀÇ ¼öÄ¡).0.0 (ÃÖÀúÀÇ °­µµ) - 1.0 (ÃÖ´ëÀÇ °­µµ)
$color2 = new Zend_Pdf_Color_Rgb($r$g$b);

// $c, $m, $y, $k (float ÇüÅÂÀÇ ¼öÄ¡).0.0 (ÃÖ¼ÒÀÇ °­µµ) - 1.0 (ÃÖ´ëÀÇ °­µµ)
$color3 = new Zend_Pdf_Color_Cmyk($c$m$y$k);

HTML Çü½ÄÀÇ »öÁöÁ¤µµ Zend_Pdf_Color_Html Ŭ·¡½º¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.


<?php
$color1 
= new Zend_Pdf_Color_Html('#3366FF');
$color2 = new Zend_Pdf_Color_Html('silver');
$color3 = new Zend_Pdf_Color_Html('forestgreen');

29.5.3. µµÇüÀÇ Drawing

Drawing Á¶ÀÛÀº,PDF ÀÇ ÆäÀÌÁö¿¡ ´ëÇØ¼­ ÇàÇØÁý´Ï´Ù.

±âº» µµÇü¼¼Æ®°¡ Zend_Pdf_Page Ŭ·¡½º¿¡¼­ Á¦°øµÇ°í ÀÖ½À´Ï´Ù.


<?php
/**
 * x1,y1 (À¸)·ÎºÎÅÍ x2,y2 ±îÁö Á÷¼±À» Drawing ÇÕ´Ï´Ù.
 *
 * @param float $x1
 * @param float $y1
 * @param float $x2
 * @param float $y2
 */
public function drawLine($x1$y1$x2$y2);

<?php
/**
 * ±¸ÇüÀ» Drawing ÇÕ´Ï´Ù.
 *
 * Drawing ¹æ¹ý
 * Zend_Pdf_Page::SHAPE_DRAW_FILL_AND_STROKE - À±°ûÀ» Drawing ÇØ ÀüºÎ Ä¥ÇÕ´Ï´Ù (µðÆúÆ®)
 * Zend_Pdf_Page::SHAPE_DRAW_STROKE      - À±°ûÀ» Drawing ÇÕ´Ï´Ù
 * Zend_Pdf_Page::SHAPE_DRAW_FILL        - ±¸ÇüÀ» ÀüºÎ Ä¥ÇÕ´Ï´Ù
 *
 * @param float $x1
 * @param float $y1
 * @param float $x2
 * @param float $y2
 * @param integer $fillType
 */
public function drawRectangle($x1$y1$x2$y2$fillType Zend_Pdf_Page::SHAPE_DRAW_FILL_AND_STROKE);

<?php
/**
 * ´Ù°¢ÇüÀ» Drawing ÇÕ´Ï´Ù.
 *
 * $fillType ÇÏÁö¸¸ Zend_Pdf_Page::SHAPE_DRAW_FILL_AND_STROKE È¤Àº Zend_Pdf_Page::SHAPE_DRAW_FILL
 * ÀÇ °æ¿ì, ´Ù°¢ÇüÀº ÀÚµ¿ÀûÀ¸·Î ´ÝÇôÁý´Ï´Ù.ÀÌ ¸Þ¼Òµå¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ °ÍÀº,
 * PDF ÀÇ ¹®¼­ (section 4.4.2 Path painting Operators, Filling)
 * (À»)¸¦ ÂüÁ¶ÇØ ÁֽʽÿÀ.
 *
 * @param array $x  - float ÀÇ ¹è¿­ (Á¤Á¡ÀÇ X ÁÂÇ¥)
 * @param array $y  - float ÀÇ ¹è¿­ (Á¤Á¡ÀÇ Y ÁÂÇ¥)
 * @param integer $fillType
 * @param integer $fillMethod
 */
public function drawPolygon($x$y,
                            
$fillType Zend_Pdf_Page::SHAPE_DRAW_FILL_AND_STROKE,
                            
$fillMethod Zend_Pdf_Page::FILL_METHOD_NON_ZERO_WINDING);

<?php
/**
 * Áß½ÉÀÌ x, y ±×¸®°í ¹Ý°æÀÌ radius ÀÇ ¿£À» Drawing ÇÕ´Ï´Ù.
 *
 * °¢µµ´Â ¶óµð¾ÈÀ¸·Î ÁöÁ¤ÇÕ´Ï´Ù.
 *
 * Method signatures:
 * drawCircle($x, $y, $radius);
 * drawCircle($x, $y, $radius, $fillType);
 * drawCircle($x, $y, $radius, $startAngle, $endAngle);
 * drawCircle($x, $y, $radius, $startAngle, $endAngle, $fillType);
 *
 *
 * À̰ÍÀº ÁøÂ¥ ¿£ÀÌ ¾Æ´Õ´Ï´Ù.PDF ÇÏ 3 ´ÙÀ½ º£Áö¿¡ °î¼± ¹Û¿¡ ¼­Æ÷Æ®Çϰí ÀÖÁö ¾Ê±â ¶§¹®ÀÔ´Ï´Ù.
 * ±×·¸´Ù°í´Â ÇØµµ, ÁøÂ¥ ¿£¿¡ ²Ï °¡±õ°Ô µË´Ï´Ù.
 * ÁøÂ¥ ¿£°úÀÇ ¿ÀÂ÷´Â, ÃÖ´ë¿¡¼­µµ ¹Ý°æÀÇ 0.00026 ¹è ¹Û¿¡ µÇÁö ¾Ê½À´Ï´Ù
 * (°¢µµ°¡ PI/8, 3*PI/8, 5*PI/8, 7*PI/8, 9*PI/8, 11*PI/8, 13*PI/8 ±×¸®°í 15*PI/8 ÀÇ °æ¿ì).
 * 0, PI/4, PI/2, 3*PI/4, PI, 5*PI/4, 3*PI/2 ±×¸®°í 7*PI/4 ÀÇ °æ¿ì´Â, ¿£ÀÇ Á¤È®ÇÑ Á¢¼±ÀÌ µË´Ï´Ù.
 *
 * @param float $x
 * @param float $y
 * @param float $radius
 * @param mixed $param4
 * @param mixed $param5
 * @param mixed $param6
 */
public function  drawCircle($x$y$radius$param4 null$param5 null$param6 null);

<?php
/**
 * ÁöÁ¤ÇÑ ±¸Çü¿¡ ³»Á¢ Çϴ Ÿ¿øÀ» Drawing ÇÕ´Ï´Ù.
 *
 * Method signatures:
 * drawEllipse($x1, $y1, $x2, $y2);
 * drawEllipse($x1, $y1, $x2, $y2, $fillType);
 * drawEllipse($x1, $y1, $x2, $y2, $startAngle, $endAngle);
 * drawEllipse($x1, $y1, $x2, $y2, $startAngle, $endAngle, $fillType);
 *
 * °¢µµ´Â ¶óµð¾ÈÀ¸·Î ÁöÁ¤ÇÕ´Ï´Ù.
 *
 * @param float $x1
 * @param float $y1
 * @param float $x2
 * @param float $y2
 * @param mixed $param5
 * @param mixed $param6
 * @param mixed $param7
 */
public function drawEllipse($x1$y1$x2$y2$param5 null$param6 null$param7 null);

29.5.4. ÅØ½ºÆ®ÀÇ Drawing

ÅØ½ºÆ®¿¡ ´ëÇÑ Drawing Á¶ÀÛµµ,PDF ÀÇ ÆäÀÌÁö¿¡ ´ëÇØ¼­ ÇàÇØÁý´Ï´Ù. baselineÀÇ x ÁÂÇ¥ ¹× y ÁÂÇ¥¸¦ ÁöÁ¤ÇÏ´Â °ÍÀ¸·Î, ÆäÀÌÁö³»ÀÇ ÀÓÀÇÀÇ Àå¼Ò¿¡ ÅØ½ºÆ®¸¦ 1 Çà Drawing ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÇöÀçÀÇ ÆùÆ® ¹× font size¸¦ »ç¿ëÇϰí, Drawing Á¶ÀÛÀ» ÇÕ´Ï´Ù (ÀÚ¼¼ÇÑ °ÍÀº, ÀÌÇϸ¦ ÂüÁ¶ÇØ ÁֽʽÿÀ).


<?php
/**
 * ÁöÁ¤ÇÑ À§Ä¡¿¡ ÅØ½ºÆ®¸¦ Drawing ÇÕ´Ï´Ù.
 *
 * @param string $text
 * @param float $x
 * @param float $y
 * @param string $charEncoding (¿É¼Ç) ¼Ò½º ÅØ½ºÆ®ÀÇ ¹®ÀÚ ÀÎÄÚµù.
 *   µðÆúÆ®´Â ÇöÀçÀÇ ·ÎÄÉÀÏÀÔ´Ï´Ù.
 * @throws Zend_Pdf_Exception
 */
public function drawText($text$x$y$charEncoding '');

·Ê 29.6. ÆäÀÌÁö»ó¿¡ÀÇ ¹®ÀÚ¿­ÀÇ Drawing


<?php
...
$pdfPage->drawText('Hello world!'72720);
...

µðÆúÆ®¿¡¼­´Â, ÇöÀçÀÇ ·ÎÄÉÀÏÀÇ ÀÎÄÚµù¿¡ ÀÇÇØ¼­ ÅØ½ºÆ®ÀÇ ¹®ÀÚ¿­ÀÌ ÇØ¼®µË´Ï´Ù.´Ù¸¥ ÀÎÄÚµùÀ» »ç¿ëÇϰí ÀÖ´Â °æ¿ì (¿¹¸¦ µé¸é, µð½ºÅ©»óÀÇ ÆÄÀϷκÎÅÍ UTF-8 ÀÇ ¹®ÀÚ¿­À» ÀоîµéÀ̰ųª À¯»êÀÎ µ¥ÀÌŸº£À̽º·ÎºÎÅÍ MacRoman ÀÇ ¹®ÀÚ¿­À» ÃëµæÇϰųª) (Àº)´Â, Drawing ½Ã¿¡ ¹®ÀÚ ÀÎÄÚµùÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¸°Ô ÇÏ´Â °ÍÀ¸·Î,Zend_Pdf ÇÏÁö¸¸ º¯È¯ 󸮸¦ ½Ç½ÃÇÕ´Ï´Ù.PHP ÀÇ iconv() ÇÔ¼ö°¡ ¼­Æ÷Æ®Çϰí ÀÖ´Â ÀÎÄÚµùÀ̶ó¸é, ¸ðµÎ ÀÔ·ÂÀ¸·Î¼­ »ç¿ëÇÏ´Â °ÍÀÌ °¡´ÉÇÕ´Ï´Ù.

·Ê 29.7. UTF-8 ±×¸®°í encode µÈ ¹®ÀÚ¿­À» ÆäÀÌÁö¿¡ Drawing ÇÑ´Ù


<?php
...
// UTF-8 encode µÈ ¹®ÀÚ¿­À» µð½ºÅ©·ÎºÎÅÍ ÀоîµéÀÔ´Ï´Ù
$unicodeString fread($fp1024);

// ¹®ÀÚ¿­À» ÆäÀÌÁö»ó¿¡ Drawing ÇÕ´Ï´Ù
$pdfPage->drawText($unicodeString72720'UTF-8');
...

29.5.5. ÆùÆ®ÀÇ »ç¿ë

Zend_Pdf_Page::drawText() (Àº)´Â, ÇöÀç ¼³Á¤µÇ¾î ÀÖ´Â ÆùÆ® ¹× font size¸¦ »ç¿ëÇÕ´Ï´Ù. À̰ÍÀº Zend_Pdf_Page::setFont() ¸Þ¼Òµå·Î ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.


<?php
/**
 * ÇöÀçÀÇ ÆùÆ®¸¦ ¼³Á¤ÇÕ´Ï´Ù.
 *
 * @param Zend_Pdf_Resource_Font $font
 * @param float $fontSize
 */
public function setFont(Zend_Pdf_Font $font$fontSize);

PDF ¹®¼­´Â,PostScript Type 1 ÆùÆ® ¹× TrueType ÆùÆ® »Ó¸¸ÀÌ ¾Æ´Ï¶ó, PDF ¿ë¹«ÀÇ Æ¯º°ÇÑ Çü½ÄÀÌ´Ù Type 3 ÆùÆ®³ª º¹ÇÕ ÆùÆ®µµ ¼­Æ÷Æ®Çϰí ÀÖ½À´Ï´Ù. ¸ðµç PDF viewer¿¡´Â, ÀÌÇÏÀÇ 14 Á¾·ùÀÇ Ç¥ÁØ Type 1 ÆùÆ®°¡ Â¥³Ö¾îÁö°í ÀÖ½À´Ï´Ù. ±× ³»¿ëÀº Courier (4 Á¾·ù),Helvetica (4 Á¾·ù),Times (4 Á¾·ù),Symbol ±×¸®°í Zapf Dingbats ÀÔ´Ï´Ù.

ÇöÀç Zend_Pdf (Àº)´Â, Ç¥ÁØÀÇ 14 Á¾·ùÀÇ PDF ÆùÆ® »Ó¸¸ÀÌ ¾Æ´Ï¶ó µ¶ÀÚÀûÀÎ TrueType ÆùÆ®µµ ¼­Æ÷Æ®Çϰí ÀÖ½À´Ï´Ù.ÆùÆ® ¿ÀºêÁ§Æ®¸¦ ÃëµæÇÏ·Á¸é , 2 Á¾·ùÀÇ ÆÑÅ丮 ¸Þ¼ÒµåÀÇ ¾î´ÀÂÊÀ̵çÀ» »ç¿ëÇÕ´Ï´Ù.»ç¿ëÇÏ´Â ¸Þ¼Òµå´Â, Ç¥ÁØÀÇ 14 Á¾·ùÀÇ PDF ÆùÆ®ÀÇ °æ¿ì´Â Zend_Pdf_Font::fontWithName($fontName), µ¶ÀÚÀûÀÎ ÆùÆ®ÀÇ °æ¿ì´Â Zend_Pdf_Font::fontWithPath($filePath) ÀÔ´Ï´Ù.

·Ê 29.8. Ç¥ÁØ ÆùÆ®ÀÇ ÀÛ¼º


<?php
...
// »õ·Î¿î ÆùÆ®¸¦ ÀÛ¼ºÇÕ´Ï´Ù.
$font Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_HELVETICA);

// ÆùÆ®¸¦ Àû¿ëÇÕ´Ï´Ù.
$pdfPage->setFont($font36);
...

14 Á¾·ùÀÇ Ç¥ÁØ ÆùÆ®¸íÀ» ³ªÅ¸³»´Â Á¤¼ö´Â,Zend_Pdf_Font Ŭ·¡½º¿¡¼­ Á¤Àǵǰí ÀÖ½À´Ï´Ù.

  • Zend_Pdf_Font::FONT_COURIER

  • Zend_Pdf_Font::FONT_COURIER_BOLD

  • Zend_Pdf_Font::FONT_COURIER_ITALIC

  • Zend_Pdf_Font::FONT_COURIER_BOLD_ITALIC

  • Zend_Pdf_Font::FONT_TIMES

  • Zend_Pdf_Font::FONT_TIMES_BOLD

  • Zend_Pdf_Font::FONT_TIMES_ITALIC

  • Zend_Pdf_Font::FONT_TIMES_BOLD_ITALIC

  • Zend_Pdf_Font::FONT_HELVETICA

  • Zend_Pdf_Font::FONT_HELVETICA_BOLD

  • Zend_Pdf_Font::FONT_HELVETICA_ITALIC

  • Zend_Pdf_Font::FONT_HELVETICA_BOLD_ITALIC

  • Zend_Pdf_Font::FONT_SYMBOL

  • Zend_Pdf_Font::FONT_ZAPFDINGBATS

ÀÓÀÇÀÇ TrueType ÆùÆ® (Åë»óÀº '.ttf' ±×·¸´Ù°í ÇÏ´Â È®ÀåÀÚ(extension)ÀÔ´Ï´Ù) µµ »ç¿ëÇÒ ¼ö ÀÖ°í, TrueType ¾Æ¿ô¶óÀÎÀ» Æ÷ÇÔÇÑ´Ù OpenType ÆùÆ® (È®ÀåÀÚ(extension)´Â '.otf') (À»)¸¦ »ç¿ëÇÏ´Â °Íµµ °¡´ÉÇÕ´Ï´Ù.ÇöÀç´Â ¾ÆÁ÷ ¼­Æ÷Æ®Çϰí ÀÖ¾ú½À´Ï´Ù¸¸, Àå·¡´Â Mac OS X ÀÇ .dfont ÆÄÀÏÀ̳ª Microsoft TrueType Collection (È®ÀåÀÚ(extension) '.ttc') ÆÄÀϵµ ¼­Æ÷Æ®ÇÒ ¿¹Á¤ÀÔ´Ï´Ù.

TrueType ÆùÆ®¸¦ »ç¿ëÇÏ·Á¸é , ÆùÆ®¿¡ÀÇ Ç® ÆÐ½º¸¦ ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù. ¾î¶°ÇÑ ÀÌÀ¯·Î ÆùÆ®¸¦ ÀоîµéÀÏ ¼ö ¾ø¾ú´ø °æ¿ì, ȤÀº ±×°ÍÀÌ TrueType ÆùÆ®°¡ ¾Æ´Ï¾ú´ø °æ¿ì´Â, ÆÑÅ丮 ¸Þ¼Òµå°¡ ¿¹¿Ü¸¦ ½½·Î¿ì ÇÕ´Ï´Ù.

·Ê 29.9. TrueType ÆùÆ®ÀÇ ÀÛ¼º


<?php
...
// »õ·Î¿î ÆùÆ®¸¦ ÀÛ¼ºÇÕ´Ï´Ù
$goodDogCoolFont Zend_Pdf_Font::fontWithPath('/path/to/GOODDC__.TTF');

// ÆùÆ®¸¦ Àû¿ëÇÕ´Ï´Ù
$pdfPage->setFont($goodDogCoolFont36);
...

µðÆúÆ®¿¡¼­´Â, µ¶ÀÚÀûÀÎ ÆùÆ®´Â PDF ¹®¼­¿¡ ÆÄ¹¯Èü´Ï´Ù. ±× ¶§¹®¿¡, ¿­¶÷ÀÚÀÇ ½Ã½ºÅÛ¿¡ ±× ÆùÆ®°¡ ÀνºÅç µÇ¾î ÀÖÁö ¾Ê¾Æµµ, ÆäÀÌÁö¸¦ Á¦´ë·Î ¿­¶÷ÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù.ÆÄÀÏÀÇ Å©±â°¡ ½Å°æÀÌ ¾²ÀÌ´Â °æ¿ì´Â, ÆÑÅ丮 ¸Þ¼ÒµåÀÇ ¿É¼ÇÀ¸·Î ¡¸ÆùÆ®¸¦ ¹¯Áö ¾Ê´Â´Ù¡¹°ÍÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.

·Ê 29.10. TrueType (À»)¸¦ ÀÛ¼ºÇÏÁö¸¸,PDF ¹®¼­¿¡´Â ¹¯Áö ¾Ê´Â´Ù


<?php
...
// »õ·Î¿î ÆùÆ®¸¦ ÀÛ¼ºÇÕ´Ï´Ù
$goodDogCoolFont Zend_Pdf_Font::fontWithPath('/path/to/GOODDC__.TTF',
                                               
Zend_Pdf_Font::EMBED_DONT_EMBED);

// ÆùÆ®¸¦ Àû¿ëÇÕ´Ï´Ù
$pdfPage->setFont($goodDogCoolFont36);
...

PDF ÆÄÀÏ¿¡ ÆùÆ®°¡ ÆÄ¹¯È÷Áö ¾ÊÁö¸¸ ¿­¶÷ÀÚÀÇ ½Ã½ºÅÛ¿¡´Â ±× ÆùÆ®°¡ ÀνºÅç µÇ°í ÀÖ´Â °æ¿ì´Â, ¹®¼­´Â Åë»ó ´ë·Î¿¡ ¿­¶÷ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¸¸¾à ÀûÀýÇÑ ÆùÆ®°¡ ÀνºÅç µÇ¾î ÀÖÁö ¾ÊÀºÀº,PDF ¿­¶÷ ¾îÇø®ÄÉÀ̼ÇÀÌ ÀûÀýÇÑ ´ëü ÆùÆ®¸¦ ¼±ÅÃÇÕ´Ï´Ù.

¾È¿¡´Â,PDF ¹®¼­¿¡ÀÇ ¸ÅÀÔÀ» ±ÝÁöÇÏ´Â ¶óÀ̼¾½º¸¦ »ç¿ëÇϰí ÀÖ´Â ÆùÆ®µµ ÀÖ½À´Ï´Ù. À̰ÍÀ» ±òºÁ¼­´Â ¾ÈµË´Ï´Ù.¸¸¾à ¹¯À» ¼ö ¾ø´Â ÆùÆ®¸¦ ÀÌ¿ëÇÏ·Á°í Çϸé, ÆÑÅ丮 ¸Þ¼Òµå´Â ¿¹¿Ü¸¦ ½½·Î¿ì ÇÕ´Ï´Ù.

ÀÌ·¯ÇÑ ÆùÆ®¸¦ »ç¿ëÇÏ´Â °Íµµ °¡´ÉÇÕ´Ï´Ù¸¸, ±×·¯±â À§Çؼ­´Â, À§¿¡¼­ ¼³¸íÇÑ ¡¸¹¯Áö ¾Ê´Â´Ù¡¹Ç÷¡±×¸¦ »ç¿ëÇϵ簡, ȤÀº ¿¹¿Ü¸¦ ¾ïÁ¦ÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù.

·Ê 29.11. ¸ÅÀÔÀÌ ±ÝÁöµÇ°í ÀÖ´Â ÆùÆ®·Î, ¿¹¿Ü¸¦ ½½·Î¿ì ½ÃŰÁö ¾Ê°Ô ÇÑ´Ù


<?php
...
$font Zend_Pdf_Font::fontWithPath('/path/to/unEmbeddableFont.ttf',
                                    
Zend_Pdf_Font::EMBED_SUPPRESS_EMBED_EXCEPTION);
...

ÀÌ¿ëÀÚ¿¡°Ô ÆùÆ®¸¦ ¼±ÅýÃŰ´Â °æ¿ì µîÀº, ÀÌ ¾ïÁ¦ ¹æ¹ýÀ» »ç¿ëÇÏ´Â °ÍÀ» ÃßõÇÕ´Ï´Ù. PDF ¹®¼­¿¡ ¹¯À» ¼ö ÀÖ´Â ÆùÆ®¶ó¸é ¹¯À» °ÍÀ̰í, ¹¯À» ¼ö ¾ø´Â ÆùÆ®´Â ¹¯Áö ¾ÊÀ» °ÍÀÔ´Ï´Ù.

ÆùÆ®ÀÇ »çÀÌÁî´Â ºñ±³Àû Å©°í, ¾È¿¡´Â 10 ¸Þ°¡¹ÙÀÌÆ®¿¡ À̸£´Â °Íµµ ÀÖ½À´Ï´Ù. µðÆúÆ®¿¡¼­´Â ¹¯¾î ÆùÆ®´Â Flate ¾ÐÃàµÇ¾î Æò±ÕÇØ 50% (Á¤µµ)¸¸Å­ »çÀÌÁ Àý¾àÇÒ ¼ö ÀÖ½À´Ï´Ù. ¾î¶°ÇÑ ÀÌÀ¯·Î ÆùÆ®¸¦ ¾ÐÃàÇÏ°í ½ÍÁö ¾ÊÀº °æ¿ì´Â, ÀÌÇÏÀÇ ¿É¼ÇÀ¸·Î ¾ÐÃàÀ» ¹«È¿·Î ÇÒ ¼ö ÀÖ½À´Ï´Ù.

·Ê 29.12. ¸ÅÀÔ ÆùÆ®¸¦ ¾ÐÃàÇÏÁö ¾Ê´Â´Ù


<?php
...
$font Zend_Pdf_Font::fontWithPath('/path/to/someReallyBigFont.ttf',
                                    
Zend_Pdf_Font::EMBED_DONT_COMPRESS);
...

¸¶Áö¸·À¸·Î, Çʿ信 µû¶ó¼­ ¸î°³ÀÇ ¸ÅÀÔ ¿É¼ÇÀ» ºñÆ® OR ¿¬»êÀÚ·Î ¿¬°áÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

·Ê 29.13. ÆùÆ®ÀÇ ¸ÅÀÔ ¿É¼ÇÀ» Á¶ÇÕÇÑ´Ù


<?php
...
$font Zend_Pdf_Font::fontWithPath($someUserSelectedFontPath,
                                    (
Zend_Pdf_Font::EMBED_SUPPRESS_EMBED_EXCEPTION |
                                     
Zend_Pdf_Font::EMBED_DONT_COMPRESS));
...

29.5.6. 1.5 ÀÌÈÄ¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Â, ÆùÆ®ÀÇ ÃßÃâ

Zend_Pdf ¸ðµâÀ» »ç¿ëÇϸé, ÀоîµéÀÎ ¹®¼­·ÎºÎÅÍ ÆùÆ®¸¦ ÃßÃâÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù.

À̰ÍÀº, ¹®¼­¸¦ ÀÎÅ©¸®¸àÅ»¿¡ °»½ÅÇÒ ¶§¿¡ Æí¸®ÇÕ´Ï´Ù. ÀÌ ±â´ÉÀÌ ¾øÀ¸¸é, ¹®¼­¸¦ °»½ÅÇÒ ¶§¸¶´Ù ÆùÆ®¸¦ ¾ÆÅ¿Ä¡ Çϰųª ¹®¼­¿¡ ¹¯°Å³ª ÇØ¾ß ÇÏ°Ô µË´Ï´Ù.

Zend_Pdf ¿ÀºêÁ§Æ® ¹× Zend_Pdf_Page ¿ÀºêÁ§Æ®¿¡´Â, ¹®¼­³ª ÆäÀÌÁö³»ÀÇ ¸ðµç ÆùÆ®¸¦ ÃßÃâÇϱâ À§ÇÑ ¸Þ¼Òµå°¡ ÁغñµÇ¾î ÀÖ½À´Ï´Ù.

·Ê 29.14. ÀоîµéÀÎ ¹®¼­·ÎºÎÅÍÀÇ ÆùÆ®ÀÇ ÃßÃâ


<?php
...
$pdf Zend_Pdf::load($documentPath);
...
// ¹®¼­ÀÇ ¸ðµç ÆùÆ®¸¦ ÃëµæÇÕ´Ï´Ù
$fontList $pdf->extractFonts();
$pdf->pages[] = ($page $pdf->newPage(Zend_Pdf_Page::SIZE_A4));
$yPosition 700;
foreach (
$fontList as $font) {
    
$page->setFont($font15);
    
$page->drawText($font->getFontName(Zend_Pdf_Font::NAME_POSTSCRIPT'en''UTF-8'
                  . 
':  The quick brown fox jumps over the lazy dog'100$yPosition'UTF-8');
    
$yPosition -= 30;
}
...
// ¹®¼­ÀÇ ÃÖÃÊÀÇ ÆäÀÌÁö·Î ÀÌ¿ëµÇ°í ÀÖ´Â ÆùÆ®¸¦ ÃëµæÇÕ´Ï´Ù
$firstPage reset($pdf->pages);
$firstPageFonts $firstPage->extractFonts();
...

·Ê 29.15. ÆùÆ®¸íÀÇ ÁöÁ¤¿¡ ÀÇÇÑ, ÀоîµéÀÎ ¹®¼­·ÎºÎÅÍÀÇ ÆùÆ®ÀÇ ÃßÃâ


<?php
...
$pdf = new Zend_Pdf();
...
$pdf->pages[] = ($page $pdf->newPage(Zend_Pdf_Page::SIZE_A4));

$font Zend_Pdf_Font::fontWithPath($fontPath);
$page->setFont($font$fontSize);
$page->drawText($text$x$y);
...
// ÆùÆ®¸íÀ» ¾îµð¿£°¡ º¸Á¸ÇØ µÓ´Ï´Ù...
$fontName $font->getFontName(Zend_Pdf_Font::NAME_POSTSCRIPT'en''UTF-8');
...
$pdf->save($docPath);
...

<?php
...
$pdf Zend_Pdf::load($docPath);
...
$pdf->pages[] = ($page $pdf->newPage(Zend_Pdf_Page::SIZE_A4));

$font $pdf->extractFont($fontName);  /* $srcPage->extractFont($fontName) (ÀÌ)¶ó°í ÇØµµ ±¦Âú½À´Ï´Ù */
$page->setFont($font$fontSize);
$page->drawText($text$x$y);
...
$pdf->save($docPathtrue /* ÀÎÅ©¸®¸àÅ» °»½Å ¸ðµå */);
...

ÆùÆ®ÀÇ ÃßÃâÀº ¾îµð¼­¿¡¼­µµ ÇÒ ¼ö ÀÖ½À´Ï´Ù¸¸, ´ÙÀ½°ú °°Àº Á¦ÇÑÀÌ ÀÖ½À´Ï´Ù.

  • ÃßÃâÇÑ ÆùÆ®´Â, ±× ÆùÆ®ÀÇ ÃßÃâ¿ø°ú °°Àº ¹®¼­³»¿¡¼­ ¹Û¿¡ »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù.

  • ÆÄ¹¯Èù ÆùÆ® ÇÁ·Î±×·¥Àº ½ÇÁ¦·Î´Â ÃßÃâµÇÁö ¾Ê½À´Ï´Ù. Áï, ÃßÃâµÈ ÆùÆ®´Â ¿ø·¡ÀÇ ÆùÆ®¸ÞÆ®¸®Å©½º (ÅØ½ºÆ®ÀÇ ÆøÀÇ °è»ê¿¡ »ç¿ëÇÏ´Â °Í) (¿Í)°ú °°Àº °ÍÀÌ µÇÁö ¾Ê½À´Ï´Ù.

    
    <?php
    ...
    $font $pdf->extractFont($fontName);
    $originalFont Zend_Pdf_Font::fontWithPath($fontPath);

    $page->setFont($font /* Drawing¿ëÀ¸·Î ÃßÃâÇÑ ÆùÆ® */$fontSize);
    $xPosition $x;
    for (
    $charIndex 0$charIndex strlen($text); $charIndex++) {
        
    $page->drawText($text[$charIndex], xPosition$y);

        
    // ÅؽºÆ®ÀÇ ÆøÀÇ °è»ê¿¡´Â ¿ø·¡ÀÇ ÆùÆ®¸¦ »ç¿ëÇÕ´Ï´Ù
        
    $xPosition += $originalFont->widthForGlyph($originalFont->glyphNumberForCharacter($text[$charIndex]))/$originalFont->getUnitsPerEm()*$fontSize;
    }
    ...

29.5.7. È­»óÀÇ Drawing

Zend_Pdf_Page Ŭ·¡½ºÀÇ drawImage() ¸Þ¼Òµå·Î, È­»óÀÇ Drawing¸¦ ½Ç½ÃÇÕ´Ï´Ù.


<?php
/**
 * ÆäÀÌÁö³»ÀÇ ÁöÁ¤ÇÑ À§Ä¡¿¡ È­»óÀ» Drawing ÇÕ´Ï´Ù.
 *
 * @param Zend_Pdf_Resource_Image $image
 * @param float $x1
 * @param float $y1
 * @param float $x2
 * @param float $y2
 */
public function drawImage(Zend_Pdf_Resource_Image $image$x1$y1$x2$y2);

È­»ó ¿ÀºêÁ§Æ®´Â,Zend_Pdf_Image::imageWithPath($filePath) ¸Þ¼Òµå·Î ÀÛ¼ºÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù (ÇöÀç´Â JPG,PNG ¹× TIFF È­»óÀ» ¼­Æ÷Æ®Çϰí ÀÖ½À´Ï´Ù).

·Ê 29.16. È­»óÀÇ Drawing


<?php
...
// È­»óÀ» ÀоîµéÀÔ´Ï´Ù
$image Zend_Pdf_Image::imageWithPath('my_image.jpg');

$pdfPage->drawImage($image100100400300);
...

Áß¿ä! JPEG ÀÇ ¼­Æ÷Æ®¿¡´Â PHP ÀÇ GD È®Àå ¸ðµâÀ» ÇÊ¿ä·Î ÇÕ´Ï´Ù. Áß¿ä! PNG ±×¸®°í ¾ËÆÄ ä³ÎÀ» »ç¿ëÇÑ È­»óÀ» Ãë±ÞÇÏ·Á¸é ,ZLIB È®Àå ¸ðµâÀ» ÇÊ¿ä·Î ÇÕ´Ï´Ù.

»ó¼¼ÇÑ Á¤º¸´Â,PHP ÀÇ ¹®¼­ (http://www.php.net/manual/ja/ref.image.php), (http://www.php.net/manual/ja/ref.zlib.php) (À»)¸¦ ÂüÁ¶ÇØ ÁֽʽÿÀ.

29.5.8. Á÷¼±ÀÇ Drawing ½ºÅ¸ÀÏ

Á÷¼±ÀÇ Drawing ½ºÅ¸ÀÏÀº, ¼±Æø°ú ¼±ÀÇ »ö, ±×¸®°í ÆÄ¼±ÀÇ ÆÐÅÏÀ¸·Î Á¤Àǵ˴ϴÙ. À̰͵éÀº ¸ðµÎ,Zend_Pdf_Page Ŭ·¡½ºÀÇ ¸Þ¼Òµå·Î ¼³Á¤ÇÕ´Ï´Ù.


<?php
/** ¼±ÀÇ »öÀ» ¼³Á¤ÇÕ´Ï´Ù.*/
public function setLineColor(Zend_Pdf_Color $color);

/** ¼±ÀÇ ÆøÀ» ¼³Á¤ÇÕ´Ï´Ù.*/
public function setLineWidth(float $width);

/**
 * ÆÄ¼±ÀÇ ÆÐÅÏÀ» ¼³Á¤ÇÕ´Ï´Ù.
 *
 * pattern ÇÏ float ÀÇ ¹è¿­ÀÔ´Ï´Ù: array(on_length, off_length, on_length, off_length, ...)
 * phase (Àº)´Â ¼±ÀÇ °³½Ã À§Ä¡·ÎºÎÅÍ À̵¿ÇÏ´Â °Å¸®ÀÔ´Ï´Ù.
 *
 * @param array $pattern
 * @param array $phase
 */
public function setLineDashingPattern($pattern$phase 0);

29.5.9. Ä¥ºÎ¼ö±âÀÇ ½ºÅ¸ÀÏ

Zend_Pdf_Page::drawRectangle(),Zend_Pdf_Page::drawPoligon(), Zend_Pdf_Page::drawCircle() ¹× Zend_Pdf_Page::drawEllipse() ¸Þ¼Òµå´Â, ¿É¼ÇÀÇ ÆÄ¶ó¹ÌÅͷμ­ $fillType (À»)¸¦ ¹Þ½À´Ï´Ù.À̰ÍÀº ÀÌÇÏÀÇ ¸î°³ÀÇ °ªÀÌ µË´Ï´Ù.

  • Zend_Pdf_Page::SHAPE_DRAW_STROKE - µµÇüÀÇ À±°ûÀ» Drawing ÇÕ´Ï´Ù

  • Zend_Pdf_Page::SHAPE_DRAW_FILL - µµÇüÀ» ÀüºÎ Ä¥ÇÒ »ÓÀÔ´Ï´Ù

  • Zend_Pdf_Page::SHAPE_DRAW_FILL_AND_STROKE - À±°ûÀ» Drawing ÇØ, ÀüºÎ Ä¥ÇÕ´Ï´Ù (µðÆúÆ®ÀÇ °Åµ¿ÀÔ´Ï´Ù)

Zend_Pdf_Page::drawPoligon() ¸Þ¼Òµå¿¡´Â, ÇÑÃþ ´õ ÆÄ¶ó¹ÌÅÍ $fillMethod (À»)¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.

  • Zend_Pdf_Page::FILL_METHOD_NON_ZERO_WINDING (µðÆúÆ®ÀÇ °Åµ¿)

    PDF ·¹ÆÛ·±½º ¿¡ ÀÇÇϸé, À̰ÍÀº ÀÌÇÏ¿Í °°ÀÌ Á¤Àǵǰí ÀÖ½À´Ï´Ù.

    nonzero winding number ·êÀº, ¾î´À Á¡ÀÌ ÆÐ½ºÀÇ ¾ÈÂÊ¿¡ ÀÖÀ»Áö¸¦ ÆÇ´ÜÇϱâ À§ÇØ, ±× Á¡À¸·ÎºÎÅÍ ¾îµò°¡ÀÇ ¹æÇâÀ¸·Î ¹æ»ç¼±À» ±×¾î ±× ¼±ÀÌ ÆÐ½º¸¦ ±¸¼ºÇÏ´Â ¼±°ú »ç±Í´Â Àå¼Ò¸¦ Á¶»çÇÕ´Ï´Ù. 0 (À¸)·ÎºÎÅÍ Ä«¿îÆ®¸¦ ½ÃÀÛÇØ ¹æ»ç¼±ÀÇ ¿ÞÂÊ¿¡¼­ ¿À¸¥ÂÊÀ¸·Î ÆÐ½ºÀÇ ¼±ÀÌ È¾´ÜÇßÀ» °æ¿ì¿¡ +1, ¹æ»ç¼±ÀÇ ¿À¸¥ÂÊ¿¡¼­ ¿ÞÂÊÀ¸·Î Ⱦ´ÜÇßÀ» °æ¿ì¿¡ -1 ÇÕ´Ï´Ù. ¸ðµç ±³Á¡¿¡ µµÂøÇØ Á¶»çÇÑ ÈÄ, ¸¸¾à °á°ú°¡ 0 (ÀÌ)¶ó¸é ±× Á¡Àº ÆÐ½ºÀÇ ¿ÜÃøÀÔ´Ï´Ù. 0 (ÀÌ)°¡ ¾Æ´Ï¸é ¾ÈÂÊÀÔ´Ï´Ù. ÁÖÀÇ: ÀÌ ¹æ½ÄÀ¸·Î´Â, ¹æ»ç¼±°ú ÆÐ½ºÀÇ ¼±ÀÌ µ¿ÀÏÇÏ°Ô µÇ¾úÀ» °æ¿ì³ª ¹æ»ç¼±ÀÌ ÆÐ½ºÀÇ ¼±ÀÇ Á¢¼±ÀÌ µÇ¾úÀ» °æ¿ì¸¦ ÁöÁ¤ÇØ ÀÖÁö ¾Ê½À´Ï´Ù. ¹æ»ç¼±Àº ÀÓÀÇÀÇ ¹æÇâÀ¸·Î ´Ã¸± ¼ö ÀÖÀ¸¹Ç·Î, ÀÌ·¯ÇÑ »óȲÀÌ µÇÁö ¾Ê´Â µíÇÑ ¹æ»ç¼±ÀÌ ¼±Åõ˴ϴÙ. ´Ü¼øÇÑ º¼·ÏÇÑ ¸ð¾çÀÇ ÆÐ½ºÀÇ °æ¿ì, ÀÌ ¹æ½ÄÀ¸·Î ÆÇ´ÜÇÑ ¾ÈÂÊ¡¤¿ÜÃøÀº, Á÷°¨ÀûÀ¸·Î ¿¹»óÇÒ ¼ö ÀÖ´Â °Í°ú °°Àº °á°ú°¡ µË´Ï´Ù. ´ÜÁö, ÆÐ½º¸¦ ±¸¼ºÇÏ´Â ¼±ÀÚ½ÅÀÌ »ç±Í°í ÀÖ´Â µîÀÇ º¹ÀâÇÑ ÆÐ½ºÀÇ °æ¿ì´Â, Èï¹Ì·Î¿î °á°ú°¡ µË´Ï´Ù.ÀÌ ¿¹¸¦,(PDF ·¹ÆÛ·±½ºÀÇ) µµ 4.10 ¿¡ ³ªÅ¸³À´Ï´Ù. 5 Ã¥ÀÇ Á÷¼±À» ¼­·Î ±³Â÷½ÃÄÑ ÀÛ¼ºÇÑ ¼ºÇüÀÇ °æ¿ì, ÀÌ ·ê¿¡¼­´Â ¼ºÇüÀ¸·Î µÑ·¯½ÎÀÌ´Â ¸ðµç ºÎºÐÀ» ÆÐ½ºÀÇ ¾ÈÂÊÀ¸·Î¼­ Ãë±ÞÇÕ´Ï´Ù.ÇѰ¡¿îµ¥ÀÇ 5°¢Çüµµ ¾ÈÂÊÀÌ µË´Ï´Ù.2 °³ÀÇ µ¿½É¿øÀ¸·ÎºÎÅÍ µÇ´Â ÆÐ½ºÀÇ °æ¿ì, 2 »ìÀÇ ¿£ÀÌ °°Àº ¹æÇâÀ¸·Î Drawing µÇ¾úÀ» ¶§¿¡´Â ¾çÂÊ ¸ðµÎÀÇ ¿£¿¡ µÑ·¯½Î¿© ÀÖ´Â ºÎºÐÀÌ ¾ÈÂÊÀÌ µË´Ï´Ù.2 »ìÀÇ ¿£ÀÌ ¹Ý´ë ¹æÇâÀ¸·Î Drawing µÇ¾úÀ» ¶§¿¡´Â,2 »ìÀÇ ¿£À¸·ÎºÎÅÍ µÈ´Ù ¡¸µµ³ÊÃ÷Çü¡¹ÀÇ ºÎºÐÀÌ ¾ÈÂÊÀÌ µË´Ï´Ù.ÀÌ ·êÀÇ °æ¿ì´Â, ¡¸µµ³ÊÃ÷ÀÇ ±¸¸Û¡¹ÀÇ ºÎºÐÀº ¿ÜÃøÀ̶ó°í ÇÏ´Â Ãë±ÞÀÌ µË´Ï´Ù.

  • Zend_Pdf_Const::FILLMETHOD_EVENODD

    PDF ·¹ÆÛ·±½º ¿¡ ÀÇÇϸé, À̰ÍÀº ÀÌÇÏ¿Í °°ÀÌ Á¤Àǵǰí ÀÖ½À´Ï´Ù.

    nonzero winding number ·ê¿¡ ´ëÇÑ ¶Ç ÇϳªÀÇ ·êÀÌ even-odd ·êÀÔ´Ï´Ù. ÀÌ ·ê¿¡¼­´Â, ¾î´À Á¡ÀÌ ¡¸¾ÈÂÊÀÌ´Ù¡¹È­µµÀÎÁö¸¦ ÆÇ´ÜÇÏ´Â Àç·á·Î¼­ ±× Á¡À¸·ÎºÎÅÍ ¾îµò°¡ÀÇ ¹æÇâÀ¸·Î ¹æ»ç¼±À» ±×¾î ±× ¼±ÀÌ ÆÐ½º¸¦ ±¸¼ºÇÏ´Â ¼±°ú ¸îȸ »ç±Ð±î ±×·¸´Ù°í ÇÏ´Â °ÍÀ» ÀÌ¿ëÇÕ´Ï´Ù.»ç±Í´Â ȸ¼ö°¡ Ȧ¼ö¿´´ø °æ¿ì, ±× Á¡Àº ¾ÈÂÊÀÔ´Ï´Ù. »ç±Í´Â ȸ¼ö°¡ ¦¼ö¿´´ø °æ¿ì, ±× Á¡Àº ¿ÜÃøÀÔ´Ï´Ù.´Ü¼øÇÑ ÆÐ½ºÀÇ °æ¿ì´Â, À̰ÍÀº nonzero winding number ·ê°ú °°Àº °á°ú°¡ µË´Ï´Ù. ±×·¯³ª, º¹ÀâÇÑ µµÇüÀÇ °æ¿ì´Â ´Ù¸¥ °á°ú°¡ µË´Ï´Ù. º¹ÀâÇÑ ÆÐ½º¿¡ ´ëÇØ¼­ even-odd ·êÀ» Àû¿ëÇßÀ» °æ¿ìÀÇ ¿¹¸¦ (PDF ·¹ÆÛ·±½ºÀÇ) µµ 4.11 ¿¡ ³ªÅ¸³À´Ï´Ù.ÀÌ ·êÀÇ °æ¿ì,5 Ã¥ÀÇ ±³Â÷ÇÏ´Â Á÷¼±À¸·ÎºÎÅÍ µÇ´Â ¼ºÇü¿¡¼­´Â, »ï°¢ÇüÀÇ ºÎºÐ¸¸ÀÌ ¾ÈÂÊÀ¸·Î¼­ ´Ù·ç¾îÁý´Ï´Ù.ÇѰ¡¿îµ¥ÀÇ 5°¢ÇüÀº, ¾ÈÂÊÀ̶ó°í´Â º¸ÀÌÁö ¾Ê½À´Ï´Ù. 2 °³ÀÇ µ¿½É¿øÀÇ °æ¿ì,2 »ìÀÇ ¿£À¸·ÎºÎÅÍ µÇ´Â ¡¸µµ³ÊÃ÷Çü¡¹ÀÇ ºÎºÐ¸¸ÀÌ ¾ÈÂÊÀ¸·Î¼­ ´Ù·ç¾îÁý´Ï´Ù. À̰ÍÀº, ¿£ÀÇ Drawing µÈ ¹æÇâÀ¸·Î ÀÇÁ¸ÇÏÁö ¾Ê½À´Ï´Ù.

29.5.10. ȸÀü

Drawing Á¶ÀÛÀ» Àû¿ëÇϱâ Àü¿¡,PDF ÀÇ ÆäÀÌÁö¸¦ ȸÀü½Ãų ¼ö ÀÖ½À´Ï´Ù. °Å±â¿¡´Â Zend_Pdf_Page::rotate() ¸Þ¼Òµå¸¦ »ç¿ëÇÕ´Ï´Ù.


<?php
/**
 * ($x, $y) (À»)¸¦ Áß½ÉÀ¸·Î ÇØ, ÁöÁ¤ÇÑ °¢µµ (¶óµð¾È) ¸¸ ȸÀüÇÕ´Ï´Ù.
 *
 * @param float $angle
 */
public function rotate($x$y$angle);

29.5.11. ±×·¡ÇÈ »óÅÂÀÇ º¸Á¸/º¹¿ø

ÁÁ¾ÆÇÏ´Â ½ÃÁ¡¿¡¼­ÀÇ ±×·¡ÇÈ »óÅ (ÇöÀçÀÇ ÆùÆ®, font size, ¼±ÀÇ »ö, Ä¥ºÎ¼ö±âÀÇ »ö, ¼±ÀÇ Çü½Ä, ÆäÀÌÁöÀÇ È¸Àü, Ŭ¸³ ¿µ¿ª) (À»)¸¦ º¸Á¸/º¹¿øÇÒ ¼ö ÀÖ½À´Ï´Ù. º¸Á¸ Á¶ÀÛÀº ±×·¡ÇÈ »óŸ¦ ½ºÅÿ¡ º¸Á¸ÇØ, º¹¿ø ½Ã¿¡´Â °Å±â·ÎºÎÅÍ ²¨³»Áý´Ï´Ù.

Zend_Pdf_Page Ŭ·¡½º¿¡´Â, ÀÌ·¯ÇÑ Á¶ÀÛÀ» ÇàÇϱâ À§ÇÑ 2 °³ÀÇ ¸Þ¼Òµå°¡ ÀÖ½À´Ï´Ù.


<?php
/**
 * ÀÌ ÆäÀÌÁöÀÇ ±×·¡ÇÈ »óŸ¦ º¸Á¸ÇÕ´Ï´Ù.
 * ÇöÀç Àû¿ëµÇ°í ÀÖ´Â ½ºÅ¸ÀÏ¡¤À§Ä¡¡¤Å¬¸³ ¿µ¿ª ¹×
 * È¸Àü/À̵¿/È®´ë Ãà¼ÒµîÀ» Á¤º¸¸¦ º¸Á¸ÇÕ´Ï´Ù.
 */
public function saveGS();

/**
 * ¹Ù·Î ¿·ÀÇ saveGS() ±×¸®°í º¸Á¸µÈ ±×·¡ÇÈ »óŸ¦ º¹¿øÇÕ´Ï´Ù.
 */
public function restoreGS();

29.5.12. Drawing ¿µ¿ªÀÇ Å¬¸®ÇÎ

PDF ¹× Zend_Pdf ¸ðµâÀº, Drawing ¿µ¿ªÀÇ Å¬¸®Çο¡ ´ëÀÀÇϰí ÀÖ½À´Ï´Ù. Drawing ¿¬»êÀÚ°¡ ¿µÇâÀ» ¹ÌÄ¡´Â ¹üÀ§¸¦, ÀÌ Å¬¸³ ¿µ¿ª³»¿¡ Á¦ÇÑÇÕ´Ï´Ù. Ŭ¸³ ¿µ¿ªÀÇ ÃʱâÄ¡´Â, ÆäÀÌÁö ÀüüÀÔ´Ï´Ù.

Zend_Pdf_Page Ŭ·¡½º¿¡¼­´Â, Ŭ¸®Çο¡ °ü·ÃÇÏ´Â ¸î°³ÀÇ ¸Þ¼Òµå¸¦ Á¦°øÇϰí ÀÖ½À´Ï´Ù.


<?php
/**
 * ±¸ÇüÀÇ Å¬¸³ ¿µ¿ªÀ» ¼³Á¤ÇÕ´Ï´Ù.
 *
 * @param float $x1
 * @param float $y1
 * @param float $x2
 * @param float $y2
 */
public function clipRectangle($x1$y1$x2$y2);

<?php
/**
 * ´Ù°¢ÇüÀÇ Å¬¸³ ¿µ¿ªÀ» ¼³Á¤ÇÕ´Ï´Ù.
 *
 * @param array $x  - float ÀÇ ¹è¿­ (Á¤Á¡ÀÇ X ÁÂÇ¥)
 * @param array $y  - float ÀÇ ¹è¿­ (Á¤Á¡ÀÇ Y ÁÂÇ¥)
 * @param integer $fillMethod
 */
public function clipPolygon($x$y$fillMethod Zend_Pdf_Page::FILL_METHOD_NON_ZERO_WINDING);

<?php
/**
 * ¿øÇüÀÇ Å¬¸³ ¿µ¿ªÀ» ¼³Á¤ÇÕ´Ï´Ù.
 *
 * @param float $x
 * @param float $y
 * @param float $radius
 * @param float $startAngle
 * @param float $endAngle
 */
public function clipCircle($x$y$radius$startAngle null$endAngle null);

<?php
/**
 * Å¸¿øÀÇ Å¬¸³ ¿µ¿ªÀ» ¼³Á¤ÇÕ´Ï´Ù.
 *
 * ¸Þ¼ÒµåÀÇ ¼­½Ä
 * drawEllipse($x1, $y1, $x2, $y2);
 * drawEllipse($x1, $y1, $x2, $y2, $startAngle, $endAngle);
 *
 * @todo $x2-$x1 == 0 (ÀÌ)³ª $y2-$y1 == 0 (¿Í)°ú °°ÀÌ Æ¯º°ÇÑ °æ¿ì¿¡ÀÇ ´ëÀÀ
 *
 * @param float $x1
 * @param float $y1
 * @param float $x2
 * @param float $y2
 * @param float $startAngle
 * @param float $endAngle
 */
public function clipEllipse($x1$y1$x2$y2$startAngle null$endAngle null);

29.5.13. ½ºÅ¸ÀÏ

Zend_Pdf_Style Ŭ·¡½º°¡ ½ºÅ¸ÀÏ¿¡ °üÇÑ ±â´ÉÀ» Á¦°øÇÕ´Ï´Ù.

½ºÅ¸ÀÏÀº, ±×·¡ÇÈ »óÅ¿¡ °üÇÑ º¹¼öÀÇ ¼³Á¤À» º¸Á¸ÇØ, PDF ÀÇ ÆäÀÌÁö¿¡ 1 ȸÀÇ Á¶ÀÛÀ¸·Î ±×°ÍÀ» Àû¿ëÇϱâ À§Çؼ­ »ç¿ëµË´Ï´Ù.


<?php
/**
 * ÀÌ ÆäÀÌÁöÀÇ Drawing Á¶ÀÛÀ¸·Î »ç¿ëÇÒ ¿¹Á¤ÀÇ ½ºÅ¸ÀÏÀ» ¼³Á¤ÇÕ´Ï´Ù.
 *
 * @param Zend_Pdf_Style $style
 */
public function setStyle(Zend_Pdf_Style $style);

/**
 * ½ºÅ¸ÀÏÀ» µ¹·ÁÁÖ¾î, ±×°ÍÀ» ÆäÀÌÁö¿¡ Àû¿ëÇÕ´Ï´Ù.
 *
 * @return Zend_Pdf_Style|null
 */
public function getStyle();

Zend_Pdf_Style Ŭ·¡½º¿¡¼­´Â, ´Ù¾çÇÑ ±×·¡ÇÈ »óŸ¦ ¼³Á¤ ȤÀº ÃëµæÇϱâ À§ÇÑ ¸Þ¼Òµå°¡ Á¦°øµÇ°í ÀÖ½À´Ï´Ù.


<?php
/**
 * ¼±ÀÇ »öÀ» ¼³Á¤ÇÕ´Ï´Ù.
 *
 * @param Zend_Pdf_Color $color
 */
public function setLineColor(Zend_Pdf_Color $color);

<?php
/**
 * ¼±ÀÇ »öÀ» ÃëµæÇÕ´Ï´Ù.
 *
 * @return Zend_Pdf_Color|null
 */
public function getLineColor();

<?php
/**
 * ¼±ÀÇ ÆøÀ» ¼³Á¤ÇÕ´Ï´Ù.
 *
 * @param float $width
 */
public function setLineWidth($width);

<?php
/**
 * ¼±ÀÇ ÆøÀ» ÃëµæÇÕ´Ï´Ù.
 *
 * @return float
 */
public function getLineWidth();

<?php
/**
 * ÆÄ¼±ÀÇ ÆÐÅÏÀ» ¼³Á¤ÇÕ´Ï´Ù.
 *
 * @param array $pattern
 * @param float $phase
 */
public function setLineDashingPattern($pattern$phase 0);

<?php
/**
 * ÆÄ¼±ÀÇ ÆÐÅÏÀ» ÃëµæÇÕ´Ï´Ù.
 *
 * @return array
 */
public function getLineDashingPattern();

<?php
/**
 * ÆÄ¼±ÀÇ À§»óÀ» ÃëµæÇÕ´Ï´Ù.
 *
 * @return float
 */
public function getLineDashingPhase();

<?php
/**
 * ÀüºÎ Ä¥ÇØ »öÀ» ¼³Á¤ÇÕ´Ï´Ù.
 *
 * @param Zend_Pdf_Color $color
 */
public function setFillColor(Zend_Pdf_Color $color);

<?php
/**
 * ÀüºÎ Ä¥ÇØ »öÀ» ÃëµæÇÕ´Ï´Ù.
 *
 * @return Zend_Pdf_Color|null
 */
public function getFillColor();

<?php
/**
 * ÇöÀçÀÇ ÆùÆ®¸¦ ¼³Á¤ÇÕ´Ï´Ù.
 *
 * @param Zend_Pdf_Resource_Font $font
 * @param float $fontSize
 */
public function setFont(Zend_Pdf_Resource_Font $font$fontSize);

<?php
/**
 * ÇöÀçÀÇ font size¸¦ º¯°æÇÕ´Ï´Ù.
 *
 * @param float $fontSize
 */
public function setFontSize($fontSize);

<?php
/**
 * ÇöÀçÀÇ ÆùÆ®¸¦ ÃëµæÇÕ´Ï´Ù.
 *
 * @return Zend_Pdf_Resource_Font $font
 */
public function getFont();

<?php
/**
 * ÇöÀçÀÇ font sizeÀ» ÃëµæÇÕ´Ï´Ù.
 *
 * @return float $fontSize
 */
public function getFontSize();