我开源了一个支持中文和大文件的 TXT 转 PDF 工具

免费PDF编辑与OCR识别指南:开源工具实现转换、批注和批量处理 PDF作为一种跨平台文档格式,凭借固定版式和高保真度成为办公协作的通用标准,但内部以绘图指令而非文字流组织内容,导致直接编辑困难。理解文本型PDF与扫描型PDF的差异,是选择处理路径的关键:前者可用编辑工具直接修改,后者需借助OCR技术识别图片中的文字。开源生态提供了完整解决方案,LibreOffice Draw可执行轻量编辑,PDFsam负责页面拆分合并,PaddleOCR与Tesseract支持高精度文字识别,而Python脚本则能实现批量转换、合并、拆分及图片提取,将重复劳动转化为自动化流水线。这套工 阅读详情

最近把一个自己在用的 TXT -> PDF 在线工具整理开源了。

项目地址:

这个项目本来只是想解决一个很朴素的问题:

把中文 TXT 文件稳定地转成 PDF。

但真正做起来之后,问题很快就从“文本转 PDF”本身,变成了:

  • 中文渲染怎么保证不乱码
  • 大文件怎么处理
  • Serverless 平台上怎么避免请求体超限
  • 多片 PDF 最后怎么合并才不会炸

最后整理成了这个项目:

  • 支持中文 TXT 转 PDF
  • 支持大文件分片转换
  • 支持浏览器端合并 PDF
  • 支持部署到 Vercel
  • 支持在线上传、预览、导出

为什么会做这个

很多在线 txt 转 pdf 工具在下面这些场景里很容易出问题:

  • 中文内容导出后乱码
  • 稍大一点的 TXT 文件直接失败
  • 代码、日志、小说这类纯文本内容导出排版一般
  • 放到 Vercel 这种 Serverless 平台后,大文件流程很容易撞限制

这个项目就是围绕这些问题一点点补出来的。


最初方案其实很直观

一开始的思路很简单:

  1. 前端上传 TXT
  2. 后端把文本转成 PDF
  3. 如果文件太大,就切片上传
  4. 后端再把多个 PDF 片段合并成一个完整 PDF

看起来很合理,但真正部署到 Vercel 之后,很快就遇到了问题。


真正的坑:不是转换,而是“合并”

单片转换其实问题不大。

文本按 3MB 左右切片后,逐片调用 /api/convert,每片独立生成 PDF,这一段在 Vercel 上是能跑通的。

真正麻烦的是最后一步:

多个 PDF 片段怎么合并。

最开始我走的是服务端合并:

  • 每片 TXT 转完后得到 PDF
  • 前端把这些 PDF 再传给 /api/merge
  • 后端用 pypdf 合并

这个方案本地没问题,但在线上很快碰到典型错误:

FUNCTION_PAYLOAD_TOO_LARGE
Request Entity Too Large

也就是说:

问题不是 Python 逻辑写错,而是合并请求本身超过了平台限制。


为什么会超限

原因其实也不复杂。

大文件会被切成多个文本片段,每个片段再转换成 PDF。
如果最后把这些 PDF 一次性回传给服务端合并,不管你是:

  • JSON + base64
  • multipart/form-data
  • 分批合并后再继续上传

只要合并后的中间 PDF 越来越大,最终还是会继续撞请求体上限。

这类问题在 Serverless 场景里特别典型:

  • 单步逻辑看起来没问题
  • 但链路一长,请求体、超时、内存这些限制就会一起冒出来

最后怎么解决

最后这条链路我改成了:

后端负责“生成每一片 PDF”,浏览器负责“合并所有 PDF”。

也就是:

text

TXT 大文件 → 前端切片 → 每片请求 /api/convert → 得到多个 PDF Blob → 浏览器端使用 pdf-lib 合并 → 直接下载最终 PDF

