利用DeepSeek辅助把幻灯片markdown文件转换成pdf
1.在DeepSeek对话框上传markdown文件并提示编写python程序读入附件格式的md文件用适当的库生成pdf格式幻灯片只要一个代码不做别的它的输出:以下Python程序可以读取您提供的Markdown格式课件并使用适当的库生成PDF格式的幻灯片importreimportmarkdownfromweasyprintimportHTMLimportosdefmd_to_pdf_slides(md_file_path,output_pdf_path): 将Markdown格式的课件转换为PDF幻灯片 # 读取Markdown文件withopen(md_file_path,r,encodingutf-8)asf:md_contentf.read()# 预处理将Markdown标题转换为幻灯片分隔标记# 检测一级标题# 开头作为新幻灯片的开始slides_content[]current_slide[]linesmd_content.split(\n)forlineinlines:ifline.startswith(# )orline.startswith(#)andline.startswith(##):# 如果是标题行保存当前幻灯片并开始新幻灯片ifcurrent_slide:slides_content.append(\n.join(current_slide))current_slide[]current_slide.append(line)elifline.startswith(---):# 显式的幻灯片分隔符ifcurrent_slide:slides_content.append(\n.join(current_slide))current_slide[]else:current_slide.append(line)# 添加最后一张幻灯片ifcurrent_slide:slides_content.append(\n.join(current_slide))# 生成HTML幻灯片样式html_template !DOCTYPE html html head meta charsetUTF-8 title计算机常识科普课件/title style body {{ margin: 0; padding: 0; font-family: Microsoft YaHei, 宋体, Arial, sans-serif; background-color: #f5f5f5; }} .slide-container {{ width: 100%; max-width: 1200px; margin: 0 auto; }} .slide {{ page-break-after: always; width: 100%; min-height: 100vh; padding: 40px 60px; box-sizing: border-box; background-color: white; box-shadow: 0 4px 8px rgba(0,0,0,0.1); margin-bottom: 20px; position: relative; border-radius: 8px; }} h1 {{ color: #FFA500; font-size: 48px; border-bottom: 3px solid #FFA500; padding-bottom: 15px; margin-top: 20px; }} h2 {{ color: #FF8C00; font-size: 36px; margin-top: 30px; }} h3 {{ color: #FF6346; font-size: 28px; }} p {{ font-size: 24px; line-height: 1.6; color: #333333; margin: 20px 0; }} table {{ width: 100%; border-collapse: collapse; margin: 25px 0; font-size: 22px; }} th {{ background-color: #FFA500; color: white; font-weight: bold; padding: 12px; text-align: left; border: 1px solid #ddd; }} td {{ padding: 12px; border: 1px solid #ddd; background-color: #f9f9f9; }} tr:hover td {{ background-color: #f1f1f1; }} blockquote {{ background-color: #e6f3ff; border-left: 8px solid #FFA500; padding: 15px 25px; margin: 20px 0; font-size: 24px; border-radius: 0 8px 8px 0; }} ul, ol {{ font-size: 24px; line-height: 1.6; padding-left: 40px; }} li {{ margin: 10px 0; }} hr {{ border: none; border-top: 3px dashed #FFA500; margin: 30px 0; }} .emoji {{ font-size: 28px; }} strong {{ color: #FF4500; }} em {{ color: #2E8B57; font-style: italic; }} .slide-number {{ position: absolute; bottom: 20px; right: 30px; font-size: 18px; color: #999; }} /* 互动提问框样式 */ p:contains(互动提问) {{ background-color: #FFF3E0; padding: 15px; border-radius: 10px; border-left: 5px solid #FFA500; }} /style /head body div classslide-container # 转换每个幻灯片内容为HTMLslide_counter1forslide_mdinslides_content:# 过滤掉空幻灯片ifslide_md.strip():# 将Markdown转换为HTMLhtml_contentmarkdown.markdown(slide_md,extensions[extra,tables,nl2br])# 添加特殊样式标记html_contenthtml_content.replace(互动提问,span stylebackground-color: #FFF3E0; padding: 5px 10px; border-radius: 5px; 互动提问/span)# 包装为幻灯片slide_htmlf div classslide{html_content}div classslide-number{slide_counter}/div /div html_templateslide_html slide_counter1html_template /div /body /html # 保存临时HTML文件temp_htmltemp_slides.htmlwithopen(temp_html,w,encodingutf-8)asf:f.write(html_template)# 使用WeasyPrint生成PDFtry:HTML(temp_html).write_pdf(output_pdf_path)print(f✅ PDF幻灯片已成功生成{output_pdf_path})print(f 共生成{slide_counter-1}页幻灯片)exceptExceptionase:print(f❌ 生成PDF时出错{e})finally:# 清理临时文件ifos.path.exists(temp_html):os.remove(temp_html)# 主程序if__name____main__:# 设置文件路径input_mdcomputer_common_knowledge_课件.md# 输入Markdown文件output_pdf计算机常识科普课件.pdf# 输出PDF文件# 检查输入文件是否存在ifnotos.path.exists(input_md):print(f❌ 错误找不到文件{input_md})print(请确保Markdown文件在当前目录下或修改文件路径)else:# 转换文件md_to_pdf_slides(input_md,output_pdf)print(\n 提示如果PDF生成失败请确保已安装必要的库)print(pip install markdown weasyprint)使用方法安装依赖库pipinstallmarkdown weasyprint运行程序python md_to_pdf_slides.py程序功能说明自动分页根据Markdown的一级标题#开头自动分割幻灯片保留格式完整保留Markdown的表格、列表、引用等格式美观样式标题使用亮黄色/橙色正文为浅灰色关键词和重点内容突出显示互动提问框特殊样式页码标注每页幻灯片底部显示页码响应式设计适应不同纸张大小生成的PDF将完美呈现您提供的课件内容包括表格、互动提问、思考题等所有元素。2.安装依赖库pip install markdown weasyprint Looking in indexes: https://mirrors.aliyun.com/pypi/simple Successfully installed Pyphen-0.17.2 brotli-1.2.0 cffi-2.0.0 cssselect2-0.9.0 fonttools-4.61.1 markdown-3.10.2 pycparser-3.0 pydyf-0.12.1 tinycss2-1.5.1 tinyhtml5-2.0.0 weasyprint-68.1 webencodings-0.5.1 zopfli-0.4.13.执行脚本报错了。C:\dpython md2pdf.py ----- WeasyPrint could not import some external libraries. Please carefully follow the installation steps before reporting an issue: https://doc.courtbouillon.org/weasyprint/stable/first_steps.html#installation https://doc.courtbouillon.org/weasyprint/stable/first_steps.html#troubleshooting ----- Traceback (most recent call last): File C:\d\md2pdf.py, line 3, in module from weasyprint import HTML File C:\Users\lt\AppData\Local\Programs\Python\Python313\Lib\site-packages\weasyprint\__init__.py, line 372, in module from .css import preprocess_stylesheet # noqa: I001, E402 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File C:\Users\lt\AppData\Local\Programs\Python\Python313\Lib\site-packages\weasyprint\css\__init__.py, line 29, in module from ..text.fonts import FontConfiguration File C:\Users\lt\AppData\Local\Programs\Python\Python313\Lib\site-packages\weasyprint\text\fonts.py, line 17, in module from .constants import ( # isort:skip CAPS_KEYS, EAST_ASIAN_KEYS, FONTCONFIG_STRETCH, FONTCONFIG_STYLE, FONTCONFIG_WEIGHT, LIGATURE_KEYS, NUMERIC_KEYS, PANGO_STRETCH, PANGO_STYLE, PANGO_VARIANT) File C:\Users\lt\AppData\Local\Programs\Python\Python313\Lib\site-packages\weasyprint\text\constants.py, line 5, in module from .ffi import pango File C:\Users\lt\AppData\Local\Programs\Python\Python313\Lib\site-packages\weasyprint\text\ffi.py, line 476, in module gobject _dlopen( ffi, libgobject-2.0-0, gobject-2.0-0, gobject-2.0, libgobject-2.0.so.0, libgobject-2.0.0.dylib, libgobject-2.0-0.dll) File C:\Users\lt\AppData\Local\Programs\Python\Python313\Lib\site-packages\weasyprint\text\ffi.py, line 464, in _dlopen return ffi.dlopen(names[0], flags) # pragma: no cover ~~~~~~~~~~^^^^^^^^^^^^^^^^^ File C:\Users\lt\AppData\Local\Programs\Python\Python313\Lib\site-packages\cffi\api.py, line 150, in dlopen lib, function_cache _make_ffi_library(self, name, flags) ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^ File C:\Users\lt\AppData\Local\Programs\Python\Python313\Lib\site-packages\cffi\api.py, line 834, in _make_ffi_library backendlib _load_backend_lib(backend, libname, flags) File C:\Users\lt\AppData\Local\Programs\Python\Python313\Lib\site-packages\cffi\api.py, line 829, in _load_backend_lib raise OSError(msg) OSError: cannot load library libgobject-2.0-0: error 0x7e. Additionally, ctypes.util.find_library() did not manage to locate a library called libgobject-2.0-0安装msys2和mingw64参考提示网页https://doc.courtbouillon.org/weasyprint/stable/first_steps.html#installation的说明在 https://www.msys2.org/#installation 下载了 https://github.com/msys2/msys2-installer/releases/download/2025-12-13/msys2-x86_64-20251213.exe 安装并运行。在msys2命令行中输入pacman -S mingw-w64-x86_64-pango自动安装各种库。回到windows cmd控制台输入如下命令行。C:\dset WEASYPRINT_DLL_DIRECTORIESC:\d\msys64\mingw64\bin C:\dpython md2pdf.py ✅ PDF幻灯片已成功生成计算机常识科普课件.pdf 共生成 13 页幻灯片注意必须安装msys2我的机器原来就安装过mingw64但它不包括libgobject-2.0-0.dll文件将WEASYPRINT_DLL_DIRECTORIES设成它的路径还是报同样的错。

