Skip to content

ParseResult

核对入口:mineru/parser/base.py、mineru/integrations/docvortex.py。

ParseResult 是本地解析和 MinerUApiParser 共用的结果对象。唯一 dataclass 字段是 middle_json: MiddleJson;pages 是返回 middle_json.pages 的属性。 结果不持有 PDFium 对象,不包含 _pdf_doc、_image_cache 或 ModelJson,也没有 images() 方法。

读取与序列化

方法 当前行为
from_dict(d) 委托 MiddleJson.from_dict() 严格读取共享协议,再校验 MinerU 产品扩展
from_json(s) JSON 顶层必须是对象,再调用 from_dict()
to_dict(skip_defaults=True) 校验扩展并序列化;PDF block 的 image_base64 不进入独立结构 JSON
to_json() UTF-8 语义的 JSON 字符串,使用 to_dict()
export_pages() 返回页面树深拷贝,避免调用方修改原结果

协议身份是 schema="docvortex.middle"、schema_version="2.0"。 文件类型与生产者在 metadata;实际 tier/parse_mode 在 extensions["mineru"]。 不存在顶层 effort/file_suffix/parse_mode/mineru_version。 通用读取不转换旧协议;历史兼容仅在 Doclib 缓存边界。

渲染与保存

方法 参数与结果
markdown(...) add_markers=False、mode=None、asset_base_url=""、image_renderer=None;返回字符串
structured_content(asset_base_url="") 返回派生内容字典,不是 Middle JSON 协议
save(writer) 在文档副本上物化和校验素材,随后写出正文、结构和图片

markdown() 未传 mode 时,由 add_markers 选择 RenderMode.FULL 或 DEFAULT。 传入 mode 时以它为准。更多格式使用 mineru.render,见 输出参考。

from mineru.parser import ParseResult, parse
from mineru.parser.writer import FileBasedDataWriter

result = parse("report.html", tier="flash")
restored = ParseResult.from_json(result.to_json())
assert restored.to_dict() == result.to_dict()
result.save(FileBasedDataWriter("output"))

save() 写入 markdown.md、middle_json.json、structured_content.json 和引用的图片。 writer 提供 write_string(path, text) 与 write(path, bytes)。缺少素材时在写出前失败; 不会重新裁图、读取当前目录或访问网络来补齐图片。 独立 JSON 不能替代携带素材的结果包。ModelJson 不进入 SDK、CLI 或 HTTP 产物。 Tasks 的多格式组合由 mineru/parser/task_outputs.py 独立打包,不能把 save() 的文件布局套用到所有输出格式。