Pandoc 简介

Pandoc 是一款开源的通用文档格式转换工具,被称为“文档界的瑞士军刀”。它可以在多种标记语言和文档格式之间进行高质量转换,广泛应用于技术写作、学术论文、教学资料和自动化文档生成等场景。

Pandoc 以 Markdown 作为核心中间格式,通过统一的抽象文档模型(AST),实现不同文档格式之间的相互转换,在保证结构清晰的同时,最大限度保留文档语义。

主要功能

Pandoc 支持将文档在以下格式之间相互转换:

输入格式(部分)

  • Markdown(CommonMark / GitHub Flavored Markdown)
  • HTML
  • LaTeX
  • Word(docx)
  • reStructuredText
  • EPUB

输出格式(部分)

  • Word(docx)
  • PDF(通过 LaTeX / wkhtmltopdf)
  • HTML / HTML5
  • LaTeX
  • EPUB
  • PPTX(PowerPoint)

核心特点

多格式互转能力强

Pandoc 可以实现 Markdown → Word / PDF / HTML / PPT 等多种格式的一次性生成,适合“一次编写,多处发布”的文档工作流。

面向结构而非排版

Pandoc 更关注文档的结构与语义(标题、段落、列表、表格等),而非手工排版,使生成的文档更规范、可维护性更高。

高度可定制

  • 支持 reference-docx 控制 Word 样式
  • 支持 Lua Filter 对内容进行深度定制
  • 支持模板系统(HTML / LaTeX)

适合自动化与程序集成

Pandoc 提供命令行工具,易于与:

  • PHP / Python / Java / Shell
  • CI/CD
  • AI 内容生成系统

进行集成,常用于自动生成报告、批改文档、教学材料等系统。

典型应用场景

  • Markdown 文档转换为 Word、PDF 交付给非技术人员
  • 教学资料、作文批改报告自动生成
  • 技术文档、项目说明书统一输出格式
  • 学术论文多格式发布
  • AI 生成内容的最终文档化输出

使用优势总结

项目说明
开源免费社区成熟,跨平台
格式支持广覆盖主流文档格式
结构化输出便于长期维护
易于集成适合系统级自动化

安装使用

安装pandoc

Linux 用户可以通过包管理器安装:

sudo yum install pandoc
sudo dnf install pandoc

macOS 用户可以通过 Homebrew 安装:

brew install pandoc

导出模板

pandoc --print-default-data-file reference.docx > template.docx

使用模板转换文档

pandoc 源文件.md --reference-doc template.docx -o 目标文件.docx

1. 简介

Ghostscript(GS) 是一款功能强大的 PostScript(PS)和 PDF 处理工具,支持 PDF 转换、压缩、合并、拆分、渲染等操作。
它同时提供命令行工具与开发库,适用于 Linux、Windows、macOS。

Ghostscript 常用于:

  • PDF 压缩(减小体积)
  • PDF 转换(如 PDF → 图片 / PS / EPS)
  • PDF 合并与分割
  • 修复损坏的 PDF
  • 渲染 PDF 页面为图片(png/jpg/tiff)
  • 配合 CUPS 实现打印任务处理

2. 安装 Ghostscript

macOS

brew install ghostscript

Ubuntu / Debian

sudo apt update
sudo apt install ghostscript

CentOS / RHEL

sudo yum install ghostscript

Windows

从官网下载安装包:

https://ghostscript.com/releases/

3. 基本命令格式

Ghostscript 主命令:

gs [选项...] 文件

常用选项结构:

gs -sDEVICE=xxx -dNOPAUSE -dBATCH -dQUIET -sOutputFile=输出路径 输入文件

说明:

参数作用
-sDEVICE指定输出类型(pdfwrite、png16m 等)
-sOutputFile输出路径
-dNOPAUSE处理时不中断
-dBATCH处理完自动退出
-dQUIET静默模式

4. 常用设备(DEVICE)列表

类型DEVICE说明
PDFpdfwrite生成/压缩 PDF
PNGpng16m24-bit 真彩色 PNG
JPGjpegRGB jpg
TIFFtiff24nc24-bit tiff
PS/EPSps2write、eps2write生成 PostScript/EPS
其他bmp16mWindows 位图

5. PDF 压缩(最常用)

Ghostscript 提供了不同级别 PDF 压缩预设:

级别效果参数
低质量(屏幕)最小体积/screen
中质量(电子书)适中/ebook
标准最佳平衡/printer
高质量体积最大/prepress

5.1 压缩 PDF 示例

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 \
   -dPDFSETTINGS=/screen \
   -dNOPAUSE -dQUIET -dBATCH \
   -sOutputFile=output.pdf input.pdf

常用模式:

-dPDFSETTINGS=/screen     # 低质量
-dPDFSETTINGS=/ebook      # 中质量
-dPDFSETTINGS=/printer    # 高品质打印
-dPDFSETTINGS=/prepress   # 出版级别

6. PDF 合并

Ghostscript 可以直接合并多个 PDF:

gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite \
   -sOutputFile=merged.pdf file1.pdf file2.pdf file3.pdf

7. PDF 分割(按页面范围)

导出 1–5 页:

gs -sDEVICE=pdfwrite -dNOPAUSE -dBATCH \
   -dFirstPage=1 -dLastPage=5 \
   -sOutputFile=part.pdf input.pdf

8. PDF → 图片导出

8.1 导出为 PNG

gs -sDEVICE=png16m -r300 \
   -o page-%03d.png input.pdf
  • -r300 指定分辨率(300DPI)
  • %03d 自动生成编号 001、002...

8.2 导出为 JPG

gs -sDEVICE=jpeg -r200 \
   -o page-%03d.jpg input.pdf

9. 图片 → PDF

gs -sDEVICE=pdfwrite -dNOPAUSE -dBATCH \
   -sOutputFile=output.pdf image1.jpg image2.jpg

10. 修复损坏 PDF

Ghostscript 可以修复损坏或下载不完整的 PDF:

gs -sDEVICE=pdfwrite -dNOPAUSE -dBATCH \
   -sOutputFile=fixed.pdf broken.pdf

11. 删除 PDF 安全限制

gs -sDEVICE=pdfwrite -dNOPAUSE -dBATCH \
   -sOutputFile=unlocked.pdf locked.pdf

12. PDF 转 PS / EPS

PDF → PS

ps2ps input.pdf output.ps

等价于:

gs -sDEVICE=ps2write -sOutputFile=output.ps input.pdf

PDF → EPS

gs -sDEVICE=eps2write -o output.eps input.pdf

13. 调整 PDF 分辨率(Render)

渲染 PDF 时压缩图片,可以显著减小体积:

gs -sDEVICE=pdfwrite -dDownsampleColorImages=true \
   -dColorImageResolution=120 \
   -o out.pdf input.pdf

14. 常用批处理脚本

批量压缩 PDF(shell)

for f in *.pdf; do
  gs -sDEVICE=pdfwrite \
     -dPDFSETTINGS=/screen \
     -dNOPAUSE -dBATCH \
     -sOutputFile=compressed-$f $f
done

15. 常见错误与解决

错误:Error: /undefinedfilename

原因:文件路径包含空格,需加引号:

gs ... -sOutputFile="out.pdf" "my file.pdf"

错误:Unable to open the initial device

原因:权限不够或输出文件路径不存在 → 手动确保目录存在。

16. 官方文档与资源

在CENTOS 8上执行 dnf 命令时,出现了如下错误:

# dnf --help
error: rpmdb: BDB0113 Thread/process 472301/140429384558464 failed: BDB1507 Thread died in Berkeley DB library
error: db5 error(-30973) from dbenv->failchk: BDB0087 DB_RUNRECOVERY: Fatal error, run database recovery
error: cannot open Packages index using db5 -  (-30973)
error: cannot open Packages database in /var/lib/rpm
Error: Error: rpmdb open failed

典型的 rpm 数据库(rpmdb)损坏问题,通常是由于系统崩溃、电源故障或其他未预期的事件导致的。

解决方案

备份 rpm 数据库

cd /var/lib
cp -a rpm rpm.bak.$(date +%F)

删除锁文件

删除 __db.001、__db.002、__db.003 ... 锁文件

rm -f /var/lib/rpm/__db*

重建 rpm 数据库

rpm --rebuilddb

等待完成(可能 1~2 分钟)

清理 dnf 缓存

dnf clean all

验证是否恢复

rpm -qa | head

在人工智能和机器学习领域,本地部署大型模型变得越来越普遍。本文将指导您如何在本地环境中安装和运行 DeepSeek 大模型,特别是 deepseek-r1:8b 版本。

  1. 安装 Ollama
    首先,您需要安装 Ollama,这是一个用于管理和运行大型模型的工具。您可以通过访问 Ollama 官方网站 获取安装包和详细的安装指南。根据您的操作系统(Windows、macOS 或 Linux),选择相应的安装包并按照指示完成安装。
  2. 下载并运行 DeepSeek 大模型
    安装完成后,您可以使用 Ollama 来下载和运行 DeepSeek 大模型。打开终端或命令提示符,输入以下命令:
ollama run deepseek-r1:8b
  1. 使用模型
    在模型运行后,您可以开始与模型进行交互。输入您的问题或指令,模型会根据其训练数据生成响应。例如,您可以输入一段文本,模型会尝试完成或回答您的问题。
  2. 退出会话
    当您完成与模型的交互后,可以通过输入以下命令来退出会话:
/bye to exit
  1. 进一步探索
    DeepSeek 大模型具有广泛的应用场景,包括自然语言处理、文本生成、对话系统等。您可以根据自己的需求,进一步探索和调整模型的参数,以获得更好的性能和结果。

报错:

Access to XMLHttpRequest at XXXXX from origin XXXXXXX has been blocked
by CORS policy: The request client is not a secure context and the
resource is in more-private address space XXXX.

解决办法:

chrome://flags/#block-insecure-private-network-requests

设置为 Disabled