RPA赋能内容创作:打造小红书入门词语图片的全自动化流程

举报
HUAWEIXIAZHI 发表于 2025/01/17 21:16:25 2025/01/17
273 0 0
【摘要】 RPA赋能内容创作:打造小红书入门词语图片的全自动化流程

你的段落文字.gif

用RPA全自动化批量生产【入门词语】图片做小红书商单,保姆级工具开发教程

最近由于tiktok的原因,不少老外涌入小红书,通过教老外学词语做小红书商单,快速涨粉起号,商单200元/单,一个月小几千还是非常香的,而且还可以矩阵做号,于是我就想到通过【影刀RPA+cursor】开发了一个批量自动化生产词语图片的工具,最后给粉丝们提供了工具下载,可免费使用,无费用。

image.png

这个项目比较固定,不仅可以做小红书,视频号、抖音也同样可以发。于是就在思考怎么通过RPA达到批量生产做矩阵的目的。接下来,我将我通过批量生产词语的步骤分享给大家,一键启动RPA机器人,机器人就会自动逐个读取excel,并将词语转成图片保存在本地文件夹,上一期的cursor起到了作用。

本次开发工具为:影刀+cursor

一、怎么将词语生成图片呢?

对于词语,方法比较简单,核心是2点:拼音字体和ppt导出图片。

1.1、安装拼音字体

拼音字体的意思就是,粘贴汉字过来后,会自动显示拼音,如图:

image.png

我用的是一个叫做【萌神拼音】的免费商用字体库,可直接网上点击下载字体库 ,安装也很简单,以windows为例,win+r调出运行,输入control进入控制,找到外观与个性化,再将上面的字体拖入到下面的字体库区域即可。

1.同时摁win+r,输入control,点击确定。

image.png

2.找到外观与个性化

image.png

image.png

image.png

可以进行验证,在PPT里面选择字体名称Mengshen-Regular看中文是否有拼音即可。

image.png

1.2、词语PPT模板制作

下面是我的PPT模板,作为一个参考

image.png

要注意的是词语区和解释区,这2个区域的文本必须先默认是【词语】和【解释解释解释解释解释解释解释解释解释解释解释解释解释解释解释解释解释解释解释解释解释】,后续会用RPA脚本自动替换,其他的地方随便你自己怎么改都行。

如果想自己制作PPT的话如下一个参考(可选择跳过):

1.先设置竖版即手机竖版

image.png

2.设置一个合适的背景,这里设置一个简单的树纹版本

image.png

3.按照自己的想法设计一个模板,我的可以作为一个参考,也会在下边文件里一起,你可以直接下载。

image.png

二、通过AI批量生产词语和解释。

2.1、怎么获取词语资源?

答案肯定是通过ai来进行生产,建议通过豆包生成(Edge搜豆包即可),我的提示词为:

我想要教入门的外国人学习词语,帮我列举出100个中国常用及入门(有一定的难度)的词语,出错率比较高的。用表格的形式展示:第一列是词语2-4个字,第二列是该词语的解释30-100个字。

生成的效果如下:

image.png

然后复制到excel表格,于是得到了几百条数据,每个词语发一个作品,那也可以发几百个作品了。

image.png

三、用影刀自动批量生产词语图片

可以说,这一步是批量化最关键的步骤,我们选用的工具是影刀,自动读取excel,并替换ppt中的指定词语并导出在PPT同目录下的output(会自动创建文件夹)图片。有想学习影刀的,可以参考我的截屏(完整版)自行研究。

image.png

关键代码是我用AI生成的,也分享给大家(看不懂跳过即可,我也是通过cursor生成的代码,如果想了解cursor无限使用,可以参考我的上一篇文章):

import win32com.client
import os
import datetime

