The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl

use File::Basename;
use PDF::API2;
use PDF::API2::Util;
use Unicode::UCD 'charinfo';
use Encode qw[:all];
use Getopt::Long;
use PDF::API2::UniWrap;
use utf8;

#-----------------------------------------
package PDF::API2::UniWrap;

sub char_length {
    my $self=shift if ref($_[0]);
    my ($c) = @_;

    #if ($c eq 'CM' || $c eq 'ZW') {
    #    return 0;
    #}
    if(defined $self && defined $self->{widthobj}) 
    {
        return $self->{widthobj}->width($c);
    } 

    return 1;
}

#-----------------------------------------
package main;

$uw = PDF::API2::UniWrap->new(line_length=>50, emergency_break=>50);

$api=PDF::API2->new();

$api->mediabox(595,842);

$helv=$api->corefont('Helvetica-Bold',-encode=>'latin1');

$times=$api->corefont('Times-Roman',-encode=>'latin1');
$time2=$api->synfont($times,-slant=>1.3);
$treb=$api->corefont('Trebuchet-Italic',-encode=>'latin1');
$tre2=$api->synfont($treb,-slant=>1.1,-space=>60);
$georg=$api->corefont('Georgia-Italic',-encode=>'latin1');

$jfs=$api->cjkfont( 'KozMin', -encode=>'shiftjis' );
$jf1=$api->cjkfont( 'KozMin-Bold', -encode=>'shiftjis' );
$jf2=$api->cjkfont( 'KozGo-Italic', -encode=>'shiftjis' );

$uf=$api->unifont($jf1,[$time2,[0]], -encode=>'shiftjis');
$u2=$api->unifont($jf2,[$tre2,[0]], -encode=>'shiftjis');
$u3=$api->unifont($jf2,{ font=>$georg, blocks=>[0] }, -encode=>'shiftjis');

$start=tell(DATA);

q|    Ming Ming-Bold Ming-Italic Ming-BoldItalic
    Song Song-Bold Song-Italic Song-BoldItalic
    MyungJo MyungJo-Bold MyungJo-Italic MyungJo-BoldItalic
    KozMin KozMin-Bold KozMin-Italic KozMin-BoldItalic
    KozGo KozGo-Bold KozGo-Italic KozGo-BoldItalic|;

%fonts=(
'KozMin'=>$jfs,
'KozMin-Bold + Times'=>$uf,
'KozGo-Italic + Trebuchet-Italic'=>$u2,
'KozGo-Italic + Georgia-Italic'=>$u3
);


foreach my $fontname ('KozMin','KozMin-Bold + Times','KozGo-Italic + Trebuchet-Italic','KozGo-Italic + Georgia-Italic')
{
    $y=800;

    $page = $api->page;
    $gfx = $page->gfx;
    delete $gfx->{Filter};
    my $font=$fonts{$fontname};
    $uw->{widthobj}=$font;

    seek(DATA,$start,0);
    binmode(DATA,':raw');

    $gfx->textlabel(50,$y,$helv,10,$fontname,-color=>'darkred');
    foreach (1..45)
    {
	$y-=15;
	$line=<DATA>;
	$line=~s|[\012\015]+$||go;
	$gfx->textlabel(50,$y,$font,10,$line,-hspace=>80);
    }
}

$api->saveas("$0.pdf");
$api->end;

