跳到主要内容

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) }