这一步改完之后,整个思路就顺了很多:

  • Vercel 只负责单片 PDF 生成
  • 不再承受超大的 merge 请求体
  • 最容易炸的部分直接转移到浏览器端
  • 大文件场景也更稳定

这其实是一个很典型的经验:

当平台对请求体和函数执行有明显限制时,尽量让服务端做“单步、短链路、可分片”的事,把可前移的聚合逻辑前移到客户端。


当前实现方案

项目现在的核心思路是:

1. 中文 PDF 渲染

使用 reportlab + STSong-Light CID 字体,解决中文显示问题。

2. 大文件分片转换

前端读取 TXT 后按字节分片,避免单次请求过大。

3. 浏览器端合并 PDF

前端拿到所有片段 PDF 后,通过 pdf-lib 在浏览器中直接合并,不再依赖服务端 merge。

4. Vercel 部署

保留“静态前端 + Python Function”的简单部署结构,尽量让项目易部署、易演示、易复用。


适合什么场景

这个项目目前比较适合:

  • 中文小说 TXT 转 PDF
  • 代码文件、日志文件归档成 PDF
  • 做一个可在线使用的 txt2pdf 小工具
  • 参考“Serverless + 浏览器端合并”的处理方式

目前仓库已经补了这些内容

为了把它做成一个更完整的开源项目,我也顺手把仓库门面整理了一下:

  • 中英文 README
  • 在线演示地址
  • 首页截图
  • Demo GIF
  • Use Cases
  • Roadmap
  • v1.0.0 tag / release

仓库地址:
https://github.com/xqnode/txt2pdf


后续计划

后面还打算继续补这些能力:

  • 自定义边距、字号、行距
  • 页眉页脚、页码、封面
  • 更多文本格式支持
  • 更适合超大文件的后端方案(对象存储 / 队列 / 任务化处理)

最后

如果你也在做这类文本处理、PDF 导出,或者刚好在 Vercel / Serverless 场景里碰到类似的请求体限制问题,欢迎来看看这个项目。

在线体验:
https://txt2pdf.vercel.app/

GitHub:
https://github.com/xqnode/txt2pdf

MarkItDown:微软开源文档转换利器,一键搞定PDF/Word转Markdown 在RAG与知识库等大模型应用中,将PDF、Word、PPT等办公文档高效解析为结构化文本,是决定数据质量的关键一环。然而,这些格式内部存储的并非流式文本,而是包含坐标、字体等绘制指令,直接读取往往得到乱码或丢失层级结构。MarkItDown 是微软开源的多格式文档转换工具,能够将PDF、Office三件套、HTML、图片乃至音频统一转为语义清晰的Markdown,保留标题、表格、链接等关键信息,为大模型提供干净的输入。该工具既支持一行命令快速转换,也提供简洁的Python API便于批量集成,可无缝嵌入La 阅读详情

相关推荐

告别在线转换器:用开源工具本地搞定PDF、图片与音视频转换

格式转换是日常办公中的高频需求,但网页工具常常以页数、体积、速度为由设置付费墙,甚至泄露隐私。其实,转换的本质不是改后缀,而是对文件进行解码与重编码,理解这一点就能绕开陷阱。开源工具如ImageMagick、FFmpeg、poppler等,通过命令行实现本地批量处理,不限制次数、无需上传,兼顾效率与安全。从图片批量转JPG、PDF拆页渲染到音视频转码,均能构建可重复执行的本地工作流。无论是PDF转Word还是其他格式转换,掌握工具背后的原理和适用边界,才能真正摆脱会员制束缚。本文以工程实践视角,解析如何用开

weixin_34221112的博客 544

C# 实现 TXT 转 PDF:编码、字体与分页的完整指南

