Открытие PDF-URL с помощью PyPdf - PullRequest
5 голосов
/ 17 марта 2012

Как открыть PDF-файл с URL-адреса, а не с диска

Что-то вроде

input1 = PdfFileReader(file("http://example.com/a.pdf", "rb"))

Я хочу открыть несколько файлов из Интернета и загрузить объединение всех файлов.

Ответы [ 2 ]

13 голосов
/ 17 марта 2012

Я думаю, urllib2 даст вам то, что вы хотите.

from urllib2 import Request, urlopen
from pyPdf import PdfFileWriter, PdfFileReader
from StringIO import StringIO

url = "http://www.silicontao.com/ProgrammingGuide/other/beejnet.pdf"
writer = PdfFileWriter()

remoteFile = urlopen(Request(url)).read()
memoryFile = StringIO(remoteFile)
pdfFile = PdfFileReader(memoryFile)

for pageNum in xrange(pdfFile.getNumPages()):
        currentPage = pdfFile.getPage(pageNum)
        #currentPage.mergePage(watermark.getPage(0))
        writer.addPage(currentPage)


outputStream = open("output.pdf","wb")
writer.write(outputStream)
outputStream.close()
4 голосов
/ 17 марта 2012

Ну, вы можете сначала скачать PDF отдельно, а затем использовать pypdf для чтения

import urllib

url = 'http://example.com/a.pdf'
webFile = urllib.urlopen(url)
pdfFile = open(url.split('/')[-1], 'w')
pdfFile.write(webFile.read())
webFile.close()
pdfFile.close()

base = os.path.splitext(pdfFile)[0]
os.rename(pdfFile, base + ".pdf")

input1 = PdfFileReader(file(pdfFile, "rb"))
...