PowerShellでワンライナーでできるか試してみた
PDFBOXだと改行されないので2行の処理がいらないのでpdftotextより簡単
標準出力がShift-JISなのでsjisにすると
java -jar pdfbox-app-2.0.17.jar ExtractText -startPage 3 -sort -console -encoding sjis | Select-String -Pattern "(^\d{1,3}(,\d{3})?)\s(\S{2,3}(都|道|府|県))\s+(\S{1,7}(市|区|町|村))\s+(.+)\s+(\S+)\s+(\S+)\s+([2|5]%)$" | ForEach-Object { $data = @(); foreach ( $i in @(1, 3, 5, 7, 8, 9, 10)) { $data += ($_.Matches.Groups[$i].value) }; $data -join "`t" } | Out-File -Encoding UTF8 .\output.tsv
かなりの数文字化けが発生
ロケールをUTF-8に変更
java -jar pdfbox-app-2.0.17.jar ExtractText -startPage 3 -sort -console kameiten_touroku_list.pdf | Select-String -Pattern "(^\d{1,3}(,\d{3})?)\s(\S{2,3}(都|道|府|県))\s+(\S{1,7}(市|区|町|村))\s+(.+)\s+(\S+)\s+(\S+)\s+([2|5]%)$" | ForEach-Object { $data = @(); foreach ( $i in @(1, 3, 5, 7, 8, 9, 10)) { $data += ($_.Matches.Groups[$i].value) }; $data -join "`t" } | Out-File -Encoding UTF8 .\output.tsv
java -jar pdfbox-app-2.0.17.jar ExtractText -startPage 3 -sort -console kameiten_touroku_list.pdf | Select-String -Pattern "(^\d{1,3}(,\d{3})?)\s(\S{2,3}(都|道|府|県))\s+(\S{1,7}(市|区|町|村))\s+(.+)\s+(\S+)\s+(\S+)\s+([2|5]%)$" | ForEach-Object { @($_.Matches.Groups[1, 3, 5, 7, 8, 9, 10].Value) -join "`t" } | Out-File .\output.tsv