相关新闻

智能客服交互的AI辅助开发实战:从架构设计到性能优化

智能客服交互的AI辅助开发实战:从架构设计到性能优化

最近在做一个智能客服系统的升级项目,客户那边一到促销日,系统就卡得不行,用户投诉“机器人太笨,反应慢”。这让我下定决心,得用更现代的AI技术来重构整个交互核心。今天这篇笔记,就来聊聊我们是怎么用AI辅…

2026/7/7 23:58:29 阅读更多 →
ChatTTS语音包实战:从零构建高可用语音合成服务

ChatTTS语音包实战:从零构建高可用语音合成服务

最近在做一个需要实时语音合成的项目,ChatTTS以其出色的自然度和情感控制能力进入了我的视野。但在实际集成过程中,我发现直接调用原版模型会遇到延迟高、并发弱、资源消耗大等一系列“拦路虎”。经过一番折腾,我总结出了一套从零构建高可用语…

2026/5/17 6:13:12 阅读更多 →
AI 辅助生成毕设任务书:从模板解析到结构化输出的工程实践

AI 辅助生成毕设任务书:从模板解析到结构化输出的工程实践

作为一名计算机专业的学生,我最近在帮学弟学妹们看毕设任务书时,发现了一个普遍现象:大家花在格式调整、内容填充和反复修改上的时间,甚至超过了思考技术方案本身。一份标准的任务书,通常包含课题名称、研究背景、目标…

