@@ -95,18 +95,21 @@ EStatusCode TableExtraction::ExtractTablePlacements(PDFParser* inParser, long in
9595
9696static const string scEmpty = " " ;
9797
98- EStatusCode TableExtraction::ExtractTables (const std::string& inFilePath, long inStartPage, long inEndPage) {
99- EStatusCode status = eSuccess;
100- InputFile sourceFile;
101-
102- LatestWarnings.clear ();
103- LatestError.code = eErrorNone;
104- LatestError.description = scEmpty;
105-
98+ void TableExtraction::ClearState () {
10699 textsForPages.clear ();
107100 tableLinesForPages.clear ();
108101 tablesForPages.clear ();
109102 mediaBoxesForPages.clear ();
103+ LatestWarnings.clear ();
104+ LatestError.code = eErrorNone;
105+ LatestError.description = scEmpty;
106+ }
107+
108+ EStatusCode TableExtraction::ExtractTables (const std::string& inFilePath, long inStartPage, long inEndPage) {
109+ EStatusCode status = eSuccess;
110+ InputFile sourceFile;
111+
112+ ClearState ();
110113
111114 do {
112115 status = sourceFile.OpenFile (inFilePath);
@@ -136,6 +139,43 @@ EStatusCode TableExtraction::ExtractTables(const std::string& inFilePath, long i
136139 return status;
137140}
138141
142+ PDFHummus::EStatusCode TableExtraction::ExtractTables (PDFParser* inParser, long inStartPage, long inEndPage) {
143+ ClearState ();
144+
145+ PDFHummus::EStatusCode status = ExtractTablePlacements (inParser, inStartPage, inEndPage);
146+ if (status == eSuccess) {
147+ ComposeTables ();
148+ }
149+
150+ return status;
151+ }
152+
153+ PDFHummus::EStatusCode TableExtraction::ExtractTables (IByteReaderWithPosition* inStream, long inStartPage, long inEndPage) {
154+ EStatusCode status = eSuccess;
155+
156+ ClearState ();
157+
158+ do {
159+ PDFParser parser;
160+ status = parser.StartPDFParsing (inStream);
161+ if (status != eSuccess)
162+ {
163+ LatestError.code = eErrorInternalPDFWriter;
164+ LatestError.description = string (" Failed to parse file" );
165+ break ;
166+ }
167+
168+ status = ExtractTablePlacements (&parser, inStartPage, inEndPage);
169+ if (status != eSuccess)
170+ break ;
171+
172+ ComposeTables ();
173+ } while (false );
174+
175+ return status;
176+ }
177+
178+
139179
140180void TableExtraction::ComposeTables () {
141181 TableComposer tableComposer;
0 commit comments