【学习笔记】Python办公自动化——word与pdf

pip3 install python-docx 或 conda install python-docx#安装docx 库

Word文档(Document) 由不同段落(Paragraph) 和文字块 (Run) 组成:1、每个**Document包含许多个代表“段落”的Paragraph对象,存放在document. paragraphs**中;2、每个**Paragraph都有许多个代表“行内元素”的Run对象,存放在paragraph.runs**中。

字体设置

add_run##修改格式 字号、颜色等

font.name的设置为全局变量,如果需要进行多种字体设置,可以设置成不同的style_font进行调用或者定义字体设置函数(font_setting)。style_font可以设置每一行每个字,而font_setting只能设置段落。

插入图片与表格

文件名.add_picture('111.jpg',width=Inches(1.0), height=Inches(1.0))# 新增名为“111”的图片

table1 = doc_1.add_table(rows=2, cols=1) # 创建3行1列表格

table1.style='Medium Grid 1 Accent 1'  #表格样式很多种,注意标明

设置页眉页脚

对文档中节(section)中的页眉(header)和页脚 (footer) 对象进行操作即可

格式设置

paragraph_format #进行设置段落格式

对齐设置

from docx.enum.text import WD_ALIGN_PARAGRAPH

LEFT# 左对齐

CENTER# 文字居中

RIGHT# 右对齐

JUSTIFY# 文本两端对齐

设置段落行距

from docx.shared import Length

 SINGLE #单倍行距(默认)

ONE_POINT_FIVE # 1.5倍行距

 DOUBLE2 # 倍行距

AT_LEAST # 最小值

EXACTLY#固定值

 MULTIPLE # 多倍行距

paragraph.line_spacing_rule = WD_LINE_SPACING.EXACTLY #固定值

paragraph_format.line_spacing = Pt(**) # 固定值**磅

paragraph.line_spacing_rule = WD_LINE_SPACING.MULTIPLE #多倍行距

paragraph_format.line_spacing = ** # 设置**倍行间距

设置字体属性

from docx.shared import RGBColor,Pt

all_caps#全部大写字母

bold#加粗

color#字体颜色

double_strike#双删除线

hidden # 隐藏

imprint # 印记

italic # 斜体

name  #字体名称

shadow  #阴影

strike  #  删除线

subscript  #下标      

superscript  #上标

underline  #下划线

PDF

import os
from PyPDF2 import PdfFileWriter, PdfFileReader#相关功能使用库PyPDF2 和 pdfplumber。

批量拆分

将完整PDF拆分成不同页数PDF。步骤:1、读取 PDF 的整体信息、总页数等;2、遍历每一页内容,以每个 step 为间隔将 PDF 存成每一个小的文件块;3、将小的文件块重新保存为新的 PDF 文件

批量合并

步骤:1、确定要合并的文件顺序;2、循环追加到一个文件块中;3、保存成一个新的文件

提取文字内容

使用 pdfplumber 库的 extract_text 函数进行实现

提取表格内容

使用 pdfplumber 库的 extract_table 函数进行实现。多个表格改为使用 extract_tables

提取图片内容

使用 PyMuPDF 模块中的 fitz,步骤:1、使用 fitz 打开文档,获取文档详细数据;2、遍历每一个元素,通过正则找到图片的索引位置;3、使用 Pixmap 将索引对应的元素生成图片;4、通过 size 函数过滤较小的图片

PDF转换为图片

pdf2image 库

添加水印

在现有的水印PDF文件基础上,依次通过 mergePage 把每一页PDF合并到水印文件上,最后将每一页待水印的PDF合并成一个文件

你可能感兴趣的:(学习,python,自动化)