2013-02-23 1 views
0

내 시스템에있는 모든 pdf 파일을 읽고 명령 줄 유틸리티 "pdftotext"에서 텍스트 파일 "output.txt"에 쓰는 중, 제대로 읽지 않은 파일을 읽는 중 (이미지 등 다수의 PDF 파일 등) 구조, 첫 번째 오류가 발생하면, 단지 대신 파이썬을 사용하고 같은 믿을수을 읽는 다음 파일로 이동python에서 texttopdf가 던진 오류를 처리하는 방법

/home/vikrantsingh/Downloads/ARRAYS_NEW.pdf 
/home/vikrantsingh/Downloads/GPOS_casestudy_solution_v2.pdf 
/home/vikrantsingh/Downloads/Tutorial.pdf 
/home/vikrantsingh/Downloads/The_C_Programming_Language.pdf 
Error: Missing language pack for 'Adobe-Japan1' mapping 
Error: Unknown font tag 'C0_0' 
Error (27972): No font in show 
Error: Missing language pack for 'Adobe-Japan1' mapping 
Error: Unknown font tag 'C0_0' 
Error (41087): No font in show 
Error: Missing language pack for 'Adobe-Japan1' mapping 
Error: Unknown font tag 'C0_0' 
Error (51900): No font in show 
Error: Missing language pack for 'Adobe-Japan1' mapping 
Error: Unknown font tag 'C0_0' 
Error (62716): No font in show 
Error: Missing language pack for 'Adobe-Japan1' mapping 
Error: Unknown font tag 'C0_0' 
Error (65450): No font in show 
Error: Missing language pack for 'Adobe-Japan1' mapping 
Error: Unknown font tag 'C0_0' 
Error (68463): No font in show 
Error: Missing language pack for 'Adobe-Japan1' mapping 
Error: Unknown font tag 'C0_0' 

같은 약간의 오차가 내가 원하는 것은 발생 2.7. 내 코드는 다음과 같습니다.

import os 
    import sys 
    import re 
    import subprocess 
    root = '/home' 
    targetpath = "" 
    path = os.path.join(root, targetpath) 
    filepath = [] 
    count = 0 
    filesize = 0 
    for r,subdir,f in os.walk(path): 
     ultimate_path = os.path.join(path,r) 
     for file in f: 
      if file.find(".pdf")!=-1: 
      print os.path.join(ultimate_path,file) 
      filesize = os.path.getsize(os.path.join(ultimate_path,file))+filesize 
      subprocess.call(['pdftotext', os.path.join(ultimate_path,file), 'output.txt']) 
     #print file 

     count = count+1 
     print count 
     print filesize/(1048576.0) 

이것은 pd "pdftotext"의 f 파일 나는 다음 pdf를 읽으려고 계속 오류를 잡으려고합니다.

나는 one post regarding this을 보았다. 감사합니다.

답변

1

이 오류 메시지는 pdftotext에 의해 생성됩니다. 이것들은 파이썬 예외가 아니기 때문에 try..except으로 잡을 수 없습니다.

당신은 실행할 수 있습니다 pdftotext -qsilence the error messages에 :

subprocess.call(['pdftotext', '-q', os.path.join(ultimate_path,file), 'output.txt']) 
관련 문제