@startuml scale 1200 width title: Processing Files skinparam monochrome true skinparam backgroundColor white skinparam rectangle { roundCorner<> 25 roundCorner<> 5 } rectangle Input <> { file "html" file "plaintext" file "image" file "msoffice" file "rtf" file "odf" file "pdf" } node toBoth [ PDF + TXT ] node toPdf [ PDF ] node toTxt [ TXT ] image --> toBoth: html --> toPdf: toPdf --> toTxt:[pdfbox] plaintext --> html:[flexmark] msoffice --> toPdf: msoffice --> toTxt:[poi] rtf --> toTxt:[jdk] rtf --> toPdf: odf --> toTxt:[tika] odf --> toPdf: pdf --> toTxt: pdf --> toTxt:[pdfbox] plaintext -> toTxt:[identity] @enduml