Python---PDF旋转角度

PDF顺时针旋转固定角度

from PyPDF2 import PdfFileReader, PdfFileWriter

def pdf_rotate(raw_path, save_path, angle=90):
    """
        将 PDF 顺时针旋转固定角度
    :param raw_path: PDF原文件路径
    :param save_path: 旋转后PDF保存路径
    :param angle: 旋转角度
    :return:
    """
    read_pdf = PdfFileReader(raw_path)
    write_pdf = PdfFileWriter()
    page_0 = read_pdf.getPage(0).rotateClockwise(angle)  # 顺时针旋转angle度
    write_pdf.addPage(page_0)
    with open(save_path, "wb") as f:
        write_pdf.write(f)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用Python中的PyPDF2库和python-docx库来实现Word文档和PDF文档的格式转换。 1. Word转PDF 使用python-docx库可以读取和写入Word文档,使用PyPDF2库可以将Word文档转换为PDF格式。代码如下: ``` python import docx from io import BytesIO from PyPDF2 import PdfFileWriter, PdfFileReader def convert_to_pdf(word_file): # 打开Word文档 doc = docx.Document(word_file) # 创建一个PDF文档对象 pdf_output = BytesIO() pdf_writer = PdfFileWriter() # 将Word文档中的每个页面添加到PDF文档中 for page in doc.pages: img = BytesIO() page.save(img, 'png') pdf_writer.addPage(PdfFileReader(BytesIO(img.getvalue())).getPage(0)) # 保存PDF文档 pdf_writer.write(pdf_output) return pdf_output.getvalue() ``` 2. PDF转Word 使用python-docx库可以读取和写入Word文档,使用PyPDF2库可以将PDF文档转换为Word格式。代码如下: ``` python import docx import io from PyPDF2 import PdfFileReader def pdf_to_word(pdf_file): # 打开PDF文档 pdf_reader = PdfFileReader(io.BytesIO(pdf_file)) # 创建一个Word文档对象 doc = docx.Document() # 将PDF文档中的每个页面转换成图片,并添加到Word文档中 for page in pdf_reader.pages: img = page.to_image(resolution=300) doc.add_picture(io.BytesIO(img.original_data), width=docx.shared.Inches(6)) # 保存Word文档 output = io.BytesIO() doc.save(output) return output.getvalue() ``` 3. PDF合并 使用PyPDF2库可以将多个PDF文件合并为一个PDF文件。代码如下: ``` python from PyPDF2 import PdfFileMerger, PdfFileReader def merge_pdfs(pdf_files): # 创建一个PDF合并器对象 pdf_merger = PdfFileMerger() # 将每个PDF文件添加到合并器中 for pdf_file in pdf_files: pdf_merger.append(PdfFileReader(pdf_file)) # 保存合并后的PDF文件 output = io.BytesIO() pdf_merger.write(output) return output.getvalue() ``` 4. PDF拆分 使用PyPDF2库可以将一个PDF文件拆分为多个PDF文件。代码如下: ``` python from PyPDF2 import PdfFileWriter, PdfFileReader def split_pdf(pdf_file): # 打开PDF文档 pdf_reader = PdfFileReader(pdf_file) # 创建一个PDF写入器对象 pdf_writer = PdfFileWriter() # 将PDF文档中的每个页面保存为一个新的PDF文件 for i in range(pdf_reader.getNumPages()): pdf_writer.addPage(pdf_reader.getPage(i)) output = io.BytesIO() pdf_writer.write(output) yield output.getvalue() pdf_writer = PdfFileWriter() ``` 5. PDF页面旋转 使用PyPDF2库可以旋转PDF文件中的页面。代码如下: ``` python from PyPDF2 import PdfFileWriter, PdfFileReader def rotate_pdf(pdf_file, degrees): # 打开PDF文档 pdf_reader = PdfFileReader(pdf_file) # 创建一个PDF写入器对象 pdf_writer = PdfFileWriter() # 将PDF文档中的每个页面旋转指定的角度 for i in range(pdf_reader.getNumPages()): page = pdf_reader.getPage(i) page.rotateClockwise(degrees) pdf_writer.addPage(page) # 保存旋转后的PDF文件 output = io.BytesIO() pdf_writer.write(output) return output.getvalue() ``` 6. PDF页面增加水印 使用PyPDF2库可以在PDF文件中的页面上添加水印。代码如下: ``` python from PyPDF2 import PdfFileWriter, PdfFileReader from reportlab.lib.units import mm from reportlab.pdfgen import canvas def add_watermark(pdf_file, text): # 打开PDF文档 pdf_reader = PdfFileReader(pdf_file) # 创建一个PDF写入器对象 pdf_writer = PdfFileWriter() # 创建一个水印对象 watermark = canvas.Canvas('watermark.pdf') watermark.setFont("Helvetica", 80) watermark.setFillGray(0.5) watermark.rotate(45) watermark.translate(-500, -500) watermark.drawString(500, 500, text) watermark.save() # 将PDF文档中的每个页面添加水印 watermark_reader = PdfFileReader('watermark.pdf') for i in range(pdf_reader.getNumPages()): page = pdf_reader.getPage(i) page.mergePage(watermark_reader.getPage(0)) pdf_writer.addPage(page) # 保存添加水印后的PDF文件 output = io.BytesIO() pdf_writer.write(output) return output.getvalue() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值