4
A
回答
2
有點相關的問題:How can I get the page orientation of a PDF page?和How do I get character offset information from a pdf document?
與後一個問題的解決方案開始,我想出了這個食譜:
use CAM::PDF;
my $pdf = CAM::PDF->new('my.pdf') or die $CAM::PDF::errstr;
for my $pagenum (1 .. $pdf->numPages) {
my $pagetree = $pdf->getPageContentTree($pagenum) or next;
my @text = $pagetree->traverse('MyRenderer')->getTextBlocks;
for my $textblock (@text) {
print "text '$textblock->{str}' at ",
"($textblock->{left},$textblock->{bottom}), angle $textblock->{angle}\n";
}
}
package MyRenderer;
use base 'CAM::PDF::GS';
sub new {
my ($pkg, @args) = @_;
my $self = $pkg->SUPER::new(@args);
$self->{refs}->{text} = [];
return $self;
}
sub getTextBlocks {
my ($self) = @_;
return @{$self->{refs}->{text}};
}
sub renderText {
my ($self, $string, $width) = @_;
my ($x, $y) = $self->textToDevice(0,0);
my ($x1, $y1) = $self->textToDevice(1,0);
push @{$self->{refs}->{text}}, {
str => $string,
left => $x,
bottom => $y,
angle => atan2($y1-$y, $x1-$x),
};
return;
}
其產生這一結果的565頁PDFReference15_v5.pdf:
text 'ab' at (371.324,583.7249), angle -1.5707963267949
text 'c' at (371.324,576.63365), angle -1.5707963267949
請注意,角度是弧度。除以Pi並乘以180將其轉換爲度數。因此,-1.5707963267949是270度,與第565頁一致。
請注意,打印的角度是相對於頁面內容的角度。如果頁面本身進一步旋轉(按照上面的頁面方向問題),那麼您可能需要混合旋轉計算。
相關問題
- 1. 如何從PDF頁面獲取文本?
- 2. 如何使用perl(CAM :: PDF,PDF :: API2)來移動PDF頁面?
- 3. PDF文本方向
- 4. 如何使用PDFBox API從PDF獲取文本的方向
- 5. 如何在Perl的CAM :: PDF中使用PDF 1.6文檔?
- 6. 如何在.NET中的pdf文檔中獲取頁面的方向?
- 7. 如何從pdf頁面使用Zend_Pdf提取文本
- 8. 如何使用Perl和CAM :: PDF閱讀PDF文檔屬性?
- 9. PDF如何獲取文本的高度
- 10. iOS獲取pdf文本
- 11. Android-從PDF獲取文本
- 12. 如何使用ABCPdf.NET從PDF文件的所有頁面中提取文本?
- 13. 從PDF文件中獲取純文本
- 14. 從pdf中提取當前頁面的文本(使用MuPDF)
- 15. 使用CAM :: PDF庫
- 16. 從NSString的pdf中獲取文本
- 17. 如何獲取Google Apps腳本中PDF文件的頁數?
- 18. 提取PDF文本
- 19. 指向本地PDF文件的網頁
- 20. pdf文本提取
- 21. 使用iText從pdf文件獲取文本字體
- 22. 如何使用CAM :: PDF識別PDF文檔中未填充的橢圓?
- 23. Perl CAM :: PDF分裂文字不正確
- 24. 使用腳本從pdf文檔獲取文本
- 25. 如何在使用iTextSharp提取文本時跳過PDF的空白頁面?
- 26. 在文件夾中搜索pdf文本字符串的更快方法
- 27. 使用CAM :: PDF的Perl - 無法從PDF中提取圖像
- 28. 如何從PDF中提取文本並解碼字符?
- 29. 在文本中獲取字符串
- 30. 從多頁PDF集合中提取頁面級ASCII文本?
你是什麼意思的方向? – 2009-04-13 20:21:41
方向=垂直或水平(或可能是任何其他角度,如180或270) – Thushan 2009-04-13 20:42:50