大家看看就好,这个模块写的不怎么样,而且有高手已经写了一个pdftoolkit就是完全用这个模块实现了大部分pdf文档的操作
PDF::API2模块使用笔记
一:简单使用方法
use PDF::API2;
# Create a blank PDF file | $pdf = PDF::API2->new(); |
# Open an existing PDF file | $pdf = PDF::API2->open('some.pdf'); |
# Add a blank page | $page = $pdf->page(); |
# Retrieve an existing page | $page = $pdf->openpage($page_number); |
# Set the page size | $page->mediabox('Letter'); |
# Add a built-in font to the PDF | $font = $pdf->corefont('Helvetica-Bold'); |
# Add an external TTF font to the PDF | $font = $pdf->ttfont('/path/to/font.ttf'); |
# Add some text to the page |
$text = $page->text();
$text->font($font, 20); $text->translate(200, 700); $text->text('Hello World!'); |
# Save the PDF | $pdf->saveas('/path/to/new.pdf'); |
实例:
use PDF::API2;
$pdf=PDF::API2->new;
$pdf->mediabox('A4');
$ft=$pdf->cjkfont('Song');
$page = $pdf->page;
$gfx=$page->gfx;
$gfx->textlabel(50,750,$ft,20,"\x{Cool44}\x{4EA7}"); # 资产二字
$pdf->saveas('Song_Test.pdf');
二:主要对象及方法
1、pdf对象可以创造,可以打开,可以保存,可以更新,还有一堆参数可以设置
$pdf->preferences(%options)还可以设置一些浏览参数,不过本来pdf阅读器可以设置,没必要在这里花时间。
这个可以当做是个人创建pdf的保密信息,也许有一点用吧。
还可以可以设置页脚$pdf->pageLabel($index, $options
2、Page对象,可以新建,可以打开,可以保存(需要指定保存的位置)
$page = $pdf->page()
$page = $pdf->page($page_number)
$page = $pdf->openpage($page_number);
还可以更新旧的pdf,这样可以循环获取pdf页面不停的累积到一个新的pdf
$page = $pdf->import_page($source_pdf, $source_page_number, $target_page_number)
$pdf = PDF::API2->new();
$old = PDF::API2->open('our/old.pdf'); # Add page 2 from the old PDF as page 1 of the new PDF
$page = $pdf->import_page($old, 2);
$pdf->saveas('our/new.pdf');If $source_page_number is 0 or -1, it will return the last page in the document.
$count = $pdf->pages()Returns the number of pages in the document.
这样就可以写一个简单程序把我们的pdf文件合并
use PDF::API2;
my $new = PDF::API2->new;
foreach my $filename (@ARGV) { my $pdf = PDF::API2->open($filename); $new->importpage($pdf, $_) foreach 1 .. $pdf->pages;}$new->saveas('new.pdf'); $pdf->mediabox($name)
可以指定A4,A3,A5等等$pdf->mediabox($w, $h)可以指定宽度和高度$pdf->mediabox($llx, $lly, $urx, $ury)
3,还可以随意画点线面及表格,太复杂了就不看了