使用CMake脚本通过pandoc对docx文件转换为html遇到的问题

借助pandoc将Word文档转换成网页 1、简介 ​ 想要将一些已经存在的word知识文档转换成html格式,Pandoc完全可以实现此功能。 主页:https://www.pandoc.org/ 示例:https://www.pandoc.org/demos.html **下载:**https://github.com/jgm/pandoc/releases/ ​ https://github.com/jgm/pandoc/releases/download/2.13/pandoc-2.13-windows 阅读详情

(这篇不涉及pandoc用法,默认你会,不会就去比站大学找个视频看两眼)

  • 当时是为了批量转换程序帮助文档的格式,将docx转为html,开始是通过bat脚本调用pandoc的ps1脚本文件进行转换,代码如下:
    .bat文件:
    在这里插入图片描述
    .ps1文件:
    在这里插入图片描述
    因为docx文件中有表格,为了转换后表格显示正常,添加了styles.css的层叠样式,如下:
    .css文件:
    在这里插入图片描述
    以上文件内容都可让AI生成(本人不懂前端,所以css这些都是AI的)。
    =================那么问题来了:
  • 后面要求用CMake进行实现,让AI给出了代码,下面只给出出问题的代码:
execute_process(
    COMMAND ${PANDOC_EXECUTABLE}
    "${CMAKE_CURRENT_SOURCE_DIR}/${DOCX_FILE}"
    -o "${HTML_FILE}"
    --embed-resources
    --standalone
    --css="${STYLESHEET}"
    RESULT_VARIABLE RESULT
)

此时styles.css被CMake定义为${STYLESHEET},以为会跟之前脚本一样正常调用执行,结果运行正常,但是生成的html文件中表格不见了。中间调整了很多遍行不通,后面实在没办法了,想着不要脚本了,试试将样式直接写进去,如下:

###先说明这部分代码运行结果有问题
execute_process(
    COMMAND ${PANDOC_EXECUTABLE} 
        "${CMAKE_CURRENT_SOURCE_DIR}/${DOCX_FILE}" 
        -o "${HTML_FILE}" 
        --from=docx
        --to=html5
        --embed-resources 
        --standalone 
        --metadata pagetitle="Generated Document"
        --metadata css="<style>
table {
    border-collapse: collapse;
    width: 100%;
}
th, td {
    border: 1px solid #ddd;
    padding: 8px;
}
th {
    background-color: #f2f2f2;
    text-align: left;
}
</style>"
    RESULT_VARIABLE RESULT
)

还是没有表格,失败!说这个就是希望懂这个或者有这个想法的大佬帮忙看看为啥会失败,下面看不失败的:

#这个成功了
    execute_process(
    COMMAND ${PANDOC_EXECUTABLE} 
        "${CMAKE_CURRENT_SOURCE_DIR}/${DOCX_FILE}" 
        -o "${HTML_FILE}" 
        --embed-resources 
        --standalone 
        --template "${CMAKE_CURRENT_SOURCE_DIR}/custom_template.html"
    RESULT_VARIABLE RESULT
)

其中custom_template.html为当前脚本同路径下的一个html模版文件,如下:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>$pagetitle$</title>
    <style>
    table {
        border-collapse: collapse;
        width: 100%;
    }
    th, td {
        border: 1px solid #ddd;
        padding: 8px;
    }
    th {
        background-color: #f2f2f2;
        text-align: left;
    }
    </style>
</head>
<body>
$body$
</body>
</html>

=====================我还是想摆脱额外的文件调用,方便代码移植,即有了下面的临时文件的方法,即用的时候生成模版文件,用完就删,如下:

# 定义模板内容
set(CUSTOM_TEMPLATE_CONTENT "<!DOCTYPE html>
<html>
<head>
    <meta charset=\"utf-8\">
    <title>$pagetitle$</title>
    <style>
    table {
        border-collapse: collapse;
        width: 100%;
    }
    th, td {
        border: 1px solid #ddd;
        padding: 8px;
    }
    th {
        background-color: #f2f2f2;
        text-align: left;
    }
    </style>
</head>
<body>
$body$
</body>
</html>")

# 将模板内容写入临时文件
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/temp_template.html" "${CUSTOM_TEMPLATE_CONTENT}")

# 执行 Pandoc 命令
execute_process(
    COMMAND ${PANDOC_EXECUTABLE} 
        "${CMAKE_CURRENT_SOURCE_DIR}/${DOCX_FILE}" 
        -o "${HTML_FILE}" 
        --from=docx
        --to=html5
        --embed-resources 
        --standalone 
        --template "${CMAKE_CURRENT_BINARY_DIR}/temp_template.html"
    RESULT_VARIABLE RESULT
)

# 删除临时模板文件(可选)
file(REMOVE "${CMAKE_CURRENT_BINARY_DIR}/temp_template.html")
Pandoc-2.2.1文档转换工具:Windows版安装包 Pandoc是一个通用的文档转换器,支持多种文件格式之间的转换。由于其高度的可定制性,它成为了技术写作和学术出版领域中的一个强大工具。它由John MacFarlane创建,是一个命令行程序,能够在各种操作系统上运行。Markdown是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成有效的XHTML(或者HTML)文档。Markdown的基本结构包括标题、段落、链接、图片、列表、引用、代码块等。例如,使用来创建标题,或来创建无序列表,使用来创建引用,使用。 阅读详情

相关推荐

pandoc文档转换利器

通用文档转换器Pandoc ,可以把markdown、 reStructuredText、 textile、 HTML、或者LaTeX转换成: HTML格式: XHTML, HTML5, 以及HTML幻灯片Slidy, S5,或者DZSlides. 文字处理软件格式: Microsoft Word docx, OpenOffice/LibreOffice ODT, OpenDocument XML 电子书: EPUB 文档格式: DocBook, GNU TexInfo, Groff man pages TeX格式: LaTeX, ConTeXt, LaTeX Beamer slides PDF via LaTeX 轻量级标记语言格式: Markdown, reStructuredText, AsciiDoc, MediaWiki markup, Emacs Org-Mode, Textile 示例 pandoc -s –mathml -i -t dzslides SLIDES -o example14a.html pandoc -s –webtex -i -t slidy SLIDES -o example14b.html pandoc -s –webtex -t -t s5 SLIDES -o example14c.html Pandoc understands a number of useful markdown syntax extensions, including document metadata (title, author, date); footnotes; tables; definition lists; superscript and subscript; strikeout; enhanced ordered lists (start number and numbering style are significant); running example lists; delimited code blocks with syntax highlighting; smart quotes, dashes, and ellipses; markdown inside HTML blocks; and inline LaTeX. If strict markdown compatibility is desired, all of these extensions can be turned off. LaTeX math (and even macros) can be used in markdown documents. Eight different methods of rendering math in HTML are provided, including MathJax and translation to MathML. LaTeX math is rendered in docx using native Word equation objects.

pandoc把word转为html,借助pandoc将Word文档成网页

1、简介​ 想要将一些已经存在的word知识文档转换成html格式,Pandoc完全可以实现此功能。2、转换仅文本的word文件为html​ 现有一个word文档“cisco.docx”,将要将它转换成html格式。注:pandoc 不支持 doc格式,如果是 doc格式需要用 word将文件另存为 docx后再进行转换。​ 安装好pandoc后,打开命...

weixin_42635064的博客 1790

麒麟银河操作系统V10部署ffmpeg(也能用于Linux系统)

部署ffmpeg用来处理视频的各种操作,如编码解码,格式转换,剪辑,处理实时视频流,音频流,加滤镜等

zhouwenxing666的博客 9038

Word docx转html和markdown

Pypandoc使用pandoc来进行各种文本格式的转换。

小龙在线 1235

Quanto option期权公式推导(更新中)

Quanto期权不同于以标的股票或资产的计价货币支付最终收益的普通欧式期权,它以另一种货币以预先确定的汇率支付最后的收益。以股票B的计价货币来计价的quanto看涨期权的收益为F0×max⁡(Sa(T)−K,0)×Sb(T)F_0 \times \max(S_a(T)-K, 0) \times S_b(T)F0​×max(Sa​(T)−K,0)×Sb​(T) 其中SaS_aSa​以货币A计价,SbS_bSb​以货币B计价,F0F_0F0​是预先固定的汇率. 假设上述股票均遵循几何布朗运动,可以得到以下恒等式

qq_41782124的博客 3683

基于IC动态加权的机器学习多因子选股策略:从模型融合到实战回测

在量化投资领域,多因子选股模型通过挖掘市场数据中的有效信号来预测股票收益。其核心原理在于利用统计学与机器学习算法,从海量因子中识别出与未来收益具有稳定相关性的特征。这一技术的核心价值在于将主观投资决策转化为系统化、可重复的客观过程,从而在控制风险的前提下追求超额收益。其典型应用场景包括股票阿尔法策略构建、Smart Beta产品设计以及资产配置中的股票筛选环节。本文聚焦于如何通过信息系数(IC)这一关键指标,动态融合Ridge回归、MLP神经网络和随机森林等多个预测模型,构建一个能够自适应市场风格轮动的选股

weixin_34216614的博客 451

pandoc把word转为html,在pypandoc(pandoc)中将较大的HTML文件转换为docx时出现问题

背景:我正在尝试自动生成科学报告。我已经将数据写入了一个HTML文件,我想使用潘多克.exe(文件转换程序)转换为.docx Word文档。我有一个过程来处理一个较小的HTML文件,包括图像、表格等。那个文件是307KB。在当我试图转换一个更大的文件(约4.5MB)并嵌入多个图时,问题就开始了。{我一直在用这个来转换:import pypandocPANDOC_PATH = r"C:\Progra...

weixin_36482579的博客 1146

2023华为od机试C卷【启动多任务排序】C++ 实现

一个应用启动时,会有多个初始化任务需要执行,并且任务之间有依赖关系,例如A任务依赖B任务,那么必须在B任务执行完成之后,才能开始执行A任务。现在给出多条任务依赖关系的规则,请输入任务的顺序执行序列,规则采用贪婪策略,即一个任务如果没有依赖的任务,则立刻开始执行,如果同时有多个任务要执行,则根据任务名称字母顺序排序。

MISAYAONE的博客 887

Pandoc文档转换工具完全指南

Pandoc文档转换工具完全指南 【免费下载链接】pandoc Universal markup converter 项目地址: https://gitcode.com/gh_mirrors/pa/pandoc ...

gitblog_00564的博客 862

6.4 实战项目:基于Agent内核构建Code Review智能体

本文介绍了一个基于Agent内核构建的智能Code Review系统实战项目。系统采用多Agent协作架构,包含代码质量分析、安全漏洞识别、性能优化建议等核心功能模块。文章详细展示了系统架构设计,采用协调器Agent管理多个专业Agent协同工作,并提供了基础Agent框架和协调器Agent的TypeScript实现代码。项目结合了AI Agent核心原理和多Agent协作机制,实现了自动化的代码审查流程,能够生成详细的审查报告,帮助开发者提升代码质量和安全性。

yonggeit的博客 3109

YOLO11改进|卷积篇|引入多样化分支块DBB

YOLO11中添加多样化分支块DBB

A1983Z的博客 1445

VS Code Markdown编辑器指南:从写作预览到工程文档管理

Markdown作为轻量级标记语言,已广泛应用于技术写作、README维护与项目文档管理。VS Code内置的Markdown编辑器并非单一插件,而是集成语法高亮、解析器、预览面板和大纲视图的完整写作环境,通过Ctrl+Shift+V即可实时渲染。在实际工程中,掌握Markdown语法只是基础,更关键的是借助VS Code完成从内容编写、格式预览到HTML/PDF/Word导出的全流程,并统一管理代码与文档。本文从编辑器原理出发,讲解高频语法、分屏预览、Pandoc导出、Python代码调试以及Qt/C++

weixin_34166847的博客 706

什么是 SAPGUI 里的 Logon Group/Server

这意味着,不同的用户连接可以被分配到不同的应用服务器,以实现均衡的资源利用和降低某一服务器的负载压力。在这种配置下,欧洲的用户登录时选择“EUROPE_GROUP”,系统将自动选择一个位于欧洲的数据中心的服务器进行连接,这样不仅减少了网络延迟,还实现了服务器间的负载均衡。用户在 SAPGUI 中登录时,只需选择相应的 Logon Group(例如“FIN_GROUP”),系统就会自动将他们的连接请求分配到当前负载最小的应用服务器上,这种动态分配大大提升了系统的响应速度和稳定性。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1069

用VS Code搭建嵌入式文档工作台:集成PDF、Markdown、Mermaid与LaTeX

在嵌入式开发中,代码编写与文档查阅常常分离,导致上下文切换频繁、效率下降。IDE作为统一开发环境,不仅承担编译调试职责,也能通过扩展机制成为文档处理中枢。以VS Code为例,借助Markdown预览、PDF查看、图片显示、Mermaid图表渲染和LaTeX公式支持,开发者可以在同一工程窗口内完成源码阅读、手册查询、架构图绘制与公式编辑,减少工具切换带来的思维打断。这种模式适合单片机、嵌入式Linux及物联网项目,尤其适合需要频繁核对手册与维护设计文档的团队。从基础环境配置到扩展安装,从目录规范到排错验证,

weixin_30835649的博客 435

【人工智能】在 cc-switch 中配置 AnyRouter 接入 Claude Code 完整指南

本文介绍了在cc-switch工具中配置AnyRouter中转服务以接入Claude Code的详细步骤。主要内容包括:1) 准备API令牌和端点地址;2) 填写基础信息和模型参数;3) 保存配置并重启终端生效;4) 常见问题排查方法。重点强调了API地址格式、模型ID准确性以及配置写入的必要性,帮助用户顺利完成中转服务配置,实现Claude 4.5版本的正常使用。

