의 지시에 따라이것페이지
djvu 문서를 가져오고 djvulibre에서 열어 손상 징후가 있는지 확인하면 정상적으로 확인됩니다. 내 테스트 폴더에 복사하고 이름을 바꿉니다.
공연하다
djvu2hocr test.djvu | sed 's/ocrx/ocr/g' > test.html
ddjvu -format=tiff test.djvu test.tif
계속해서 evince로 tif를 열면 모든 페이지를 볼 수 있는지 확인됩니다.
PDFbeads 실행
pdfbeads -o test.pdf
다음 오류가 발생합니다.
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': iconv will be deprecated in the future, use String#encode instead. Prepared data for processing test.tif Warning: test.tif contains multiple images, but only the first one is going to be used JBIG2 compression complete. pages:1 symbols:2080 log2:12 Processed test.tif
PDF는 잘 열리지만 단일 페이지에 불과하고 OCR이 작동합니다.
어떤 제안이 있으십니까?
답변1
pdfbeads에서는 문서의 모든 페이지에 대해 단일 페이지 TIFF 파일과 단일 페이지 html hOCR 파일을 기대합니다. TIFF 파일을 하나만 찾을 수 있으면 한 페이지만 출력됩니다.
TIFF 파일을 tiffsplit
. hocrsplit
~에서hocr 도구HTML을 분할할 수 있습니다. 나 자신은 그것을 사용할 필요가 없었습니다.
나는 iconv 경고에 대해 걱정하지 않을 것입니다. Ruby는 항상 pdfbeads를 사용하여 이를 수행합니다. 이유:Ruby 1.9.3의 iconv 지원 중단 경고
답변2
위에 게시한 지침에 다음과 같은 수정 사항을 썼는지, 아니면 다른 곳에서 찾았는지 더 이상 기억나지 않습니다(Google 검색에서는 관련 결과가 나오지 않지만). 다음은 제가 수개월 동안 사용해 온 내용입니다. 전체 djvu 파일을 pdf 형식으로 변환합니다.
f='file.djvu'
pg=$(djvused -e 'n' $f)
for i in $(seq 1 $pg)
do
djvu2hocr -p $i $f | sed 's/ocrx/ocr/g' > `printf "pg%04d.html" $i`
ddjvu -format=tiff -page=$i $f `printf "pg%04d.tiff" $i`
done
pdfbeads -o ${f/djvu/pdf};
이렇게 하면 모든 페이지에 대해 별도의 tiff(및 해당 html 파일)가 생성된 다음 pdfbeads를 사용하여 모든 항목을 병합합니다. 어떤 이유로 djvu에 9999페이지가 넘으면 %04의 인스턴스를 %05와 같이 더 큰 인스턴스로 변경해야 합니다.