当前位置: 首页>>代码示例>>Python>>正文


Python PyPDF2.PdfFileWriter方法代码示例

本文整理汇总了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() 
开发者ID:AlexandrovLab,项目名称:SigProfilerExtractor,代码行数:24,代码来源:subroutines.py

示例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() 
开发者ID:kudeh,项目名称:automate-the-boring-stuff-projects,代码行数:27,代码来源:pdfParanoia.py

示例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) 
开发者ID:PacktPublishing,项目名称:Python-Automation-Cookbook,代码行数:20,代码来源:watermarking_pdf.py

示例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 
开发者ID:airbnb,项目名称:knowledge-repo,代码行数:26,代码来源:image.py

示例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) 
开发者ID:project-callisto,项目名称:callisto-core,代码行数:18,代码来源:test_pdf.py

示例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) 
开发者ID:PacktPublishing,项目名称:Python-for-Everyday-Life,代码行数:22,代码来源:rotate.py

示例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))) 
开发者ID:cnych,项目名称:pdf2images,代码行数:27,代码来源:app.py

示例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"
    ) 
开发者ID:c3bottles,项目名称:c3bottles,代码行数:12,代码来源:label.py

示例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) 
开发者ID:stlehmann,项目名称:pdftools,代码行数:38,代码来源:pdftools.py

示例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() 
开发者ID:stlehmann,项目名称:pdftools,代码行数:30,代码来源:pdftools.py

示例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))}) 
开发者ID:chroming,项目名称:pdfdir,代码行数:9,代码来源:api.py

示例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() 
开发者ID:thinkst,项目名称:opencanary,代码行数:34,代码来源:testpdf.py

示例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') 
开发者ID:kudeh,项目名称:automate-the-boring-stuff-projects,代码行数:31,代码来源:pdfParanoia.py

示例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) 
开发者ID:PacktPublishing,项目名称:Python-Automation-Cookbook,代码行数:43,代码来源:generate_sales_report.py

示例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"
    ) 
开发者ID:c3bottles,项目名称:c3bottles,代码行数:15,代码来源:label.py


注:本文中的PyPDF2.PdfFileWriter方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。