跳到主要内容

pandoc

pandoc 库提供文档格式转换能力(基于 pandoc),目前主要支持把 Markdown 转换为 Word/docx,常用于把扫描报告、分析结果导出为可分享的文档。

典型使用场景:

  • Markdown 转 Word:pandoc.SimpleConvertMarkdownFileToDocx(md) 把 Markdown 转为 docx,pandoc.SimpleCoverMD2Word(ctx, in, out) 指定输入输出文件转换,带上下文版本支持取消。

与相邻库的关系:pandoc 是报告输出工具,常与 report(生成 Markdown/HTML 报告)、file(落盘)配合,把结果交付为 Word 文档。

共 3 个函数

函数索引​

函数参数返回值说明
pandoc.SimpleConvertMarkdownFileToDocxmd stringstring, error将 Markdown 文件转换为 docx 文件
pandoc.SimpleConvertMarkdownFileToDocxContextctx context.Context, md stringstring, error将 Markdown 文件转换为 docx 文件(带上下文)
pandoc.SimpleCoverMD2Wordctx context.Context, inputFile string, outputFile stringerror将 Markdown 文件转换为 Word(.docx) 文件(导出名为 pandoc.SimpleCoverMD2Word)

函数详情​

SimpleConvertMarkdownFileToDocx​

SimpleConvertMarkdownFileToDocx(md string) (string, error)

将 Markdown 文件转换为 docx 文件

依赖本地安装的 pandoc 工具,使用默认上下文,转换结果输出到 Yakit 临时目录

参数

参数名类型说明
mdstring输入的 Markdown 文件路径

返回值

序号类型说明
r1string生成的 docx 文件路径
r2error错误信息

示例

// 示意性示例,需要本地安装 pandoc 并提供真实 markdown 文件
outputFile, err = pandoc.SimpleConvertMarkdownFileToDocx("filename.md")
if err != nil { die(err) }
println(outputFile)

SimpleConvertMarkdownFileToDocxContext​

SimpleConvertMarkdownFileToDocxContext(ctx context.Context, md string) (string, error)

将 Markdown 文件转换为 docx 文件(带上下文)

依赖本地安装的 pandoc 工具,转换结果输出到 Yakit 临时目录

参数

参数名类型说明
ctxcontext.Context上下文对象,用于控制取消与超时
mdstring输入的 Markdown 文件路径

返回值

序号类型说明
r1string生成的 docx 文件路径
r2error错误信息

示例

// 示意性示例,需要本地安装 pandoc 并提供真实 markdown 文件
ctx = context.Background()
result, err = pandoc.SimpleConvertMarkdownFileToDocxContext(ctx, "filename.md")
if err != nil { die(err) }
println(result)

SimpleCoverMD2Word​

SimpleCoverMD2Word(ctx context.Context, inputFile string, outputFile string) error

将 Markdown 文件转换为 Word(.docx) 文件(导出名为 pandoc.SimpleCoverMD2Word)

依赖底层 pandoc 程序完成转换

Deprecated: 这是 alpha 阶段接口,建议改用 pandoc.SimpleConvertMarkdownFileToDocxContext 或

pandoc.SimpleConvertMarkdownFileToDocx 以获得更好的体验

参数

参数名类型说明
ctxcontext.Context上下文,用于控制转换过程的取消与超时
inputFilestring输入的 Markdown 文件路径
outputFilestring输出的 Word(.docx) 文件路径

返回值

序号类型说明
r1error错误信息(pandoc 不可用或转换失败时返回)

示例

// 该示例依赖底层 pandoc 程序,仅作用法示意
dir = os.TempDir()
md = file.Join(dir, "demo.md")
out = file.Join(dir, "demo.docx")
file.Save(md, "# Title\n\nhello pandoc")~
err = pandoc.SimpleCoverMD2Word(context.Background(), md, out)
if err != nil { log.error("convert failed: %v", err) }