2026/7/7 10:32:50 阅读更多 →

最新新闻

WSL 1 vs WSL 2 性能对比:文件 I/O、网络与启动速度的 3 项实测

WSL 1 vs WSL 2 性能对比:文件 I/O、网络与启动速度的 3 项实测

WSL 1 vs WSL 2 深度性能评测:架构差异如何影响开发效率 在Windows平台上进行Linux开发的环境选择,往往决定了开发者的工作效率和体验流畅度。作为微软推出的两大子系统版本,WSL 1和WSL 2采用了截然不同的架构设计,这直接影响了文…

2026/7/7 23:54:46 阅读更多 →
CentOS 8 yum/dnf 报错排查:3步定位 Failed to download metadata 根因

CentOS 8 yum/dnf 报错排查:3步定位 Failed to download metadata 根因

CentOS 8 yum/dnf 报错排查:3步定位 Failed to download metadata 根因当你在CentOS 8或RHEL系发行版上执行yum或dnf命令时,遇到"Failed to download metadata for repo"这类错误信息,往往意味着系统无法获取软件仓库的元数据。这个…

2026/7/7 23:52:46 阅读更多 →
Ubuntu 22.04 部署 RabbitMQ 4.3:APT 源安装与 5 个关键安全配置

Ubuntu 22.04 部署 RabbitMQ 4.3:APT 源安装与 5 个关键安全配置

