Ubuntu下部署PDF转MarkDown的服务docling

一、部署安装:

1、创建并激活虚拟环境

uv venv && source .venv/bin/activate

2、按照docling

uv pip install docling

3、配置模型镜像站(第一次运行时需要)

export HF_ENDPOINT=https://hf-mirror.com


二、使用方法:

A、使用命令行转换:

docling https://arxiv.org/pdf/2206.01062


B、使用Python代码转换(test.py):

from docling.document_converter import DocumentConverter

source = "https://arxiv.org/pdf/2408.09869"  # file path or URL
converter = DocumentConverter()
doc = converter.convert(source).document

print(doc.export_to_markdown())  # output: "### Docling Technical Report[...]"


C、使用webui页面转换(app.py):

import gradio as gr
from docling.document_converter import DocumentConverter
import tempfile
import os

def pdf_to_markdown(pdf_file):
    """
    接收上传的 PDF 文件,将其转换为 Markdown。
    返回 Markdown 文本和可下载文件路径。
    """
    if pdf_file is None:
        return "请上传一个 PDF 文件。", None

    try:
        converter = DocumentConverter()
        result = converter.convert(pdf_file.name)
        doc = result.document
        md_text = doc.export_to_markdown()

        # 将 Markdown 保存到临时文件
        temp_md = tempfile.NamedTemporaryFile(delete=False, suffix=".md")
        temp_md.write(md_text.encode("utf-8"))
        temp_md.close()  # 关闭文件,Gradio 才能读取

        return md_text, temp_md.name

    except Exception as e:
        return f"❌ 转换出错:{e}", None


# Gradio 界面
with gr.Blocks(title="PDF → Markdown Converter (Docling)") as demo:
    gr.Markdown("## 📄 PDF → Markdown 转换服务\n上传 PDF 文件,自动生成 Markdown。")

    pdf_input = gr.File(label="上传 PDF", file_types=[".pdf"])
    convert_btn = gr.Button("开始转换 🚀")
    md_output = gr.Textbox(label="Markdown 结果预览", lines=20)
    md_file = gr.File(label="下载 Markdown 文件")

    convert_btn.click(fn=pdf_to_markdown, inputs=pdf_input, outputs=[md_output, md_file])

# 启动局域网可访问服务
if __name__ == "__main__":
    demo.launch(server_name="0.0.0.0", server_port=7860, share=False)






评论

此博客中的热门博文

通过命令行在Github上发布项目的新版本

利用GitHub免费的静态页面托管空间发布网页

本地部署OpenAvatarChat实时交互数字人系统