linux ubuntu下怎样将pdf格式文件转换为doc格式文件,pdftotext —— Linux/Unix中将PDF文件转化为Text文本格式的利器...

安装 pdftotext 到 RedHat / RHEL / Fedora / CentOS / Ubuntu

在不同的Linux分发版本中使用poppler-utils包安装pdftotext(CentOS):

# yum install poppler-utils

或者在Debian / Ubuntu中使用如下指令:

$ sudo apt-get install poppler-utils

pdftotext 使用语法

pdftotext {PDF-file} {text-file}

如何将pdf转化为text?

将php-manual.pdf 转化为 php-manual.txt:

$ pdftotext php-manual.pdf php-manual.txt

只转化前 5 页和后 10 页:

$ pdftotext -f 5 -l 10 php-manual.pdf php-manual.txt

转化加密过的pdf文件( owner password ):

$ pdftotext -opw 'password' php-manual.pdf php-manual.txt

转化加密过的pdf文件( user password ):

$ pdftotext -upw 'password' php-manual.pdf php-manual.txt

Sets the end-of-line convention to use for text output. You can set it to unix, dos or mac. For UNIX / Linux oses, enter:

$ pdftotext -eol unix php-manual.pdf php-manual.txt

更多命令:

man page pdftotext

此外,还可以转化pdf为多种其他格式文件:

pdfto.png

如可以将pdf文件转化为html,但我测试了一下,效果貌似不佳,很多页面有错乱出现,但是pdftotext转化的效果还是不错的(图片都去掉了),而且速度很快。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
将涉及到一些第三方模块和库,因此我们需要首先确保它们已经被安装在本地系统中。具体地,我们需要安装PyPDF2、pdftotextdocx库,指令如下: ```bash pip install PyPDF2 pdftotext python-docx ``` 现在,我们可以编写Python脚本来实现我们的目标。请注意,我们将实现的内容将涵盖到以下五个方面: 1. 将PDF为Word文档 2. 将Word文档PDF 3. 合并多个PDF文件 4. 拆分单个PDF文件 5. 给PDF页面加水印 ```python import os import io import PyPDF2 import pdftotext from docx import Document from docx.shared import Inches # 定义将PDF为Word的函数 def pdf_to_docx(pdf_path, docx_path): pdf_file = open(pdf_path, 'rb') pdf_reader = PyPDF2.PdfFileReader(pdf_file) doc = Document() for i in range(pdf_reader.getNumPages()): page = pdf_reader.getPage(i) text = page.extractText() doc.add_paragraph(text) doc.save(docx_path) # 定义将WordPDF的函数 def docx_to_pdf(docx_path, pdf_path): doc = Document(docx_path) doc.save(pdf_path) # 定义合并PDF文件的函数 def merge_pdfs(pdfs_path, output_path): pdf_writer = PyPDF2.PdfFileWriter() for pdf_path in pdfs_path: pdf_file = open(pdf_path, 'rb') pdf_reader = PyPDF2.PdfFileReader(pdf_file) for i in range(pdf_reader.getNumPages()): page = pdf_reader.getPage(i) pdf_writer.addPage(page) with open(output_path, 'wb') as pdf_file: pdf_writer.write(pdf_file) # 定义拆分PDF文件的函数 def split_pdf(pdf_path, output_dir): with open(pdf_path, 'rb') as pdf_file: pdf_reader = PyPDF2.PdfFileReader(pdf_file) for i in range(pdf_reader.getNumPages()): pdf_writer = PyPDF2.PdfFileWriter() pdf_writer.addPage(pdf_reader.getPage(i)) output_path = os.path.join(output_dir, 'page_{}.pdf'.format(str(i+1).zfill(4))) with open(output_path, 'wb') as output_file: pdf_writer.write(output_file) # 定义给PDF页面加水印的函数 def add_watermark(pdf_path, watermark_path, output_path): with open(pdf_path, 'rb') as pdf_file: pdf_reader = PyPDF2.PdfFileReader(pdf_file) pdf_writer = PyPDF2.PdfFileWriter() watermark_file = open(watermark_path, 'rb') watermark_reader = PyPDF2.PdfFileReader(watermark_file) watermark_page = watermark_reader.getPage(0) for i in range(pdf_reader.getNumPages()): pdf_page = pdf_reader.getPage(i) pdf_page.mergePage(watermark_page) pdf_writer.addPage(pdf_page) with open(output_path, 'wb') as output_file: pdf_writer.write(output_file) # 将PDF为Word pdf_to_docx('path/to/pdf', 'path/to/docx') # 将WordPDF docx_to_pdf('path/to/docx', 'path/to/pdf') # 合并多个PDF文件 merge_pdfs(['path/to/pdf1', 'path/to/pdf2', 'path/to/pdf3'], 'path/to/merged.pdf') # 拆分单个PDF文件 split_pdf('path/to/pdf', 'path/to/output_dir') # 给PDF页面加水印 add_watermark('path/to/pdf', 'path/to/watermark', 'path/to/output.pdf') ``` 这里,我们将给PDF页面加水印的函数实现为给指定PDF的每个页面都添加指定的水印页面,水印页面默认只有一页。您可以根据具体需要修改代码,并添加其他选项以满足不同的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值