当前位置: 首页 > news >正文

一站式PDF转Markdown解决方案PDF3MD

在这里插入图片描述

简介

什么是 PDF3MD ?

PDF3MD 是一个现代化、用户友好的网络应用程序,旨在将 PDF 文档转换为干净、格式化的 Markdown 文本。它提供了高效的转换工具,支持多种文件格式之间的转换。

主要特点

  1. PDF 转 Markdown:能够将 PDF 文档转换为可读性强的 Markdown 格式,同时保留文档的结构元素。
  2. Markdown 转 Word (DOCX):支持将用户提供的 Markdown 文本转换为 DOCX 格式,使用 Pandoc 实现高质量输出。
  3. 多文件上传:支持同时上传和处理多个 PDF 文件,提升工作效率。
  4. 拖拽式界面:提供用户友好的文件上传方式,支持拖放或传统的文件选择。
  5. 实时进度跟踪:在转换过程中提供详细的状态更新,用户可以实时监控转换进度。
  6. 现代响应式用户界面:设计直观,适合各种设备使用。

应用场景

  • 文档转换:适用于需要将 PDF 文档转换为 Markdown 的用户,例如技术文档编辑、博客撰写等。
  • 内容编辑:方便用户在 Markdown 格式下进行内容编辑和格式化,然后可以轻松导出为 Word 文档。
  • 批量处理:适合需要处理大量文档的场景,例如教育机构、出版社等。

PDF3MD 通过提供简化的文档转换流程,大大提升了用户的工作效率和体验。

安装

在群晖上以 Docker 方式安装。

本文写作时, latest 版本对应为 sha-229610b

采用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

services:backend:image: learnedmachine/pdf3md-backend:latest container_name: pdf3md-backendrestart: unless-stoppedports:- "6201:6201"volumes:- ./data:/app/tempenvironment:- PYTHONUNBUFFERED=1- FLASK_ENV=production- TZ=Asia/Shanghaihealthcheck:test: ["CMD", "curl", "-f", "http://localhost:6201/"]interval: 30stimeout: 10sretries: 3start_period: 40sfrontend:image: learnedmachine/pdf3md-frontend:latest container_name: pdf3md-frontendrestart: unless-stoppedports:- "6202:3000"environment: {}depends_on:- backendhealthcheck:test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:3000/"]interval: 30stimeout: 10sretries: 3start_period: 40s

然后执行下面的命令

# 新建文件夹 pdf3md 和 子目录
mkdir -p /volume1/docker/pdf3md/data# 进入 pdf3md 目录
cd /volume1/docker/pdf3md# 将 docker-compose.yml 放入当前目录# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:6202 就能看到主界面

PDF 转 MD

老苏将本文在 obsidian 中转成了 pdf 格式

然后将 pdf 丢进来 PDF3MD

转换速度很快,虽然不能 100% 复原,但是也大差不差的

不要用那种扫描的 pdf 文件,毕竟还不支持 ocr 功能

MD 转 Word

markdown 粘贴到文本框,转换速度相对慢很多

但是效果看起来还是不错的

参考文档

murtaza-nasir/pdf3md: A modern, user-friendly web application that converts PDF documents to clean, formatted Markdown text.
地址:https://github.com/murtaza-nasir/pdf3md

http://www.lryc.cn/news/593098.html

相关文章:

  • MyBatis动态SQL实战:告别硬编码,拥抱智能SQL生成
  • 【iOS】编译和链接、动静态库及dyld的简单学习
  • JMeter 元件使用详解
  • k8s快速部署(亲测无坑)
  • Jmeter系列(7)-线程组
  • uniapp相关地图 API调用
  • 考研复习-数据结构-第七章-查找
  • 考研408《计算机组成原理》复习笔记,第三章(5)——磁盘存储器
  • UniApp 自定义导航栏:解决安全区域适配问题的完整实践
  • 基于springboot的考研互助小程序
  • 如何解决Flink CDC同步时间类型字段8小时时间差的问题,以MySQL为例
  • 我做的基础服务项目,是如何实现 API 安全与限流的(短信、邮件、文件上传、钉钉通知)
  • lazyvim配置
  • 实验-华为综合
  • fclose 函数的概念和使用案例
  • MySQL详解二
  • HTML零基础快速入门教程(详细篇)
  • 【取消分仓-分布式锁】
  • LVS的简介以及架构
  • 【Unity编辑器开发GUI.Window】
  • Vite的优缺点(精简版)
  • Java-77 深入浅出 RPC Dubbo 负载均衡全解析:策略、配置与自定义实现实战
  • Word快速文本对齐程序开发经验:从需求分析到实现部署
  • 《Electron应用性能深耕:资源加载与内存治理的进阶路径》
  • Flutter基础(前端教程①④-data.map和assignAll和fromJson和toList)
  • 【SpringBoot】标准HTTP方法列表
  • 记录我coding印象比较深刻的BUG
  • Flutter基础(前端教程①⑤-API请求转化为模型列成列表展示实战)
  • Flink实时流量统计:基于窗口函数与Redis Sink的每小时PV监控系统(学习记录)
  • 面试150 课程表