PDF 읽고 의미 텍스트를 저장하지 않습니다 오히려 특히 글리프 (도장 자)에 매핑 문자 코드를 사용 -이 :
내 코드를 찾아주세요 세례반. 그러나 코드 글자 매핑은 코드가 사람이 읽을 수 있도록 일반적인 문자 집합 (예 : ISO-8859-1 또는 UTF-8)과 일치하는 경우가 많습니다. 비록 구두점 문자가 대부분 구두점인데도 "틀린"경우가 있기는하지만 구문 분석 할 수있는 모든 텍스트의 경우입니다.
문서의 "mount_vxfs"텍스트가 완전히 다르게 인코딩되어 불행히도 분명한 가비지가 발생합니다. 궁금하신 분은 코드에서 getPageText()를 getPageContent()로 대체하여 실제로 존재하는 것을 볼 수 있습니다.
PDF 문자를 의미있는 문자로 다시 변환하려면 PDF 판독기가 수많은 변환 테이블 (소위 CMaps 포함)을 사용하여 농구를 뛰어 넘어야합니다. 이것은 많은 프로그래밍 작업이기 때문에 더 간단한 라이브러리는 구현하지 않기로 결정했습니다. CAM :: PDF의 경우입니다.
텍스트를 (을 편집하지 않음) 구문 분석에만 관심이 경우는, 다음과 같은 기술은 내가 성공을 사용 무언가 :
의 xpdf를 얻습니다 (http://foolabs.com/xpdf) 또는 Poppler (http://poppler.freedesktop.org/). Poppler는 xpdf의 새로운 포크입니다. * nix를 사용하고 있다면 패키지를 사용할 수 있습니다.
명령 줄 도구 'pdftotext'를 사용하면 파일에서 페이지별로 또는 한 번에 텍스트를 추출 할 수 있습니다.
예 :
#!/usr/bin/perl
use English;
my $file_name="vxfs_admin.pdf";
open my $text_fh, "/usr/bin/pdftotext -layout -q '$file_name' - 2>/dev/null |";
local $INPUT_RECORD_SEPARATOR = "\f"; # slurp a whole page at a time
while (my $page_text = <$text_fh>) {
# this is here only for demo purposes
print $page_text if $INPUT_LINE_NUMBER == 19;
}
close $text_fh;
(참고 :. 나는 당신의 링크를 사용하여 검색 문서는 약간 다른, 잘못된 비트 대신 19 페이지에 있습니다)
매트, 무슨 일이 ... pls. 가능하다면 정당화하시오 ????????????? –
어쨌든 링크 된 PDF의 스크린 샷 대신 코드를 표시해야 할 수도 있습니다. 그리고 키보드가 무언가 이상하다고 생각합니다. –
mandy, 27 가지 질문 후에 주석에 코드를 게시하는 것보다 더 잘 알아야합니다. 질문을 편집하고 올바른 형식으로 코드를 추가하십시오. – Mat