文本文件与 PDF 是日常办公和工程开发中最常见的两种格式。纯文本文件看似简单,实则因编码标准缺失(如 UTF-8、GBK、ANSI)而暗藏乱码风险;PDF 则依赖精确的坐标渲染,没有自动排版引擎。理解这些底层原理,是解决转换问题的基础。在 C# 开发中,借助 iText7 等成熟 PDF 库,可以实现流式读取、字体嵌入、自动分页,从而稳定处理中文日志、设备导出记录等场景。本文从字符编码检测、字体选择、段落排版到批量转换性能优化,系统梳理了 TXT 转 PDF 的工程实践,帮助开发者避开乱码、字体丢失、大文

weixin_42530458的博客 215

开源格式转换工具实战:从WPS、PDF到音视频互转

格式转换是日常办公与内容创作中绕不开的基础需求,从文档编辑到媒体处理,不同软件与设备之间的兼容性差异常常导致文件无法直接使用。理解转换的本质,即对文件内部编码进行解析、抽象与重新编码,是掌握各类工具的关键。开源生态中,FFmpeg、LibreOffice等底层引擎为开发者提供了强大的处理能力,而封装这些能力的本地工具,既保障了数据隐私,又具备可审计和可扩展的优势。无论是将WPS文档转为PDF,还是从视频中提取MP3音频,一个统一的开源转换入口都能显著简化工作流,避免在线转换服务的上传限制与隐私风险。本文以开

weixin_34235457的博客 463

md转pdf用啥工具比较好?7款本地加在线格式转换工具盘点

去年八月我在准备一份产品迭代方案,Markdown里写好了结构、表格里塞满了参数,导出预览也一切正常。把md文件丢给同事之后,对方小程序端回了一句"打不开,能不能给个PDF?"我顺手找了款在线转换试了一下,结果表格线直接跑偏,引用的代码块更是糊成一片。后来这种事我都在青蓝PDF转换里跑一遍,它能直接读md并转成版式稳定的PDF,十几秒就交差了。

asyncs的博客 36

C# ArcGIS Engine二次开发——实现“加载shp文件”

