r76@hughes: bkuhn | 2008-04-27 20:49:20 -0400
[unidiff:unidiff.git] / Perl / lib / PDF / Extract / Text.pm
1 # Text.pm                                                          -*- Perl -*-
2 #
3 #   Copyright (C) 2008, Bradley M. Kuhn.
4 #   Copyright (C) 2008  Software Freedom Law Center, Inc.
5 #
6 # This program is free software; you can redistribute it and/or modify it
7 # under the terms of either the GNU General Public License; either Version
8 # 1, or (at your option) any later version, or under the terms of the
9 # Artistic License.
10 #
11 # This program is distributed in the hope that it will be useful, but
12 # WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13 # or FITNESS FOR A PARTICULAR PURPOSE.  See either the GNU General Public
14 # License or the Artistic License for more details.
15 #
16 # Please see the LICENSE file that was shipped with this distribution for
17 # more details about the licensing of this program.
18
19 use strict;
20 use warnings;
21
22 BEGIN {
23   use PDF::OCR::Thorough;
24   sub PDF::OCR::Thorough::_pdftotext {
25     my $self = shift;
26     $self->{pdftotextbin} ||= PDF::OCR::Thorough::which('pdftotext') or die("missing pdftotext?");
27     return ($self->{pdftotextbin}, '-layout', '-nopgbrk');
28   }
29 }
30
31 package PDF::Extract::Text;
32
33 require Exporter;
34 use AutoLoader qw(AUTOLOAD);
35 use Carp qw(croak);
36 use PDF::OCR::Thorough;
37
38 =head1 NAME
39
40
41 =head1 SYNOPSIS
42
43
44 =head1 DESCRIPTION
45
46
47 =head1 AUTHOR
48
49 Bradley M. Kuhn, bkuhn@ebb.org, http://www.ebb.org/bkuhn
50
51 =head1 COPYRIGHT
52
53 Copyright (C) 2008, Bradley M. Kuhn.
54 Copyright (C) 2008  Software Freedom Law Center, Inc.
55
56 =head1 LICENSE
57
58 This program is free software; you can redistribute it and/or modify it
59 under the terms of either the GNU General Public License; either Version
60 1, or (at your option) any later version, or under the terms of the
61 Artistic License.
62
63 This program is distributed in the hope that it will be useful, but
64 WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
65 or FITNESS FOR A PARTICULAR PURPOSE.  See either the GNU General Public
66 License or the Artistic License for more details.
67
68 Please see the LICENSE file that was shipped with this distribution for
69 more details about the licensing of this program.
70
71 =head1 PUBLIC METHODS
72
73 =head2 new PDF::Extract::Text
74
75 Creates a new PDF::Extract::Text object
76
77  new PDF::Extract::Text(pdfFile => $pdfFileName)
78
79 =cut
80
81 sub new {
82     my $this = shift;
83     my $class = ref($this) || $this;
84     my $self = {};
85     bless $self, $class;
86     my(%args) = @_;
87
88     $self->{pdfFile} = $args{pdfFile};
89
90     croak("usage: new PDF::Extract::Text(pdfFile => \$pdfFileName)")
91       unless defined $self->{pdfFile};
92     croak("cannot open $self->{pdfFile} for reading: $!")
93       unless -r $self->{pdfFile};
94
95     $self->{ocrObj} = new PDF::OCR::Thorough($self->{pdfFile});
96     return $self;
97   }
98
99 =head2 getText
100
101 Returns the text, formatted as best as is possible.
102
103 =cut
104
105 sub getText {
106   my $self = shift;
107
108   return $self->{ocrObj}->get_text;
109 }
110
111 1;
112
113 __END__