在这里插入图片描述

简介

什么是 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.pswp.cn/news/915320.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/915320.shtml
英文地址,请注明出处:http://en.pswp.cn/news/915320.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RocketMQ学习系列之——MQ入门概念

一、什么是MQMQ(Message Queue,消息队列)是一种能够实现跨进程消息传输,并且消息缓存符合队列特性的组件。二、MQ的作用异步:消息发送方无需等待消息接收方收到消息,发送方将消息成功发送到 MQ 之后即可无阻…

血条识别功能实现及原理

从零开始学Python图像处理 - 血条识别 从实际问题中能快速的学习特定技能,通过完成一个能自动刷怪的工具,达成快速学习python图像处理和识别。 自动刷怪需要先识别怪物,在游戏中怪物类型很多,同时在移动中形态会一直发生变化&…

网络地址和主机地址之间进行转换的类

#pragma once #include "Common.hpp" // 网络地址和主机地址之间进行转换的类class InetAddr { public:InetAddr(){}InetAddr(struct sockaddr_in &addr) : _addr(addr){// 网络转主机_port ntohs(_addr.sin_port); // 从网络中拿到的!网络序列// _i…

《Python 项目 CI/CD 实战指南:从零构建自动化部署流水线》

🛠《Python 项目 CI/CD 实战指南:从零构建自动化部署流水线》 一、引言:为什么 Python 项目需要 CI/CD? 在现代软件开发中,CI/CD(持续集成 / 持续部署)已成为不可或缺的工程实践。它不仅提升了开发效率,还显著降低了部署风险。对于 Python 项目而言,CI/CD 的价值尤…

AJAX 技术

AJAX全称是 Asynchronous JavaScript and XML ( 异步的JavaScript 和 XML ),使用该技术后,可以实现不刷新整个网页,与服务器进行异步通信并更新部分网页。一)为什么需要AJAX?传统网页在与服务器通信时,需要刷新整个页…

Python爬虫实战:研究NLTK库相关技术

1. 引言 1.1 研究背景与意义 随着互联网的快速发展,网络新闻已成为人们获取信息的主要来源之一。每天产生的海量新闻文本蕴含着丰富的信息和知识,但也给信息获取和分析带来了挑战。如何从大量非结构化的新闻文本中自动提取有价值的信息,识别热点话题和趋势,成为当前自然语…

ARM 学习笔记(二)

参考文献:《ARM ArchitectureReference Manual ARMv7-A and ARMv7-R edition》1、MMU 1.1 背景早期的内存是比较小的,一般是几十k,不过相应的程序也是比较小的,这时程序可以直接加载到内存中运行。后来为了支持多个程序的并行&…

Github 贪吃蛇 主页设置

自动化脚本顶部元信息触发条件(on:)作业(jobs:)步骤(steps:)1. 生成 SVG2. 推送到 output 分支Commit & Push在 README 里引用参考:https://github.com/Platane/Platane/tree/master 首先写…

关于Spring RestTemplate

​ 一、概述RestTemplate 是 Spring Framework 提供的一个同步 HTTP 客户端工具,用于简化与 RESTful API 的交互。它封装了底层 HTTP 通信细节,提供了统一的 API 来发送各种 HTTP 请求(GET、POST、PUT、DELETE 等),并自…

异步解决一切问题 |消息队列 |减少嵌套 |hadoop |rabbitmq |postsql

设计准则“为什么要考虑这个问题”The forward logic is only about 10% of your code, everything else is 90%.主流逻辑 10%保障扩容和稳健的代码设计90%同步代码就是绑在一个绳上的蚂蚱异步就是实现了解耦这个异步或许有点类似于--一些分布式数据的处理 设计如何实现的呢?…

Spring AI 项目实战(十八):Spring Boot + AI + Vue3 + OSS + DashScope 实现高效语音识别系统(附完整源码)

系列文章 序号 文章名称 1 Spring AI 项目实战(一):Spring AI 核心模块入门 2 Spring AI 项目实战(二):Spring Boot + AI + DeepSeek 深度实战(附完整源码) 3 Spring AI 项目实战(三):Spring Boot + AI + DeepSeek 打造智能客服系统(附完整源码) 4

