import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.usermodel.*;
import java.nio.file.*;
import java.io.*;
import java.nio.charset.StandardCharsets;
class ExtractLegacyQcDocs {
static String text(Paragraph p){StringBuilder s=new StringBuilder();for(int i=0;i
",">");}
public static void main(String[] args)throws Exception {
Path out=Path.of("scripts/sop-qc/extracted");Files.createDirectories(out);int count=0;
try(var files=Files.list(Path.of(args[0]))) {
for(Path file:files.filter(p->p.toString().toLowerCase().endsWith(".doc")).toList()) {
try(InputStream input=Files.newInputStream(file);HWPFDocument doc=new HWPFDocument(input)) {
Range range=doc.getRange();StringBuilder xml=new StringBuilder("");
for(int i=0;i");
for(int r=0;r");for(int c=0;c");for(int j=0;j").append(esc(text(cell.getParagraph(j)))).append("");xml.append("");}xml.append("");}xml.append("");
while(i+1").append(esc(text(p))).append("");
}
xml.append("");Files.writeString(out.resolve(file.getFileName()+".xml"),xml,StandardCharsets.UTF_8);count++;
}catch(Exception e){System.out.println("FAILED "+file.getFileName()+": "+e.getMessage());}
}
}System.out.println("Legacy DOC extracted="+count);
}
}