title: How to extract text from a PDF file in Python?
body: <p>How can I extract text from a PDF file in Python?</p>
  
  <p>I tried the following:</p>
  
  <pre><code>import sys
  import pyPdf
  
  def convertPdf2String(path):
        content = ""
        pdf = pyPdf.PdfFileReader(file(path, "rb"))
        for i in range(0, pdf.getNumPages()):
            content += pdf.getPage(i).extractText() + " \n"
            content = " ".join(content.replace(u"\xa0", u" ").strip().split())
        return content
  
  f = open('a.txt','w+')
  
  f.write(convertPdf2String(sys.argv[1]).encode("ascii","xmlcharrefreplace"))
  f.close()
  </code></pre>
  
  <p>But the result is as follows, rather than readable text:</p>
  
  <blockquote>
    <h1>728;&#711;&#710;&#732; &#730;&#711;&#711;!""&#728;&#711;&#710;&#729;&#710;&#733;&#731;&#731;&#731;&#731;&#710;&#732;&#710; &#710; &#710;&#728;&#710;&#731;&#729;&#710;"&#710;&#728;"&#710;&#710;&#710;&#732;#$&#729;&#710;&#730;&#710; %&amp;&#710; &#728;&#731;&#710;&#732;'&#729;&#729;%&#733;&#731;&#710;&#711;&#729; &#732;&#710;&#710;&#732;'&#710; &#711;&#710;#$%&amp;('%$&amp;))$<em>$+%#,-.+&amp;&amp;&#733;())&#733;)</em>&#733;+,,-./012)(&#733;)*&#733;+,-3&#729;&#710;/0245)6#57+82,55)6#57+,+2,+ /!#!!&amp;&#728;&#728;1"%&#728;20&#731;&#731;3&#710;07%4!&#728;"6 &#731;&#710; &#733;&#710; &#710;&#728;&amp;/&amp;4"9&#710; %6&#711;%4%4&amp;5&#728;2)&#728;&#728;&#731;%:6(</h1>
  </blockquote>