#作者:LucianaiB
# 功能:打开ppt,替换文本,并导出图片
class PowerPointEditor:
    def __init__(self, ppt_path):
        """
        初始化 PowerPoint 编辑器。

        参数:
            ppt_path (str): PowerPoint 文件路径。
        """
        if not os.path.exists(ppt_path):
            raise FileNotFoundError(f"File '{ppt_path}' does not exist.")

        self.ppt_path = ppt_path
        self.ppt_app = win32com.client.Dispatch("PowerPoint.Application")
        self.ppt_app.Visible = True  # 可见,方便调试
        self.presentation = self.ppt_app.Presentations.Open(ppt_path)

    def replace_text_in_slide(self, slide_index, old_text, new_text):
        """
        替换指定幻灯片中的所有文本框中的文本。

        参数:
            slide_index (int): 要替换的幻灯片序号(从 1 开始)。
            old_text (str): 要查找的旧文本。
            new_text (str): 要替换的新文本。
        """
        if slide_index < 1 or slide_index > len(self.presentation.Slides):
            raise ValueError(f"Slide index {slide_index} is out of range (1-{len(self.presentation.Slides)}).")

        slide = self.presentation.Slides(slide_index)

        for shape in slide.Shapes:
            if shape.HasTextFrame and shape.TextFrame.HasText:
                text_range = shape.TextFrame.TextRange
                if old_text in text_range.Text:
                    # text_range.Replace(old_text, new_text)
                    # 格式化解释文本
                    if old_text == "解释":
                        lines = new_text.splitlines()
                        if lines:
                            text_range.Text = "  " + lines[0][:12]
                            for line in lines[1:]:
                                text_range.InsertAfter(line) 
                                text_range.InsertAfter(chr(13)) # 在每行后插入回车符

                    else:
                        text_range.Replace(old_text, new_text)
    def export_slide_as_image(self, slide_index, export_folder, image_format="PNG"):
        """
        将指定幻灯片导出为图片,并返回图片的完整路径。

        参数:
            slide_index (int): 要导出的幻灯片序号(从 1 开始)。
            export_folder (str): 图片保存文件夹路径。
            image_format (str): 图片格式,支持 "PNG", "JPG", "GIF" 等(默认 PNG)。

        返回:
            str: 导出的图片完整路径。
        """
        if slide_index < 1 or slide_index > len(self.presentation.Slides):
            raise ValueError(f"Slide index {slide_index} is out of range (1-{len(self.presentation.Slides)}).")

        # 检查文件夹是否存在,不存在则创建
        if not os.path.exists(export_folder):
            os.makedirs(export_folder)

        # 自动生成文件名
        filename = self.gettimestamp()
        file_name = f"{filename}.{image_format.lower()}"
        export_path = os.path.join(export_folder, file_name)

        # 导出幻灯片为图片
        slide = self.presentation.Slides(slide_index)
        slide.Export(export_path, image_format)
        print(f"Slide {slide_index} exported as {image_format} to '{export_path}'.")
        return export_path

    def save(self, save_path=None):
        """
        保存 PowerPoint 文件。

        参数:
            save_path (str): 保存路径(默认覆盖原文件)。
        """
        if save_path is None:
            save_path = self.ppt_path

        self.presentation.SaveAs(save_path)
        print(f"Presentation saved as '{save_path}'.")

    def gettimestamp(self):
        # 获取当前时间
        now = datetime.datetime.now()
        # 格式化为 yyyymmddhhMMss
        formatted_time = now.strftime('%Y%m%d%H%M%S')
        # 获取毫秒部分
        milliseconds = now.microsecond // 1000  # 微秒除以1000得到毫秒
        # 将毫秒部分转换为字符串,并确保是三位数
        milliseconds_str = f'{milliseconds:03d}'
        # 拼接时间戳字符串
        timestamp_str = formatted_time + milliseconds_str
        print(timestamp_str)
        return timestamp_str

    def close(self):
        """
        关闭 PowerPoint 演示文稿和应用程序。
        """
        if self.presentation:
            self.presentation.Close()
            del self.presentation
        if self.ppt_app:
            self.ppt_app.Quit()
            del self.ppt_app
ppt_path = dialog_result.PPT
output_path = ppt_path[:ppt_path.rfind('\\')] + "\\output"
title = loop_excel[0]
content = loop_excel[1]
# 初始化编辑器
editor = PowerPointEditor(ppt_path)
try:
    # 多次替换文本
    editor.replace_text_in_slide(1, "词语", title)
    editor.replace_text_in_slide(1, "解释解释解释解释解释解释解释解释解释解释解释解释解释解释解释解释解释解释解释解释解释", content)
    editor.export_slide_as_image(1, output_path)
    # 保存结果
    # editor.save(save_path)  //注释掉,暂无需保存

except Exception as e:
    print(f"Error: {e}")
finally:
    # 确保关闭 PowerPoint
    if 'editor' in locals():
        editor.close()

这个代码确实踩了很多坑,是通过cursor生成的,不得不说效率真的高,不仅流程快,而且解决bug也超快。

四、工具下载

影刀下载地址:

https://www.winrobot360.com/share/activity?inviteUserUuid=748770993651355650

影刀可以直接获取词语制作器(LucianaiB):

https://api.winrobot360.com/redirect/robot/share?inviteKey=77ed877183e7f8b3

密码:lucianaib

还需要下载的有2个文件(附件都有):

1、PPT模板.pptx (建议改一下背景颜色、和提示文字,不然就跟我的作品重复了)

image.png

由于平台限制,可以参考该模板自行制作,也可以问我

2、词语库.xlsx(excel里面我已经汇总了200多个词语,够发200多个作品了,实在不行,修改下ppt模板,再生产一篇,不就又有了200多个作品吗)

image.png

3.萌神拼音体.ttf

总结

教程的核心内容分为几个步骤。首先,作者介绍了如何将词语生成图片,关键在于使用拼音字体和PPT导出图片。具体来说,需要安装“萌神拼音”字体,该字体能自动为汉字显示拼音。安装方法是在Windows系统中,通过win+r调出运行窗口,输入control进入控制面板,找到外观与个性化,将字体拖入字体库区域。接着,作者提供了PPT模板的制作方法,强调词语区和解释区的文本需默认设置为特定内容,以便后续RPA脚本自动替换。

其次,作者讲解了如何通过AI批量生产词语和解释。推荐使用豆包(可通过Edge搜索找到)生成词语资源,提示词要求列举出100个中国常用且有一定难度、出错率高的入门词语,以表格形式展示,包括词语和解释两列。生成后,将数据复制到Excel表格中,为批量生产图片提供素材。

最关键的是使用影刀自动批量生产词语图片。影刀能够自动读取Excel文件,并替换PPT中的指定词语,然后导出图片保存在本地文件夹。作者还分享了用AI生成的关键代码,这段代码利用win32com.client库操作PowerPoint,实现文本替换和图片导出等功能。

最后,作者提供了工具下载链接,包括影刀的下载地址,以及通过影刀获取词语制作器(LucianaiB)的方法和密码。此外,还提供了PPT模板和词语库的下载信息,以及萌神拼音体字体文件,方便用户自行制作和使用。

这篇教程为希望在小红书上通过教授外国人中文词语来接商单的用户,提供了一套完整的自动化解决方案,从词语和解释的生成,到图片的批量制作,再到工具和资源的获取,都进行了详细讲解,具有很高的实用价值。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。