Ubuntu 22.04 部署 RabbitMQ 4.3:APT 源安装与 5 个关键安全配置RabbitMQ 作为企业级消息队列中间件,在分布式系统解耦、异步通信和流量削峰等场景中扮演着关键角色。本文将详细介绍在 Ubuntu 22.04 生产环境中通过官方 APT 源部署 RabbitMQ 4.3 的完整流…

2026/7/7 23:52:46 阅读更多 →
Go语言SCP服务安全实践:防御SSH会话固定攻击与安全会话管理

Go语言SCP服务安全实践:防御SSH会话固定攻击与安全会话管理

1. 项目概述与核心挑战最近在重构一个用Go语言写的内部文件传输服务,这个服务大量使用了SCP协议进行服务器间的文件同步。在安全审计的时候,我们重点关注了会话管理部分,特别是如何防御会话固定攻击。这玩意儿在Web开发里是老生常谈了&#x…

2026/7/7 23:52:46 阅读更多 →
计算机毕设 MySQL 8.0 数据库设计避坑:3个常见范式错误与性能优化方案

计算机毕设 MySQL 8.0 数据库设计避坑:3个常见范式错误与性能优化方案

MySQL 8.0数据库设计避坑指南:3个常见范式错误与性能优化实战 在计算机专业毕业设计中,数据库设计往往是决定系统质量的关键环节。许多同学虽然掌握了SQL基础语法,但在实际设计时仍会陷入各种陷阱——要么过度规范化导致查询性能低下&#xf…

2026/7/7 23:48:45 阅读更多 →
Chrome 缓存路径修改 3 种方案对比:mklink、启动参数与注册表,性能影响实测

Chrome 缓存路径修改 3 种方案对比:mklink、启动参数与注册表,性能影响实测

Chrome缓存路径修改三大方案深度评测:从符号链接到注册表调优1. 为什么需要修改Chrome缓存路径?对于长期使用Chrome浏览器的中高级用户来说,系统盘空间告急是个常见痛点。Chrome默认将所有缓存文件存储在C:\Users\[用户名]\AppData\Local\Goo…

2026/7/7 23:48:44 阅读更多 →

日新闻

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

图片浏览是移动应用中最高频的场景之一。从社交应用的照片流到电商平台的商品图集,从旅游应用的景点相册到摄影作品展示——用户对图片浏览的体验要求不断提高:流畅的切换动画、直观的缩略图导航、便捷的收藏操作、自动播放模式。HarmonyOS NEXT ArkUI 虽…

2026/7/7 0:05:16 阅读更多 →
24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V稳压芯片完整选型指南 PW8600 PW75XX PW2815 PW2312B LDODC/DC全方案 一、24V稳压方案概述 24V直流电源在工业自动化、门禁系统、电梯控制、汽车电子、LED驱动、监控设备等场景中应用极广,是最常见的中压直流母线电压。要将24V母线稳定降压至下游MCU、传感器…

2026/7/7 0:05:16 阅读更多 →
RAG+知识图谱混合检索与Graph RAG核心对比

RAG+知识图谱混合检索与Graph RAG核心对比

做企业RAG落地的团队,往往容易卡在一容易踩坑的选型难题: 当需求单纯靠向量RAG搞不定、单纯靠知识图谱也搞不定,必须同时依赖「文本语义理解 实体关系推理」时,到底是做「向量图谱混合检索」就够了,还是必须上「Grap…

2026/7/7 0:07:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/7 14:24:45 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/7 12:34:47 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/7 15:59:06 阅读更多 →

月新闻