奶爸的编程之路,也就一周冷个三天 3103

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

markdown文件(md格式)转为doc、html等格式工具-pandoc的使用

pandoc官网:http://www.pandoc.org,进入官网切到“installing”页面,自己根据根据操作系统位数下载合适的msi安装包下载即可。

taozi550185271的专栏 2070

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

pandoc如何使用

例如,使用命令pandoc test.md -o test.docx --reference-docx=reference.docx,转换后的docx文件将与参考文档reference.docx的样式相同。在命令行中输入pandoc后直接回车,可以在终端中输入文本内容,并使用Ctrl+D(在Windows上是Ctrl+Z后回车)结束输入,Pandoc会将输入的文本转换为HTML并显示在终端中。Pandoc是一个功能强大的文档转换工具,支持将多种文档格式(如docx、md、tex、html等)进行相互转换。

计算机辅助工程 2473

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

DOCX 转 HTML 对照表

以下是一个系统的 ‌。

kankansuhu的博客 1622

Mac使用pandoc 将docx文件转换成html文件 快速实现协议文件的转换

可能有一点让人很难受的就是 如果网站要更换整体的协议和政策时候,运营会给我们一个doc文档 或者docx文件 让我们转换成html然后放到网站中 这里就介绍一个比较好用的工具 mac安装 brew install pandoc 查看自己安装成功的话 brew -h 转换成html5 pandoc -s example.docx -t html5 -o example.html 最后发现转换成功了。然后就可以放到你的网站上了。 还是比较方便 当然这个工具不仅仅是能转换html md.txt 都

