本文整理汇总了Python中PyPDF2.PdfFileWriter方法的典型用法代码示例。如果您正苦于以下问题:Python PyPDF2.PdfFileWriter方法的具体用法?Python PyPDF2.PdfFileWriter怎么用?Python PyPDF2.PdfFileWriter使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PyPDF2
的用法示例。
在下文中一共展示了PyPDF2.PdfFileWriter方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: merge_pdf
# 需要导入模块: import PyPDF2 [as 别名]
# 或者: from PyPDF2 import PdfFileWriter [as 别名]
def merge_pdf(input_folder, output_file):
pdf2merge = []
for filename in os.listdir(input_folder):
#print(filename)
if filename.endswith('.pdf'):
pdf2merge.append(filename)
pdf2merge.sort()
pdfWriter = PyPDF2.PdfFileWriter()
for filename in pdf2merge:
pdfFileObj = open(input_folder+"/"+filename,'rb')
pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
for pageNum in range(pdfReader.numPages):
pageObj = pdfReader.getPage(pageNum)
pdfWriter.addPage(pageObj)
pdfOutput = open(output_file+'.pdf', 'wb')
pdfWriter.write(pdfOutput)
#Outputting the PDF
pdfOutput.close()
示例2: encryptPDFs
# 需要导入模块: import PyPDF2 [as 别名]
# 或者: from PyPDF2 import PdfFileWriter [as 别名]
def encryptPDFs(root, password):
"""Encrypts all pdfs folder walk
Args:
root (str): folder path to walk
password (str): password to encrypt pdfs with
Returns:
None
"""
for folder, subfolder, fileList in os.walk(root):
for file in fileList:
if file.endswith('.pdf'):
filepath = os.path.join(os.path.abspath(folder), file)
pdfFileObj = open(filepath, 'rb')
pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
if not pdfReader.isEncrypted:
pdfWriter = PyPDF2.PdfFileWriter()
for pageNum in range(pdfReader.numPages):
pdfWriter.addPage(pdfReader.getPage(pageNum))
pdfWriter.encrypt(password)
newPath = os.path.dirname(filepath) + '/untitled folder/' + \
('_encrypted.'.join(os.path.basename(filepath).split('.')))
resultPdf = open(newPath, 'wb')
pdfWriter.write(resultPdf)
resultPdf.close()
示例3: encrypt
# 需要导入模块: import PyPDF2 [as 别名]
# 或者: from PyPDF2 import PdfFileWriter [as 别名]
def encrypt(out_pdf, password):
print('Encrypting the document')
output_pdf = PyPDF2.PdfFileWriter()
in_file = open(out_pdf, "rb")
input_pdf = PyPDF2.PdfFileReader(in_file)
output_pdf.appendPagesFromReader(input_pdf)
output_pdf.encrypt(password)
# Intermediate file
with open(INTERMEDIATE_ENCRYPT_FILE, "wb") as out_file:
output_pdf.write(out_file)
in_file.close()
# Rename the intermediate file
os.rename(INTERMEDIATE_ENCRYPT_FILE, out_pdf)
示例4: pdf_page_to_png
# 需要导入模块: import PyPDF2 [as 别名]
# 或者: from PyPDF2 import PdfFileWriter [as 别名]
def pdf_page_to_png(src_pdf, pagenum=0, resolution=154):
"""
Returns specified PDF page as wand.image.Image png.
:param PyPDF2.PdfFileReader src_pdf: PDF from which to take pages.
:param int pagenum: Page number to take.
:param int resolution: Resolution for resulting png in DPI.
"""
check_dependencies(__optional_dependencies__['pdf'])
# Import libraries within this function so as to avoid import-time dependence
import PyPDF2
from wand.image import Image # TODO: When we start using this again, document which system-level libraries are required.
dst_pdf = PyPDF2.PdfFileWriter()
dst_pdf.addPage(src_pdf.getPage(pagenum))
pdf_bytes = io.BytesIO()
dst_pdf.write(pdf_bytes)
pdf_bytes.seek(0)
img = Image(file=pdf_bytes, resolution=resolution)
img.convert("png")
return img
示例5: test_output_file
# 需要导入模块: import PyPDF2 [as 别名]
# 或者: from PyPDF2 import PdfFileWriter [as 别名]
def test_output_file(self):
"""
for when you want to see what the file looks like
$ open MatchingUserReviewPDFTest.pdf
"""
matching_id = "test1a08daw awd7awgd 1213123"
self.create_match(self.user1, matching_id)
self.create_match(self.user2, matching_id)
self.most_recent_report.contact_phone = "555-555-5555"
self.most_recent_report.save()
pdf = PDFUserReviewReport.generate({"matches": MatchReport.objects.all()})
pdf_reader = PyPDF2.PdfFileReader(BytesIO(pdf))
with open("MatchingUserReviewPDFTest.pdf", "wb") as _file:
dst_pdf = PyPDF2.PdfFileWriter()
dst_pdf.appendPagesFromReader(pdf_reader)
dst_pdf.write(_file)
示例6: rotate_clockwise
# 需要导入模块: import PyPDF2 [as 别名]
# 或者: from PyPDF2 import PdfFileWriter [as 别名]
def rotate_clockwise(src_pdf_path, target_pdf_path, rotation_angle):
assert isinstance(src_pdf_path, str)
assert isinstance(target_pdf_path, str)
assert isinstance(rotation_angle, int)
assert rotation_angle >= 0
with open(src_pdf_path, 'rb') as f:
reader = PyPDF2.PdfFileReader(f)
writer = PyPDF2.PdfFileWriter()
# we need to rotate all pages
for index in range(reader.numPages):
page = reader.getPage(index)
page.rotateClockwise(rotation_angle)
writer.addPage(page)
# saving to target file
with open(target_pdf_path, 'wb') as g:
writer.write(g)
示例7: _run_convert
# 需要导入模块: import PyPDF2 [as 别名]
# 或者: from PyPDF2 import PdfFileWriter [as 别名]
def _run_convert(filename, page, res=120):
idx = page + 1
temp_time = time.time() * 1000
# 由于每次转换的时候都需要重新将整个PDF载入内存,所以这里使用内存缓存
pdfile = getPdfReader(filename)
pageObj = pdfile.getPage(page)
dst_pdf = PdfFileWriter()
dst_pdf.addPage(pageObj)
pdf_bytes = io.BytesIO()
dst_pdf.write(pdf_bytes)
pdf_bytes.seek(0)
img = Image(file=pdf_bytes, resolution=res)
img.format = 'png'
img.compression_quality = 90
img.background_color = Color("white")
# 保存图片
img_path = '%s%d.png' % (filename[:filename.rindex('.')], idx)
img.save(filename=img_path)
img.destroy()
img = None
pdf_bytes = None
dst_pdf = None
print('convert page %d cost time %d' % (idx, (time.time() * 1000 - temp_time)))
示例8: all_labels
# 需要导入模块: import PyPDF2 [as 别名]
# 或者: from PyPDF2 import PdfFileWriter [as 别名]
def all_labels():
output = PdfFileWriter()
for dp in DropPoint.query.filter(DropPoint.removed == None).all(): # noqa
output.addPage(PdfFileReader(BytesIO(_create_pdf(dp))).getPage(0))
f = BytesIO()
output.write(f)
return Response(
f.getvalue(),
mimetype="application/pdf"
)
示例9: pdf_merge
# 需要导入模块: import PyPDF2 [as 别名]
# 或者: from PyPDF2 import PdfFileWriter [as 别名]
def pdf_merge(inputs: [str], output: str, delete: bool = False):
"""
Merge multiple Pdf input files in one output file.
:param inputs: input files
:param output: output file
:param delete: delete input files after completion if true
"""
writer = PdfFileWriter()
if os.path.isfile(output):
ans = input(
"The file '%s' already exists. "
"Overwrite? Yes/Abort [Y/a]: " % output
).lower()
if ans == "a":
return
outputfile = open(output, "wb")
try:
infiles = []
for filename in inputs:
f = open(filename, "rb")
reader = PdfFileReader(f)
for page in reader.pages:
writer.addPage(page)
infiles.append(f)
writer.write(outputfile)
except FileNotFoundError as e:
print(e.strerror + ": " + e.filename)
finally:
outputfile.close()
for f in infiles:
f.close()
if delete:
for filename in inputs:
os.remove(filename)
示例10: pdf_copy
# 需要导入模块: import PyPDF2 [as 别名]
# 或者: from PyPDF2 import PdfFileWriter [as 别名]
def pdf_copy(input: str, output: str, pages: [int], yes_to_all=False):
"""
Copy pages from the input file in a new output file.
:param input: name of the input pdf file
:param output: name of the output pdf file
:param pages: list containing the page numbers to copy in the new file
"""
if not os.path.isfile(input):
print("Error. The file '%s' does not exist." % input)
return
if os.path.isfile(output) and not yes_to_all and not overwrite_dlg(output):
return
with open(input, "rb") as inputfile:
reader = PdfFileReader(inputfile)
outputfile = open(output, "wb")
writer = PdfFileWriter()
if pages is None:
pages = range(len(reader.pages))
else:
pages = parse_rangearg(pages, len(reader.pages))
for pagenr in sorted(pages):
page = reader.getPage(pagenr)
writer.addPage(page)
writer.write(outputfile)
outputfile.close()
示例11: __init__
# 需要导入模块: import PyPDF2 [as 别名]
# 或者: from PyPDF2 import PdfFileWriter [as 别名]
def __init__(self, path):
self.path = path
reader = PdfFileReader(open(path, "rb"), strict=False)
self.writer = PdfFileWriter()
self.writer.appendPagesFromReader(reader)
self.writer.addMetadata({k: v for k, v in reader.getDocumentInfo().items()
if isinstance(v, (utils.string_type, utils.bytes_type))})
示例12: createPDF
# 需要导入模块: import PyPDF2 [as 别名]
# 或者: from PyPDF2 import PdfFileWriter [as 别名]
def createPDF(self, name=None, size='10kb'):
from PyPDF2 import PdfFileReader, PdfFileWriter
from fpdf import FPDF
import os
import random
name = os.path.basename(name)
tmp_name = '/tmp/' + name
output_name = self.sharepath + '/' + name
if size == '10kb':
randlength = random.randint(10000,90000)
elif size == '100kb':
randlength = random.randint(100000,900000)
elif size == '1mb':
randlength = random.randint(1000000,9000000)
#create file
pdf=FPDF()
pdf.add_page()
pdf.set_font('Arial','B',8)
pdf.cell(0,0,os.urandom(randlength))
pdf.output(tmp_name, "F")
#encrypt it
output = PdfFileWriter()
input1 = PdfFileReader(open(tmp_name, "rb"))
output.encrypt(user_pwd="ihasapass")
output.addPage(input1.getPage(0))
outputStream = file(output_name, "wb")
output.write(outputStream)
outputStream.close()
示例13: decryptPDFs
# 需要导入模块: import PyPDF2 [as 别名]
# 或者: from PyPDF2 import PdfFileWriter [as 别名]
def decryptPDFs(root, password):
"""Decrypts all pdfs folder walk
Args:
root (str): folder path to walk
password (str): password to decrypt pdfs with
Returns:
None
"""
for folder, subfolder, fileList in os.walk(root):
for file in fileList:
if file.endswith('_encrypted.pdf'):
filepath = os.path.join(os.path.abspath(folder), file)
pdfFileObj = open(filepath, 'rb')
pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
if pdfReader.isEncrypted:
success = pdfReader.decrypt(password)
if success:
pdfWriter = PyPDF2.PdfFileWriter()
for pageNum in range(pdfReader.numPages):
pdfWriter.addPage(pdfReader.getPage(pageNum))
newPath = os.path.dirname(filepath) + '/' + \
''.join(os.path.basename(filepath).split('_encrypted'))
resultPdf = open(newPath, 'wb')
pdfWriter.write(resultPdf)
resultPdf.close()
else:
print('wrong password provided')
示例14: main
# 需要导入模块: import PyPDF2 [as 别名]
# 或者: from PyPDF2 import PdfFileWriter [as 别名]
def main(input_file, output_file):
xlsfile = openpyxl.load_workbook(input_file)
sheet = xlsfile['Sheet']
def row_to_dict(header, row):
return {header: cell.value for cell, header in zip(row, header)}
# islice skips the first row, the header
data = [SaleLog.from_row([cell.value for cell in row])
for row in islice(sheet, 1, None)]
# Generate each of the pages: a full summary, graph by day, and by shop
total_summary = generate_summary(data)
products = total_summary['by_product'].keys()
summary_by_day = aggregate_by_day(data)
summary_by_shop = aggregate_by_shop(data)
# Compose the PDF with a brief summary and all the graphs
summary_file = create_summary_brief(total_summary, 'summary.pdf')
by_day_file = graph(summary_by_day, products, 'by_day.pdf', 7)
by_shop_file = graph(summary_by_shop, products, 'by_shop.pdf')
# Group all the pdfs into a single file
pdfs = [summary_file, by_day_file, by_shop_file]
pdf_files = [open(filename, 'rb') for filename in pdfs]
output_pdf = PyPDF2.PdfFileWriter()
for pdf in pdf_files:
reader = PyPDF2.PdfFileReader(pdf)
output_pdf.appendPagesFromReader(reader)
# Write the resulting PDF
with open(output_file, "wb") as out_file:
output_pdf.write(out_file)
# Close the files
for pdf in pdf_files:
pdf.close()
# clean the temp files
for pdf_filename in pdfs:
os.remove(pdf_filename)
示例15: for_cat
# 需要导入模块: import PyPDF2 [as 别名]
# 或者: from PyPDF2 import PdfFileWriter [as 别名]
def for_cat(number):
cat = Category.get(number)
if (cat is None):
return abort(404)
output = PdfFileWriter()
for dp in DropPoint.query.filter(DropPoint.category_id == cat.category_id, DropPoint.removed == None).all(): # noqa
output.addPage(PdfFileReader(BytesIO(_create_pdf(dp))).getPage(0))
f = BytesIO()
output.write(f)
return Response(
f.getvalue(),
mimetype="application/pdf"
)