You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Ghostscript从PostScript文件生成无障碍PDF?求相关文档与示例

从PostScript生成无障碍PDF:Ghostscript pdfmark与/BDC实践

核心参考文档

Ghostscript自带的本地文档是最权威的实操参考:

  • gs/doc/PDFUA.htm:详细讲解PDF/UA规范在Ghostscript中的落地方法,包括结构树构建、标记内容的规则,以及如何通过pdfmark定义符合WCAG 2.0要求的无障碍属性。
  • gs/doc/pdfmark.htm:官方pdfmark命令手册,其中专门章节覆盖了/BDC(Begin Marked Content)、/EMC(End Marked Content)的用法,以及结构元素(StructElem)的属性定义细节。

实操示例

以下是几个关键场景的PostScript代码示例,可直接添加到你的PS文件中:

示例1:构建文档结构与标题标记

% 定义文档目录和结构树根
[ /_objdef {Catalog} /type /dict /OBJ pdfmark
[ {Catalog} /PageMode /UseOutlines /StructTreeRoot {StructTreeRoot} /PUT pdfmark
[ /_objdef {StructTreeRoot} /type /dict /OBJ pdfmark
[ {StructTreeRoot} /K [ {H1_1} ] /PUT pdfmark

% 定义一级标题结构元素
[ /_objdef {H1_1} /type /dict /OBJ pdfmark
[ {H1_1} /Type /StructElem /S /H1 /P {StructTreeRoot} /K 0 /PUT pdfmark

% 用BDC标记标题内容(关联到H1_1结构)
/H1_1 /BDC
(年度销售报告) show
/EMC

示例2:标记段落与图片替代文本

% 定义段落结构元素
[ /_objdef {P_1} /type /dict /OBJ pdfmark
[ {P_1} /Type /StructElem /S /P /P {StructTreeRoot} /K 0 /PUT pdfmark

% 标记正文段落
/P_1 /BDC
(本报告展示了2023年各区域的销售数据,其中华东区域贡献占比最高。) show
/EMC

% 定义图片结构并添加替代文本
[ /_objdef {SalesChart} /type /dict /OBJ pdfmark
[ {SalesChart} /Type /StructElem /S /Figure /P {StructTreeRoot} /Alt (2023年华东、华北、华南区域销售占比柱状图) /PUT pdfmark

% 标记图片内容
/SalesChart /BDC
% 此处替换为你的图片绘制PostScript代码
0 0 200 150 rectstroke
/EMC

示例3:列表结构标记

% 定义列表及列表项结构
[ /_objdef {List_1} /type /dict /OBJ pdfmark
[ {List_1} /Type /StructElem /S /L /P {StructTreeRoot} /K [ {LI_1} {LI_2} ] /PUT pdfmark

[ /_objdef {LI_1} /type /dict /OBJ pdfmark
[ {LI_1} /Type /StructElem /S /LI /P {List_1} /K 0 /PUT pdfmark

[ /_objdef {LI_2} /type /dict /OBJ pdfmark
[ {LI_2} /Type /StructElem /S /LI /P {List_1} /K 0 /PUT pdfmark

% 标记列表项内容
/LI_1 /BDC
(华东区域:45%) show
/EMC

/LI_2 /BDC
(华北区域:30%) show
/EMC

关键注意事项

  • 所有需要被无障碍识别的内容,必须用/BDC和/EMC包裹,且每个标记块要对应一个预定义的结构元素。
  • 结构元素的/S属性必须使用PDF/UA标准类型(如/H1-/H6、/P、/Figure、/L、/LI等),避免自定义类型导致屏幕阅读器无法识别。
  • 必须在Catalog字典中指定/StructTreeRoot,否则整个结构树不会被PDF阅读器解析。
  • 运行Ghostscript时需指定PDF/UA输出参数,例如:gs -dPDFA=2 -dPDFACompatibilityPolicy=1 -sDEVICE=pdfwrite -o output.pdf input.ps

内容的提问来源于stack exchange,提问作者srikrishnan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 06:06:04