业余前端的职业经历 1224

pandoc把word转为html,利用 Pandoc 实现文档格式转换

应用场景我喜欢用 Markdown 写文档,但不是所有读者都愿意花时间学习它,所以我需要将 Markdown 转换为他们习惯接受的格式,比如 docx 或 html;偶尔需要做幻灯片演示,也可以用 Markdown 来写,然后转换为幻灯片(Slideshow)。Pandoc 的最基本的应用场景就是做这类转换。当然,Pandoc 能做的远远不止这些。实际上它是一个非常强大的文档格式转换工具,支持数十...

weixin_33324197的博客 1381

pandoc doc to html,Converting html to json with pandoc

I'm trying to take html and generate some json that keeps the same structure.I'm trying to use pandoc, as i've had some success in transforming things from format A to format B using pandoc before.I'm...

weixin_39845113的博客 172

完美解决doc、docx格式word转换为Html

http://blog.youkuaiyun.com/renzhehongyi/article/details/48767597

weixin_33915554的博客 4929

GPT Image 2 出的 UI 图如何转成 HTML 和可编辑 Figma

AI 生成的 UI 图,本身只是起点。用 Codex 或 Claude Code 把它变成 HTML,就有了能演示的页面;用 html.to.design 把 HTML 导回 Figma,就有了能沉淀的设计源文件;用 Codia 直接把图转成 Figma,则适合只要设计稿、追求速度的场景。三条链路互相补充,组合起来就形成了"图、代码、设计稿"之间的闭环。同时也要清楚它的边界:单张位图缺少精确数值,像素级还原目前还做不到稳定;图里的文字和图标需要人工把关。

JEECG官方博客 219

开源项目推荐:2027 高考志愿填报指北|开源单页 HTML 高报资料工具书

高考志愿填报信息量大、维度多,考生与家长往往面临资料零散、信息不对称、优质内容收费门槛高等问题。《2027 高考志愿填报指北》是雪人老师开源的高报笔记资料汇编,将 683 篇、280.5 万字的原创笔记整合为单页 HTML 电子书,覆盖专业、院校、城市、填报攻略四大板块。支持左侧折叠导航、快速跳转、浏览器原生 A4 打印,可在线阅读也可本地保存使用,采用 CC BY-NC 4.0 协议开源,非商业场景可自由传播改编,是高考志愿填报阶段实用的免费参考工具书。关键词:高考志愿填报;高报资料;开源电子书;

Admans的专栏 293

纯静态HTML项目文件打包成war包

纯静态HTML项目文件打包成war包

bjzhang75的博客 208

热榜上手|HyperFrames:写HTML出MP4

HeyGen 开源的 TypeScript 视频框架:把 HTML、CSS 动画直接渲染成确定性 MP4,专为 AI agent 批量出片设计,单周涨 5633 star。

mihuyang的博客 257
上一篇: C++个人错误编写01---delete完new分配的对象后,没有将其手动置为nullptr。
下一篇: wxWidgets踩坑录
Code_KY
博客等级 码龄5年 43粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值