我如何从 url 而不是从磁盘打开 pdf
就像是
input1 = PdfFileReader(file("http://example.com/a.pdf", "rb"))
我想从网上打开几个文件并下载所有文件的合并。
我认为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()
嗯,可以先单独下载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"))
对于python 3.8
import io
from urllib.request import Request, urlopen
from PyPDF2 import PdfFileReader
class GetPdfFromUrlMixin:
def get_pdf_from_url(self, url):
"""
:param url: url to get pdf file
:return: PdfFileReader object
"""
remote_file = urlopen(Request(url)).read()
memory_file = io.BytesIO(remote_file)
pdf_file = PdfFileReader(memory_file)
return pdf_file