使用 PptxGenJS 和 Python 解析,将结构化的 HTML/CSS 幻灯片内容转换为原生、可编辑的 PowerPoint(.pptx)演示文稿。
微信公众号不支持原生html,仅保留有限标签和内联样式;可用标签为,仅支持font-size、color等少数css属性,需手动清理编辑器导出的冗余代码并压缩style为单行。

微信公众号不支持直接写 HTML 代码发布,所谓“HTML 做排版”其实是用第三方编辑器(如秀米、135 编辑器)生成 HTML 片段,再粘贴进公众号后台的「图文消息编辑器」——但这个过程不是真运行 HTML,而是依赖编辑器预设的样式兼容层。
微信公众号后台根本不解析原生 <style></style> 和 <script></script>
你贴进去的任何 <style></style> 标签、CSS 类名、flex 布局、@media 查询,全被后台过滤或忽略。微信只保留极简内联样式(比如 <p style="font-size:16px;color:#333;"></p>),且仅支持有限属性(font-size、color、text-align、margin 等少数几个)。
- 别在 HTML 里写
.highlight { background: yellow; }—— 没用 - 别用
<div> 做容器布局 —— 微信会自动转成 <code><p></p>或丢弃 <table> 虽然能显示,但宽度自适应差,手机端容易横向溢出 <h3>真正能用的 HTML 标签只有这几个:<code><p></p>、<span></span>、<strong></strong>、<em></em>、<ul></ul>、<ol></ol>、<li>这些是微信后台允许保留并渲染的基础语义标签。其中:
-
<p></p>是段落主体,所有文字最终都会被包进<p></p>或转成<p></p> -
<span></span>是唯一能加内联样式的行内容器,比如<span style="color:#e74c3c;font-weight:bold;">重点</span> -
<ul></ul>/<ol></ol>可用,但不能嵌套,也不能改符号或序号格式(微信强制用默认圆点/数字) - 别用
<h1></h1>~<h6></h6>—— 全部被转成<p></p>,字号也不按标题逻辑走
用编辑器导出 HTML 时,必须手动清理冗余代码
秀米、135 等工具导出的 HTML 常含大量无用标签和内联样式(比如
data-*属性、font-family、line-height多重声明),这些不仅无效,还可能触发微信的样式截断机制(导致后半段排版错乱)。- 导出后打开 HTML 文件,删掉所有
class="xxx"、data-xxx="..."、font-family、line-height - 把
<div style="text-align:center">... 改成 <code><p style="text-align:center">...</p>(微信只认<p></p>的对齐) - 检查是否有未闭合的
<span></span>—— 一个漏掉就会让后续所有文字变色/加粗 - 手机预览时发现文字挤在一起?大概率是残留了
margin:0或padding,删掉
最常被忽略的一点:微信对
style属性里的空格和换行极其敏感。哪怕多一个空格、换一行,都可能导致整段样式失效。贴代码前务必压成单行,并确保引号闭合、分号结尾(虽然微信不严格校验,但保险起见)。-










