2014-10-04 85 views
2

我使用perl模塊PDF::API2::Annotation爲我的pdf文件添加註釋。使用perl添加註釋到pdf

有支持決定使用rect創建註釋的位置。這樣的事情:

$annot->text($text, -rect => [ 10, 10, 10, 10 ]); 

它工作正常,但我有問題要準確的把我的註釋。

我知道pdf的左下角是(0,0)。假設我想在頁面中間準確地添加一個註釋,任何想法如何實現?根據這個https://www.leadtools.com/help/leadtools/v18/dh/to/leadtools.topics.pdf~pdf.topics.pdfcoordinatesystem.html pdf分爲點,每個點是1/72英寸。和一個pdf大小是這樣的中間應該是 (306,396)

但是,這甚至不接近中間。

回答

0

你可以在頁面媒體盒的大小,然後計算該中間:

# get the mediabox 
my ($llx, $lly, $urx, $ury) = $page->get_mediabox; 
# print out the page coordinates 
say "page mediabox: " . join ", ", $llx, $lly, $urx, $ury; 
# output: 0, 0, 612, 792 for the strangely-shaped page I created 

# calculate the midpoints 
my $midx = $urx/2; 
my $midy = $ury/2; 

my $annot = $page->annotation; 
# create an annotation 20 pts wide and high around the midpoint of the mediabox 
$annot->text($text, -rect=>[$midx-10,$midy-10,$midx+10,$midy+10]); 

還有媒體盒,還可以讓頁面裁剪框,裝飾框,出血框和藝術框:

for my $box ('mediabox', 'cropbox', 'trimbox', 'artbox', 'bleedbox') { 
    my $get = "get_$box"; 
    say "$box dimensions: " . join ", ", $page->$get; 
} 

這些通常都是一樣的,除非文檔已被設置爲一個溢出區域專業印刷等

+0

在這種情況下,你可以使用其中的任何計算x和y頁面的中點。 – 2014-10-05 08:13:41

+0

你剛剛得到了幾秒鐘後我批評了評論。多謝 – 2014-10-05 08:18:45