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); } }