title: Highlight text content in pdf files using python and save a screenshot
body: <p>I have a list of pdf files and I need to highlight specific text on each page of these files and save a snapshot for each of the text instances.</p>
  
  <p>So far I am able to highlight the text and save the entire page of a pdf file as a snapshot. But, I want to find the position of highlighted text and take a zoomed in the snapshot which will be more detailed compared to the full page snapshot.</p>
  
  <p>I'm pretty sure there must be a solution to this problem. I am new to Python and hence I am not able to find it. I would be really grateful if someone can help me out with this.</p>
  
  <p>I have tried using <code>PyPDF2</code>, <code>Pymupdf</code> libraries but I couldn't figure out the solution. I also tried highlighting by providing coordinates which works but couldn't find a way to get these coordinates as output.</p>
  
  <pre><code>[![Sample snapshot from the code[![\]\[1\]][1]][1]][1]
  
  #import PyPDF2
  import os
  import fitz
  from wand.image import Image
  import csv
  #import re
  #from pdf2image import convert_from_path
  
  check = r'C:\Users\Pradyumna.M\Desktop\Pradyumna\Automation\Intel Bytes\Create Source Docs\Sample Check 8 Apr 2019'
  
  dir1 = check + '\\Source Docs\\'
  dir2 = check + '\\Output\\'
  
  dir = [dir1, dir2]
  
  for x in dir:
      try:
          os.mkdir(x)
      except FileExistsError:
          print("Directory ", x, " already exists")
  
  ### READ PDF FILE
  with open('upload1.csv', newline='') as myfile:
      reader = csv.reader(myfile)
      for row in reader:
          rowarray = '; '.join(row)
          src = rowarray.split("; ")
          file = check + '\\' + src[4] + '.pdf'
          print(file)
          #pdfFileObj = open(file,'rb')
          #pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
          #print("Total number of pages: " + str(pdfReader.numPages))
          doc = fitz.open(file)
          print(src[5])
          for i in range(int(src[5])-1, int(src[5])):
              i = int(i)
              page = doc[i]
              print("Processing page: " + str(i))
              text = src[3]
              #SEARCH TEXT
              print("Searching: " + text)
              text_instances = page.searchFor(text)
              for inst in text_instances:
                  highlight = page.addHighlightAnnot(inst)
                  file1 = check + '\\Output\\' + src[4] + '_output.pdf'
                  print(file1)
                  doc.save(file1, garbage=4, deflate=True, clean=True)
                  ### Screenshot
                  with(Image(filename=file1, resolution=150)) as source:
                      images = source.sequence
                      newfilename = check + "\\Source Docs\\" + src[0] + '.jpeg'
                      Image(images[i]).save(filename=newfilename)
                      print("Screenshot of " + src[0] + " saved")
  </code></pre>