指针数组和数组指针的应用案例

1. 指针数组应用&#xff1a;查找最长字符串用指针数组存储若干字符串&#xff0c;编写函数找出其中最长的字符串&#xff08;若有多个&#xff0c;返回第一个&#xff09;。#include <stdio.h> #include <string.h>// 函数原型&#xff1a;找出最长字符串 const c…

MCU进入低功耗模式前的引脚处理原则和方法 --> 以最小化低功耗电流

在MCU进入低功耗模式(如Sleep, Stop, Standby, Deep Sleep等)前,精心处理每一个GPIO引脚的状态是最大限度降低功耗电流的关键一步。悬空或配置不当的引脚是导致“漏电”的常见原因。以下是处理引脚以达到最小低功耗电流的原则和方法: 📌 核心原则 避免浮空输入: 浮空(…

张 关于大语言模型(LLM)置信度研究的经典与前沿论文 :温度缩放;语义熵;自一致性;事实与反思;检索增强;黑盒引导;

关于大语言模型(LLM)置信度研究的经典与前沿论文 :温度缩放;语义熵;自一致性;事实与反思;检索增强;黑盒引导; 目录 关于大语言模型(LLM)置信度研究的经典与前沿论文 :温度缩放;语义熵;自一致性;事实与反思;检索增强;黑盒引导; 一、校准方法:让模型概率更贴近真实正确…

ICT测试原理之--什么是假短

ICT测试原理之–什么是假短 文章目录ICT测试原理之--什么是假短一、假短的由来防止假短二、无法检测的短路示例解决无法检测的短路调试短路文件调试意外断路调试意外短路三、调试假短报告短路和断路报告假短报告短路设备/引脚功能性短路测试功能性短路测试的语法一、假短的由来…

三种深度学习模型(LSTM、CNN-LSTM、贝叶斯优化的CNN-LSTM/BO-CNN-LSTM)对北半球光伏数据进行时间序列预测

代码功能 该代码实现了一个光伏发电量预测系统&#xff0c;采用三种深度学习模型&#xff08;LSTM、CNN-LSTM、贝叶斯优化的CNN-LSTM&#xff09;对北半球光伏数据进行时间序列预测&#xff0c;并通过多维度评估指标和可视化对比模型性能。 算法步骤 1. 数据预处理 数据导入&am…

Typecho+阿里云CDN完整配置:防止DDoS攻击与IP暴露

文章目录 Typecho使用阿里云CDN保护网站真实IP地址的完整指南 背景与问题分析 技术选型与方案设计 详细实施步骤 第一步:阿里云CDN基础配置 第二步:DNS解析设置 第三步:源站服务器防护配置 Nginx服务器配置 防火墙配置(以Ubuntu为例) 第四步:Typecho配置调整 高级防护措施…

[硬件]运算放大器对相位噪声的影响与设计提示

运算放大器对相位噪声的影响与设计提示 文章目录运算放大器对相位噪声的影响与设计提示运放影响位噪声的主要因素如何最小化运放对相位噪声的影响总结运算放大器是常用的模拟电路元器件&#xff0c;通常用于放大信号&#xff0c;增强驱动。但是当使用运放放大一个信号时&#x…

github jekyll+chirpy主题搭建博客

github jekyllchirpy主题搭建博客 标签&#xff1a;后端、blog、jekyll 全文链接 本文简要介绍了如何基于 GitHub Pages、Jekyll 及 Chirpy 主题搭建个人博客的流程和注意事项。 主要内容 GitHub Pages 站点简介 可免费搭建个人博客&#xff0c;支持自定义域名&#xff0c;适…

Flutter状态管理篇之ValueNotifier(三)

目录 前言 一、ValueNotifier 概述 二、ValueNotifier 的实现原理 1.类定义 1.类定义 2.关键字段 3.关键方法 1.构造函数 2.getter:value 3.setter:value: 4.toString 2.继承自ChangeNotifier的机制 3.ValueListenable 接口 三、ValueNotifier 的用法 1.基本用法…