您需要先安装libharu才能使用PECL/haru。PECL/haru是用libharu 2.0.8测试的,旧版本可能对您有用,也可能不适用。PECL/haru还需要PHP 5.1.3或更新版本。
haru基础用法例子
Example #1 Fancy "Hello world"
<?php
$doc = new HaruDoc;
$doc->setPageMode(HaruDoc::PAGE_MODE_USE_THUMBS); /* show thumbnails */
$page = $doc->addPage(); /* add page to the document */
$page->setSize(HaruPage::SIZE_A4, HaruPage::LANDSCAPE); /* set the page to use A4 landscape format */
$courier = $doc->getFont("Courier-Bold"); /* we'll use the bundled font a few lines below */
$page->setRGBStroke(0, 0, 0); /* set colors */
$page->setRGBFill(0.7, 0.8, 0.9);
$page->rectangle(150, 150, 550, 250); /* draw a rectangle */
$page->fillStroke(); /* fill and stroke it */
$page->setDash(array(3, 3), 0); /* set dash style for lines at this page */
$page->setFontAndSize($courier, 60); /* set font and size */
$page->setRGBStroke(0.5, 0.5, 0.1); /* set line color */
$page->setRGBFill(1, 1, 1); /* set filling color */
$page->setTextRenderingMode(HaruPage::FILL_THEN_STROKE); /* fill and stroke text */
/* print the text */
$page->beginText();
$page->textOut(210, 270, "Hello World!");
$page->endText();
$doc->save("/tmp/test.pdf"); /* save the document into a file */
?>
Builtin Encodings
| Name | Description |
|---|---|
| StandardEncoding | The default encoding of PDF. |
| MacRomanEncoding | The standard encoding of Mac OS. |
| WinAnsiEncoding | The standard encoding of Windows. |
| FontSpecific | The font built-in encoding. |
| ISO8859-2 | Latin2 (East European) |
| ISO8859-3 | Latin3 (South European) |
| ISO8859-4 | Latin4 (North European) |
| ISO8859-5 | Cyrillic |
| ISO8859-6 | Arabic |
| ISO8859-7 | Greek |
| ISO8859-8 | Hebrew |
| ISO8859-9 | Latin5 (Turkish) |
| ISO8859-10 | Latin6 (Nordic) |
| ISO8859-11 | Thai |
| ISO8859-13 | Latin7 (Baltic Rim) |
| ISO8859-14 | Latin8 (Celtic) |
| ISO8859-15 | Latin9 |
| ISO8859-16 | Latin10 |
| CP1250 | MS Windows Codepage 1250. |
| CP1251 | MS Windows Codepage 1251. |
| CP1252 | MS Windows Codepage 1252. |
| CP1253 | MS Windows Codepage 1253. |
| CP1254 | MS Windows Codepage 1254. |
| CP1255 | MS Windows Codepage 1255. |
| CP1256 | MS Windows Codepage 1256. |
| CP1257 | MS Windows Codepage 1257. |
| CP1258 | MS Windows Codepage 1258. |
| KOI8-R | Cyrillic character set. |
| Name | Description |
|---|---|
| GB-EUC-H | EUC-CN encoding. |
| GB-EUC-V | Vertical writing version of GB-EUC-H. |
| GBK-EUC-H | Microsoft Code Page 936 (lfCharSet 0x86) GBK encoding. |
| GBK-EUC-V | Vertical writing version of GBK-EUC-H. |
| ETen-B5-H | Microsoft Code Page 950 (lfCharSet 0x88) Big Five character set with ETen extensions. |
| ETen-B5-V | Vertical writing version of ETen-B5-H. |
| 90ms-RKSJ-H | Microsoft Code Page 932, JIS X 0208 character. |
| 90ms-RKSJ-V | Vertical writing version of 90ms-RKSJ-V. |
| 90msp-RKSJ-H | Microsoft Code Page 932, JIS X 0208 character (proportional). |
| EUC-H | JIS X 0208 character set, EUC-JP encoding. |
| EUC-V | Vertical writing version of EUC-H. |
| KSC-EUC-H | KS X 1001:1992 character set, EUC-KR encoding. |
| KSC-EUC-V | Vertical writing version of KSC-EUC-V. |
| KSCms-UHC-H | Microsoft Code Page 949 (lfCharSet 0x81), KS X 1001:1992 character set plus 8822 additional hangul, Unified Hangul Code (UHC) encoding (proportional). |
| KSCms-UHC-HW-H | Microsoft Code Page 949 (lfCharSet 0x81), KS X 1001:1992 character set plus 8822 additional hangul, Unified Hangul Code (UHC) encoding (fixed width). |
| KSCms-UHC-HW-V | Vertical writing version of KSCms-UHC-HW-H. |
HaruException类
HaruException extends Exception
{
/* Inherits */
final public Exception::getMessage ( void ) : string
final public Exception::getPrevious ( void ) : Throwable
final public Exception::getCode ( void ) : int
final public Exception::getFile ( void ) : string
final public Exception::getLine ( void ) : int
final public Exception::getTrace ( void ) : array
final public Exception::getTraceAsString ( void ) : string
public Exception::__toString ( void ) : string
final private Exception::__clone ( void ) : void
}
HaruDoc类
HaruDoc
{
/* 方法 */
addPage ( void ) : object
addPageLabel ( int $first_page , int $style , int $first_num [, string $prefix = "" ] ) : bool
__construct ( void )
createOutline ( string $title [, object $parent_outline [, object $encoder ]] ) : object
getCurrentEncoder ( void ) : object
getCurrentPage ( void ) : object
getEncoder ( string $encoding ) : object
getFont ( string $fontname [, string $encoding ] ) : object
getInfoAttr ( int $type ) : string
getPageLayout ( void ) : int
getPageMode ( void ) : int
getStreamSize ( void ) : int
insertPage ( object $page ) : object
loadJPEG ( string $filename ) : object
loadPNG ( string $filename [, bool $deferred = FALSE ] ) : object
loadRaw ( string $filename , int $width , int $height , int $color_space ) : object
loadTTC ( string $fontfile , int $index [, bool $embed = FALSE ] ) : string
loadTTF ( string $fontfile [, bool $embed = FALSE ] ) : string
loadType1 ( string $afmfile [, string $pfmfile ] ) : string
output ( void ) : bool
readFromStream ( int $bytes ) : string
resetError ( void ) : bool
resetStream ( void ) : bool
save ( string $file ) : bool
saveToStream ( void ) : bool
setCompressionMode ( int $mode ) : bool
setCurrentEncoder ( string $encoding ) : bool
setEncryptionMode ( int $mode [, int $key_len = 5 ] ) : bool
setInfoAttr ( int $type , string $info ) : bool
setInfoDateAttr ( int $type , int $year , int $month , int $day , int $hour , int $min , int $sec , string $ind , int $off_hour , int $off_min ) : bool
setOpenAction ( object $destination ) : bool
setPageLayout ( int $layout ) : bool
setPageMode ( int $mode ) : bool
setPagesConfiguration ( int $page_per_pages ) : bool
setPassword ( string $owner_password , string $user_password ) : bool
setPermission ( int $permission ) : bool
useCNSEncodings ( void ) : bool
useCNSFonts ( void ) : bool
useCNTEncodings ( void ) : bool
useCNTFonts ( void ) : bool
useJPEncodings ( void ) : bool
useJPFonts ( void ) : bool
useKREncodings ( void ) : bool
useKRFonts ( void ) : bool
}
