乐于分享
好东西不私藏

AI 办公实操:PDF 自动分页 + Excel 智能配图

AI 办公实操:PDF 自动分页 + Excel 智能配图

问题1:PDF分割打印
今天同事遇到一个问题,资料需要打印,资料的每一页分晨读和晚默两部分,打印好之后需要裁开才好使用,1,2页也就算了,但这个有近30页,太麻烦了。这边我们可以借助trae,让它帮我们把1页变成2页。直接打印 ,这样字也大些,省的看花眼。
问题1解决办法
打开trae,输入最简单的需求。
三下科学晨读晚默(教科版)(1).pdf 我希望把这个pdf的 每一页分成上下两部分。最后保存。
这样简单的需求提示词,相信不管怎样,你都提得出的吧,然后点下优化输入内容。看下优化后的内容,和你的最终需求是否符合,符合的话,发送。
发送好之后,就不用管了,你可以去做其他事情了,其实很快,最终花了2分钟生成如下的pdf,好了,任务结束。
问题2:PDF转图片插入excel
另一个同事今天接到一个任务,需要把所有人的职称证书以图片形式插入到指定excel中,要求名称也对应好。这里有个问题,职称证书很多人都保存的是pdf格式,不是图片格式,需要这位老师把pdf转换成图片,然后再根据姓名插入到 指定位置,100多人的单位,每个都去这么操作下的话,又不知道要浪费多久。还是让trae来解决吧。
问题2解决办法
打开trae,输入如下提示词。
将pdf文件夹下的pdf的第一页导出成图片,名称和原名相同。再根据3.xlsx这个文件的A列的姓名,插入图片到B列,要求姓名和图片名相同。
pdf文件夹是我随便假设的位置,里面随便放了些pdf文件,这样老师就不用担心数据泄露的问题了。3.xlsx也是我随意写的。提示词写好之后,仍然是优化输入内容。发送。
发送好之后,就不用管了,你可以去做其他事情了,这次以为会花较多时间减,最终花了3分钟它就帮我把图片填充到表格中了。执行结果大家可以看下,也有好多意外之喜的。
总结
朋友们平常在用AI时,好多AI是无法帮你操作文件的,用trae却可以直接操作电脑上被我们允许的文件。当然它操作很多时候用的是python或nodejs,朋友们怕数据泄露的话,可以在一台不涉密的电脑上按上面操作,然后把python的脚本拷贝到涉密电脑上运行即可,这样就不会泄密了。帮刚才的两个脚本上传下,有需要的自行下载使用。如果你有什么问题,欢迎联系我。。再唠叨一句,AI时代,手打输入太过时了,可以语音输入了,反正你说的一些胡话,AI也可以理解。尤其当你要输入的提示词过多时,语音输入真的不要太方便。
这个是切割pdf的。
from pypdf import PdfReader, PdfWriterfrom reportlab.pdfgen import canvasfrom reportlab.lib.pagesizes import letterimport ioinput_pdf = "三下科学晨读晚默(教科版)(1).pdf"output_pdf = "三下科学晨读晚默(教科版)_分割合并.pdf"reader = PdfReader(input_pdf)print(f"总页数: {len(reader.pages)}")if reader.pages:    page = reader.pages[0]    media_box = page.mediabox    width = float(media_box.width)    height = float(media_box.height)    print(f"页面宽度: {width}")    print(f"页面高度: {height}")writer = PdfWriter()for i, page in enumerate(reader.pages):    media_box = page.mediabox    page_width = float(media_box.width)    page_height = float(media_box.height)    mid_height = page_height / 2    top_page = PdfWriter()    top_page.add_page(page)    top_page.pages[0].mediabox.upper_left = (0, page_height)    top_page.pages[0].mediabox.lower_right = (page_width, mid_height)    bottom_page = PdfWriter()    bottom_page.add_page(page)    bottom_page.pages[0].mediabox.upper_left = (0, mid_height)    bottom_page.pages[0].mediabox.lower_right = (page_width, 0)    top_output = io.BytesIO()    top_page.write(top_output)    top_output.seek(0)    writer.add_page(PdfReader(top_output).pages[0])    bottom_output = io.BytesIO()    bottom_page.write(bottom_output)    bottom_output.seek(0)    writer.add_page(PdfReader(bottom_output).pages[0])    print(f"第 {i+1} 页已分割为上下两部分")with open(output_pdf, "wb"as f:    writer.write(f)print(f"处理完成,已保存为: {output_pdf}")
这个是pdf转图片插入的。
import osimport globimport fitzfrom openpyxl import load_workbookfrom openpyxl.drawing.image import Image as OpenpyxlImagepdf_folder = r'h:\AI办公\pdf'excel_file = r'h:\AI办公\3.xlsx'pdf_files = glob.glob(os.path.join(pdf_folder, '*.pdf'))print(f"找到 {len(pdf_files)} 个PDF文件")for pdf_path in pdf_files:    pdf_name = os.path.splitext(os.path.basename(pdf_path))[0]    print(f"处理: {pdf_name}.pdf")    doc = fitz.open(pdf_path)    page = doc[0]    zoom = 2.0    mat = fitz.Matrix(zoom, zoom)    pix = page.get_pixmap(matrix=mat)    output_path = os.path.join(pdf_folder, f'{pdf_name}.png')    pix.save(output_path)    print(f"  保存图片: {output_path}")    doc.close()wb = load_workbook(excel_file)sheet = wb.activenames_col_a = []for row in range(2, sheet.max_row + 1):    cell_value = sheet.cell(row=row, column=1).value    if cell_value:        names_col_a.append((row, cell_value))print(f"\nExcel中A列姓名: {[n[1for n in names_col_a]}")for row_num, name in names_col_a:    image_file = os.path.join(pdf_folder, f'{name}.png')    if os.path.exists(image_file):        print(f"为 '{name}' 插入图片: {image_file}")        img = OpenpyxlImage(image_file)        img.width = 120        img.height = 160        img.anchor = f'B{row_num}'        sheet.add_image(img)        sheet.column_dimensions['B'].width = 20        sheet.row_dimensions[row_num].height = 130        print(f"  已插入图片到B{row_num}")    else:        print(f"警告: 未找到图片文件 '{name}.png'")wb.save(excel_file)print(f"\n完成! Excel文件已保存到: {excel_file}")
本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » AI 办公实操:PDF 自动分页 + Excel 智能配图

评论 抢沙发

5 + 3 =
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
×
订阅图标按钮