private void AddShpDataToolStripMenuItem_Click(object sender, EventArgs e) { OpenFileDialog OpFileDialog=new OpenFileDialog();//OpenFileDialog:打开文件对话框 OpFileDialog.Title="添加矢量数据"; OpFileDialog.Filter="(*.shp)|*.shp";//filter:过滤器;"(*.shp)|*.shp"

weixin_42191203的博客 5254

影刀RPA:轻松搞定Excel表格自动化操作

影刀RPA是一款功能强大的自动化工具,通过模拟人类操作实现各种重复性任务的自动化。零代码操作:通过拖拽式流程设计器,无需编程基础即可快速上手。功能丰富:提供丰富的组件库,涵盖文件操作、数据处理等多种功能。高效稳定:支持多任务并行,确保任务的高效执行和稳定性。支持Python语法:内置数据表格,支持Python语法,对新手友好,同时具备循环功能。通过影刀RPA,您可以轻松实现Excel表格的拆分、列数据合并和归档工作的自动化。这不仅节省了手动操作的时间,还能确保数据处理的高效和准确,提升工作效率和管理水平。

watwrmoon的博客 2560

电子书转TXT全攻略:5大方案与进阶技巧

电子书格式转换是数字阅读领域的基础需求,其核心在于理解不同格式的数据结构特性。EPUB、MOBI等主流电子书格式采用特定的编码方式和内容组织逻辑,转换过程中需要处理字符编码、版式保留等技术难点。合理选择转换工具能有效解决DRM保护、乱码等问题,在数字出版、知识管理等领域具有重要应用价值。本文深度评测Calibre、Python脚本等5种主流方案,针对中文环境特别优化,提供从基础转换到批量处理的完整解决方案,涵盖编码处理、目录保留等实战技巧。

diaohuyi6830的博客 716

用Python+OpenCV搞定线激光相机标定:从棋盘格到3D点云的保姆级实战

本文详细介绍了使用Python和OpenCV进行线激光相机标定的全流程实战,从硬件准备到3D点云重建。涵盖相机内参标定、激光平面方程拟合、三维重建等关键技术,提供完整的代码实现和工程优化建议,帮助开发者实现毫米级精度的工业检测和三维测量系统。

weixin_29227425的博客 281

使用 Python 高效提取 PDF 中的表格数据并导出为 TXT 或 Excel

Python 为 PDF 表格数据提取提供了强大而灵活的解决方案。Tabula-py 适合快速上手的标准表格,而Camelot-py 则在复杂场景下表现更优。结合 pandas 的数据处理能力,我们可以轻松将“不可编辑”的 PDF 表格转化为结构化的 TXT 或 Excel 文件,大幅提升数据再利用效率。无论你是财务人员、数据分析师还是自动化开发者,掌握这些工具都将显著简化你的工作流程。快试试吧!

2603_94941239的博客 856

Ubuntu中snap简单介绍

通过Snap可以安装众多的软件包。需要注意的是,snap是一种全新的软件包管理方式,它类似一个容器拥有一个应用程序所有的文件和库,各个应用程序之间完全独立。所以使用snap包的好处就是它解决了应用程序之间的依赖问题,使应用程序之间更容易管理。但是由此带来的问题就是它占用更多的磁盘空间 介绍一些常用命令,有点类似docker 1、查看已经通过snap安装的snap包 snap list可以查看 2、可以搜索想要的snap包,例如tomcat snap search tomcat

icanflying的博客 4万+

93.华为路由器:IPSec加密GRE通道(GRE over IPsec)

IPSec加密GRE通道 由于GRE隧道不提供安全性保障,使用ipsec加密gre隧道是现网中比较常用的VPN部署,它的加密方式分为两种: 可以使用IPsec来加密隧道进行传输,叫做IPsec over GRE; 加密数据流后从隧道传输,称为GRE over IPsec。 下面将配置一个简单的IPsec over GRE实验。 一、搭建模拟环境 首先我们先搭建环境,先根据拓扑图把基本的IP地址配好,然后分别在AR1、AR3加两条静态路由,使得两个公网互通。 [AR1]in g0/0/0 [AR

迷逝 1万+

MuPDF mutool:解锁PDF处理的终极命令行工具箱

在当今数字化工作流中,PDF文档处理已成为开发者和技术爱好者的日常需求。MuPDF作为一个轻量级高性能的PDF渲染引擎框架,其强大的命令行工具mutool提供了完整的PDF处理解决方案。本文将深入探索mutool的专业功能,帮助你掌握这个高效PDF处理工具的核心能力。 ## 🔍 为什么选择MuPDF mutool? MuPDF是一个开源软件框架,专注于PDF、XPS和电子书文档的查看和转换。

gitblog_01031的博客 667

CD-SSB和NCD-SSB相关内容

NR中,PSS/SSS 和PBCH总是绑定的,因此也称为SSB block。频域由下往上,第121个SC(k = 120)的中心频率,就是SSB的GSCN对应的SSREF(同步参考频率)的出处如上,同步栅格映射到SSB 的RE位置是10个PRB的位置,然后指向RE index 0,即第121个子载波的中心频率;UE获得N_offset_GSCN后,即可结合当前SSB的GSCN推算下一个SSB的GSCN =N_Reference_GSCN(当前SSB的GSCN) + N_offset_GSCN。

asd199086的博客 3424

PDF转Word最简单方法盘点:多款工具实测对比,帮你找到最顺手的那一个

上个月接手一个旧项目的验收材料,甲方发过来的合同模板是PDF,只改其中两个条款的日期和金额。我右键另存、截图贴Word、甚至试过用浏览器打印成Word再改,一顿操作下来,排版歪得像被风吹过的表格,签名栏直接飘到了下一页。折腾了好一阵,最后还是在同事电脑上看到他用青蓝PDF转换试了一版,上传之后转出来的Word连表格边框都对得整整齐齐,我才意识到之前绕了多大一个弯。

asyncs的博客 14

飞腾平台(FT2000/4 D2000/8)配置GPIO引脚

飞腾平台配置CPU的引脚为GPIO工作模式的方式有永久型和暂时型: - 永久型是通过UEFI中的MmioWrite32函数来实现的,该方法可以在UEFI阶段就对复用引脚的工作模式配置为GPIO,并且在进入操作系统后仍然不会发生便会; - 临时型是通过rw工具,在系统下手动修改复用引脚的工作模式,该方法在系统重启后会失效,所以是暂时型的。

qq_30135687的博客 5612

微信小程序 - 详细解决web-view公众号文章或第三方网站分享转发后打开失败,页面显示“无法打开该页面,不支持打开“、“页面不存在“报错提示,苹果IOS系统手机打开是空白页,安卓手机系统会有提示!

微信小程序,公众号文章,第三方H5网页,内嵌网站分享后打不开,web-view,页面分享,小程序里公众号文章转发后无法打开,白屏,页面空白什么都没有,不支持打开,无法打开该页面,页面不存在,业务域名配置好了还是不行,公众号和小程序已经关联,iOS端苹果真机打开空白页,安卓手机,页面分享后,用户打不开提示错误,提示页面不存在,如何解决页面提示无法打开该页面,微信小程序web-view无法打开该页面不支持打开的解决方法,无法打开该页面不支持打开,最新详细解决方案,分享之后无法打开页面,提示无法打开该页面,不支持

🏆 前端领域优质创作者 1万+

本地部署PDF全能工具箱:80+功能集成与自动化实践指南

PDF文档处理是日常办公与开发中的常见需求,涉及格式转换、内容编辑、信息提取等核心操作。其技术原理通常基于开源库(如poppler、Tesseract)对PDF结构进行解析与重构,实现跨格式转换、页面操作及光学字符识别(OCR)。这类技术的核心价值在于将分散的处理能力整合,提供统一、可编程的接口,从而显著提升文档处理效率与自动化水平。在数据隐私敏感、需要离线处理或批量自动化的应用场景中,本地化部署方案尤为重要。本文聚焦的【本地部署PDF工具箱】正是此类方案的典型代表,它集成了超过80种功能,并通过Docke

weixin_34315485的博客 750

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

OFD转PDF在线工具盘点:这7款能解决国内合规与无水印转换难题

去年夏天帮客户改一份政企项目合同,对方发来的盖章件是OFD格式。我对着电脑愣了半分钟——手头的阅读器只能看不能转,合同里两条付款节点要调整,法务那边等着下班前出修订稿。打开青蓝PDF转换,把OFD文件拖进去选「转PDF」,不到十秒拿到排版完整的PDF,接下来在熟悉的编辑器里直接改文字。那之后碰到OFD文件再也不慌了,也顺手把市面上能正经转OFD的在线工具摸了一遍。

GYRYIJF的博客 20

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Qwen3.5-9B-GGUF入门指南:WebUI中上传文件解析(PDF/TXT)功能实测

本文介绍了如何在星图GPU平台上自动化部署Qwen3.5-9B-GGUF镜像,实现高效文档解析功能。该镜像基于阿里云Qwen3.5-9B官方模型经GGUF格式量化,通过WebUI界面支持PDF/TXT文件上传与内容提取,适用于技术文档总结、长篇报告分析等场景,显著提升文本处理效率。

weixin_42510243的博客 481

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

功能强到飞起!一款开源免费的全格式文件智能转换神器

内容提转换工具是一种用于文档内容智能解析与结构化输出的高效软件,可有效适用于日常知识提取,企业知识管理与智能问答系统建设。它能够自动读取各类非结构化或半结构化的文档资料(如PDF、Word、PPT、Excel、音频等),并将其中的有效信息提取为结构化的文本或Markdown格式,便于存储、检索和进一步利用。在日常工作生活中,有非常广泛的场景,常见的有:企业可利用该工具批量解析合同、培训材料、会议纪要等文档,快速沉淀为统一标准的知识条目,提升内部知识利用效率。

946

3步搞定OCRmyPDF多语言OCR:让扫描PDF支持中文日文韩文搜索

还在为无法搜索扫描PDF中的中文、日文或韩文内容而烦恼吗?📄 OCRmyPDF作为一款强大的开源工具,能够为扫描的PDF文件添加可搜索的文字层,彻底解决多语言文档的搜索难题。本文将带你从零开始,轻松掌握OCRmyPDF的多语言OCR配置技巧! ## 为什么需要多语言OCR支持? 想象一下,你收到一份包含中文技术文档、日文产品手册和韩文研究报告的扫描PDF合集,想要快速查找某个关键词却无能为力

gitblog_01007的博客 375

免费PPT转PDF在线转换工具推荐!无水印好用不踩雷

日常办公、学生做课件、职场汇报,经常需要把PPT转换成PDF格式。一方面能固定排版,避免换设备打开乱版、字体缺失的问题,另一方面PDF格式更方便分享、打印、存档。很多人找PPT转PDF工具都会踩坑:要么转换后带水印、要么需要充值会员、要么批量转换受限、排版错乱严重。今天给大家整理一批的PPT转PDF方式,包含电脑本地、网页在线、手机小程序三种主流方案,按需选择即可。

asyncs的博客 53

如何实现Word、PDF,TXT文件的全文内容检索?

简单介绍一下需求 能支持文件的上传,下载 要能根据关键字,搜索出文件,要求要能搜索到文件里的文字,文件类型要支持word,pdf,txt 文件上传,下载比较简单,要能检索到文件里的文字,并且要尽量精确,这种情况下很多东西就需要考虑进去了。这种情况下,我决定使用Elasticsearch来实现。 因为准备找工作刷牛客的原因,发现很多面试官都问到了Elasticsearch,再加上那时候我连Elasticsearch是什么东西都不知道,所以就决定尝试一下新东西。 不得不说Elasticsearch版本更

m0_62051288的博客 2633

免费开源PDF处理全攻略:从格式转换到OCR识别的开发者工具链

PDF作为一种通用的文档格式,其核心价值在于跨平台、保真度高的信息呈现能力。其技术原理基于PostScript页面描述语言,通过封装文本、图像和矢量图形实现精确的版面还原。在工程实践中,PDF处理常涉及格式转换、内容编辑、文档压缩和OCR识别等关键环节,这些操作对于文档数字化、信息提取和自动化办公至关重要。特别是在开发者和技术文档管理场景中,高效、免费且可编程的PDF处理方案能显著提升工作效率。本文聚焦于PDF转Word这一高频需求,并结合OCR文字识别技术,提供一套完整的本地化、开源工具链实战方案,帮助用

ciqiaofu0192的博客 383

PDFMathTranslate 使用指南:3 步把英文 PDF 论文翻成中文,公式排版原样保留

深夜,一篇双栏的英文论文落在你桌上。复制正文、丢进翻译软件、再粘回 PDF——公式散了,排版毁了,折腾半天还不像样。PDFMathTranslate(命令名 pdf2zh)就是干这个的开源工具:它对英文 PDF 做全文双语翻译,同时完整保留原版排版,终端里跑一次 pdf2zh,公式纹丝不动的中文版就出来了。它是 EMNLP 2025 的 Demo 工作,累计下载量已超 22 万次。 ## 🧩

gitblog_01037的博客 451
上一篇: 【原创精品】基于SpringBoot3+Vue3的自习室预约选座系统
下一篇: 别再手画ER图、用例图了!AI可以帮你一键生成全套毕设论文图表
程序员青戈
程序员青戈 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄10年 3万+粉丝 250原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员青戈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值