如何使用JavaScript或PHP将指定PDF转换为特定格式的TXT文件?
当然有办法搞定这个PDF转TXT的需求!我给你整理了JavaScript(Node.js环境)和PHP两种靠谱的实现方案,都能帮你提取出符合要求格式的文本:
JavaScript(Node.js 后端实现)
前端浏览器受跨域限制,直接解析远程PDF会有问题,所以推荐用Node.js来做这个转换:
初始化项目并安装依赖
先新建一个项目文件夹,打开终端执行:npm init -y npm install pdf-parse axiospdf-parse用来解析PDF文本,axios用来请求远程PDF文件。编写转换代码
创建一个convert.js文件,写入以下代码:const pdfParse = require('pdf-parse'); const axios = require('axios'); const fs = require('fs'); async function convertPdfToTxt(pdfUrl) { try { // 获取远程PDF的二进制数据 const response = await axios.get(pdfUrl, { responseType: 'arraybuffer' }); const pdfBuffer = Buffer.from(response.data); // 解析PDF中的文本内容 const pdfData = await pdfParse(pdfBuffer); let rawText = pdfData.text; // 调整文本格式,匹配你要的样式(根据PDF实际结构微调) // 合并多余空行,保留必要换行 rawText = rawText.replace(/\n{2,}/g, '\n').trim(); // 输出结果或者保存为TXT文件 console.log('转换后的文本:\n', rawText); fs.writeFileSync('du-bist-alles.txt', rawText); } catch (error) { console.error('转换出错了:', error.message); } } // 传入你的PDF链接开始转换 convertPdfToTxt('http://www.songmanage.com/du-bist-alles-c.pdf');运行代码
在终端执行:node convert.js执行完成后,文件夹里会生成
du-bist-alles.txt文件,内容就是你要的格式。
PHP 实现方案
如果你的项目是PHP环境,可以用php-pdf-parser库来实现,步骤如下:
安装依赖
确保你的环境已经安装了Composer,然后在项目目录执行:composer require smalot/pdfparser编写转换代码
创建一个convert.php文件,写入以下代码:<?php require 'vendor/autoload.php'; use Smalot\PdfParser\Parser; function convertPdfToTxt($pdfUrl) { try { // 获取远程PDF内容(如果服务器禁用file_get_contents,可以用curl替代) $pdfContent = file_get_contents($pdfUrl); if (!$pdfContent) { throw new Exception('无法获取远程PDF文件'); } // 初始化PDF解析器 $parser = new Parser(); $pdf = $parser->parseContent($pdfContent); // 提取文本并调整格式 $rawText = $pdf->getText(); $formattedText = preg_replace('/\n{2,}/', '\n', trim($rawText)); // 输出结果或保存为文件 echo '转换后的文本:<br>' . nl2br($formattedText); file_put_contents('du-bist-alles.txt', $formattedText); } catch (Exception $e) { echo '转换出错:' . $e->getMessage(); } } // 调用转换函数 convertPdfToTxt('http://www.songmanage.com/du-bist-alles-c.pdf');运行代码
将文件放到你的PHP服务器上访问,或者用命令行执行:php convert.php同样会生成对应的TXT文件。
注意事项
- 如果你的PDF是扫描件(图片格式),以上方案无法提取文本,需要搭配OCR工具(比如Tesseract)来处理。
- 不同PDF的排版结构可能有差异,如果转换后的格式略有偏差,可以微调代码里的正则表达式来适配。
内容的提问来源于stack exchange,提问作者Simon Reger
相关产品推荐
相关产品推荐