__END__
PDFJ - “ú–{ŒêPDF¶¬ƒ‚ƒWƒ…[ƒ‹

=head1 SYNOPSIS

  use PDFJ qw(SJIS);
  $doc = PDFJ::Doc->new($pdfversion, $paperwidth, $paperheight);
  $font = $doc->new_font('Ryumin-Light', '90ms-RKSJ-H', 'Times-Roman');
  $page = $doc->new_page;
  $text = Text("ƒeƒLƒXƒg", TStyle(font => $font, fontsize => 10));
  $paragraph = Paragraph($text, PStyle(size => 100, align => 'w', linefeed => 20));
  $image = $doc->new_image($jpgfile, $pixelwidth, $pixelheight, $width, $height);
  $shape = Shape->ellipse($x, $y, $rx, $ry);
  $block = Block('V', $paragraph, $image, $shape, BStyle(align => 'c'));
  $block->show($page, $x, $y);
  $doc->print('sample.pdf');

=head1 DESCRIPTION

=head2 ŠT—v

‚±‚̃‚ƒWƒ…[ƒ‹‚Í“ú–{ŒêPDF‚𐶐¬‚·‚éBŽŸ‚̂悤‚È“Á’¥‚ª‚ ‚éB

=over 4

=item *

JIS X 4051u“ú–{Œê•¶‘‚̍s‘g”Å•û–@vi1995j‚ɂقڏ€‹’‚µ‚½s‘g”Ń‹[ƒ‹‚ð‘g‚ݍž‚ñ‚Å‚ ‚èA‹Ö‘¥‚âs‚Ì‹l‚ߐL‚΂µ‚Í‚±‚̃‚ƒWƒ…[ƒ‹‚É”C‚¹‚邱‚Æ‚ª‚Å‚«‚éB

=item *

ƒ‹ƒrA“Y‚¦ŽšAc‘‚«’†‚̉¢•¶Ac’†‰¡A‰¢•¶‚̃nƒCƒtƒl[ƒVƒ‡ƒ“A‰ºüE–TüAŒ—“_A–ÔŠ|‚¯‚Æ‚¢‚Á‚½‘g”ŏˆ—‚à‚±‚̃‚ƒWƒ…[ƒ‹‚É”C‚¹‚邱‚Æ‚ª‚Å‚«‚éB

=item *

Type1ƒtƒHƒ“ƒg‚ł́A˜a•¶‚ÉRyumin-Light‚ÆGothicBBB-MediumA‰¢•¶‚ÉTimesAHelveticaACourier‚ÌŠeƒtƒ@ƒ~ƒŠ‚ªŽg‚¦‚éB‚±‚ê‚ç‚̓tƒHƒ“ƒgŽ©‘Ì‚Í–„‚ߍž‚Ü‚ê‚È‚¢‚̂ŁAƒRƒ“ƒpƒNƒg‚ÈPDF‚ðì‚ê‚éB‚½‚¾‚µ•\Ž¦EˆóüŠÂ‹«‚É‚»‚̃tƒHƒ“ƒg‚ª‚È‚¢‚Æ‘ã‘ÖƒtƒHƒ“ƒg‚Æ‚È‚éB

=item *

”CˆÓ‚ÌTrueTypeƒtƒHƒ“ƒg‚ðŽg‚¤‚±‚Æ‚à‚Å‚«‚éBTrueTypeƒtƒHƒ“ƒg‚Í–„‚ߍž‚Ü‚ê‚éi˜a•¶‚ɂ‚¢‚Ă̓TƒuƒZƒbƒg‚Łj‚̂ŁAŽáŠ±PDF‚̃TƒCƒY‚ª‘å‚«‚­‚Ȃ邪A‚Ç‚ñ‚Ȋ‹«‚Å‚à“¯‚¶‚悤‚É•\Ž¦Eˆóü‚Å‚«‚éB

=item *

‰¢•¶‚ɁAŒÅ’èƒsƒbƒ`‚Ì”¼ŠpƒtƒHƒ“ƒg‚ðŽg‚¤‚±‚Æ‚àAƒvƒƒ|[ƒVƒ‡ƒiƒ‹‚ȉ¢•¶ƒtƒHƒ“ƒg‚ðŽg‚¤‚±‚Æ‚à‚Å‚«‚éB

=item *

“ú–{Œê•¶ŽšƒR[ƒh‚Æ‚µ‚ẮAƒVƒtƒgJISA“ú–{ŒêEUCAUTF8AUnicode‚ɑΉž‚µ‚Ä‚¢‚éB

=item *

JPEG‰æ‘œiƒtƒ@ƒCƒ‹‚¨‚æ‚ÑURLŽw’èj‚Ɛü‰æ}Œ`‚ªˆµ‚¦‚éB‰æ‘œ‚â}Œ`‚ðƒeƒLƒXƒg‚̈ꕔ‚Æ‚µ‚čs“à‚É”z’u‚·‚邱‚Æ‚à‰Â”\B‹t‚ɐü‰æ}Œ`‚Ì’†‚ɃeƒLƒXƒg‚â‰æ‘œ‚ð”z’u‚·‚邱‚Æ‚à‚Å‚«‚éB

=item *

ƒeƒLƒXƒg‚ðs’·‚ƍs‘—‚è‚ðŽw’肵‚Đ܂è•Ô‚µˆ—‚µA’i—Ž‚ðì‚邱‚Æ‚ª‚Å‚«‚éB’i—Ž‚É‚Í‰Óð‘‚«‚Ì‚½‚߂̃‰ƒxƒ‹‚ð•t‚¯‚邱‚Æ‚ª‚Å‚«‚é

=item *

’i—ŽA‰æ‘œA}Œ`‚È‚Ç‚ð•À‚ׂăuƒƒbƒN‚Æ‚¢‚¤‚Ü‚Æ‚Ü‚è‚ðì‚邱‚Æ‚ª‚Å‚«‚éBƒuƒƒbƒN‚ɂ́A“à—e‚Ì”z’uAŽüˆÍ‚Ì—]”’A˜güA“h‚è‚‚ԂµF‚È‚Ç‚ðŽw’è‚Å‚«‚éBƒuƒƒbƒN“à‚Ì•À‚Ñ‚Ì•ûŒü‚Æ‚µ‚āAã¨‰ºA¶¨‰EA‰E¨¶‚ª‚ ‚éBƒuƒƒbƒN‚ð“ü‚êŽq‚É‚·‚邱‚Æ‚Å•\‚ðì‚邱‚Æ‚ª‚Å‚«‚éB

=item *

’i—Ž‚âƒuƒƒbƒN‚ðŽw’è‚Ì‘å‚«‚³‚ð’´‚¦‚È‚¢‚悤‚É•ªŠ„‚µ‚āA•¡”‚̃y[ƒW‚É•ª‚¯‚Ä•\Ž¦‚·‚邱‚Æ‚ª‚Å‚«‚éB

=item *

PDF‚Ì•¶‘î•ñAƒAƒEƒgƒ‰ƒCƒ“î•ñAƒnƒCƒp[ƒŠƒ“ƒNi•¶‘“à‚¨‚æ‚ÑURLj‚ð•t‰Á‚Å‚«‚éB

=item *

ˆÃ†‰»‚ª‚Å‚«‚éB

=back

=head2 •\Ž¦‰Â”\‚ȃIƒuƒWƒFƒNƒg

PDFJ‚Å‚ÍŽŸ‚Ì•\Ž¦‰Â”\‚ȍ\¬—v‘f‚ɑΉž‚·‚éƒIƒuƒWƒFƒNƒg‚ð‘g‚ݍ‡‚킹‚ÄPDF•¶‘‚ðì¬‚·‚éB‚±‚ê‚ç‚݂͂ȁAshow‚Æ‚¢‚¤ƒƒ\ƒbƒh‚Ńy[ƒWã‚Ɉʒu‚ðŽw’肵‚Ä•\Ž¦‚·‚邱‚Æ‚ª‚Å‚«‚éBshowƒƒ\ƒbƒh‚Ì‹ï‘Ì“I‚ÈŽg‚¢•û‚ɂ‚¢‚Ä‚ÍŒãq‚·‚éB

=over 4

=item ƒeƒLƒXƒgiPDFJ::Textj

Žw’è‚Ì•¶Žš—ñ‚ðAŽw’è‚̃tƒHƒ“ƒg‚âƒTƒCƒY‚È‚Ç‚Ì‘®«‚ɏ]‚Á‚Ä•\Ž¦‚·‚é‚à‚́BƒtƒHƒ“ƒg‚̃Gƒ“ƒR[ƒfƒBƒ“ƒO‚ªH‚Å‚ ‚ê‚΍¶‚©‚ç‰E‚Ö‰¡‘‚«‚ŁAV‚Å‚ ‚ê‚Ώォ‚牺‚֏c‘‚«‚Å•\Ž¦‚³‚ê‚éB

ƒ‹ƒrA“Y‚¦ŽšAc’†‰¡A‰ºüE–TüAŒ—“_AˆÍ‚Ý‚Æ‚¢‚Á‚½‘®«‚ÌŽw’肪‚Å‚«‚éB

ƒeƒLƒXƒgŽ©‘̂ɂ͍s’·‚âs‘—‚è‚Æ‚¢‚Á‚½‘®«‚Í‚È‚­AÜ‚è•Ô‚µ‚Ä•\Ž¦‚³‚ê‚邱‚Æ‚Í‚È‚¢B

•¶Žš‚¾‚¯‚Å‚È‚­A•\Ž¦‰Â”\‚ȃIƒuƒWƒFƒNƒg‚ðŠÜ‚Þ‚±‚Æ‚ª‚Å‚«‚éB

=item ’i—ŽiPDFJ::Paragraphj

ƒeƒLƒXƒg‚ɑ΂µ‚čs’·‚ƍs‘—‚è‚Æ”z’u‚ðŽw’肵‚čs‚̐܂è•Ô‚µ‚ð‚¨‚±‚È‚¢A‚ЂƂ‚̒i—Ž‚Æ‚µ‚Ä•\Ž¦‚·‚é‚à‚́Bs‚̐܂è•Ô‚µ‚É”º‚¤A‹Ö‘¥ˆ—AƒnƒCƒtƒl[ƒVƒ‡ƒ“As‚Ì‹l‚ߐL‚΂µ‚ÍŽ©“®“I‚ɏˆ—‚³‚ê‚éB

‚Ü‚½ƒeƒLƒXƒg‚ɂ́A•¶Žš‚¾‚¯‚Å‚È‚­‰æ‘œ‚â}Œ`‚ð‚ЂƂ‚̕¶Žš‚̂悤‚Ɉµ‚Á‚ÄŠÜ‚Þ‚±‚Æ‚à‚Å‚«‚éB

s“ªAs––‚̃Cƒ“ƒfƒ“ƒgAæ“ªs‚ɂ‚¯‚郉ƒxƒ‹‚ðŽw’è‚·‚邱‚Æ‚à‚Å‚«‚éB

’i—Ž‚Ì‘OŒã‚ÌŠÔŠu‚ðŽw’è‚·‚邱‚Æ‚ª‚Å‚«‚éB‚±‚ÌŠÔŠu‚Í’i—Ž‚ð•À‚ׂăuƒƒbƒN‚ðì‚éÛ‚É“K—p‚³‚ê‚éB

=item ‰æ‘œiPDFJ::Imagej

JPEGŒ`Ž®‚ŁAƒtƒ@ƒCƒ‹‚É•Û‘¶‚³‚ê‚Ä‚¢‚é‚à‚Ì‚©AURL‚ÅŽQÆ‚Å‚«‚é‰æ‘œ‚Ì‚Ý‚ªˆµ‚¦‚éBŒ³‚̃sƒNƒZƒ‹ƒTƒCƒY‚Æ‚ÍŠÖŒW‚È‚­Žw’è‚Ì‘å‚«‚³‚Å•\Ž¦‚Å‚«‚éB

ŽüˆÍ‚Ì—]”’‚ðŽw’è‚·‚邱‚Æ‚à‚Å‚«‚éB

=item }Œ`iPDFJ::Shapej

’¼üA‹éŒ`A‘½ŠpŒ`A‰~A‘ȉ~AƒxƒWƒG‹Èü‚ð‘g‚ݍ‡‚킹‚Đ}Œ`‚ðì¬‚µA•\Ž¦‚Å‚«‚éBü‚Ì—L–³A‘¾‚³AFA“_üA“h‚è‚‚Ԃµ‚Ì—L–³AF‚Æ‚¢‚Á‚½‘®«‚ªŽw’è‚Å‚«‚éB

}Œ`“à‚ɃeƒLƒXƒg‚ð”z’u‚·‚邱‚Æ‚à‚Å‚«‚éB

ŽüˆÍ‚Ì—]”’‚ðŽw’è‚·‚邱‚Æ‚à‚Å‚«‚éB

=item ƒuƒƒbƒNiPDFJ::Blockj

•\Ž¦‰Â”\‚ȃIƒuƒWƒFƒNƒg‚ð“Á’è‚Ì•ûŒü‚É•À‚ׂĂЂƂ܂Ƃ߂ɂµ‚½‚à‚́B•ûŒü‚Æ‚µ‚ẮAHi¶¨‰EjARi‰E¨¶jAViã¨‰ºj‚ÌŽOŽí—Þ‚ª‚ ‚éB‘S‘Ì‚Ì•‚⍂‚³‚ðŽw’肵‚Ä“à—e‚Ì”z’u‚ðŽw’è‚·‚邱‚Æ‚à‚Å‚«‚éB“à—e‚Ì”z’u‚́A¶‰E•ûŒü‚ɁAli¶jAci’†‰›jAri‰EjAã‰º•ûŒü‚ɁAtiãjAmi’†‰›jAbi‰ºj‚ð‘g‚ݍ‡‚킹‚ÄŽw’è‚·‚éB‚½‚¾‚µA‘S‘Ì‚Ì•‚⍂‚³‚Í“à—e‚É‚æ‚Á‚ÄŒˆ‚܂镝‚⍂‚³‚æ‚菬‚³‚­‚Í‚Å‚«‚È‚¢B

ƒIƒuƒWƒFƒNƒg‚É‘OŒã‚ÌŠÔŠu‚ÌŽw’肪‚ ‚ê‚΁A‚»‚ê‚ɏ]‚Á‚ÄŠÔŠu‚ª‹ó‚¯‚ç‚ê‚éB‚Ü‚½A’¼Ú”’l‚ÅŠÔŠu‚ðŽw’è‚·‚邱‚Æ‚à‚Å‚«‚éB

ƒuƒƒbƒN‚ɂ́AŽüˆÍ‚Ì—]”’A˜güA“h‚è‚‚ԂµF‚ðŽw’è‚·‚邱‚Æ‚ª‚Å‚«‚éB

ƒuƒƒbƒN‚ð“ü‚êŽq‚É‚·‚邱‚ƂŁA•\‚ðì‚邱‚Æ‚ª‚Å‚«‚éB

=back

=head2 ‚»‚Ì‘¼‚̃IƒuƒWƒFƒNƒg

‚»‚Ì‘¼‚ÉŽŸ‚̂悤‚ȃIƒuƒWƒFƒNƒg‚ªA•\Ž¦‰Â”\‚ȃIƒuƒWƒFƒNƒg‚Æ‚Æ‚à‚ÉŽg—p‚³‚ê‚éB

=over 4

=item ƒtƒHƒ“ƒgiPDFJ::AFontAPDFJ::CIDFontj

ƒtƒHƒ“ƒg‚ÍType1ƒtƒHƒ“ƒg‚ł́A˜a•¶‚ÉRyumin-Light‚ÆGothicBBB-MediumA‰¢•¶‚ÉTimesAHelveticaACourier‚ÌŠeƒtƒ@ƒ~ƒŠ‚ªŽg‚¦‚éBTrueTypeƒtƒHƒ“ƒg‚Í”CˆÓ‚Ì‚à‚Ì‚ªŽg‚¦‚éB‚½‚¾‚µPDF‚É–„‚ߍž‚Ü‚ê‚é‚̂ŁA–„‚ߍž‚Ý‚ª‹–‰Â‚³‚ꂽTrueTypeƒtƒHƒ“ƒg‚Å‚È‚¯‚ê‚΂Ȃç‚È‚¢B

˜a•¶ƒtƒHƒ“ƒg‚¾‚¯‚ðŽw’肵‚½ƒeƒLƒXƒg‚ɉ¢•¶‚ªŒ»‚ꂽ‚Æ‚«‚ɂ́A˜a•¶ƒtƒHƒ“ƒg‚Ì”¼Šp•¶Žši•¶Žš•‚Í”¼ŠpŒÅ’èj‚ªŽg‚í‚ê‚邪A‘g‚ݍ‡‚킹‚鉢•¶ƒtƒHƒ“ƒg‚ðŽw’肵‚Ä‚¨‚­‚Æ‚»‚̉¢•¶ƒtƒHƒ“ƒg‚ªŽg‚í‚ê‚éBƒvƒƒ|[ƒVƒ‡ƒiƒ‹‚Șa•¶ƒtƒHƒ“ƒg‚ɂ͑Ήž‚µ‚Ä‚¢‚È‚¢B

c‘‚«—pƒGƒ“ƒR[ƒfƒBƒ“ƒOiVj‚ðŽw’肵‚½˜a•¶ƒtƒHƒ“ƒg‚ðŽw’è‚·‚é‚ƁA‚»‚̃eƒLƒXƒg‚͏c‘‚«‚Æ‚È‚éB

=item ƒeƒLƒXƒgƒXƒ^ƒCƒ‹iPDFJ::TextStylej

ƒtƒHƒ“ƒgAƒtƒHƒ“ƒgƒTƒCƒYA•¶Žš•`‰æƒ‚[ƒhAƒx[ƒXƒ‰ƒCƒ“’²®AŽÎ‘́A‰ºüic‘‚«‚Å‚Í–TüjAˆÍ‚Ý” AŒ—“_A“Y‚¦ŽšiãE‰ºjAƒ‹ƒrA–T’A}Œ`ƒXƒ^ƒCƒ‹A‚ªŽw’è‚Å‚«‚éB

•¶Žš•`‰æƒ‚[ƒh‚́A•¶Žš‚̘gü‚Æ“h‚è‚‚Ԃµ‚Ì‘g‚ݍ‡‚킹‚ÌŽw’èB}Œ`ƒXƒ^ƒCƒ‹‚́A•¶Žš•`‰æA‰ºüE–TüAˆÍ‚Ý” ‚É‚¨‚¯‚é}Œ`ƒXƒ^ƒCƒ‹‚ÌŽw’èB

=item ’i—ŽƒXƒ^ƒCƒ‹iPDFJ::ParagraphStylej

s’·A‘µ‚¦As‘—‚èAƒ‰ƒxƒ‹Aƒ‰ƒxƒ‹’·As“ªƒCƒ“ƒfƒ“ƒgAs––ƒCƒ“ƒfƒ“ƒgA‘OŠÔŠuAŒãŠÔŠuA‚ªŽw’è‚Å‚«‚éB

‘µ‚¦‚Æ‚µ‚ẮAbis“ª‘µ‚¦jAmi’†‰›‘µ‚¦jAeis––‘µ‚¦jAwi—¼’[‘µ‚¦j‚ª‚ ‚éB

=item ƒuƒƒbƒNƒXƒ^ƒCƒ‹iPDFJ::BlockStylej

•A‚‚³A‘µ‚¦A‘µ‚¦ƒtƒ‰ƒOAŽüˆÍ—]”’A˜güA“h‚è‚‚ԂµFA‘OŠÔŠuAŒãŠÔŠuA‚ªŽw’è‚Å‚«‚éB

=item }Œ`ƒXƒ^ƒCƒ‹iPDFJ::ShapeStylej

ü•A“_üAüFA“h‚è‚‚ԂµFAŽüˆÍ—]”’A‘OŠÔŠuAŒãŠÔŠuA‚ªŽw’è‚Å‚«‚éB

=item FiPDFJ::Colorj

ŠDFŽw’è‚ƁA‚q‚f‚aŽw’肪‚Å‚«‚éB}Œ`‘®«‚̐üF‚Æ“h‚è‚‚ԂµF‚ÌŽw’è‚ÉŽg‚í‚ê‚éB

=item ƒy[ƒWiPDFJ::Pagej

Šeƒy[ƒW‚Ì“à—e‚ð•ÛŽ‚·‚éBƒeƒLƒXƒg‚â‰æ‘œ‚â}Œ`‚ȂǁA•\Ž¦‰Â”\‚ȃIƒuƒWƒFƒNƒg‚̓y[ƒW‚É”z’u‚·‚邱‚Æ‚ÅŽÀÛ‚É•\Ž¦‚³‚ê‚éB

=item PDF•¶‘iPDFJ::Docj

ˆê‚‚ÌPDF•¶‘Bƒy[ƒWŒQ‚âAƒŠƒ\[ƒX‚Æ‚µ‚ẴtƒHƒ“ƒg‚â‰æ‘œ‚ð‚܂Ƃ߁AÅI“I‚Ɉê‚‚ÌPDFƒtƒ@ƒCƒ‹‚Æ‚µ‚ďo—Í‚·‚éB

=back

=head2 PDFJ‚̃Cƒ“ƒXƒg[ƒ‹

ŠÇ—ŽÒ‚Å‚ ‚ê‚ÎŽŸ‚Ì•W€“I‚Ȏ菇‚ŃCƒ“ƒXƒg[ƒ‹‚Å‚«‚éB

  perl Makefile.PL
  make
  make install

ÅŒã‚Ìmake install‚ÍŠÇ—ŽÒŒ ŒÀ‚ÅŽÀs‚·‚éBWindows‚Å‚Ímake‚Å‚È‚­nmake‚ðŽg—p‚·‚éB

ŠÇ—ŽÒ‚Å‚È‚¢ê‡‚Å‚àAPDFJ‚ð\¬‚·‚鎟‚̃‚ƒWƒ…[ƒ‹ƒtƒ@ƒCƒ‹ŒQ‚ðPerl‚©‚ç—˜—p‚Å‚«‚éi‚·‚È‚í‚¿@INC‚ɃZƒbƒg‚³‚ꂽjƒfƒBƒŒƒNƒgƒŠ‚É‚¨‚¯‚Η˜—p‚Å‚«‚éB

  PDFJ.pm
  PDFJ/Object.pm
  PDFJ/Unicode.pm
  PDFJ/E2U.pm
  PDFJ/S2U.pm
  PDFJ/U2C.pm
  PDFJ/TTF.pm

PDFJ‚́A‰¢•¶‚̃nƒCƒtƒl[ƒVƒ‡ƒ“‚ð‚¨‚±‚È‚¤‚½‚߂ɁATeX::Hyphenƒ‚ƒWƒ…[ƒ‹‚ðŽg—p‚µ‚Ä‚¢‚éB‰¢•¶‚ðŠÜ‚ÞƒeƒLƒXƒg‚ðˆµ‚¤ê‡‚Í•K—v‚Æ‚È‚é‚̂ŁACPAN‚©‚çƒ_ƒEƒ“ƒ[ƒh‚µ‚ăCƒ“ƒXƒg[ƒ‹‚µ‚Ä‚¨‚­BŠÇ—ŽÒ‚Å‚È‚¢ê‡‚́AŽŸ‚̃‚ƒWƒ…[ƒ‹‚ðPerl‚©‚ç—˜—p‚Å‚«‚éƒfƒBƒŒƒNƒgƒŠ‚É‚¨‚¯‚΂悢B

  TeX/Hyphen.pm
  TeX/Hyphen/czech.pm
  TeX/Hyphen/german.pm

PDFJ‚́AƒtƒHƒ“ƒg‚â‰æ‘œ‚Ȃǂ̃f[ƒ^‚𖄂ߍž‚ލۂɁAƒfƒtƒHƒ‹ƒg‚Å‚ÍCompress::Zlibƒ‚ƒWƒ…[ƒ‹‚ðŽg—p‚·‚éBCompress::Zlib‚ª‚È‚¢ŠÂ‹«‚âACompress::Zlib‚ðŽg‚¢‚½‚­‚È‚¢ê‡‚Ì‚½‚߂ɁACompress::Zlib‚ðŽg‚킸‚Ƀf[ƒ^‚Ì–„‚ߍž‚Ý‚ð‚¨‚±‚È‚¤ƒIƒvƒVƒ‡ƒ“‚à—pˆÓ‚³‚ê‚Ä‚¢‚éBiL<"•¶‘ƒIƒuƒWƒFƒNƒg‚̍쐬">‚ðŽQÆj

ˆÃ†‰»‚ð‚¨‚±‚È‚¤Û‚ɂ́ADigest::MD5ƒ‚ƒWƒ…[ƒ‹‚ª•K—v‚Å‚ ‚éB

=head2 PDFJ‚ÌŽg—p

PDFJ‚ðŽg—p‚·‚é‚ɂ́A‚‚¬‚̂悤‚É‚µ‚Ä use PDFJ ‚̈ø”‚É“ú–{Œê•¶ŽšƒR[ƒh‚ðŽw’è‚·‚éBÈ—ª‚·‚é‚Æ'SJIS'‚Æ‚Ý‚È‚³‚ê‚éB

  # Shift-JIS‚̏ꍇ
  use PDFJ 'SJIS';

  # EUC‚̏ꍇ
  use PDFJ 'EUC';

  # UTF8‚̏ꍇ
  use PDFJ 'UTF8';

  # UNICODEiUCS2j‚̏ꍇ
  use PDFJ 'UNICODE';

ƒeƒLƒXƒgƒIƒuƒWƒFƒNƒg‚ðì‚鎞‚É—^‚¦‚镶Žš—ñ‚âAƒtƒHƒ“ƒg‚̃Gƒ“ƒR[ƒfƒBƒ“ƒO‚Å‚Ì“ú–{Œê•¶ŽšƒR[ƒh‚́Ause PDFJ ‚ÅŽw’肵‚½‚à‚̂ƍ‡’v‚·‚é‚悤‚É‚µ‚È‚¯‚ê‚΂Ȃç‚È‚¢B

ˆÙ‚Ȃ镶ŽšƒR[ƒh‚ð¬Ý‚³‚¹‚½‚èØ‚è‘Ö‚¦‚ÄŽg—p‚·‚邱‚Æ‚Í‚Å‚«‚È‚¢B

use PDFJ ‚É‚æ‚Á‚ÄŽŸ‚̃Tƒuƒ‹[ƒ`ƒ“‚ªƒGƒNƒXƒ|[ƒg‚³‚ê‚éB

  Doc
  Text
  TStyle
  NewLine
  Outline
  Dest
  Paragraph
  PStyle
  Block
  BStyle
  NewBlock
  BlockSkip
  Shape
  SStyle
  Color

=head2 •¶‘ƒIƒuƒWƒFƒNƒg‚̍쐬

‚Ü‚¸Å‰‚É•¶‘ƒIƒuƒWƒFƒNƒg‚ðì¬‚µ‚È‚¯‚ê‚΂Ȃç‚È‚¢B

  $docobj = PDFJ::Doc->new($version, $width, $height);

‚±‚±‚ŁA$version‚ÍPDF‚̃o[ƒWƒ‡ƒ“i¦‰º‹L‚Ì’‚ðŽQÆjA$width‚̓y[ƒW‚Ì•A$height‚̓y[ƒW‚̍‚‚³‚ŁA’PˆÊ‚̓|ƒCƒ“ƒgi1/72ƒCƒ“ƒ`j‚Å‚ ‚éBiƒ|ƒCƒ“ƒg‚Ì’è‹`‚Í’è‚Ü‚Á‚½‚à‚Ì‚ª‚È‚¢‚ªAPDF‚Å‚Í1/72ƒCƒ“ƒ`‚Æ‚³‚ê‚Ä‚¢‚éB1ƒCƒ“ƒ`‚Í25.4mmBj

‚È‚¨Aƒy[ƒW‚Ì•‚ƍ‚‚³‚́AŠeƒy[ƒWƒIƒuƒWƒFƒNƒg‚ðì¬‚·‚鎞‚Ɍ•ʂɎw’è‚·‚邱‚Æ‚à‚Å‚«‚éB

¦PDF‚̃o[ƒWƒ‡ƒ“

PDF‚̃o[ƒWƒ‡ƒ“‚́AŽŸ‚̂悤‚ÉAcrobat‚âAcrobat Reader‚̃o[ƒWƒ‡ƒ“‚ƑΉž‚µ‚Ä‚¢‚éB

  PDFƒo[ƒWƒ‡ƒ“1.2 c Acrobatƒo[ƒWƒ‡ƒ“3
  PDFƒo[ƒWƒ‡ƒ“1.3 c Acrobatƒo[ƒWƒ‡ƒ“4
  PDFƒo[ƒWƒ‡ƒ“1.4 c Acrobatƒo[ƒWƒ‡ƒ“5

‚µ‚½‚ª‚Á‚ÄAcrobat3‚Å‚àŽg‚¦‚é‚悤‚É‚µ‚½‚¯‚ê‚Î1.2‚É‚µ‚Ä‚¨‚­B‚½‚¾‚µA“ú–{ŒêTrueTypeƒtƒHƒ“ƒg‚ðŽg‚¤‚Æ‚«‚Í1.3ˆÈã‚ª•K—vBAcrobat4ˆÈã‚ÅŽg‚¦‚ê‚΂悢‚Æ‚¢‚¤‚±‚Æ‚È‚çí‚É1.3‚É‚µ‚Ä‚¨‚¯‚΂悢B

¦ƒf[ƒ^–„‚ߍž‚Ý•û–@‚ÌŽw’è

Compress::Zlib‚ðŽg‚킸‚Ƀf[ƒ^‚Ì–„‚ߍž‚Ý‚ð‚¨‚±‚È‚¤ê‡‚́A•¶‘ƒIƒuƒWƒFƒNƒg‚Ìfilterƒƒ\ƒbƒh‚ð—p‚¢‚ÄŽŸ‚̂悤‚Ƀf[ƒ^–„‚ߍž‚Ý•û–@‚ÌŽw’è‚ð‚¨‚±‚È‚Á‚Ä‚¨‚­B‚±‚ÌŽw’è‚ð‚µ‚È‚¢ê‡‚ÍCompress::Zlib‚ðŽg‚Á‚½–„‚ߍž‚Ý‚ª‚¨‚±‚È‚í‚ê‚éB

  $docobj->filter('a');

=head2 ƒy[ƒWƒIƒuƒWƒFƒNƒg‚̍쐬

ƒy[ƒW‚Í•¶‘ƒIƒuƒWƒFƒNƒg‚©‚çnew_pageƒƒ\ƒbƒh‚ŒljÁ‚³‚ê‚éB•‚ƍ‚‚³‚ðÈ—ª‚·‚é‚Æ•¶‘ƒIƒuƒWƒFƒNƒg‚̍쐬‚̍ۂɎw’肵‚½‚à‚Ì‚ªŽg‚í‚ê‚éB

  $pageobj = $docobj->new_page;
  $pageobj = $docobj->new_page($width, $height);

¡‚Ì‚Æ‚±‚ëAƒy[ƒW‚Í––”ö‚ɒljÁ‚Å‚«‚邾‚¯‚ŁA“r’†‚É‘}“ü‚·‚é•û–@‚Í—pˆÓ‚³‚ê‚Ä‚¢‚È‚¢B

ƒy[ƒW”ԍ†‚́Apagenumƒƒ\ƒbƒh‚Å“¾‚ç‚ê‚éB

  $pagenum = $pageobj->pagenum;

=head2 ƒtƒHƒ“ƒgƒIƒuƒWƒFƒNƒg‚̍쐬

ƒtƒHƒ“ƒgƒIƒuƒWƒFƒNƒg‚́A•¶‘ƒIƒuƒWƒFƒNƒg‚©‚çAnew_fontƒƒ\ƒbƒh‚ōì‚ç‚ê‚éB

  $fontobj = $docobj->new_font($basefont, $encoding);

$basefont‚̓x[ƒXƒtƒHƒ“ƒg–¼‚ŁAType1ƒtƒHƒ“ƒg‚̏ꍇŽŸ‚Ì‚¢‚¸‚ê‚©‚ðŽw’è‚·‚éB

  ¦‰¢•¶ƒtƒHƒ“ƒg
  Courier
  Courier-Bold
  Courier-BoldOblique
  Courier-Oblique
  Helvetica
  Helvetica-Bold
  Helvetica-BoldOblique
  Helvetica-Oblique
  Times-Bold
  Times-BoldItalic
  Times-Italic
  Times-Roman

  ¦˜a•¶ƒtƒHƒ“ƒg
  Ryumin-Light
  GothicBBB-Medium

$basefont‚ÉTrueTypeƒtƒHƒ“ƒg‚̃tƒ@ƒCƒ‹–¼iŠg’£Žq‚ª.ttfj‚ðŽw’è‚·‚邱‚ƂŁATrueTypeƒtƒHƒ“ƒg‚ðŽw’è‚·‚邱‚Æ‚ª‚Å‚«‚éB‚Ü‚½ATrueTypeCollectionƒtƒHƒ“ƒgiŠg’£Žq‚ª.ttcj‚̏ꍇ‚Í‚»‚Ì’†‚̉½”Ԗځi0‚©‚琔‚¦‚āj‚̃tƒHƒ“ƒg‚ðŽg‚¤‚©‚ðƒtƒ@ƒCƒ‹–¼‚ÌŒã‚ë‚Ɂu:”ԍ†v‚Æ‚µ‚Ä•t‰Á‚·‚éBi—áFuc:\windows\fonts\msgothic.ttc:0vj

=over 4

¦TrueTypeCollectionƒtƒHƒ“ƒg‚͌Œèƒsƒbƒ`‚̃tƒHƒ“ƒg‚ƃvƒƒ|[ƒVƒ‡ƒiƒ‹‚ȃtƒHƒ“ƒg‚ªƒZƒbƒg‚É‚È‚Á‚Ä‚¢‚邱‚Æ‚ª‘½‚¢‚ªAã‹L‚̂悤‚É‚µ‚ÄŽw’è‚·‚é‚̂͌Œèƒsƒbƒ`‚Ì•û‚Å‚È‚¯‚ê‚΂Ȃç‚È‚¢B•t‘®‚̃XƒNƒŠƒvƒgttcinfo.pl‚ÅTrueTypeCollectionƒtƒHƒ“ƒg‚ÉŠÜ‚Ü‚ê‚éƒtƒHƒ“ƒg–¼‚𒲂ׂ邱‚Æ‚ª‚Å‚«‚éBƒvƒƒ|[ƒVƒ‡ƒiƒ‹‚ȃtƒHƒ“ƒg‚̓tƒHƒ“ƒg–¼‚É P ‚ª•t‰Á‚³‚ê‚Ä‚¢‚邱‚Æ‚ª‘½‚¢B

¦TrueTypeƒtƒHƒ“ƒg‚ÍPDF‚É–„‚ߍž‚Ü‚ê‚éi“ú–{ŒêƒtƒHƒ“ƒg‚̏ꍇ‚̓TƒuƒZƒbƒg‚Łj‚ªA–„‚ߍž‚Ý‚ð‹–‰Â‚µ‚È‚¢TrueTypeƒtƒHƒ“ƒg‚à‘¶Ý‚·‚éBPDFJ‚́AƒtƒHƒ“ƒgŽ©‘Ì‚Ì’†‚É‚ ‚é–„‚ߍž‚Ý‚ð‹–‰Â‚·‚é‚©‚Ç‚¤‚©‚̃tƒ‰ƒO‚ðŒ©‚ÄAOK‚©‚Ç‚¤‚©‚ð”»’f‚·‚éB‚½‚¾‚µA•Ê‚̃‰ƒCƒZƒ“ƒXƒtƒ@ƒCƒ‹‚È‚Ç‚ÅŽg—p‹–‘øðŒ‚ªŽ¦‚³‚ê‚Ä‚¢‚éê‡‚à‚ ‚肤‚é‚̂ŁAƒtƒHƒ“ƒgì¬ŽÒ‚ÌŒ —˜‚ðNŠQ‚µ‚È‚¢‚悤‚ɏ\•ª’ˆÓ‚µ‚Ä‚¢‚½‚¾‚«‚½‚¢B

¦TrueTypeƒtƒHƒ“ƒg‚𖄂ߍž‚ލۂɂ́AƒtƒHƒ“ƒgƒtƒ@ƒCƒ‹“à‚Ƀ†ƒjƒR[ƒh‚ɑΉž‚µ‚½cmapƒe[ƒuƒ‹iplatformID‚ª3AplatformSpecificID‚ª1Aformat‚ª4‚Ì‚à‚́j‚ª•K—v‚Å‚ ‚éBŒÃ‚¢TrueTypeƒtƒHƒ“ƒg‚Å‚Í‚±‚Ìcmapƒe[ƒuƒ‹‚ðŽ‚½‚È‚¢‚à‚Ì‚à‘¶Ý‚·‚éBŒ»ó‚Å‚Í‚»‚¤‚¢‚¤TrueTypeƒtƒHƒ“ƒg‚Í–„‚ߍž‚Þ‚±‚Æ‚ª‚Å‚«‚È‚¢B

=back

$encoding‚̓Gƒ“ƒR[ƒfƒBƒ“ƒO‚ŁAŽŸ‚Ì‚¢‚¸‚ê‚©‚Ì’è‹`Ï‚݃Gƒ“ƒR[ƒfƒBƒ“ƒO–¼‚ðŽw’è‚·‚éBÈ—ª‚·‚é‚ƁA‰¢•¶ƒtƒHƒ“ƒg‚ɑ΂µ‚Ä‚Í'WinAnsiEncoding'A“ú–{ŒêƒtƒHƒ“ƒg‚ɑ΂µ‚Ä‚Í'90ms-RKSJ-H'‚ªŽg‚í‚ê‚éBMacExpertEncoding‚̓GƒLƒXƒp[ƒgƒtƒHƒ“ƒg‚ƌĂ΂ê‚é“ÁŽê‚ȃtƒHƒ“ƒg‚Ì‚½‚߂̃Gƒ“ƒR[ƒfƒBƒ“ƒOB

  ¦‰¢•¶ƒtƒHƒ“ƒg‚̃Gƒ“ƒR[ƒfƒBƒ“ƒO
  WinAnsiEncoding
  MacRomanEncoding
  MacExpertEncoding

  ¦“ú–{ŒêƒtƒHƒ“ƒg‚̃Gƒ“ƒR[ƒfƒBƒ“ƒO
  83pv-RKSJ-H c Macintosh JIS X 0208 KanjiTalk6Šg’£
  90pv-RKSJ-H c Macintosh JIS X 0208 KanjiTalk7Šg’£
  90ms-RKSJ-H c Microsoft CP932 JIS X 0208 NEC,IBMŠg’£
  90ms-RKSJ-V c Vc‘‚«
  Add-RKSJ-H  c JIS X 0208 •xŽm’ÊFMRŠg’£
  Add-RKSJ-V  c Vc‘‚«
  Ext-RKSJ-H  c JIS C 6226(JIS78) NECŠg’£
  Ext-RKSJ-V  c Vc‘‚«
  EUC-H       c JIS X 0208
  EUC-V       c Vc‘‚«
  EUC-NEC-H   c JIS X 0208 NECŠg’£
  EUC-NEC-V   c Vc‘‚«
  UniJIS-UCS2-HW-H c Unicode ‰¡‘‚«
  UniJIS-UCS2-HW-V c Unicode c‘‚«

“ú–{ŒêƒtƒHƒ“ƒg‚̃Gƒ“ƒR[ƒfƒBƒ“ƒO‚Ì––”ö‚Ì'H'‚͉¡‘‚«A'V'‚͏c‘‚«B'RKSJ'‚Ƃ‚­‚à‚Ì‚ÍShift-JIS—pA'EUC'‚Ƃ‚­‚à‚Ì‚ÍEUC—pA'Uni'‚Ƃ‚­‚à‚Ì‚ÍUnicode—pB“ú–{Œêƒvƒƒ|[ƒVƒ‡ƒiƒ‹ƒtƒHƒ“ƒg‚ÍŽg‚¦‚È‚¢‚±‚Æ‚É’ˆÓB‰¢•¶•”•ª‚àŠÜ‚ß‚Ä‚·‚ׂĂ̕¶Žš‚ª‘SŠp‚©”¼Šp‚̌Œèƒsƒbƒ`‚Æ‚È‚éB

¦EUC-NEC-H‚ÆEUC-NEC-V‚́AEUC-H‚ÆEUC-V‚ðƒx[ƒX‚ÉNECŠg’£•¶Žši‹æ“_‚Å‚Ì13,89-92‹æj‚ð‰Á‚¦‚½‚à‚̂ŁAPDFJ‚Å“ÆŽ©‚É’è‹`‚µ‚½ƒGƒ“ƒR[ƒfƒBƒ“ƒO‚Å‚ ‚éi‚±‚ê‚ðŽg‚Á‚½PDF‚ðAcrobat‚È‚Ç‚ÅŠJ‚¢‚ătƒHƒ“ƒgî•ñ‚ðŒ©‚é‚ƃGƒ“ƒR[ƒfƒBƒ“ƒO‚́uƒJƒXƒ^ƒ€v‚Æ•\Ž¦‚³‚ê‚éjB‚»‚êˆÈŠO‚ÍAdobe‚É‚æ‚Á‚Ä’è‹`Ï‚̃Gƒ“ƒR[ƒfƒBƒ“ƒOB

¦UTF8‚̏ꍇ‚àƒtƒHƒ“ƒgƒGƒ“ƒR[ƒfƒBƒ“ƒO‚ɂ͏ã‹L‚ÌUnicode—p‚ðŽw’è‚·‚ê‚΂悢B

new_fontƒƒ\ƒbƒh‚É‚Í‚à‚¤ˆê‚‚̗p–@‚ª‚ ‚èA‚‚¬‚̂悤‚É‚µ‚Ä“ú–{ŒêƒtƒHƒ“ƒg‚Ɖ¢•¶ƒtƒHƒ“ƒg‚Ì‘g‚ðŽw’è‚·‚éB

  $fontobj = $docobj->new_font($jbasefont, $jencoding, $abasefont, $aencoding);

‚±‚±‚ŁA$jbasefont‚Í“ú–{Œêƒx[ƒXƒtƒHƒ“ƒg–¼A$jencoding‚Í‚»‚̃Gƒ“ƒR[ƒfƒBƒ“ƒOA$abasefont‚͉¢•¶ƒx[ƒXƒtƒHƒ“ƒg–¼A$aencoding‚Í‚»‚̃Gƒ“ƒR[ƒfƒBƒ“ƒOB$aencoding‚ðÈ—ª‚·‚é‚ÆWinAnsiEncodingB

‚±‚̂悤‚É“ú–{ŒêƒtƒHƒ“ƒg‚Ɖ¢•¶ƒtƒHƒ“ƒg‚ð‘g‚ݍ‡‚킹‚½ƒtƒHƒ“ƒgƒIƒuƒWƒFƒNƒg‚ðƒeƒLƒXƒg‚ɑ΂µ‚ÄŽw’è‚·‚é‚ƁAƒeƒLƒXƒg’†‚Ì“ú–{Œê•”•ª‚Ɖ¢•¶•”•ªi³Šm‚ÉŒ¾‚¤‚Æ0x7f‚Ü‚Å‚ÌASCII•¶Žš‚Ì•”•ªj‚ɑ΂µ‚Ä‚»‚ꂼ‚ê‚̃tƒHƒ“ƒg‚ªŽ©“®“I‚ɐ؂è‘Ö‚¦‚Ä“K—p‚³‚ê‚éB‚±‚ê‚É‚æ‚èA‰¢•¶•”•ª‚ɂ‚¢‚Ă̓vƒƒ|[ƒVƒ‡ƒiƒ‹‚È•\Ž¦‚Æ‚È‚éB‘gƒtƒHƒ“ƒg‚ł͉¢•¶ƒtƒHƒ“ƒg‚ª“K—p‚³‚ê‚é‚Ì‚ÍASCII•¶Žš‚¾‚¯‚Å‚ ‚èAASCII•¶Žš‚ɂ‚¢‚Ä‚ÍWinAnsiEncoding‚ÆMacRomanEncoding‚ɈႢ‚Í‚È‚¢‚̂ŁA‘g•¶Žš‚̉¢•¶ƒtƒHƒ“ƒg‚̃Gƒ“ƒR[ƒfƒBƒ“ƒO‚Í‚Ç‚¿‚ç‚ðŽw’肵‚Ä‚à“¯‚¶B

’P“Ƃ̉¢•¶ƒtƒHƒ“ƒg‚ð“K—p‚µ‚½•¶Žš—ñ‚́Ause PDFJ 'c'‚ÅŽw’肵‚½“ú–{Œê•¶ŽšƒR[ƒh‚É‚æ‚炸A1ƒoƒCƒg1•¶Žš‚Æ‚µ‚ăGƒ“ƒR[ƒfƒBƒ“ƒO‚ɏ]‚Á‚Ä•\Ž¦‚³‚ê‚éB

“ú–{ŒêƒtƒHƒ“ƒg‚Ì•¶ŽšƒZƒbƒg‚ÍAdobe-Japan1-4‚Æ‚µ‚Ĉµ‚í‚ê‚éBAdobe-Japan1-4‚ɂ́A‘å‚Ü‚©‚ÉŒ¾‚Á‚ÄJIS X 0201‚Æ0208i‘æˆê…€A‘æ“ñ…€jA‚¨‚æ‚ÑŠeƒ[ƒJ[‚ÌŠg’£•¶Žš‚ªŠÜ‚Ü‚ê‚éBÚ×‚ÍŽŸ‚ðŽQÆ‚Ì‚±‚ƁB

http://partners.adobe.com/asn/developer/pdfs/tn/5078.Adobe-Japan1-6.pdf 

ÅV‚Ì•¶ŽšƒZƒbƒg‚ÍAdobe-Japan1-6‚Å‚ ‚èA‚±‚ê‚É‚ÍJIS X 0212i•â•Š¿Žšj‚Æ0213i‘æŽO…€A‘æŽl…€j‚ªŠÜ‚Ü‚ê‚Ä‚¢‚邪A¡‚Ì‚Æ‚±‚ëPDFJ‚Å‚ÍAdobe-Japan1-6‚Å‚Í‚È‚­Adobe-Japan1-4‚ªŽg‚í‚ê‚éB

=head2 ƒeƒLƒXƒgƒIƒuƒWƒFƒNƒg‚̍쐬

ƒeƒLƒXƒgƒIƒuƒWƒFƒNƒg‚́ATextƒTƒuƒ‹[ƒ`ƒ“‚ō쐬‚·‚éB

  $textobj = Text(@list, $textstyle);

‚±‚±‚ŁA@list‚Í•¶Žš—ñA•\Ž¦‰Â”\‚ȃIƒuƒWƒFƒNƒgA‰üsƒIƒuƒWƒFƒNƒg‚̃ŠƒXƒg‚ŁA@list‚Ì—v‘f‚ª‡‚É•À‚ׂç‚ꂽ“à—e‚̃eƒLƒXƒg‚ªì¬‚³‚ê‚éB$textstyle‚̓eƒLƒXƒgƒXƒ^ƒCƒ‹ƒIƒuƒWƒFƒNƒgB

ƒŠƒXƒg‚Í”z—ñŽQÆ‚ÌŒ`‚Å—^‚¦‚邱‚Æ‚à‚Å‚«‚éB

  $textobj = Text([@list], $textstyle);

‰üsƒIƒuƒWƒFƒNƒg‚ÍNewLineƒTƒuƒ‹[ƒ`ƒ“‚ō쐬‚·‚éiˆø”–³‚µjB‰üsƒIƒuƒWƒFƒNƒg‚̓eƒLƒXƒgƒIƒuƒWƒFƒNƒg‚ð‚»‚Ì‚Ü‚Ü•\Ž¦‚·‚éê‡‚ɂ͉½‚ÌŒø‰Ê‚à‚È‚¢‚ªA’i—ŽƒIƒuƒWƒFƒNƒg‚ðì‚éÛ‚É‹­§‰üs‚·‚éŒø‰Ê‚ð‚à‚½‚ç‚·B

ƒeƒLƒXƒgƒXƒ^ƒCƒ‹ƒIƒuƒWƒFƒNƒg‚ÍTStyleƒTƒuƒ‹[ƒ`ƒ“‚ō쐬‚·‚éB

  $textstyle = TStyle(%args);

ˆø”‚ɂ̓nƒbƒVƒ…ƒŠƒXƒg‚ÌŒ`‚ÅŽŸ‚Ì‚à‚Ì‚ð—^‚¦‚éBfont‚Æfontsize‚Í•K{B‚»‚Ì‘¼‚̓IƒvƒVƒ‡ƒ“B

  font => ƒtƒHƒ“ƒgƒIƒuƒWƒFƒNƒg
  fontsize => ƒtƒHƒ“ƒgƒTƒCƒYiƒ|ƒCƒ“ƒgj
  italic => ƒCƒ^ƒŠƒbƒNƒtƒ‰ƒOi^‚ðŽw’è‚·‚é‚ƃCƒ^ƒŠƒbƒN‚Ɂj
  bold => ƒ{[ƒ‹ƒhƒtƒ‰ƒOi^‚ðŽw’è‚·‚é‚ƃ{[ƒ‹ƒh‚Ɂj
  slant => ŽÎ‘̃tƒ‰ƒOi^‚ðŽw’è‚·‚é‚ƎΑ̂Ɂj
  render => •¶Žš•`‰æƒ‚[ƒhi0:“h‚è’ׂµA1:˜güA2:“h‚è’ׂµ{˜güj
  shapestyle => •¶Žš•`‰æ‚̐}Œ`ƒXƒ^ƒCƒ‹ƒIƒuƒWƒFƒNƒg
  rise => ƒx[ƒXƒ‰ƒCƒ“‚̏㒲®’liƒ|ƒCƒ“ƒgj
  vh => c’†‰¡ƒtƒ‰ƒOi^‚ðŽw’è‚·‚é‚Əc’†‰¡‚Ɂj
  withline => ‰ºü‚Ü‚½‚Í–Tüƒtƒ‰ƒOi^‚ðŽw’è‚·‚é‚Ɖºü‚Ü‚½‚Í–Tü‚ª•t‚­j
  withlinestyle => ‰ºü‚Ü‚½‚Í–Tü‚̐}Œ`ƒXƒ^ƒCƒ‹ƒIƒuƒWƒFƒNƒg
  withbox => ˆÍ‚ݘgŽw’èif:“h‚è’ׂµAs:˜güAsf:“h‚è’ׂµ{˜güj
  withboxstyle => ˆÍ‚ݘg‚̐}Œ`ƒXƒ^ƒCƒ‹ƒIƒuƒWƒFƒNƒg
  withdot => Œ—“_ƒtƒ‰ƒOi^‚ðŽw’è‚·‚é‚ÆŒ—“_‚ª•t‚­j
  withnote => ’ŽßƒeƒLƒXƒgƒIƒuƒWƒFƒNƒg
  suffix => “Y‚¦ŽšŽw’èi'u'‚ðŽw’è‚·‚é‚Əã“Y‚¦ŽšA'l'‚ðŽw’è‚·‚é‚Ɖº“Y‚¦Žšj
  ruby => ƒ‹ƒr•¶Žš—ñ
  objalign => •\Ž¦‰Â”\ƒIƒuƒWƒFƒNƒg‚Ì”z’u
  noglue => •¶ŽšŽí‚É‚æ‚Á‚ÄŽ©“®‘}“ü‚³‚ê‚é’²®—]”’‚ð“ü‚ê‚È‚¢
  code => •¶ŽšƒR[ƒhi'SJIS'A'EUC'A'UTF8'A'UNICODE'‚Ì‚¢‚¸‚ê‚©j

slant‚É‚æ‚éŽÎ‘Ì‚Í“ú–{Œê•¶Žš—ñ‚É‚Ì‚Ý—LŒø‚Å‚ ‚èA‰¢•¶‚ɂ‚¢‚Ä‚ÍItalicŒn‚̃tƒHƒ“ƒg‚ðŽw’è‚·‚邱‚Æ‚Å‚¨‚±‚È‚¤‚±‚ƁBitalic‚Æbold‚ɂ‚¢‚ẮAL<"ƒCƒ^ƒŠƒbƒN‚ƃ{[ƒ‹ƒh">‚ðŽQÆB

render‚âshapestyle‚ÌŽw’è‚ð‚µ‚È‚¢‚ƁA•¶Žš‚͍•‚Ì“h‚è’ׂµ‚Å•`‰æ‚³‚ê‚éB

withline‚ðŽw’肵‚Äwithlinestyle‚ðÈ—ª‚·‚é‚ƍ•‚ÌŽÀü‚Æ‚È‚éBwithbox‚ðŽw’肵‚Äwithboxstyle‚ðÈ—ª‚·‚é‚ƍ•‚ÌŽÀü‚Æ‚È‚éB

withnote‚Í•¶Žš‚̏ã‚â‰E‚ɕʂ̃eƒLƒXƒgi‚»‚̃eƒLƒXƒgƒIƒuƒWƒFƒNƒg‚ðwithnote‚ÅŽw’è‚·‚éj‚ð•\Ž¦‚·‚é‚à‚Ì‚Å‚ ‚èAsuffix‚ÍŽw’肵‚½•¶Žš‚ð¬‚³‚­‚µ‚Ĉʒu‚ðã‰º‚³‚¹‚é–½—ß‚Å‚ ‚éB

¦withnote‚É•¶Žš—ñ‚ð—^‚¦Awithnotestyle‚ɃeƒLƒXƒgƒXƒ^ƒCƒ‹ƒIƒuƒWƒFƒNƒg‚ð—^‚¦‚邱‚Æ‚à‚Å‚«‚éB

objalign‚́AText‚ɉ摜‚â}Œ`‚È‚Ç‚Ì•\Ž¦‰Â”\ƒIƒuƒWƒFƒNƒg‚ª—^‚¦‚ç‚ꂽ‚Æ‚«‚É‚Ç‚¤”z’u‚·‚é‚©‚ð‚‚¬‚̂悤‚ÉŽw’è‚·‚éBobjalign‚ÌŽw’è‚ðÈ—ª‚·‚é‚ƁA‰¡‘‚«‚Å‚Í'b'Ac‘‚«‚Å‚Í'c'‚Æ‚Ý‚È‚³‚ê‚éB

  ¦‰¡‘‚«‚̏ꍇiã‰º•ûŒü‚Ì”z’u‚ÌŽw’è‚Æ‚È‚éj
  t c •¶Žš‚ƃIƒuƒWƒFƒNƒg‚̏ã’[‚ð‚ ‚í‚¹‚é
  m c •¶Žš‚ƃIƒuƒWƒFƒNƒg‚̏㉺’†‰›‚ð‚ ‚í‚¹‚é
  b c •¶Žš‚ƃIƒuƒWƒFƒNƒg‚̉º’[‚ð‚ ‚í‚¹‚é

  ¦c‘‚«‚̏ꍇi¶‰E•ûŒü‚Ì”z’u‚ÌŽw’è‚Æ‚È‚éj
  l c •¶Žš‚ƃIƒuƒWƒFƒNƒg‚̍¶’[‚ð‚ ‚í‚¹‚é
  c c •¶Žš‚ƃIƒuƒWƒFƒNƒg‚̍¶‰E’†‰›‚ð‚ ‚í‚¹‚é
  r c •¶Žš‚ƃIƒuƒWƒFƒNƒg‚̉E’[‚ð‚ ‚í‚¹‚é

code‚́Ause PDFJ‚ÅŽw’肵‚½•¶ŽšƒR[ƒh‚Ƃ͈Ⴄ•¶ŽšƒR[ƒh‚É‚æ‚éƒeƒLƒXƒg‚ð—^‚¦‚½‚¢‚Æ‚«‚ÉŽw’è‚·‚éB

=head2 ƒeƒLƒXƒgƒIƒuƒWƒFƒNƒg‚Ì“ü‚êŽq‚É‚æ‚é•”•ªƒXƒ^ƒCƒ‹Žw’è

ƒeƒLƒXƒg‚̈ꕔ•ª‚¾‚¯‚É“Á’è‚̃Xƒ^ƒCƒ‹‚ð“K—p‚µ‚½‚¢ê‡AƒeƒLƒXƒgƒIƒuƒWƒFƒNƒg‚ð“ü‚êŽq‚É‚µ‚Ä•”•ªƒXƒ^ƒCƒ‹‚ðŽw’è‚·‚邱‚Æ‚Å‚¨‚±‚È‚¤B“ü‚êŽq‚É‚È‚Á‚½ƒeƒLƒXƒgƒIƒuƒWƒFƒNƒg‚Å‚ÍŽq‚̃Xƒ^ƒCƒ‹‚ÅŽw’肳‚ê‚Ä‚¢‚È‚¢ƒXƒ^ƒCƒ‹‚͐e‚Ì‚à‚Ì‚ªˆø‚«Œp‚ª‚ê‚éB

—Ⴆ‚΁A–¾’©‚̃eƒLƒXƒg‚̈ꕔ‚ðƒSƒVƒbƒN‚É‚µ‚½‚¢ê‡A‚‚¬‚̂悤‚É‚·‚éB

  $mincho = $docobj->new_font('Ryumin-Light', '90ms-RKSJ-H');
  $gothic = $docobj->new_font('GothicBBB-Medium', '90ms-RKSJ-H');
  $textobj = Text([
      "–¾’©", 
      Text("ƒSƒVƒbƒN", TStyle(font => $gothic)),
      "‚±‚±‚à–¾’©"
    ], TStyle(font => $mincho, fontsize => 10));

‚±‚̏ꍇA"ƒSƒVƒbƒN"‚ɑ΂·‚éƒXƒ^ƒCƒ‹‚Å‚Ífontsize‚ªŽw’肳‚ê‚Ä‚¢‚È‚¢‚̂ŁAeƒXƒ^ƒCƒ‹‚Ìfontsize‚Ì10‚ªˆø‚«Œp‚ª‚ê‚éB

ƒeƒLƒXƒg‚̈ꕔ‚ɉºü‚ðˆø‚­ê‡‚́A—Ⴆ‚΂‚¬‚̂悤‚É‚·‚éB

  $mincho = $docobj->new_font('Ryumin-Light', '90ms-RKSJ-H');
  $normal_style = TStyle(font => $mincho, fontsize => 10);
  $uline_style = TStyle(withline => 1);
  $textobj = Text([
      "ƒeƒLƒXƒg",
      Text("‰ºü•t‚«", $uline_style),
    ], $normal_style);

ƒeƒLƒXƒgƒXƒ^ƒCƒ‹‚Í‚±‚̂悤‚ɕϐ”‚ɃZƒbƒg‚µ‚Ä‚¨‚¢‚ÄŽg‚¤‚±‚Æ‚à‚Å‚«‚邵Aæ‚Ì—á‚̂悤‚É’¼ÚTStyleƒTƒuƒ‹[ƒ`ƒ“‚ðŽg‚Á‚Ä‚à‚æ‚¢B

=head2 ƒCƒ^ƒŠƒbƒN‚ƃ{[ƒ‹ƒh

ƒeƒLƒXƒgƒXƒ^ƒCƒ‹‚Ìitalic‚Æbold‚ðŽg‚¤‚½‚߂ɂ́A‚ǂ̃tƒHƒ“ƒg‚ª‚ǂ̃tƒHƒ“ƒg‚̃Cƒ^ƒŠƒbƒNŒ`‚âƒ{[ƒ‹ƒhŒ`‚Å‚ ‚éA‚Æ‚¢‚¤‚±‚Æ‚ðƒhƒLƒ…ƒƒ“ƒgƒIƒuƒWƒFƒNƒg‚É‹³‚¦‚Ä‚¨‚¢‚Ä‚â‚é•K—v‚ª‚ ‚éB‚»‚Ì‚½‚߂ɁAitalic()‚Æbold()ƒƒ\ƒbƒh‚ðŽg‚¤B—Ⴆ‚ÎŽŸ‚̂悤‚É‚·‚éB

  $ft = $docobj->new_font('Times-Roman');
  $fti = $docobj->new_font('Times-Italic');
  $ftb = $docobj->new_font('Times-Bold');
  $ftbi = $docobj->new_font('Times-BoldItalic');
  $docobj->italic($ft, $fti, $ftb, $ftbi);
  $docobj->bold($ft, $ftb, $fti, $ftbi);

‚±‚̂悤‚ɁAŒ³ƒtƒHƒ“ƒgA‚»‚̏CüƒtƒHƒ“ƒgA‚̏‡‚ŁA“ñ‘gˆÈã‚ð‚܂Ƃ߂Ĉø”‚É—^‚¦‚邱‚Æ‚ª‚Å‚«‚éB‘g‚Æ‚È‚éƒtƒHƒ“ƒg‚́A‰¢•¶ƒtƒHƒ“ƒg“¯ŽmA“ú–{ŒêƒtƒHƒ“ƒg“¯ŽmA‰¢•¶ƒtƒHƒ“ƒg‚Æ‘g‚É‚È‚Á‚½“ú–{ŒêƒtƒHƒ“ƒg“¯ŽmA‚Å‚È‚¯‚ê‚΂Ȃç‚È‚¢B

  Text('normal', Text('italic', TStyle(italic => 1)), TStyle(font => $ft))

‚±‚̂悤‚ȃeƒLƒXƒgƒIƒuƒWƒFƒNƒg‚ðì‚é‚ƁA'normal'‚É‚Í$ft‚ªA'italic'‚É‚Í$fti‚ªŽg‚í‚ê‚邱‚Æ‚É‚È‚éB

italic()‚âbold()‚Å‚Ì“o˜^‚ª‚³‚ê‚Ä‚¢‚È‚¢ƒtƒHƒ“ƒg‚ɑ΂µ‚Äitalic‚âbold‚̃Xƒ^ƒCƒ‹‚ð—^‚¦‚½ê‡‚́A‰½‚ÌŒø‰Ê‚à‚à‚½‚炳‚È‚¢B

‚È‚¨Aˆê”Ê‚É“ú–{ŒêƒtƒHƒ“ƒg‚ɂ̓Cƒ^ƒŠƒbƒNŒ`‚Í‘¶Ý‚µ‚È‚¢‚̂ŁA“ú–{Œê•¶Žš—ñ‚ɑ΂µ‚ăeƒLƒXƒgƒXƒ^ƒCƒ‹‚Åitalic‚ªŽw’肳‚ꂽê‡‚́Aslant‚É’u‚«Š·‚¦‚ÄŒX‚¯‚Ä•\Ž¦‚·‚éB

=head2 ’i—ŽƒIƒuƒWƒFƒNƒg‚̍쐬

’i—ŽƒIƒuƒWƒFƒNƒg‚ÍParagraphƒTƒuƒ‹[ƒ`ƒ“‚ō쐬‚·‚éB

  $paragraphobj = Paragraph($textobj, $parastyle);

‚±‚±‚ŁA$textobj‚̓eƒLƒXƒgƒIƒuƒWƒFƒNƒgA$parastyle‚Í’i—ŽƒXƒ^ƒCƒ‹ƒIƒuƒWƒFƒNƒgB•¡”‚̃eƒLƒXƒg‚ð—^‚¦‚½‚¢‚Æ‚«‚Í‚»‚ê‚ðˆê‚‚̃eƒLƒXƒgƒIƒuƒWƒFƒNƒg‚É‚Ü‚Æ‚ß‚½ã‚Å—^‚¦‚éB

’i—ŽƒXƒ^ƒCƒ‹ƒIƒuƒWƒFƒNƒg‚ÍPStyleƒTƒuƒ‹[ƒ`ƒ“‚ō쐬‚·‚éB

  $parastyle = PStyle(%args);

ˆø”‚ɂ̓nƒbƒVƒ…ƒŠƒXƒg‚ÌŒ`‚ÅŽŸ‚Ì‚à‚Ì‚ð—^‚¦‚éBsize‚Ælinefeed‚Æalign‚Í•K{B‘¼‚̓IƒvƒVƒ‡ƒ“B

  size => ’i—Ž‚̍s•ûŒü‚̃TƒCƒYiƒ|ƒCƒ“ƒgj
  align => ‘µ‚¦ib:s“ª‘µ‚¦ m:’†‰›‘µ‚¦ e:s––‘µ‚¦ w:—¼’[‘µ‚¦ W:‹­§—¼’[‘µ‚¦j
  linefeed => s‘—‚èiƒ|ƒCƒ“ƒgj
  preskip => ’i—Ž‘O‚ÌŠÔŠuiƒ|ƒCƒ“ƒgj
  postskip => ’i—ŽŒã‚ÌŠÔŠuiƒ|ƒCƒ“ƒgj
  beginindent => s“ªƒCƒ“ƒfƒ“ƒg
  endindent => s––ƒCƒ“ƒfƒ“ƒg
  beginpadding => s“ª‘¤‚Ì—]”’iƒ|ƒCƒ“ƒgj
  labeltext => ƒ‰ƒxƒ‹‚̃eƒLƒXƒgƒIƒuƒWƒFƒNƒg
  labelsize => ƒ‰ƒxƒ‹‚̍s•ûŒü‚̃TƒCƒYiƒ|ƒCƒ“ƒgj
  labelskip => ƒ‰ƒxƒ‹‚Æ–{•¶‚ÌŠÔŠuiƒ|ƒCƒ“ƒgj
  nobreak => ^‚¾‚Æbreakƒƒ\ƒbƒh‚Å•ªŠ„‚³‚ê‚È‚¢
  postnobreak => ^‚¾‚ƃuƒƒbƒN‚Ìbreak‚Å‚»‚ÌŒã‚ë‚Å•ªŠ„‚³‚ê‚È‚¢
  float => ƒuƒƒbƒN‚Ìbreak‚ňʒu‚ðŽ©“®ˆÚ“®iuƒuƒƒbƒNƒIƒuƒWƒFƒNƒg‚Ì•ªŠ„vŽQÆj

linefeed‚ÅŽw’è‚·‚é‚͍̂s‘—‚è‚Å‚ ‚Á‚čsŠÔ‚Å‚Í‚È‚¢‚±‚Æ‚É’ˆÓBlinefeed => '150%' ‚̂悤‚É ”’l% ‚ÆŽw’è‚·‚é‚ƁAƒeƒLƒXƒgƒIƒuƒWƒFƒNƒg‚̃tƒHƒ“ƒgƒTƒCƒY‚ɑ΂·‚銄‡‚Æ‚Ý‚È‚³‚ê‚éB

preskip‚Æpostskip‚́AƒuƒƒbƒN“à‚É’i—Ž‚ð•À‚ׂ鎞‚ÌŠÔŠu‚Æ‚µ‚ÄŽg‚í‚ê‚éBÈ—ª‚·‚é‚ƁA‚»‚ꂼ‚êsŠÔis‘—‚è‚©‚çƒtƒHƒ“ƒgƒTƒCƒY‚ð·‚µˆø‚¢‚½’·‚³j‚Ì”¼•ª‚ɃZƒbƒg‚³‚ê‚éB

ƒeƒLƒXƒg‚́A(size - beginpadding - beginindent - endindent - labelsize)‚Æ‚¢‚¤s’·‚ð’´‚¦‚È‚¢‚悤‚ɐ܂è•Ô‚µˆ—‚³‚êAalign‚É‚µ‚½‚ª‚Á‚Ä‘µ‚¦‚ç‚ê‚éBw‚É‚æ‚é—¼’[‘µ‚¦‚ÌŽžA––”ös‚¾‚¯‚͍s“ª‘µ‚¦‚Æ‚È‚éBW‚É‚æ‚é‹­§—¼’[‘µ‚¦‚ł́A––”ös‚àŠÜ‚ß‚Ä—¼’[‘µ‚¦‚Æ‚È‚éBs‚̐܂è•Ô‚µ‚̍ۂ֑̋¥‚ƃnƒCƒtƒl[ƒVƒ‡ƒ“A—¼’[‘µ‚¦‚̍ۂ̋l‚ߐL‚΂µ‚́AJIS X 4051‚É‚Ù‚Ú‘¥‚Á‚Ä‚¨‚±‚È‚í‚ê‚éB

beginindent‚Æendindent‚ð”z—ñŽQÆ‚ÌŒ`‚Å—^‚¦‚é‚ƁAæ“ªs‚©‚珇‚ÉŽg‚í‚ê‚éBs”‚ª—v‘f”‚æ‚è‘å‚«‚¢‚Æ‚«‚͍Ōã‚Ì—v‘f‚ªŒJ‚è•Ô‚µŽg‚í‚ê‚éB

beginpadding‚́Aƒ‰ƒxƒ‹‚àŠÜ‚ß‚½’i—Ž‘S‘̂́As“ª‘¤‚ÉŽæ‚é—]”’‚ðŽw’è‚·‚éBi‚±‚Ì—]”’‚Ísize‚Ì’†‚ÉŠÜ‚Ü‚ê‚éBj‚µ‚½‚ª‚Á‚āAƒ‰ƒxƒ‹‚ª‚È‚¢‚Æ‚«‚́Abeginpadding‚ÌŽw’è‚Æ’P“Æ—v‘f‚Ìbeginindent‚ÌŽw’è‚Í“¯‚¶Œø‰Ê‚ðŽ‚ÂB

labeltext‚ŃeƒLƒXƒgƒIƒuƒWƒFƒNƒg‚ªŽw’肳‚ê‚é‚ƁAƒ‰ƒxƒ‹‚Æ‚µ‚Đ擪s‚Ì‘O‚É•\Ž¦‚³‚ê‚éBƒ‰ƒxƒ‹‚Æ–{•¶‚ÌŠÔ‚É‚Ílabelskip‚¾‚¯‚ÌŠÔŠu‚ªŽæ‚ç‚ê‚éBlabeltext‚É•¶Žš—ñ‚ð—^‚¦‚é‚Æ–{‘̂̃eƒLƒXƒgƒIƒuƒWƒFƒNƒg‚Æ“¯‚¶ƒeƒLƒXƒgƒXƒ^ƒCƒ‹‚ŃeƒLƒXƒgƒIƒuƒWƒFƒNƒg‰»‚³‚ê‚éB

labeltext‚ɂ́AƒeƒLƒXƒgƒIƒuƒWƒFƒNƒg‚ð•Ô‚·ƒTƒuƒ‹[ƒ`ƒ“ŽQÆ‚ƁA‚»‚̃Tƒuƒ‹[ƒ`ƒ“‚É—^‚¦‚éˆø”‚̃ŠƒXƒg‚ðA”z—ñŽQÆ‚ÌŒ`‚Å—^‚¦‚邱‚Æ‚à‚Å‚«‚éB‚±‚ê‚É‚æ‚Á‚Ĕԍ†•t‚«‰Óð‘‚«‚ªŽÀŒ»‚Å‚«‚éB—Ⴆ‚΂‚¬‚̂悤‚É‚È‚éB

  $LabelNum = 1;
  sub numlabel {
    my($fmt, $style) = @_;
    Text(sprintf($fmt, $LabelNum++), $style);
  }
  $ol_style = PStyle(size => 500, align => 'w', labelsize => 30,
    labeltext => [\&numlabel, "%d.", $normal_style]);
  $para1 = Paragaph($text1, $ol_style);
  $para2 = Paragaph($text2, $ol_style);

postnobreak‚Æfloat‚́A‚±‚Ì’i—Ž‚ðŠÜ‚ÞƒuƒƒbƒN‚ªbreak‚³‚ê‚é‚Æ‚«‚ɈӖ¡‚ðŽ‚ÂB

=head2 ’i—ŽƒIƒuƒWƒFƒNƒg‚Ì•ªŠ„

’i—Ž‚̍s•ûŒü‚Ì‘å‚«‚³‚Í’i—ŽƒXƒ^ƒCƒ‹‚Ìsize‚ÅŽw’肵‚½‚à‚̂ɂȂ邪A‚»‚ê‚Ɛ‚’¼‚È•ûŒü‚Ì‘å‚«‚³‚͍s”i‚ƍs‘—‚è‚ƃtƒHƒ“ƒgƒTƒCƒYj‚ÅŒˆ‚Ü‚éB‚±‚ꂪˆê’è‚Ì‘å‚«‚³‚É‚È‚é‚悤‚É’i—Ž‚𕪊„‚·‚邽‚߂ɁAbreakƒƒ\ƒbƒh‚ª—pˆÓ‚³‚ê‚Ä‚¢‚éB—Ⴆ‚Ή¡‘‚«‚Ì’i—ŽƒIƒuƒWƒFƒNƒg$para‚ɑ΂µ‚āA

  @paras = $para->break(200);

‚Æ‚·‚é‚ƁA‚‚³‚ª200ƒ|ƒCƒ“ƒgˆÈ‰º‚É‚È‚é‚悤‚É•ªŠ„‚µ‚½’i—Ž‚̃ŠƒXƒg‚ª“¾‚ç‚ê‚éB‚à‚µAÅ‰‚Ì’i—Ž‚¾‚¯‚͍‚‚³‚ð100ˆÈ‰º‚É‚µ‚½‚¯‚ê‚΁A‚‚¬‚̂悤‚É‚·‚ê‚΂悢B

  @paras = $para->break(100, 200);

break‚̈ø”‚ÉŽw’肵‚½ƒTƒCƒY‚̃ŠƒXƒg‚͏‡‚É•ªŠ„‚·‚é’i—Ž‚̃TƒCƒY‚Æ‚µ‚ÄŽg‚í‚êA‚È‚­‚È‚é‚ƍŌã‚̃TƒCƒY‚ªŒJ‚è•Ô‚µŽg‚í‚ê‚éB

break‚̈ø”‚ÉŽw’肵‚½ƒTƒCƒY‚ª¬‚³‚·‚¬‚āAÅŒã‚̃TƒCƒY‚Å‚à•ªŠ„‚Å‚«‚È‚¢•”•ª‚ªŽc‚Á‚½‚Æ‚«‚́A•ªŠ„‚ÉŽ¸”s‚µ‚½‚à‚Ì‚Æ‚µ‚Ä–¢’è‹`’l‚ª•Ô‚³‚ê‚éB

‚à‚µA$para->break(5, 200) ‚̂悤‚ɍŏ‰‚â“r’†‚ɃtƒHƒ“ƒgƒTƒCƒY‚æ‚菬‚³‚ȃTƒCƒY‚ðŽw’è‚·‚é‚ƁA‚»‚ê‚ɑΉž‚µ‚Ä‹ó‚Ì’i—ŽƒIƒuƒWƒFƒNƒg‚ª“¾‚ç‚ê‚éB‚±‚Ì—á‚ł́AÅ‰‚É‹ó‚Ì’i—ŽƒIƒuƒWƒFƒNƒgA‘±‚¢‚Ä200‚¸‚‚ɕªŠ„‚³‚ꂽ’i—ŽƒIƒuƒWƒFƒNƒg‚ª•Ô‚³‚ê‚邱‚Æ‚É‚È‚éB

’i—ŽƒXƒ^ƒCƒ‹‚Ìnobreak‚ª^‚ɐݒ肳‚ê‚Ä‚¢‚é‚ƁA•ªŠ„‚³‚ê‚È‚¢B—Ⴆ‚Înobreak‚ȉ¡‘‚«’i—ŽƒIƒuƒWƒFƒNƒg$upara‚ª‚ ‚èA‚»‚̍‚‚³‚ª150‚Å‚ ‚é‚Æ‚«‚ɁA$upara->break(100, 200) ‚Í (‹ó’i—ŽƒIƒuƒWƒFƒNƒg, $upara‚Æ“¯‚¶ƒIƒuƒWƒFƒNƒg) ‚ð•Ô‚·B$upara->break(100) ‚Å‚Í•ªŠ„‚ÉŽ¸”s‚µ‚Ä–¢’è‹`’l‚ð•Ô‚·B

=head2 ƒuƒƒbƒNƒIƒuƒWƒFƒNƒg‚̍쐬

ƒuƒƒbƒNƒIƒuƒWƒFƒNƒg‚ÍBlockƒTƒuƒ‹[ƒ`ƒ“‚ō쐬‚·‚éB

  $blockobj = Block($direction, @objlit, $blockstyle);

‚±‚±‚ŁA$direction‚̓uƒƒbƒN‚Ì“à—e‚ð•À‚ׂé•ûŒüA@objlit‚Í•\Ž¦‰Â”\‚ȃIƒuƒWƒFƒNƒg‚̃ŠƒXƒgA$blockstyle‚̓uƒƒbƒNƒXƒ^ƒCƒ‹ƒIƒuƒWƒFƒNƒgB

ƒIƒuƒWƒFƒNƒg‚̃ŠƒXƒg‚͂‚¬‚̂悤‚É”z—ñŽQÆ‚ÌŒ`‚Å—^‚¦‚邱‚Æ‚à‚Å‚«‚éB

  $blockobj = Block($direction, [@objlit], $blockstyle);

ƒuƒƒbƒN‚Ì“à—e‚ð•À‚ׂé•ûŒü‚́AŽŸ‚Ì‚¢‚¸‚ê‚©‚ðŽw’è‚·‚éB

  H c ¶‚©‚ç‰E
  R c ‰E‚©‚獶
  V c ã‚©‚牺

$direction‚ÅŽw’肵‚½•ûŒü‚ɁA@objlit‚Ì—v‘f‚ð‡‚É•À‚ׂ½‚à‚Ì‚ªƒuƒƒbƒN‚Ì“à—e‚Æ‚È‚éB‚»‚̍ہAŠe—v‘f‚Ì•\Ž¦‰Â”\‚ȃIƒuƒWƒFƒNƒg‚ɁApreskip‚âpostskip‚̃Xƒ^ƒCƒ‹‚ªŽw’肳‚ê‚Ä‚¢‚ê‚΁A‚»‚ê‚É‚µ‚½‚ª‚Á‚ÄŠÔŠu‚ªŽæ‚ç‚ê‚éB‚Ü‚½“ÁŽê‚ÈŽw’è‚Æ‚µ‚āA@objlist‚Ì’†‚ɃIƒuƒWƒFƒNƒg‚Å‚È‚­¶‚̐”’l‚ð“ü‚ê‚é‚Æ‚»‚ÌŠÔŠu‚ªŽæ‚ç‚ê‚éB

ƒuƒƒbƒNƒXƒ^ƒCƒ‹ƒIƒuƒWƒFƒNƒg‚ÍBStyleƒTƒuƒ‹[ƒ`ƒ“‚ō쐬‚·‚éB

  $blockstyle = BStyle(%args);

ˆø”‚ɂ̓nƒbƒVƒ…ƒŠƒXƒg‚ÌŒ`‚ÅŽŸ‚Ì‚à‚Ì‚ð—^‚¦‚éB

  width => •iƒ|ƒCƒ“ƒgj
  height => ‚‚³iƒ|ƒCƒ“ƒgj
  align => ‘µ‚¦
  adjust => ‘µ‚¦ƒtƒ‰ƒOi^‚ðŽw’è‚·‚é‚Æ—v‘f‚̃uƒƒbƒN‚̃TƒCƒY‚𑵂¦‚éj
  padding => ŽüˆÍ—]”’iƒ|ƒCƒ“ƒgj
  beginpadding => s“ª‘¤‚Ì—]”’iƒ|ƒCƒ“ƒgj
  withbox => ˆÍ‚ݘgŽw’èif:“h‚è’ׂµAs:˜güAsf:“h‚è’ׂµ{˜güj
  withboxstyle => ˆÍ‚ݘg‚̐}Œ`ƒXƒ^ƒCƒ‹ƒIƒuƒWƒFƒNƒg
  preskip => ‘O‚ÌŠÔŠuiƒ|ƒCƒ“ƒgj
  postskip => Œã‚ÌŠÔŠuiƒ|ƒCƒ“ƒgj
  nobreak => ^‚¾‚Æbreak‚Å•ªŠ„‚³‚ê‚È‚¢
  postnobreak => ^‚¾‚ƃuƒƒbƒN‚Ìbreak‚Å‚»‚ÌŒã‚ë‚Å•ªŠ„‚³‚ê‚È‚¢
  repeatheader => break‚Å•ªŠ„‚·‚é‚Æ‚«æ“ª‚ÅŒJ‚è•Ô‚·—v‘f”
  float => ƒuƒƒbƒN‚Ìbreak‚ňʒu‚ðŽ©“®ˆÚ“®iuƒuƒƒbƒNƒIƒuƒWƒFƒNƒg‚Ì•ªŠ„vŽQÆj
  nofirstfloat => ^‚¾‚Æbreak‚Ő擪‚É‚Ífloat—v‘f‚ð’u‚©‚È‚¢
  bfloatsep => float‚ªb‚Ì—v‘f‚Æ‚»‚êˆÈŠO‚Ì—v‘f‚ÌŠÔ‚É‘}“ü‚³‚ê‚é•\Ž¦‰Â”\ƒIƒuƒWƒFƒNƒg
  efloatsep => float‚ªe‚Ì—v‘f‚Æ‚»‚êˆÈŠO‚Ì—v‘f‚ÌŠÔ‚É‘}“ü‚³‚ê‚é•\Ž¦‰Â”\ƒIƒuƒWƒFƒNƒg

widthAheight‚Å•‚⍂‚³‚ðŽw’肵‚½ê‡A“à—e‚Ì•‚⍂‚³‚ª‚»‚ê‚æ‚è‘å‚«‚¢ê‡‚Í“à—e‚ɍ‡‚킹‚ç‚ê‚éB“à—e‚æ‚è‚àŽw’肵‚½•‚⍂‚³‚ª‘å‚«‚¢ê‡‚́Aalign‚É‚µ‚½‚ª‚Á‚Ĉʒu‚ª‘µ‚¦‚ç‚ê‚éB

align‚É‚æ‚鑵‚¦‚ÍŽŸ‚Ì‚¢‚¸‚ê‚©‚ð‘g‚ݍ‡‚킹‚ÄŽw’èBÈ—ª‚·‚é‚Æ'tl'‚Æ‚Ý‚È‚³‚ê‚éB

  ¦¶‰E•ûŒü
  l c ¶Šñ‚¹
  c c ’†‰›Šñ‚¹
  r c ‰EŠñ‚¹
  
  ¦ã‰º•ûŒü
  t c ãŠñ‚¹
  m c ’†‰›Šñ‚¹
  b c ‰ºŠñ‚¹

adjust‚ð^‚ÉŽw’è‚·‚é‚ƁA•ûŒü‚ªH‚âR‚̏ꍇ‚Í—v‘fƒuƒƒbƒN‚̍‚‚³AV‚̏ꍇ‚Í—v‘fƒuƒƒbƒN‚Ì•‚ðA‚à‚Á‚Æ‚à‘å‚«‚¢‚à‚Ì‚É‘µ‚¦‚éBƒuƒƒbƒN‚ð•À‚ׂĕ\‚ðì¬‚·‚é‚Æ‚«‚ÉŽg—p‚·‚éB

padding‚Í“à—e‚ÌŽü‚è‚ÉŽæ‚ç‚ê‚é—]”’‚Ì•‚Å‚ ‚èAwithbox‚ň͂ݘg‚ðŽw’肵‚½ê‡‚Í‚»‚Ì—]”’‚ÌŠO‘¤‚É•`‰æ‚³‚ê‚éB

beginpadding‚͈͂ݘg‚ÌŠO‚̍s“ª‘¤‚ÉŽæ‚ç‚ê‚é—]”’‚ÌŽw’è‚Å‚ ‚éB

withbox‚ł́A's','f','sf'‚Ì‘¼‚ɁA'rX'iX‚͐”’lj‚ð•t‰Á‚·‚é‚ÆŠp‚ª”¼ŒaX‚ÅŠÛ‚­‚È‚éB

=head2 ƒuƒƒbƒNƒIƒuƒWƒFƒNƒg‚Ì•ªŠ„

’i—ŽƒIƒuƒWƒFƒNƒg‚Æ“¯—l‚ɁAƒuƒƒbƒNƒIƒuƒWƒFƒNƒg‚àbreakƒƒ\ƒbƒh‚É‚æ‚Á‚Ä•ªŠ„‚ª‚Å‚«‚éB—Ⴆ‚ΕûŒü‚ª'V'‚̃uƒƒbƒNƒIƒuƒWƒFƒNƒg$block‚ð‚‚³‚ª200ƒ|ƒCƒ“ƒgˆÈ‰º‚É‚È‚é‚悤‚É•ªŠ„‚µ‚½‚¯‚ê‚΁A

  @blocks = $block->break(200);

‚Æ‚·‚ê‚΂悢BÅ‰‚̃uƒƒbƒN‚¾‚¯‚‚³‚ð100ˆÈ‰º‚É‚µ‚½‚¯‚ê‚΁A‚‚¬‚̂悤‚É‚·‚éB

  @blocks = $block->break(100, 200);

break‚̈ø”‚ÉŽw’肵‚½ƒTƒCƒY‚̃ŠƒXƒg‚͏‡‚É•ªŠ„‚µ‚½’i—Ž‚̃TƒCƒY‚Æ‚µ‚ÄŽg‚í‚êA‚È‚­‚È‚é‚ƍŌã‚̃TƒCƒY‚ªŒJ‚è•Ô‚µŽg‚í‚ê‚éB

ƒuƒƒbƒN‚Ì•ªŠ„‚̍ہAƒuƒƒbƒN“à‚̃IƒuƒWƒFƒNƒg‚Æ‚µ‚āA•ûŒü‚Ì“¯‚¶ƒuƒƒbƒN‚âAs•ûŒü‚̈قȂé’i—Ži'V'‚È‚ç'H'A'H'‚â'R'‚È‚ç'V'j‚ª‚ ‚é‚ƁA‚»‚̃IƒuƒWƒFƒNƒg‚à•ªŠ„‚·‚邱‚Æ‚Å‚Å‚«‚邾‚¯Žw’è‚̃TƒCƒY‚ɍ‡‚¤‚悤‚É•ªŠ„‚³‚ê‚éB

Žw’肵‚½ƒTƒCƒY‚Å•ªŠ„‚ª‚Å‚«‚È‚©‚Á‚½ê‡Abreakƒƒ\ƒbƒh‚Í–¢’è‹`’l‚ð•Ô‚·B•¡”‚̃TƒCƒY‚ðŽw’肵‚½ê‡‚ɁAÅŒãˆÈŠO‚̃TƒCƒY‚ª¬‚³‚·‚¬‚½ê‡‚́A‚»‚ê‚ɑΉž‚·‚é‚à‚Ì‚Æ‚µ‚Ä‹ó‚̃uƒƒbƒN‚ª•Ô‚³‚ê‚éB

ƒuƒƒbƒNƒXƒ^ƒCƒ‹‚Å nobreak ‚ª^‚É‚È‚Á‚Ä‚¢‚é‚ƁA‚»‚̃uƒƒbƒN‚Í•ªŠ„‚³‚ê‚È‚¢B

ƒuƒƒbƒN‚Ì’†‚ÉNewBlockƒTƒuƒ‹[ƒ`ƒ“‚ō쐬‚³‚ê‚é‰üƒuƒƒbƒNƒIƒuƒWƒFƒNƒg‚ª‚ ‚é‚ƁAƒuƒƒbƒN‚Ì•ªŠ„‚̍ۂɂ»‚±‚Å‹­§“I‚É•ªŠ„‚³‚ê‚éB

ƒuƒƒbƒN‚Ì•ªŠ„‚̍ہA‚»‚Ì—v‘f‚Æ‚È‚éƒuƒƒbƒN‚â’i—Ž‚â}Œ`‚̃Xƒ^ƒCƒ‹‚Å postnobreak ‚ª^‚ɐݒ肳‚ê‚Ä‚¢‚é‚ƁA‚»‚ÌŒã‚ë‚Å•ªŠ„‚³‚ê‚邱‚Æ‚Í‚È‚¢B‚±‚ê‚É‚æ‚Á‚āAŒ©o‚µ’i—Ž‚Æ–{•¶’i—Ž‚ª•Êƒy[ƒW‚É•ª‚©‚ê‚邱‚Æ‚ð–h‚®‚±‚Æ‚ª‚Å‚«‚éB

ƒuƒƒbƒN‚Ì•ªŠ„‚̍ہA‚»‚Ì—v‘f‚Æ‚È‚éƒuƒƒbƒN‚â’i—Ž‚â}Œ`‚̃Xƒ^ƒCƒ‹‚Å float ‚ªÝ’肳‚ê‚Ä‚¢‚é‚ƁA‚»‚Ì—v‘f‚Í•ªŠ„‚³‚ꂽƒuƒƒbƒN“à‚ÅŽw’è‚̈ʒu‚Ɉړ®‚³‚ê‚éBfloatŽw’è‚̈Ӗ¡‚ÍŽŸ‚Ì‚Æ‚¨‚èB

  bN:•ªŠ„‚³‚ꂽƒuƒƒbƒN‚̐擪iN‚Í1`9‚Ü‚½‚͏ȗªj
  eN:•ªŠ„‚³‚ꂽƒuƒƒbƒN‚Ì––”öiN‚Í1`9‚Ü‚½‚͏ȗªj
  h:•ªŠ„‚¹‚¸‚ɉ”\‚È‚ç‚»‚̈ʒu‚ɁA–³—‚Ȃ玟‚̃uƒƒbƒN‚̐擪‚É

b‚Æe‚ÌŒã‚ë‚É1`9‚̔ԍ†‚ð•t‚¯‚Đ”Žš•Ê‚ɃOƒ‹[ƒv‰»‚Å‚«‚éB”Žš‚Ì‘å‚«‚È‚à‚̂قǐ擪‚Ü‚½‚Í––”öŠñ‚è‚É”z’u‚³‚ê‚éBb0‚âe0‚Æ‚Í‚¹‚¸‚Éb‚âe‚Æ‚·‚邱‚Æ‚É’ˆÓB

ƒuƒƒbƒNƒXƒ^ƒCƒ‹‚Ånofirstfloat‚ð^‚ÉŽw’è‚·‚é‚ƁAbreak‚̍ۂɑS‘̂̐擪‚É‚Ífloat—v‘f‚ð’u‚©‚È‚¢B

ƒuƒƒbƒNƒXƒ^ƒCƒ‹‚Ìbfloatsep‚Å•\Ž¦‰Â”\ƒIƒuƒWƒFƒNƒg‚ðŽw’è‚·‚é‚ƁAfloat‚ªb‚Ő擪‚Ɉړ®‚µ‚½—v‘fŒQ‚ÌŒã‚É‘}“ü‚³‚ê‚éBefloatsep‚ÅŽw’肵‚½ƒIƒuƒWƒFƒNƒg‚Ífloat‚ªe‚Å––”ö‚Ɉړ®‚µ‚½—v‘fŒQ‚Ì‘O‚É‘}“ü‚³‚ê‚éB‚±‚ê‚É‚æ‚èAfloat‚ðe‚Æ‚µ‚ăy[ƒW––”ö‚Ɉړ®‚µ‚½‹r’’i—Ž‚Æ–{•¶’i—Ž‚ÌŠÔ‚É‹æØ‚èü‚ð“ü‚ê‚é‚悤‚È‚±‚Æ‚ª‚Å‚«‚éBfloat‚ÉbN‚âeNiN‚Í1`9j‚ðŽg‚¤ê‡‚́Abfloatsep‚âefloatsep‚É”z—ñŽQÆ‚ÌŒ`‚ŃIƒuƒWƒFƒNƒg‚̃ŠƒXƒg‚ð—^‚¦‚é‚ƁA‚»‚ÌN”Ô–Ú‚Ì‚à‚Ì‚ªŽg‚í‚ê‚éib‚âe‚É‚Í0”Ô–Ú‚Ì‚à‚Ì‚ªŽg‚í‚ê‚éjB‚È‚¨Abfloatsep‚âefloatsep‚ÉŽg‚¤ƒIƒuƒWƒFƒNƒg‚Í‚»‚êê—p‚ÉŽg—p‚µA•ªŠ„‚³‚ê‚éƒuƒƒbƒN‚Ì“à—e‚Æ‚µ‚ÄŽg‚Á‚Ä‚Í‚È‚ç‚È‚¢B‚Ü‚½Abfloatsep‚ÉŽg‚¤ƒIƒuƒWƒFƒNƒg‚Æefloatsep‚ÉŽg‚¤ƒIƒuƒWƒFƒNƒg‚àˆÙ‚È‚éƒIƒuƒWƒFƒNƒg‚Å‚È‚¯‚ê‚΂Ȃç‚È‚¢B

ƒuƒƒbƒNƒXƒ^ƒCƒ‹‚Å repeatheader ‚ªŽw’肳‚ê‚Ä‚¢‚é‚ƁA‚»‚Ì’l‚̐”‚¾‚¯‚̐擪—v‘f‚ªA•ªŠ„‚³‚ꂽŠeƒuƒƒbƒN‚̐擪‚ÅŒJ‚è•Ô‚³‚ê‚éBi‚½‚¾‚µæ“ª—v‘f‚Ì“r’†‚âŒã‚ë‚Å•ªŠ„‚³‚ꂽê‡‚͏œ‚­Bj‚±‚ê‚É‚æ‚Á‚Ä•\‚̐擪‚̍€–Ú–¼‚̍s‚ðŒJ‚è•Ô‚·‚±‚Æ‚ª‚Å‚«‚éBæ“ª—v‘fŽ©‘Ì‚ª•ªŠ„‚³‚ê‚é‚Æ‚¨‚©‚µ‚ÈŒ‹‰Ê‚ª“¾‚ç‚ê‚é‚̂ŁAæ“ª—v‘f‚ª•ªŠ„‰Â”\‚È’i—Ž‚âƒuƒƒbƒN‚̏ꍇ‚Í nobreak ‚ðŽw’肵‚Ä‚¨‚­‚±‚Ɓi•ûŒü‚̈ႤƒuƒƒbƒN‚̏ꍇ‚Í•s—vjB‚Ü‚½æ“ª—v‘f‚ÆŽŸ‚Ì—v‘f‚ª•ªŠ„‚³‚ꂽê‡‚à•s“KØ‚ÈŒ‹‰Ê‚Æ‚È‚é‚̂ŁAæ“ª—v‘f‚É‚Í postnobreak ‚ÌŽw’è‚ð‚µ‚Ä‚¨‚­‚±‚ƁB

=head2 ‰æ‘œƒIƒuƒWƒFƒNƒg‚̍쐬

‰æ‘œƒIƒuƒWƒFƒNƒg‚ÍJPEG‰æ‘œ‚ɂ‚¢‚Ă̂ݍ쐬‚Å‚«A•¶‘ƒIƒuƒWƒFƒNƒg‚©‚çnew_imageƒƒ\ƒbƒh‚ō쐬‚·‚éB

  $imgobj = $docobj->new_image($src, $pxwidth, $pxheight, 
    $width, $height, $padding, $colorspace);

‚±‚±‚ŁA$src‚ÍURL‚Ü‚½‚̓tƒ@ƒCƒ‹–¼iŠg’£Žq‚Í.jpg‚Ü‚½‚Í.jpeg‚Å‚ ‚邱‚ƁjA$pxwidth‚Æ$pxheight‚͉摜‚̃sƒNƒZƒ‹ƒTƒCƒYA$width‚Æ$height‚Í•\Ž¦ƒTƒCƒYiƒ|ƒCƒ“ƒgjA$padding‚ÍŽüˆÍ‚Ì—]”’iƒ|ƒCƒ“ƒgjA$colorspace‚̓Jƒ‰[ƒXƒy[ƒXirgb,gray,cmyk‚Ì‚¢‚¸‚ê‚©‚ŏȗª‚·‚é‚ÆrgbjB$padding‚Æ$colorspace‚͏ȗª‚Å‚«‚éB

Œ»Ý‚ÌŽd—l‚ł́AURLŽw’肵‚½ê‡‚͐¶¬‚³‚ê‚éPDF‚É‚ÍURLî•ñ‚¾‚¯‚ª–„‚ߍž‚Ü‚êA•\Ž¦‚·‚éÛ‚ÉAcrobatReader‚ª‚»‚ÌURL‚ɃAƒNƒZƒX‚µ‚ĉ摜“à—e‚ð“Ç‚Ý‚Æ‚éB‚µ‚½‚ª‚Á‚Ä•\Ž¦‚ÉŽžŠÔ‚ª‚©‚©‚Á‚½‚èAƒAƒNƒZƒX‚Å‚«‚È‚¢‚Ɖ摜‚ª•\Ž¦‚Å‚«‚È‚¢‚Æ‚¢‚Á‚½‚±‚Æ‚ª‹N‚±‚肤‚éB

ƒtƒ@ƒCƒ‹–¼Žw’肵‚½‰æ‘œ‚̏ꍇ‚́A¶¬‚³‚ꂽPDF‚ɉ摜“à—e‚»‚Ì‚à‚Ì‚ªƒf[ƒ^‚Æ‚µ‚Ä–„‚ߍž‚Ü‚ê‚é‚̂ŁAŒ³‚̉摜ƒtƒ@ƒCƒ‹‚ðPDFƒtƒ@ƒCƒ‹‚ƈꏏ‚É”z•z‚µ‚½‚è‚·‚é•K—v‚Í‚È‚¢B

‰æ‘œƒIƒuƒWƒFƒNƒg‚É‚Í‘¼‚Ì•\Ž¦‰Â”\‚ȃIƒuƒWƒFƒNƒg‚ƈá‚Á‚ăXƒ^ƒCƒ‹‚ÌŽw’è‚Í‚È‚¢BƒuƒƒbƒN‚ÉŠÜ‚ß‚éÛ‚Épostnobreak‚ðŽw’肵‚½‚¢‚Æ‚¢‚¤‚悤‚È‚Æ‚«‚́A}Œ`ƒIƒuƒWƒFƒNƒg‚Ì’†‚ɉ摜ƒIƒuƒWƒFƒNƒg‚ðŠÜ‚߂āA‚»‚̐}Œ`ƒIƒuƒWƒFƒNƒg‚ɃXƒ^ƒCƒ‹‚ðŽw’è‚·‚éB

=head2 }Œ`ƒIƒuƒWƒFƒNƒg‚̍쐬

}Œ`ƒIƒuƒWƒFƒNƒg‚ÍShapeƒTƒuƒ‹[ƒ`ƒ“‚ō쐬‚·‚éB

  $shapeobj = Shape($shapestyle);

‚±‚±‚Å$shapestyle‚͐}Œ`ƒXƒ^ƒCƒ‹ƒIƒuƒWƒFƒNƒgB$shapestyle‚͏ȗª‚Å‚«‚éB‚±‚ꂾ‚¯‚ł͉½‚à’†–¡‚Ì‚È‚¢}Œ`ƒIƒuƒWƒFƒNƒg‚ªì‚ç‚ê‚邾‚¯‚Å‚ ‚éB‚»‚ÌŒãAŽŸ‚̃ƒ\ƒbƒh‚ðŽg‚Á‚Đ}Œ`‚ð‰Á‚¦‚Ä‚¢‚­B

=over 4

=item ’¼üilineƒƒ\ƒbƒhj

  $shapeobj->line($x, $y, $w, $h, $style);

($x,$y)‚©‚ç($x+$w,$y+$h)‚Ö’¼ü‚ªˆø‚©‚ê‚éB$style‚͐}Œ`ƒXƒ^ƒCƒ‹ƒIƒuƒWƒFƒNƒg‚ŁAÈ—ª‰Â”\B

=item ‹éŒ`iboxƒƒ\ƒbƒhj

  $shapeobj->box($x, $y, $w, $h, $spec, $style);

($x,$y)‚Æ($x+$w,$y+$h)‚ð‘Ίp‚Æ‚·‚é‹éŒ`‚ª•`‚©‚ê‚éB$style‚͐}Œ`ƒXƒ^ƒCƒ‹ƒIƒuƒWƒFƒNƒg‚ŁAÈ—ª‰Â”\B$spec‚ÍŽŸ‚Ì•`‰æŽw’èB

  f c “h‚è’ׂµ‚Ì‚Ý
  s c ˜gü‚Ì‚Ý
  sf c “h‚è’ׂµ{˜gü
  n c •`‰æ‚µ‚È‚¢
  ¦ã‹L‚Ìs‚Ì‘ã‚í‚è‚ɁAli¶•ÓjAri‰E•ÓjAtiã•ÓjAbi‰º•ÓjA‚Ì‘g‚ݍ‡‚킹‚à‰Â
  ¦ŽŸ‚̓IƒvƒVƒ‡ƒ“
  rX c iX‚͐”’ljŠp‚𔼌aX‚ÅŠÛ‚­‚·‚é

box()‚ɑ΂·‚é$style‚ł́A’ʏí‚̐}Œ`ƒXƒ^ƒCƒ‹‚ɉÁ‚¦‚ÄŽŸ‚̃Xƒ^ƒCƒ‹‚ªŽg‚¦‚éBiL<"ƒnƒCƒp[ƒŠƒ“ƒN">‚ðŽQÆj

  link => ƒŠƒ“ƒNæi•¶‘“à‚̃Šƒ“ƒNæ–¼‚Ü‚½‚́AURI:‚ð•t‚¯‚½URI–¼j

=item ‰~icircleƒƒ\ƒbƒhj

  $shapeobj->circle($x, $y, $r, $spec, $arcarea, $style);

($x,$y)‚ª’†SA$r‚ª”¼Œa‚̉~‚ª•`‚©‚ê‚éB$arcarea‚ÍŽl”¼‰~Žw’èi1:‰EãA2:¶ãA3:¶‰ºA4:‰E‰ºj‚ŏȗª‚·‚ê‚ΑS‰~B$style‚͐}Œ`ƒXƒ^ƒCƒ‹ƒIƒuƒWƒFƒNƒg‚ŁAÈ—ª‰Â”\B$spec‚ÍŽŸ‚Ì•`‰æŽw’èB

  f c “h‚è’ׂµ‚Ì‚Ý
  s c ˜gü‚Ì‚Ý
  sf c “h‚è’ׂµ{˜gü

=item ‘ȉ~iellipseƒƒ\ƒbƒhj

  $shapeobj->ellipse($x, $y, $xr, $yr, $spec, $arcarea, $style);

$xr‚ª‰¡”¼ŒaA$yr‚ªc”¼Œa‚Å‚ ‚邱‚Æ‚ðœ‚¯‚Ή~‚Æ“¯‚¶B

=item ‘½ŠpŒ`ipolygonƒƒ\ƒbƒhj

  $shapeobj->polygon([@coords], $spec, $style);

@coords‚Í’¸“_‚̍À•W‚ÌX‚ÆY‚Ì‘g‚ð‡‚É•À‚ׂ½ƒŠƒXƒgB$style‚͐}Œ`ƒXƒ^ƒCƒ‹ƒIƒuƒWƒFƒNƒg‚ŁAÈ—ª‰Â”\B$spec‚ÍŽŸ‚Ì•`‰æŽw’èB

  f c “h‚è’ׂµ‚Ì‚Ý
  s c ˜gü‚Ì‚Ý
  sf c “h‚è’ׂµ{˜gü

=item ‰~ŒÊiarcƒƒ\ƒbƒhj

  $shapeobj->arc($x, $y, $r, $start, $end, $spec, $style);

($x,$y)‚ª’†SA$r‚ª”¼ŒaAŠJŽnŠp$startAI—¹Šp$end‚̉~ŒÊ‚Ü‚½‚͉~ŒÊ‚Æ”¼Œa‚ň͂܂ꂽ—̈悪•`‚©‚ê‚éBŠJŽnŠpAI—¹Šp‚̓‰ƒWƒAƒ“B$style‚͐}Œ`ƒXƒ^ƒCƒ‹ƒIƒuƒWƒFƒNƒg‚ŁAÈ—ª‰Â”\B$spec‚ÍŽŸ‚Ì•`‰æŽw’èB$spec‚ªa‚ÌŽž‚͉~ŒÊ‚̂݁A‚»‚Ì‘¼‚̏ꍇ‚͉~ŒÊ‚Æ”¼Œa‚ň͂܂ꂽ—̈悪•`‰æ‚³‚ê‚éB

  a c ‰~ŒÊ‚Ì‚Ý
  f c “h‚è’ׂµ‚Ì‚Ý
  s c ˜gü‚Ì‚Ý
  sf c “h‚è’ׂµ{˜gü

=item ƒIƒuƒWƒFƒNƒgiobjƒƒ\ƒbƒhj

  $shapeobj->obj($obj, @showargs);

}Œ`’†‚É•\Ž¦‰Â”\‚ȃIƒuƒWƒFƒNƒg$obj‚ðA$obj->show($page, @showargs)‚É‚æ‚Á‚Ä”z’u‚·‚éB

=back

ˆÈã‚̃ƒ\ƒbƒh‚݂͂ȃIƒuƒWƒFƒNƒgŽ©g‚ð•Ô‚·‚̂ŁA

  $shapeobj = Shape->line(c)->box(c)->obj(c);

‚̂悤‚É‹Lq‚·‚邱‚Æ‚à‰Â”\B

ˆÈã‚̃ƒ\ƒbƒh‚Å•`‰æ‚·‚éê‡‚́AŒ‹‰Ê‚Æ‚µ‚Ä‚»‚̐}Œ`ƒIƒuƒWƒFƒNƒg‚ªã‰º¶‰E‚ɂǂꂾ‚¯‚͈̔͂ðè‚ß‚é‚©‚Æ‚¢‚¤‘S‘Ì‚Æ‚µ‚Ă̐}Œ`‚Ì‘å‚«‚³‚ª“à•”“I‚ÉŠÇ—‚³‚êA•‚ƍ‚‚³‚ðŽ‚Á‚½•\Ž¦‰Â”\ƒIƒuƒWƒFƒNƒg‚Æ‚µ‚Ĉµ‚¤‚±‚Æ‚ª‚Å‚«‚éB

‚±‚ê‚çˆÈŠO‚̃vƒŠƒ~ƒeƒBƒu‚È•`‰æƒƒ\ƒbƒh‚à‚ ‚éiPDFJ::Shape‚̃ƒ\ƒbƒhˆê——‚ðŽQÆj‚ªA‚»‚ê‚ç‚̃ƒ\ƒbƒh‚ðŽg‚Á‚½ê‡‚͐}Œ`ƒIƒuƒWƒFƒNƒg‚Ì‘å‚«‚³‚ÌŠÇ—‚Í‚¨‚±‚È‚í‚ê‚È‚¢‚±‚Æ‚É’ˆÓ‚ª•K—vB

}Œ`ƒXƒ^ƒCƒ‹ƒIƒuƒWƒFƒNƒg‚́ASStyleƒTƒuƒ‹[ƒ`ƒ“‚ō쐬‚·‚éB

  $shapestyle = SStyle(%args);

ˆø”‚ɂ̓nƒbƒVƒ…ƒŠƒXƒg‚ÌŒ`‚ÅŽŸ‚Ì‚à‚Ì‚ð—^‚¦‚éB

  fillcolor => “h‚è’ׂµFiFƒIƒuƒWƒFƒNƒgj
  strokecolor => üFiFƒIƒuƒWƒFƒNƒgj
  linewidth => ü•iƒ|ƒCƒ“ƒgj
  linedash => [$dash, $gap, $phase] ‚Ü‚½‚Í "$dash, $gap, $phase"
  preskip => ‘O‚ÌŠÔŠuiƒ|ƒCƒ“ƒgj
  postskip => Œã‚ÌŠÔŠuiƒ|ƒCƒ“ƒgj
  postnobreak => ^‚¾‚ƃuƒƒbƒN‚Ìbreak‚Å‚»‚ÌŒã‚ë‚Å•ªŠ„‚³‚ê‚È‚¢
  float => ƒuƒƒbƒN‚Ìbreak‚ňʒu‚ðŽ©“®ˆÚ“®iuƒuƒƒbƒNƒIƒuƒWƒFƒNƒg‚Ì•ªŠ„vŽQÆj

linedash‚ÌŽw’è‚ŁA$dash‚Í”jü’·A$gap‚ÍŒ„ŠÔ’·A$phase‚ÍŠJŽnˆÊ’uB$phase‚͏ȗª‰Â”\B

preskipApostskipApostnobreakAfloat‚́AƒuƒƒbƒN‚Ì’†‚ɐ}Œ`ƒIƒuƒWƒFƒNƒg‚ð’u‚­‚Æ‚«‚ɈӖ¡‚ðŽ‚ÂB

box()‚ɑ΂·‚é$style‚ł́Aã‹L‚̐}Œ`ƒXƒ^ƒCƒ‹‚ɉÁ‚¦‚ÄŽŸ‚̃Xƒ^ƒCƒ‹‚ªŽg‚¦‚éB

  link => ƒŠƒ“ƒNæi•¶‘“à‚̃Šƒ“ƒNæ–¼‚Ü‚½‚́AURI:‚ð•t‚¯‚½URI–¼j

=head2 ’ljÁ‚̐}Œ`ƒIƒuƒWƒFƒNƒgƒƒ\ƒbƒh

use PDFJ::Shape; ‚·‚é‚ƁAŽŸ‚̒ljÁ‚̐}Œ`•`‰æƒƒ\ƒbƒh‚ªPDFJ::Shape‚ɒljÁ‚³‚ê‚éB‚±‚ê‚ç‚̃ƒ\ƒbƒh‚Í‚¢‚¸‚ê‚àƒIƒuƒWƒFƒNƒgŽ©g‚ð•Ô‚·B‚Ü‚½A•`‰æ”͈͂̊Ǘ‚ª‚¨‚±‚È‚í‚ê‚éB

=over 4

=item –îˆóiarrowƒƒ\ƒbƒhj

  $shapeobj->arrow($x, $y, $w, $h, $headsize, $headangle, $style);

$headsize‚Æ$headangleˆÈŠO‚̈ø”‚Íline‚Æ“¯‚¶B’¼ü‚̏I’[‚ɁA’·‚³‚ª$headsizeAæ’[Šp“x‚Ì”¼•ª‚ª$headangleiƒ‰ƒWƒAƒ“j‚ÌŽOŠpŒ`‚ÌèV‚ª•t‚¯‚ç‚ê‚éB

=item ”gŠ‡ŒÊibraceƒƒ\ƒbƒhj

  $shapeobj->brace($x, $y, $w, $h, $style);

ˆø”‚̈Ӗ¡‚Í‹éŒ`‚Æ“¯‚¶B‚»‚Ì‹éŒ`‚Ì’†‚É”[‚Ü‚é”gŠ‡ŒÊ‚ð•`‰æ‚·‚éB$w‚ª³‚È‚çŠJ‚«Š‡ŒÊA•‰‚È‚ç•Â‚¶Š‡ŒÊB•¶Žš‚Ì{}‚ł͊Ԃɍ‡‚í‚È‚¢‘å‚«‚È”gŠ‡ŒÊ‚ª•K—v‚ȏꍇ‚ÉŽg—p‚·‚éB

=item ŠpŠ‡ŒÊibracketƒƒ\ƒbƒhj

  $shapeobj->bracket($x, $y, $w, $h, $style);

ˆø”‚̈Ӗ¡‚Í‹éŒ`‚Æ“¯‚¶B‚»‚Ì‹éŒ`‚Ì’†‚É”[‚Ü‚éŠpŠ‡ŒÊ‚ð•`‰æ‚·‚éB$w‚ª³‚È‚çŠJ‚«Š‡ŒÊA•‰‚È‚ç•Â‚¶Š‡ŒÊB•¶Žš‚Ì[]‚ł͊Ԃɍ‡‚í‚È‚¢‘å‚«‚ÈŠpŠ‡ŒÊ‚ª•K—v‚ȏꍇ‚ÉŽg—p‚·‚éB

=item ŠÛŠ‡ŒÊiparenƒƒ\ƒbƒhj

  $shapeobj->paren($x, $y, $w, $h, $style);

ˆø”‚̈Ӗ¡‚Í‹éŒ`‚Æ“¯‚¶B‚»‚Ì‹éŒ`‚Ì’†‚É”[‚Ü‚éŠÛŠ‡ŒÊ‚ð•`‰æ‚·‚éB$w‚ª³‚È‚çŠJ‚«Š‡ŒÊA•‰‚È‚ç•Â‚¶Š‡ŒÊB•¶Žš‚Ì()‚ł͊Ԃɍ‡‚í‚È‚¢‘å‚«‚ÈŠpŠ‡ŒÊ‚ª•K—v‚ȏꍇ‚ÉŽg—p‚·‚éB

=back

=head2 FƒIƒuƒWƒFƒNƒg‚̍쐬

FƒIƒuƒWƒFƒNƒg‚́AColorƒTƒuƒ‹[ƒ`ƒ“‚ō쐬‚·‚éB

  $colorobj = Color($r, $g, $b);
  $colorobj = Color('#RRGGBB');
  $colorobj = Color($g);

ŽOˆø”‚̏ꍇA$r‚͐ԁA$g‚͗΁A$b‚͐‚̂»‚ꂼ‚ê‚ÌŠ„‡i0‚©‚ç1‚܂ł͈̔͂̐”’ljB

ˆêˆø”‚ŁA#‚ÅŽn‚Ü‚é16i6Œ…‚Ì•¶Žš—ñ‚̏ꍇA“ñŒ…‚¸‚ԁA—΁AÂ‚ÌŠ„‡i00‚©‚çff‚܂Łj‚Æ‚Ý‚È‚³‚ê‚éB

ˆêˆø”‚ŁA”’l‚̏ꍇ‚́AƒOƒŒ[‚ÌŠ„‡i0‚©‚ç1‚܂ł͈̔͂̐”’ljB0‚ª•A1‚ª”’B

=head2 •\Ž¦‰Â”\ƒIƒuƒWƒFƒNƒg‚̃y[ƒW‚Ö‚Ì”z’u

•\Ž¦‰Â”\‚ȃIƒuƒWƒFƒNƒg‚ðƒy[ƒWã‚É”z’u‚·‚é‚ɂ́Ashowƒƒ\ƒbƒh‚ð—p‚¢‚éB

  $obj->show($page, $x, $y, $align, $transtype, @transargs);

‚±‚±‚ŁA$page‚̓y[ƒWƒIƒuƒWƒFƒNƒgA$xA$y‚Í•\Ž¦ˆÊ’uA$align‚Í”z’uA$transtype‚Í•ÏŒ`‚ÌŽí—ށA@transargs‚Í•ÏŒ`‚̃pƒ‰ƒ[ƒ^‚Å‚ ‚éB$alignˆÈ~‚̈ø”‚͏ȗª‚Å‚«‚éB

•\Ž¦ˆÊ’u‚̍À•W‚́Aƒy[ƒW‚̍¶‰º‹÷‚ªŒ´“_(0,0)‚Æ‚È‚èAXÀ•W‚͉E‚ցAYÀ•W‚͏ã‚ÖŒü‚©‚Á‚Ä‘‰Á‚·‚éB’PˆÊ‚̓|ƒCƒ“ƒg‚Å‚ ‚éB

”z’u$align‚́A($x,$y)‚ÅŽw’肵‚½•\Ž¦ˆÊ’u‚ɑ΂µ‚āAƒIƒuƒWƒFƒNƒg‚ð‚ǂ̂悤‚É”z’u‚·‚é‚©‚ðŽw’è‚·‚é‚à‚̂ŁAŽŸ‚̉¡ˆÊ’u‚ƏcˆÊ’u‚ð‘g‚ݍ‡‚킹‚ÄŽw’è‚·‚éB

  ‰¡ˆÊ’u
    l c ƒIƒuƒWƒFƒNƒg‚̍¶’[‚ð$x‚É‚ ‚킹‚é
    c c ƒIƒuƒWƒFƒNƒg‚Ì’†‰›‚ð$x‚É‚ ‚킹‚é
    r c ƒIƒuƒWƒFƒNƒg‚̉E’[‚ð$x‚É‚ ‚킹‚é
  cˆÊ’u
    t c ƒIƒuƒWƒFƒNƒg‚̏ã’[‚ð$y‚É‚ ‚킹‚é
    m c ƒIƒuƒWƒFƒNƒg‚Ì’†‰›‚ð$y‚É‚ ‚킹‚é
    b c ƒIƒuƒWƒFƒNƒg‚̉º’[‚ð$y‚É‚ ‚킹‚é

”z’u$align‚ÌŽw’è‚ðÈ—ª‚·‚é‚ƁA‚»‚̃IƒuƒWƒFƒNƒgŒÅ—L‚ÌŒ´“_‚ð($x,$y)‚É‚ ‚킹‚éBŠeƒIƒuƒWƒFƒNƒg‚̌ŗL‚ÌŒ´“_‚ÍŽŸ‚Ì‚Æ‚¨‚èB

  ‰¡‘‚«ƒeƒLƒXƒg c æ“ª•¶Žš‚̍¶’[‚́A‰º’[‚©‚獂‚³‚Ì0.125”{‚¾‚¯ã‚̈ʒu
  c‘‚«ƒeƒLƒXƒg c æ“ª•¶Žš‚̏ã’[‚́A¶‰E’†‰›‚̈ʒu
  ’i—Ž c æ“ªsƒeƒLƒXƒg‚̌ŗL‚ÌŒ´“_
  ƒuƒƒbƒN c ¶ã‹÷
  ‰æ‘œ c ¶‰º‹÷
  }Œ` c •`‰æ–½—ß‚ÌŒ´“_‚ª‚»‚Ì‚Ü‚ÜŒ´“_‚Æ‚È‚é

showƒƒ\ƒbƒh‚ɁA$transtypeˆÈ~‚̈ø”‚ð—^‚¦‚é‚ƁA•\Ž¦‚̍ۂɕό`‚·‚邱‚Æ‚ª‚Å‚«‚éB•ÏŒ`‚ÌŽí—Þ$transtype‚Æ‚»‚̃pƒ‰ƒ[ƒ^@transargs‚É‚ÍŽŸ‚Ì‚¢‚¸‚ê‚©‚ðŽw’è‚·‚éB

  'magnify', $mx, $my c ‰¡•ûŒü‚É$mx”{Ac•ûŒü‚É$my”{AŠg‘åEk¬‚·‚é
  'rotate', $rad c ”½ŽžŒv‰ñ‚è‚É$radƒ‰ƒWƒAƒ“‚¾‚¯‰ñ“]‚·‚é
  'distort', $xtan, $ytan c (1,0)‚ð(1,$xtan)‚ցA(0,1)‚ð($ytan,1)‚ÖˆÚ‚·‚悤‚ɁA‰¡Ž²AcŽ²‚ð‚»‚ê‚¼‚êŒX‚¯‚é

Še•ÏŒ`‚́Ashowƒƒ\ƒbƒh‚Ì$x‚Æ$y‚̈ø”‚ÅŒˆ‚Ü‚éˆÊ’u‚ðŒ´“_‚Æ‚µ‚Ä‚¨‚±‚È‚í‚ê‚éB

=head2 ƒy[ƒW‚̃ŒƒCƒ„

showƒƒ\ƒbƒh‚Å•\Ž¦‰Â”\ƒIƒuƒWƒFƒNƒg‚ðƒy[ƒW‚É”z’u‚µ‚Ä‚¢‚­‚ƁAŒã‚©‚ç”z’u‚µ‚½‚à‚Ì‚ªŽè‘O‚É”z’u‚³‚ê‚āA‘O‚É”z’u‚³‚ꂽ‚à‚̂ɏd‚È‚Á‚Ä‚¢‚­B

‚±‚̏d‚È‚è‚̏‡˜‚𐧌䂵‚½‚¢ê‡‚Ì‚½‚߂ɁAƒy[ƒWƒIƒuƒWƒFƒNƒg‚Élayerƒƒ\ƒbƒh‚ª—pˆÓ‚³‚ê‚Ä‚¢‚éB

  $pageobj->layer($layernum);

$layernum‚̓ŒƒCƒ„”ԍ†‚ŁA0ˆÈã‚̐®”’lBlayerƒƒ\ƒbƒh‚ðŽÀs‚·‚é‚ƁA‚»‚êˆÈ~‚Ì•`‰æ‚ÍŽw’肵‚½ƒŒƒCƒ„”ԍ†‚̃ŒƒCƒ„‚ɑ΂µ‚Ä‚¨‚±‚È‚í‚ê‚éB

ƒy[ƒW‚Ì“à—e‚ª•\Ž¦‚³‚ê‚é‚Æ‚«‚ɂ́AƒŒƒCƒ„”ԍ†‚̏‡”Ô‚É”z’u‚³‚ê‚éB

=head2 ƒXƒ^ƒCƒ‹‚̃Rƒs[

’¼Ú“ü‚êŽq‚É‚È‚Á‚½ƒeƒLƒXƒgƒIƒuƒWƒFƒNƒg‚̃eƒLƒXƒgƒXƒ^ƒCƒ‹‚ÉŠÖ‚µ‚ẮAeŽqŠÖŒW‚É‚æ‚é“à—e‚ÌŒp³‚ª‚¨‚±‚È‚í‚ê‚é‚̂ŁA•”•ªƒXƒ^ƒCƒ‹‚ÌŽw’肪‚Å‚«‚éB‚»‚êˆÈŠO‚̏ꍇ‚ɃXƒ^ƒCƒ‹‚ÌŽ©“®“I‚ÈŒp³‚ª‚¨‚±‚È‚í‚ê‚邱‚Æ‚Í‚È‚¢B

Šù‘¶‚̃Xƒ^ƒCƒ‹‚ðŒ³‚É‚µ‚Ä‘®«‚ð•ÏX‚µ‚½‚è’ljÁ‚µ‚½‚肵‚½ƒXƒ^ƒCƒ‹‚ðì¬‚µ‚½‚¢ê‡Acloneƒƒ\ƒbƒh‚ð—p‚¢‚éB‚±‚̃ƒ\ƒbƒh‚̓eƒLƒXƒgƒXƒ^ƒCƒ‹A’i—ŽƒXƒ^ƒCƒ‹AƒuƒƒbƒNƒXƒ^ƒCƒ‹A}Œ`ƒXƒ^ƒCƒ‹‚Ì‚·‚ׂĂɂ‚¢‚ÄŽg‚¦‚éB

  $newstyle = $originalstyle->clone(%newargs);

%newargs‚ðŽw’肵‚È‚¯‚ê‚Î’P‚ɃRƒs[‚ªì‚ç‚ê‚éB%newargs‚ÅŽw’肵‚½‘®«‚ÍŒ³‚Ì‘®«‚ðã‘‚«‚·‚éiŒ³‚Ì‘®«‚ª‚È‚¯‚ê‚ΒljÁ‚³‚ê‚éjB

=head2 ƒXƒ^ƒCƒ‹Žw’è‚Ì‚³‚Ü‚´‚Ü‚È•û–@

ŠeŽí‚̃Xƒ^ƒCƒ‹ƒIƒuƒWƒFƒNƒg‚ðì¬‚µ‚½‚èAclone()‚ŃRƒs[‚µ‚½‚è‚·‚é‚Æ‚«‚ɁA‚»‚̈ø”‚̓nƒbƒVƒ…ƒŠƒXƒg‚Å—^‚¦‚邪AƒnƒbƒVƒ…ŽQÆ‚âcssƒ‰ƒCƒN‚È•¶Žš—ñ‚Å—^‚¦‚邱‚Æ‚à‚Å‚«‚éBŽŸ‚Í“¯“™‚Å‚ ‚éB

  PStyle(size => 200, align => 'w', linefeed => '150%')
  PStyle({size => 200, align => 'w', linefeed => '150%'})
  PStyle('size:200; align:w; linefeed:150%')

•¶Žš—ñ‚Å—^‚¦‚é‚Æ‚«‚́Au‘®«–¼:‘®«’lv‚ðu;v‚Å‹æØ‚Á‚Ä•À‚ׂĎw’è‚·‚éB‚½‚¾‚µAƒnƒbƒVƒ…ŽQÆ‚╶Žš—ñ‚ÅŽw’è‚·‚é‚Æ‚«‚͈ø”‚Í‚»‚̈ê‚‚¾‚¯‚Å‚È‚¯‚ê‚΂Ȃç‚È‚¢B

‘®«’l‚Æ‚µ‚ăIƒuƒWƒFƒNƒg‚ð—^‚¦‚é‚Æ‚«‚Í•¶Žš—ñ‚É‚æ‚é•û–@‚ÍŽæ‚ê‚È‚¢‚ªA‘®«’l‚àƒXƒ^ƒCƒ‹ƒIƒuƒWƒFƒNƒg‚Å‚ ‚鎞‚ɂ́AŽŸ‚̂悤‚É {} ‚ÅŽw’肪‰Â”\‚Å‚ ‚éB

  TStyle('withline:1; withlinestyle:{linewidth:0.5; linedash:2,2; strokecolor:#ff0000}')

ˆø”‚ɃnƒbƒVƒ…ƒŠƒXƒg‚ð—^‚¦‚é‚Æ‚«‚É‚àA‘®«’l‚Æ‚µ‚ăXƒ^ƒCƒ‹ƒIƒuƒWƒFƒNƒg‚ðŽæ‚é‘®«i‘®«–¼‚ªstyle‚ŏI‚í‚éj‚âAColorƒIƒuƒWƒFƒNƒg‚ðŽæ‚é‘®«i‘®«–¼‚ªcolor‚ŏI‚í‚éj‚ɂ‚¢‚ẮA‘®«’l‚ðƒIƒuƒWƒFƒNƒg‚Å‚È‚­ƒnƒbƒVƒ…ŽQÆ‚╶Žš—ñ‚Å—^‚¦‚邱‚Æ‚ª‚Å‚«‚éB

  TStyle(withline => 1, withlinestyle => 
    {linewidth => 0.5, linedash => '2,2', strokecolor => '#ff0000'})

=head2 PDF•¶‘‚̏o—Í

ì¬‚µ‚½PDF•¶‘‚ðƒtƒ@ƒCƒ‹‚ɏo—Í‚·‚é‚ɂ́A•¶‘ƒIƒuƒWƒFƒNƒg‚Ìprintƒƒ\ƒbƒh‚ð—p‚¢‚éB

  $docobj->print($filename);

ƒtƒ@ƒCƒ‹–¼$filename‚ÌŠg’£Žq‚́A’ʏí‚Í.pdf‚Æ‚·‚éB

ƒtƒ@ƒCƒ‹–¼‚Æ‚µ‚Ä '-' ‚ðŽw’è‚·‚é‚Æ•W€o—͂ɏo—Í‚³‚ê‚éB

=head2 •¶‘î•ñ‚̒ljÁ

PDF‚É‚Í•¶‘‚̃^ƒCƒgƒ‹Aì¬ŽÒAƒL[ƒ[ƒh‚È‚Ç‚Ì•¶‘î•ñ‚ð“ü‚ê‚邱‚Æ‚ª‚Å‚«‚éB‚±‚ê‚ð‚¨‚±‚È‚¤‚ɂ́AŽŸ‚̂悤‚Éadd_info()ƒƒ\ƒbƒh‚ð—p‚¢‚éB

  $docobj->add_info(Title => 'ƒ^ƒCƒgƒ‹', Author => 'ì¬ŽÒ');

Žw’è‚Å‚«‚éƒL[‚ÍŽŸ‚Ì‚à‚Ì‚ª‚ ‚éB

  Title => •¶‘‚̃^ƒCƒgƒ‹
  Author => •¶‘‚̍쐬ŽÒ–¼
  Subject => •¶‘‚ÌŽå‘è
  Keywords => •¶‘‚ÉŠÖ˜A‚·‚éƒL[ƒ[ƒh
  Creator => •¶‘‚ðì¬‚µ‚½ƒAƒvƒŠƒP[ƒVƒ‡ƒ“–¼

‚È‚¨AProducerƒL[‚ɂ́uPDFJ ƒo[ƒWƒ‡ƒ“v‚ªACreationDateƒL[‚ɂ͍쐬“úŽži•W€Žžj‚ªŽ©“®“I‚ɃZƒbƒg‚³‚ê‚éB

=head2 ƒAƒEƒgƒ‰ƒCƒ“

PDF‚ɂ̓AƒEƒgƒ‰ƒCƒ“‚Æ‚¢‚¤–ÚŽŸ‹@”\‚ª‚ ‚éi‚µ‚¨‚è‚Æ‚àŒ¾‚¤jBƒAƒEƒgƒ‰ƒCƒ“‚̍€–Ú‚ðƒ}ƒEƒX‚ŃNƒŠƒbƒN‚·‚é‚Æ‚»‚̍€–Ú‚ÅŽw’肳‚ꂽˆÊ’u‚ª•\Ž¦‚³‚ê‚éBƒAƒEƒgƒ‰ƒCƒ“‚ÍŠK‘w“I‚ɍ\¬‚³‚êAÍ‚âß‚È‚Ç‚ÌŒ©o‚µ‚ðƒAƒEƒgƒ‰ƒCƒ“‚ɑΉž‚³‚¹‚邱‚Æ‚ª‘½‚¢B

PDFJ‚Å•¶‘‚ɃAƒEƒgƒ‰ƒCƒ“‚ð•t‰Á‚·‚é‚ɂ́AƒeƒLƒXƒgƒIƒuƒWƒFƒNƒg‚ðì¬‚·‚éÛ‚ɁA‘Ώۂ̕¶Žš—ñ‚âƒIƒuƒWƒFƒNƒg‚Ì‘O‚ɃAƒEƒgƒ‰ƒCƒ“ŽwŽ¦ƒIƒuƒWƒFƒNƒg‚ð’u‚­BƒAƒEƒgƒ‰ƒCƒ“ŽwŽ¦ƒIƒuƒWƒFƒNƒg‚Í Outline() ƒTƒuƒ‹[ƒ`ƒ“‚ō쐬‚·‚éB—Ⴆ‚΁Au‚Í‚¶‚߂Ɂv‚Æ‚¢‚¤Œ©o‚µ‚ðƒAƒEƒgƒ‰ƒCƒ“‚̃gƒbƒvƒŒƒxƒ‹‚ɉÁ‚¦‚½‚¢ê‡A‚‚¬‚̂悤‚É‚·‚éB

  Text(Outline('‚Í‚¶‚ß‚É'), '‚Í‚¶‚ß‚É', $midasi_style)

‚±‚̃eƒLƒXƒgƒIƒuƒWƒFƒNƒg‚ªƒy[ƒW‚É”z’u‚³‚ê‚é‚ƁA•¶‘‚̃AƒEƒgƒ‰ƒCƒ“‚Ɂu‚Í‚¶‚߂Ɂv‚Æ‚¢‚¤€–Ú‚ªì‚ç‚ê‚Ä‚±‚́u‚Í‚¶‚߂Ɂv‚Æ‚¢‚¤ƒeƒLƒXƒg‚̍¶ã‚̈ʒu‚ªŽw’肳‚ê‚éB‚±‚Ì—á‚ł̓AƒEƒgƒ‰ƒCƒ“€–ڂƃeƒLƒXƒg‚Ì•¶Žš—ñ‚𓯂¶‚É‚µ‚Ä‚¢‚邪AˆÙ‚Ȃ镶Žš—ñ‚ðŽw’肵‚Ä‚à‚æ‚¢B

‚PƒŒƒxƒ‹‰º‚́u–{‘‚Ì“à—ev‚Æ‚¢‚¤Œ©o‚µ‚ðƒAƒEƒgƒ‰ƒCƒ“‚ɉÁ‚¦‚½‚¢ê‡A‚‚¬‚̂悤‚É‚·‚éB

  Text(Outline('–{‘‚Ì“à—e', 1), '–{‘‚Ì“à—e', $midasi_style)

Outline() ‚Ì‚Q”Ԗڂ̈ø”‚ɂ́AƒAƒEƒgƒ‰ƒCƒ“‚ÌŠK‘wƒŒƒxƒ‹‚ðŽw’è‚·‚éBƒŒƒxƒ‹ 0 ‚͏ã‹L‚́u‚Í‚¶‚߂Ɂv‚Ì—á‚̂悤‚ɏȗª‚Å‚«‚éB

ƒAƒEƒgƒ‰ƒCƒ“‚́AOutline()‚ðŠÜ‚ñ‚¾ƒeƒLƒXƒgƒIƒuƒWƒFƒNƒg‚ªƒy[ƒW‚É”z’u‚³‚ê‚é‚Æ‚«‚ɏ‡‚ɒljÁ‚³‚ê‚čì‚ç‚ê‚Ä‚¢‚­B‚¢‚Ü‚Ì‚Æ‚±‚ëAŠù‘¶‚̃AƒEƒgƒ‰ƒCƒ“‚Ì“r’†‚É‘}“ü‚·‚éŽè’i‚Í—pˆÓ‚³‚ê‚Ä‚¢‚È‚¢BƒŒƒxƒ‹0‚̍€–Ú‚ÌŽŸ‚ɃŒƒxƒ‹2‚̍€–Ú‚ðì‚é‚ȂǁAŠK‘w‚̃Mƒƒƒbƒv‚ª¶‚¶‚é‚ƁAƒMƒƒƒbƒv‚𖄂߂邽‚߂̋󕶎š—ñ‚É‚æ‚éƒAƒEƒgƒ‰ƒCƒ“€–Ú‚ªì‚ç‚ê‚éB

=head2 ƒnƒCƒp[ƒŠƒ“ƒN

PDF‚ɂ̓nƒCƒp[ƒŠƒ“ƒN‹@”\‚ª‚ ‚èAƒy[ƒWã‚̃Šƒ“ƒNŒ³‚ÉŽw’肳‚ꂽ—̈æ‚ðƒNƒŠƒbƒN‚·‚é‚ƁA‚»‚̃Šƒ“ƒNæ‚ª•\Ž¦‚³‚ê‚éBƒŠƒ“ƒNæ‚Æ‚µ‚ẮA“¯‚¶•¶‘“à‚̏ꏊA•Ê‚Ì•¶‘‚̏ꏊAURIihttp:‚È‚Ç‚ÅŽn‚Ü‚éƒCƒ“ƒ^[ƒlƒbƒgã‚̏ꏊ‚ƍl‚¦‚ê‚΂悢j‚ª‚ ‚邪A¡‚Ì‚Æ‚±‚ëPDFJ‚Å‚Í“¯‚¶•¶‘“à‚̏ꏊ‚ÆURI‚ɑΉž‚µ‚Ä‚¢‚éB

“¯‚¶•¶‘“à‚ł̃Šƒ“ƒN‚ðì‚é‚ɂ́AƒŠƒ“ƒNæ‚̃eƒLƒXƒg‚ÉDest()ƒTƒuƒ‹[ƒ`ƒ“‚Å–¼‘O‚ðŽw’肵‚č쐬‚µ‚½PDFJ::DestƒIƒuƒWƒFƒNƒg‚ð”z’u‚·‚éB—Ⴆ‚Î

  Text(Dest('dest'),'ƒŠƒ“ƒNæ',TStyle(c))

‚Æ‚·‚é‚ƁA'ƒŠƒ“ƒNæ'‚Æ‚¢‚¤ƒeƒLƒXƒg‚Ì‘O‚É'dest'‚Æ‚¢‚¤–¼‘O‚̃Šƒ“ƒNæ‚ªì‚ç‚ê‚éBDest()‚ōì‚ç‚ê‚éPDFJ::DestƒIƒuƒWƒFƒNƒgŽ©‘̂́A•\Ž¦‚É‚ÍŒ»‚ê‚È‚¢BƒŠƒ“ƒNæ‚Ì–¼‘O‚Í”CˆÓ‚Ì•¶Žš—ñ‚ªŽg‚¦‚邪AuURI:v‚ÅŽn‚Ü‚é‚à‚Ì‚ÍURI‚ւ̃Šƒ“ƒN‚Ì‚½‚ß‚ÉŽg‚í‚ê‚éB

ƒŠƒ“ƒNŒ³‚Å‚Í‹éŒ`‚̐}Œ`ƒIƒuƒWƒFƒNƒg‚̐}Œ`ƒXƒ^ƒCƒ‹‚Ìlink‚ŃŠƒ“ƒNæ–¼‚ðŽw’è‚·‚é‚©AƒeƒLƒXƒgƒXƒ^ƒCƒ‹‚Ìwithboxstyle‚Å“¯—l‚ÉlinkŽw’è‚ð‚·‚éB—Ⴆ‚Î

  Shape->box(0,0,100,50,'s',SStyle(link => 'dest'))

‚Æ‚·‚é‚ƁA‰¡100ƒ|ƒCƒ“ƒgAc50ƒ|ƒCƒ“ƒg‚Ì‹éŒ`‚ªì‚ç‚ê‚āA‚»‚Ì“à•”‚ðƒNƒŠƒbƒN‚·‚é‚Æ–¼‘O‚ª'dest'‚̃Šƒ“ƒNæ‚É”ò‚ԁBƒeƒLƒXƒg‚̏ꍇ‚́A

  Text('‚±‚±‚ðƒNƒŠƒbƒN', TStyle(withbox => 'n', 
    withboxstyle => SStyle(link => 'dest')))

‚̂悤‚É‚·‚ê‚΂悢B‚±‚̂悤‚Éwithbox => 'n' ‚Æ‚·‚é‚Æ‹éŒ`‚Í•`‰æ‚³‚ê‚È‚¢BƒŠƒ“ƒN‚Å‚ ‚邱‚Æ‚ðŽ¦‚·‚½‚߂ɐF‚ð•Ï‚¦‚é‚Æ‚©‰ºü‚ð•t‚¯‚é‚Æ‚©‚¢‚Á‚½H•v‚̓†[ƒU[‚É”C‚³‚ê‚Ä‚¢‚éBiwithbox => 'b' ‚ʼnºü‚ð•t‚¯‚邱‚Æ‚ª‚Å‚«‚éBj

URIƒŠƒ“ƒN‚̏ꍇ‚́ADest()‚É‚æ‚郊ƒ“ƒNæ‚̐ݒè‚Í•K—v‚È‚­AƒŠƒ“ƒNæ‚Ì–¼‘O‚Æ‚µ‚āAuURI:v‚É‘±‚¯‚ÄURI‚ð‘‚¯‚΂悢B—Ⴆ‚Î

  Text('•ÄƒAƒhƒr', TStyle(withbox => 'n', 
    withboxstyle => SStyle(link => 'URI:http://www.adobe.com/')))

‚̂悤‚É‚·‚éB

URI‚Í‚·‚Å‚ÉURIƒGƒ“ƒR[ƒh‚³‚ê‚Ä‚¢‚È‚¢ŒÀ‚èURIƒGƒ“ƒR[ƒh‚³‚ê‚éB

=head2 ˆÃ†‰»

PDF‚͈͆‰»‚Å‚«‚éBPDF‚̃o[ƒWƒ‡ƒ“‚É‚æ‚Á‚ÄŽg—p‚Å‚«‚éˆÃ†‰»•ûŽ®‚͈̔͂ªˆá‚¤‚ªA¡‚Ì‚Æ‚±‚ëPDFJ‚Å‚Í‚à‚Á‚Æ‚àŠî–{“I‚È40ƒrƒbƒgRC4ˆÃ†‰»‚ðƒTƒ|[ƒg‚µ‚Ä‚¢‚éB

ˆÃ†‰»‚·‚é‚ɂ́Aencrypt()ƒƒ\ƒbƒh‚ð—p‚¢‚āAƒI[ƒi[ƒpƒXƒ[ƒhAƒ†[ƒU[ƒpƒXƒ[ƒhAƒ†[ƒU[‚Ö‚ÌŽg—p‹–‰Âƒtƒ‰ƒOA‚ðŽw’è‚·‚éB

  $docobj->encrypt($ownerpass, $userpass, $allow);

ƒI[ƒi[ƒpƒXƒ[ƒh‚ƃ†[ƒU[ƒpƒXƒ[ƒh‚É“¯‚¶‚à‚Ì‚ðŽw’è‚·‚é‚ƁAƒI[ƒi[Œ ŒÀ‚ÅŠJ‚­‚±‚Æ‚Í‚Å‚«‚È‚­‚È‚éB

ƒ†[ƒU[‚Ö‚ÌŽg—p‹–‰Âƒtƒ‰ƒO‚́AŽŸ‚Ì‹L†‚ð•À‚ׂ½•¶Žš—ñ‚Æ‚µ‚ÄŽw’è‚·‚éB

  P c •¶‘‚̈óü
  M c •¶‘“à—e‚̕ύX
  C c •¶‘‚©‚ç‚̃eƒLƒXƒg‚Ɖ摜‚̃Rƒs[
  N c ƒeƒLƒXƒg’Žß‚¨‚æ‚ёΘbƒtƒH[ƒ€ƒtƒB[ƒ‹ƒh‚̒ljÁA•ÏX

¦ƒeƒLƒXƒg’Žß‚¨‚æ‚ёΘbƒtƒH[ƒ€‹@”\‚͍¡‚Ì‚Æ‚±‚ëPDFJ‚Å‚Í–¢ƒTƒ|[ƒg

=head2 PDFJ::DocƒNƒ‰ƒX‚̃ƒ\ƒbƒh

  PDFJ::Doc->new($version, $pagewidth, $pageheight)
  PDFJ::Doc->new({version => $version, pagewidth => $pagewidth, pageheight => $pageheight})
  add_info($key => $value, ...)
  add_info({$key => $value, ...})
  encrypt($ownerpass, $userpass, $allow)
  encrypt({ownerpass => $ownerpass, userpass => $userpass, allow => $allow})
  filter($filter)
  filter({filter => $filter})
  print($file)
  print({file => $file})
  new_page($pagewidth, $pageheight)
  new_page({pagewidth => $pagewidth, pageheight => $pageheight})
  get_page($pagenum)
  get_page({number => $pagenum})
  get_lastpagenum
  new_font($basefont, $encoding, $abasefont, $aencoding)
  new_font({basefont => $basefont, encoding => $encoding, abasefont => $abasefont, aencoding => $aencoding})
  italic($font1, $font2, ...)
  italic({base => $font1, decorated => $font2})
  bold($font1, $font2, ...)
  bold({base => $font1, decorated => $font2})
  new_image($src, $pxwidth, $pxheight, $width, $height, $padding, $colorspace)
  new_image({src => $src, pxwidth => $pxwidth, pxheight => $pxheight, width => $width, height => $height, padding => $padding, colorspace => $colorspace})

=head2 PDFJ::PageƒNƒ‰ƒX‚̃ƒ\ƒbƒh

  PDFJ::Page->new($docobj, $pagewidth, $pageheight)
  pagenum
  layer($layernum)
  layer({layer => $layernum})

=head2 PDFJ::AFontƒNƒ‰ƒX‚̃ƒ\ƒbƒh

  PDFJ::AFont->new_std($docobj, $basefont, $encoding)
  PDFJ::AFont->new_ttf($docobj, $ttffile, $encoding)

=head2 PDFJ::CIDFontƒNƒ‰ƒX‚̃ƒ\ƒbƒh

  PDFJ::CIDFont->new_std($docobj, $basefont, $encoding, $afontobj)
  PDFJ::CIDFont->new_ttf($docobj, $ttffile, $encoding, $afontobj)

=head2 PDFJ::ShowableƒNƒ‰ƒX‚̃ƒ\ƒbƒh

ŽŸ‚̃ƒ\ƒbƒh‚́APDFJ::TextAPDFJ::ParagraphAPDFJ::BlockAPDFJ::ImageAPDFJ::Shape‚ÌŠeƒNƒ‰ƒX‚Å‹¤’Ê‚µ‚ÄŽg‚¦‚éB

  show($page, $x, $y, $align, $transtype, @transargs)
  show({page => $page, x => $x, y => $y, align => $align, transtype => $transtype, transargs => [@transargs]})
  width
  height

=head2 PDFJ::TextƒNƒ‰ƒX‚̃ƒ\ƒbƒh

  PDFJ::Text->new($text, $style)
  PDFJ::Text->new(@texts, $style)
  PDFJ::Text->new([@texts], $style)
  PDFJ::Text->new({texts => $text, style => $style})
  PDFJ::Text->new({texts => [@text], style => $style})

=head2 PDFJ::ParagraphƒNƒ‰ƒX‚̃ƒ\ƒbƒh

  PDFJ::Paragraph->new($text, $style)
  PDFJ::Paragraph->new({text => $text, style => $style})
  linesnum
  break($size)
  break(@sizes)
  break({sizes => $size})
  break({sizes => [@sizes]})

=head2 PDFJ::BlockƒNƒ‰ƒX‚̃ƒ\ƒbƒh

  PDFJ::Block->new($direction, $object, $style)
  PDFJ::Block->new($direction, @objects, $style)
  PDFJ::Block->new($direction, [@objects], $style)
  PDFJ::Block->new({direction => $direction, objects => $object, style => $style})
  PDFJ::Block->new({direction => $direction, objects => [@objects], style => $style})
  adjustwidth($size)
  adjustwidth({size => $size})
  adjustheight($size)
  adjustheight({size => $size})
  break($size)
  break(@sizes)
  break({sizes => $size})
  break({sizes => [@sizes]})

=head2 PDFJ::BlockSkipƒNƒ‰ƒX‚̃ƒ\ƒbƒh

  PDFJ::BlockSkip->new($skip)
  PDFJ::BlockSkip->new({skip => $skip})

=head2 PDFJ::ImageƒNƒ‰ƒX‚̃ƒ\ƒbƒh

  PDFJ::Image->new($docobj, $src, $pxwidth, $pxheight, $width, $height, $padding)
  setsize($width, $height)
  setpadding($padding)

=head2 PDFJ::ShapeƒNƒ‰ƒX‚̃ƒ\ƒbƒh

  PDFJ::Shape->new($style)
  PDFJ::Shape->new({style => $style})

ƒ}ƒNƒ–½—߁i•`‰æ”͈͂̊Ǘ‚ª‚¨‚±‚È‚í‚ê‚éj

  line($x, $y, $w, $h, $style)
  line({x => $x, y => $y, w => $w, h => $h, style => $style})
  box($x, $y, $w, $h, $spec, $style)
  box({x => $x, y => $y, w => $w, h => $h, spec => $spec, style => $style})
  circle($x, $y, $r, $spec, $arcarea, $style)
  circle({x => $x, y => $y, r => $r, spec => $spec, arcarea => $arcarea, style => $style})
  ellipse($x, $y, $xr, $yr, $spec, $arcarea, $style)
  ellipse({x => $x, y => $y, xr => $xr, yr => $yr, spec => $spec, arcarea => $arcarea, style => $style})
  polygon([@coords], $spec, $style)
  polygon({coords => [@coords], spec => $spec, style => $style})
  arc($x, $y, $r, $start, $end, $spec, $style)
  arc({x => $x, y => $y, r => $r, start => $start, end => $end, spec => $spec, style => $style})

ƒIƒuƒWƒFƒNƒg”z’u–½—߁i•`‰æ”͈͂̊Ǘ‚ª‚¨‚±‚È‚í‚ê‚éj

  obj($obj, @showargs)
  obj({obj => $obj, showargs => [@showargs]})

ƒvƒŠƒ~ƒeƒBƒu–½—ß

  setboundary($x, $y)
  gstatepush
  gstatepop
  linewidth($w)
  linedash($dash, $gap, $phase)
  ctm(@array)
  fillcolor($color)
  strokecolor($color)
  fillgray($g)
  strokegray($g)
  fillrgb($r, $g, $b)
  strokergb($r, $g, $b)
  moveto($x, $y)
  lineto($x, $y)
  curveto($x1, $y1, $x2, $y2, $x3, $y3)
  rectangle($x, $y, $w, $h)
  closepath
  newpath
  stroke
  closestroke
  fill
  fill2
  fillstroke

=head2 PDFJ::StyleƒNƒ‰ƒX‚̃ƒ\ƒbƒh

ŽŸ‚̃ƒ\ƒbƒh‚ÍPDFJ::TextStyleAPDFJ::ParagraphStyleAPDFJ::BlockStyleAPDFJ::ShapeStyle‚Ì‚·‚ׂĂŎg‚¦‚éB

  clone(%args)
  clone({%args})
  clone($argstr)

=head2 PDFJ::TextStyleƒNƒ‰ƒX‚̃ƒ\ƒbƒh

  PDFJ::TextStyle->new(%args)
  PDFJ::TextStyle->new({%args})
  PDFJ::TextStyle->new($argstr)

=head2 PDFJ::ParagraphStyleƒNƒ‰ƒX‚̃ƒ\ƒbƒh

  PDFJ::ParagraphStyle->new(%args)
  PDFJ::ParagraphStyle->new({%args})
  PDFJ::ParagraphStyle->new($argstr)

=head2 PDFJ::BlockStyleƒNƒ‰ƒX‚̃ƒ\ƒbƒh

  PDFJ::BlockStyle->new(%args)
  PDFJ::BlockStyle->new({%args})
  PDFJ::BlockStyle->new($argstr)

=head2 PDFJ::ShapeStyleƒNƒ‰ƒX‚̃ƒ\ƒbƒh

  PDFJ::ShapeStyle->new(%args)
  PDFJ::ShapeStyle->new({%args})
  PDFJ::ShapeStyle->new($argstr)

=head2 PDFJ::ColorƒNƒ‰ƒX‚̃ƒ\ƒbƒh

  PDFJ::Color->new($r, $g, $b)
  PDFJ::Color->new($rgb)
  PDFJ::Color->new($g)
  PDFJ::Color->new({value => $rgb})
  PDFJ::Color->new({value => $g})

=head2 PDFJ::OutlineƒNƒ‰ƒX‚̃ƒ\ƒbƒh

  PDFJ::Outline->new($title, $level)
  PDFJ::Outline->new({title => $title, level => $level})

=head2 PDFJ::DestƒNƒ‰ƒX‚̃ƒ\ƒbƒh

  PDFJ::Dest->new($name)
  PDFJ::Dest->new({name => $name})

=head2 “à•”ƒNƒ‰ƒX

ˆÈ‰º‚́A’ʏí‚̓†[ƒU[‚ª’¼Úˆµ‚¤•K—v‚Ì‚È‚¢APDFJ“à•”‚ÅŽg‚í‚ê‚éƒNƒ‰ƒXB

=over 4

=item PDFJ::FileƒNƒ‰ƒX

PDFJ::Doc‚̉º¿‚¯BPDF•¶‘PDFJ::DocƒIƒuƒWƒFƒNƒg‚ðPDFƒtƒ@ƒCƒ‹‚ɏ‘‚«o‚·Û‚ɁAPDFƒIƒuƒWƒFƒNƒg‚̍õˆøî•ñ‚Ȃǂ̃ƒ^ƒf[ƒ^‚ð•t‰Á‚µ‚āA‹K’è‚ɏ]‚Á‚½ƒtƒ@ƒCƒ‹\‘¢‚ðì‚é–ðŠ„‚ð‚·‚éB

=item PDFJ::ObjTableƒNƒ‰ƒX 

PDFJ::Doc‚̉º¿‚¯BPDFJ::DocƒIƒuƒWƒFƒNƒg‚ÉŠÜ‚Ü‚ê‚éPDFƒIƒuƒWƒFƒNƒg‚ðŠÇ—‚·‚éB

=item PDFJ::TextSpecƒNƒ‰ƒX

PDFJ::Text‚̉º¿‚¯‚Æ‚µ‚āAƒeƒLƒXƒg‘®«‚ð•ÛŽ‚·‚éB

=item PDFJ::Object::* ƒNƒ‰ƒXŒQ

PDF•¶‘‚ÍAdobeŽÐ‚ª‹K’肵‚½PDF‚Ì•¶–@‚ɉˆ‚Á‚č\¬‚³‚ê‚Ä‚¨‚èA‚»‚̍\¬’PˆÊ‚à‚Ü‚½uƒIƒuƒWƒFƒNƒgv‚ƌĂ΂ê‚éB‚±‚ÌPDFƒŒƒxƒ‹‚̃IƒuƒWƒFƒNƒg‚ðAã‹L‚Åà–¾‚µ‚½‚悤‚ÈPDFJ‚É‚¨‚¯‚éPerlƒIƒuƒWƒFƒNƒg‚Æ‹æ•Ê‚·‚邽‚߂ɁAuPDFƒIƒuƒWƒFƒNƒgv‚ƌĂԂ±‚Æ‚É‚·‚éBPDFJ‚́A’჌ƒxƒ‹‚ŃvƒŠƒ~ƒeƒBƒu‚ÈPDFƒIƒuƒWƒFƒNƒg‚ð‰B•Á‚µAƒ†[ƒU[‚ª’¼Úˆµ‚í‚È‚­‚Ä‚æ‚¢‚悤‚É‚µ‚Ä‚¢‚éB‚à‚µŽ©•ª‚ÅPDFƒIƒuƒWƒFƒNƒg‚𑀍삵‚½‚¢‚Æ‚«‚́APDFJ::Object::* ƒNƒ‰ƒXŒQ‚ðŽg‚¦‚΂悢B

=item PDFJ::TTFƒNƒ‰ƒX

TrueTypeƒtƒHƒ“ƒgƒtƒ@ƒCƒ‹(.ttf)‚Ì“à—e‚ð“Ç‚Ý‚Æ‚Á‚½‚èAƒTƒuƒZƒbƒg‚ðì¬‚µ‚½‚è‚·‚éB

=item PDFJ::TTCƒNƒ‰ƒX

TrueTypeCollectionƒtƒHƒ“ƒgƒtƒ@ƒCƒ‹(.ttc)‚ð“Ç‚Ý‚Æ‚Á‚āAŽw’肵‚½”ԍ†‚̃tƒHƒ“ƒg‚ɂ‚¢‚Ä‚ÌPDFJ::TTFƒIƒuƒWƒFƒNƒg‚𓾂éB

=back

=head1 AUTHOR

’†“‡ –õ 
L<nakajima@netstock.co.jp|"mailto:nakajima@netstock.co.jp"> 
L<http://hp1.jonex.ne.jp/~nakajima.yasushi/|"http://hp1.jonex.ne.jp/~nakajima.yasushi/">

=head1 SEE ALSO

uJIS X 4051i“ú–{Œê•¶‘‚̍s‘g”Å•û–@jv(JISA1995)

uPDFƒŠƒtƒ@ƒŒƒ“ƒX ‘æ‚Q”Łv(ƒAƒhƒrƒVƒXƒeƒ€ƒYA2001)