package edu.isi.bmkeg.lapdf.text; import java.io.FileNotFoundException; import java.io.IOException; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Set; import edu.isi.bmkeg.lapdf.controller.LapdfEngine; import edu.isi.bmkeg.lapdf.model.ChunkBlock; import edu.isi.bmkeg.lapdf.model.LapdfDocument; import edu.isi.bmkeg.lapdf.model.PageBlock; import edu.isi.bmkeg.lapdf.model.ordering.SpatialOrdering; import edu.isi.bmkeg.utils.ReadWriteTextFileWithEncoding; public class SectionsTextWriter implements TextWriter { private StringBuilder text; private List<Set<String>> stack;; private LapdfEngine engine; public SectionsTextWriter() throws Exception { this.stack = new ArrayList<Set<String>>(); this.engine = new LapdfEngine(); } public void addToStack(Set<String> sections) { this.stack.add(sections); } @Override public void write(LapdfDocument document, String outputFilename) throws IOException, FileNotFoundException { this.text = new StringBuilder(); Iterator<Set<String>> it = this.stack.iterator(); while( it.hasNext() ) { Set<String> sections = it.next(); this.text.append( this.engine.readClassifiedText(document, sections) ); } ReadWriteTextFileWithEncoding.write( outputFilename, TextWriter.UTF_8, text.toString()); } }