유틸리티를 사용하여 pdftotext
PDF 파일을 텍스트로 변환합니다.
pdftotext *.pdf *.txt
작동은 하는데 선이 제대로 작동하지 않고, 작동하지 않을 때 새 선을 만듭니다. 이 작업을 수행할 수 있는 다른 유틸리티가 있습니까? 그렇지 않다면 sed
새로운 줄을 죽이는 것이 도움이 될까요?
답변1
당신이 원하는 것에 달려 있습니다. 예를 들어
목차가 충실하게 표시되도록 레이아웃을 유지하려는 경우 이 -layout
플래그를 사용할 수 있습니다. 원시 스트림을 원할 경우 이 -raw
플래그가 있지만 원하는 만큼 효율적으로 작동하지는 않습니다. 먼저 텍스트 파일로 변환하는 것이 좋습니다. 예를 들어 보겠습니다 test.pdf
. 그 다음에,
$ pdftotext test.pdf test.txt
그러면 pdftotext 유틸리티의 출력이 포함된 test.txt라는 파일이 생성됩니다. 그런 다음 새로 생성된 텍스트 파일에 Perl 코드를 작성합니다.
$ perl -0pe "s/([^\n])\n([^\n])/\1 \2/g;" test.txt > final.txt
이제 알 수 있습니다. 파일 final.txt
에는 원하는 내용이 있어야 합니다. Perl 코드를 있는 그대로 복사하고 원하는 대로 파일 이름을 변경할 수 있습니다. 도움이 되길 바랍니다.
답변2
Calibre eBook Converter는 귀하의 요구를 충족시킬 수 있습니다. 여기에는 다음 작업에 사용할 수 있는 그래픽 사용자 인터페이스(GUI)와 명령줄이 있습니다.
ebook-convert myfile.input_format myfile.output_format --enable-heuristics [other-options]
원래 단락 구조를 추측하면서 pdf를 epub 또는 raw .txt 형식으로 변환할 수 있습니다. 프로세스를 미세 조정하는 데 도움이 되는 다양한 옵션이 있습니다. 다음을 참조하세요. https://manual.calibre-ebook.com/ generate/en/ebook-convert.html#heuristic-processing
"불필요한 하이픈 제거" 기능은 `--enable-heuristics로 활성화됩니다. 하이픈으로 연결된 단어의 분석은 텍스트 자체인 사전을 기반으로 합니다(어딘가에서 "문서"라는 단어를 찾으면 "문서"라는 것만 알아두십시오). " 가장자리에 하이픈이 있으면 하이픈을 제거해야 합니다.)
또한 --unsmarten-punctuation
멋진 따옴표, 대시 및 타원을 간단한 등가물(nameyl "'-...
)로 변환합니다.
또한 --html-unwrap-factor parameter
설명에는 "확장해야 하는 선의 길이를 결정하는 데 사용되는 척도입니다. 유효한 값은 0에서 1 사이의 소수입니다. 기본값은 0.4
정중선 길이 바로 아래입니다. 소수만 있는 경우 문서에서는 이 값을 확장하여 줄여야 한다고 요구합니다."
내 테스트 문서의 경우 기본값은 더 낮은 값에서도 잘 작동하지만 결과는 더 좋습니다.
ebook-convert mydoc.pdf mydoc.txt --enable-heuristics --html-unwrap-factor 0.2
결과는 추가 처리에 충분합니다(예: 번역 메모리 .tmx 파일을 생성하기 위한 문서 쌍의 텍스트 정렬).
Linux에서 (하위)폴더의 모든 .pdf 파일을 처리하려면 다음을 수행합니다.
find . -name "*.pdf" | while IFS= read -r file; do if [ ! -e "${file}.txt" ]; then ebook-convert "$file" "${file}.txt" --enable-heuristics --html-unwrap-factor 0.2 ; fi; done
(참고: 파일 이름은 하이픈으로 시작할 수 없습니다.)
GUI 매뉴얼은 다음 위치에 있습니다:https://manual.calibre-ebook.com/conversion.html#heuristic-processing
여러 열로 구성된 테이블의 문장에 대한 결과는 끔찍합니다. 여기서 Tabula(https://tabula.technology/) 도움이 될 것입니다.
다음은 예제 사용에 대한 스크린샷입니다(여기서는 단락이 올바르게 감지되었음을 더 명확하게 보여주기 위해 출력이 .epub입니다).