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. 如何从pdf页面使用Zend_Pdf提取文本
- 7. PDF如何获取文本的高度
- 8. 如何使用Perl和CAM :: PDF阅读PDF文档属性?
- 9. 从PDF文件中获取纯文本
- 10. 使用CAM :: PDF库
- 11. 提取PDF文本
- 12. 指向本地PDF文件的网页
- 13. pdf文本提取
- 14. 使用iText从pdf文件获取文本字体
- 15. 从PDF中提取文本
- 16. 如何使用CAM :: PDF识别PDF文档中未填充的椭圆?
- 17. 使用脚本从pdf文档获取文本
- 18. Perl CAM :: PDF分裂文字不正确
- 19. 在文本中获取字符串
- 20. 如何获取文本和字符串?
- 21. Jasper Report PDF在分页符中输出缺少文本字段的文本
- 22. 如何使用selenium IDE和python获取pdf页面(链接)中的所有页面文本
- 23. 如何从文本框中获取字符串并在页面中显示javascript
- 24. 从PDF中提取文本 - 所有页面和输出 - 使用Python的文件
- 25. 使用pdfbox获取pdf文本的字体属性
- 26. 使用PHP获取PDF内的文本字段列表
- 27. 如何从PDF获取文本的字体名称?
- 28. 如何获取pdf文档中的页面坐标onclick
- 29. 如何获取PDF页面的图像(包含文本)。不是PDF图像中的图像
- 30. 在Asp.net中从PDF中读取文本
你是什么意思的方向? – 2009-04-13 20:21:41
方向=垂直或水平(或可能是任何其他角度,如180或270) – Thushan 2009-04-13 20:42:50