2015-07-21 57 views
0

我正在尝试编写一些工作脚本,并且在研究特定问题时遇到困难。我认为每个PDF页面都是一个图像,例如JPG,但即使我正在阅读该文件,也不会发生这种情况。所以我的问题是:什么是相应的PDF页面存储,如果不是图像?作为字节存储的PDF页面

这里是我工作的工作代码:

pdf = user_file.file.read() 
    startmark = b"\xff\xd8" 
    startfix = 0 
    endmark = b"\xff\xd9" 
    endfix = 2 
    i = 0 

    njpg = 0 
    while True: 
     istream = pdf.find("stream", i) 
     if istream < 0: 
      break 
     istart = pdf.find(startmark, istream, istream+20) 
     if istart < 0: 
      i = istream+20 
      continue 
     iend = pdf.find("endstream", istart) 
     if iend < 0: 
      raise Exception("Didn't find end of stream!") 
     iend = pdf.find(endmark, iend-20) 
     if iend < 0: 
      raise Exception("Didn't find end of JPG!") 

     istart += startfix 
     iend += endfix 
     print "JPG %d from %d to %d" % (njpg, istart, iend) 
+2

PDF不是那么简单。请参阅http://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/PDF32000_2008.pdf以供参考。它只有大约700页。如果你真的想做一些真正的事情,可以使用库。你可以在这里找到示例https://www.binpress.com/tutorial/manipulating-pdfs-with-python/167。 –

回答

-2

PDF文件需要被保存为我相信字节。 解析我的pdf时,我使用了一个名为pypdf的库。

+4

我相信每个文件都以字节存储。 –

+0

是的......这是真的,但我的意思是更像'UTF-8'或用'b'打开文件,所以要阅读它你必须打开一个字节流。 – B1indfire

+0

文件只是一个字节序列,可能是空的。所以当然,你可以阅读一个PDF格式的字节。 –