# 安装LibreOffice(如果尚未安装)
sudo apt update
sudo apt install libreoffice# 将DOC转换为PDF
libreoffice --headless --convert-to pdf 你的文档.doc# 或者指定输出目录
libreoffice --headless --convert-to pdf --outdir /输出目录 你的文档.doc

python

import subprocess
import os
import sysdef convert_doc_to_pdf(doc_path, output_dir=None):"""将DOC文档转换为PDF:param doc_path: DOC文档路径:param output_dir: 输出目录(可选):return: 转换后的PDF路径,失败返回None"""# 检查文件是否存在if not os.path.exists(doc_path):print(f"错误:文件不存在 {doc_path}")return None# 检查文件格式if not doc_path.lower().endswith(('.doc', '.docx')):print(f"错误:不支持的文件格式 {doc_path}")return None# 设置输出目录if output_dir is None:output_dir = os.path.dirname(doc_path)else:os.makedirs(output_dir, exist_ok=True)# 构建输出文件路径base_name = os.path.splitext(os.path.basename(doc_path))[0]pdf_path = os.path.join(output_dir, f"{base_name}.pdf")try:# 使用LibreOffice进行转换cmd = ['libreoffice', '--headless', '--convert-to', 'pdf','--outdir', output_dir,doc_path]print(f"正在转换: {doc_path} -> {pdf_path}")result = subprocess.run(cmd, capture_output=True, text=True, timeout=60)if result.returncode == 0:print(f"转换成功: {pdf_path}")return pdf_pathelse:print(f"转换失败: {result.stderr}")return Noneexcept subprocess.TimeoutExpired:print("转换超时")return Noneexcept FileNotFoundError:print("未找到LibreOffice,请先安装: sudo apt install libreoffice")return Noneexcept Exception as e:print(f"转换过程中出错: {e}")return None# 批量转换函数
def batch_convert_docs_to_pdf(directory, output_dir=None):"""批量转换目录中的所有DOC文档为PDF"""if output_dir is None:output_dir = directorysupported_extensions = ('.doc', '.docx')converted_files = []for filename in os.listdir(directory):if filename.lower().endswith(supported_extensions):doc_path = os.path.join(directory, filename)pdf_path = convert_doc_to_pdf(doc_path, output_dir)if pdf_path:converted_files.append(pdf_path)return converted_files# 使用示例
if __name__ == "__main__":# 单个文件转换doc_file = "/home/yklele/anli.doc"pdf_file = convert_doc_to_pdf(doc_file)if pdf_file:print(f"转换完成: {pdf_file}")else:print("转换失败")# 批量转换示例# docs_directory = "/path/to/your/documents"# converted_files = batch_convert_docs_to_pdf(docs_directory)# print(f"批量转换完成: {len(converted_files)} 个文件")

comtypes

import os
import comtypes.client
import pythoncomdef convert_doc_to_pdf_wps(doc_path, pdf_path=None):"""使用WPS进行DOC到PDF的转换(需要安装WPS)"""if not os.path.exists(doc_path):return Falseif pdf_path is None:pdf_path = os.path.splitext(doc_path)[0] + '.pdf'try:# 初始化COMpythoncom.CoInitialize()# 创建WPS应用对象wps = comtypes.client.CreateObject("KWPS.Application")wps.Visible = False# 打开文档doc = wps.Documents.Open(doc_path)# 另存为PDFdoc.SaveAs(pdf_path, FileFormat=17)  # 17代表PDF格式# 关闭文档和应用doc.Close()wps.Quit()print(f"转换成功: {pdf_path}")return Trueexcept Exception as e:print(f"转换失败: {e}")return Falsefinally:pythoncom.CoUninitialize()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/95938.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/95938.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/95938.shtml

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

相关文章

Python实现生成矩形框、三角形框、六边形框和圆环点云

本节我们分享上节提到的不填充点云。在点云处理、计算机视觉与工业检测中,几何轮廓(边框/环)点云比实心点云更能反映物体的边缘特征、结构骨架与形貌突变区域。Python 借助 NumPy 即可快速生成矩形边框、三角形边框、六边形边框与圆环点云&am…

2025年本体论:公理与规则的挑战与趋势

摘要本文章旨在深入探讨本体论(Ontology)中公理(Axioms)与规则(Rules)的核心概念、技术实现、验证方法、性能评估及其在2025年的前沿趋势与挑战。公理与规则是构建严谨、一致知识模型的逻辑基石&#xff0c…

【51单片机】【protues仿真】基于51单片机PM2.5空气质量检测系统

目录 一、主要功能 二、使用步骤 三、硬件资源 四、软件设计 五、实验现象 一、主要功能 1、LCD1602液晶显示 2、按键​设置阈值 3、PM2.5大于阈值时启动声光警报 二、使用步骤 基于51单片机的PM2.5空气质量检测系统通常采用STC89C51/52作为核心控制器,结合…

【目录-单选】鸿蒙HarmonyOS开发者基础

用哪一种装饰器修饰的组件可作为页面入口组件?Look at the answer下面是ArkTS中类名、枚举名推荐的代码风格是 Look at the answer向服务器提交表单数据,以下哪种请求方式比较合适 Look at the answer使用http发起网络请求,需要以下哪种权限&…

maven【maven】技术详解

MavenMaven的本质是项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM)Project Object Model:项目对象管理模型作用: 项目构建:提供标准的、跨平台的自动化项目构建方式依赖管理:方…

【操作系统-Day 25】死锁 (Deadlock):揭秘多线程编程的“终极杀手”

Langchain系列文章目录 01-玩转LangChain:从模型调用到Prompt模板与输出解析的完整指南 02-玩转 LangChain Memory 模块:四种记忆类型详解及应用场景全覆盖 03-全面掌握 LangChain:从核心链条构建到动态任务分配的实战指南 04-玩转 LangChai…

【嵌入式C语言】七

8.4函数的声明和定义声明一个函数意味着向编译器描述函数名、返回值、参数个数和类型,但并不会为函数分配存储空间定义一个函数意味着在声明变量的同时还要有具体的实现,并且会为函数分配存储空间8.5多源文件的函数声明和定义8.6预处理指令#Include#incl…

hardhat3 源神 -- 启动!

Hardhat 项目开发环境搭建完整指南 1. 从 GitHub 下载项目 # 使用 SSH 方式克隆(需要配置 SSH key) git clone gitgithub.com:NomicFoundation/hardhat.git# 或使用 HTTPS 方式 git clone https://github.com/NomicFoundation/hardhat.git# 进入项目目录…

遇到 Git 提示大文件无法上传确实让人头疼

遇到 Git 提示大文件无法上传确实让人头疼,但别担心,我们可以一步步来解决。为了让你更清晰地了解整个流程,我先用一个表格来概括主要步骤:步骤核心操作关键命令/工具示例 (用于删除历史中的大文件)1. 定位大文件使用 Git 命令或工…

机器人控制器开发(传感器层——奥比大白相机适配)

编译OrbbecSDK_ROS2的代码 执行命令 colcon buildros2 launch orbbec_camera dabai.launch.py问题1: 运行时报错: [component_container-1] [ERROR] [1757153916.450795107] [camera.camera_container]: Failed to load library: Could not load library…

C语言(长期更新)第15讲 指针详解(五):习题实战

C语言(长期更新)第15讲 指针详解(五):习题实战 跟着潼心走,轻松拿捏C语言,困惑通通走,一去不回头~欢迎开始今天的学习内容,你的支持就是博主最大的动力。博主主页&#…

数据仓库概要

什么是数据仓库? 数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。 核心特征 1. 面向主题 数据仓库围绕核心业务主题(如客户、产品、销售、财务)来组织数据,而不是围绕具体的…

python库 Py2exe 的详细使用(将 Python 脚本变为Windows独立软件包)

更多内容请见: python3案例和总结-专栏介绍和目录 文章目录 一、Py2exe 概述 1.1 Py2exe介绍 1.2 Py2exe安装 1.3 替代工具推荐 二、基础使用 2.1 编写打包脚本 2.2 执行打包命令 2.3 完整案例 2.4 配置选项详解 2.5 构建和分发 三、高级配置 3.1 包含隐藏导入 3.2 处理特殊包…

CuTe C++ 简介02,gemm_device cuda kernel 的实现

《CuTe C 简介01,从示例开始 》 中,最后看到了 计算 gemm 的cuda kernel,使用 NVIDIA CUTLASS 的 CUTe (CUDA Tile) 库实现的高性能 GEMM (通用矩阵乘法) CUDA kernel。接下来解释一下这个内核的各个部分。文末再贴一遍代码,方便查…

万代《宝可梦》主题新品扭蛋公开!史上最大尺寸

使用jQuery的常用方法与返回值分析 jQuery是一个轻量级的JavaScript库,旨在简化HTML文档遍历和操作、事件处理以及动画效果的创建。本文将介绍一些常用的jQuery方法及其返回值,帮助开发者更好地理解和运用这一强大的库。 1. 选择器方法 jQuery提供了多种…

【FastDDS】Layer Transport ( 05-Shared Memory Transport)

6.4 共享内存传输 共享内存(SHM)传输依靠主机操作系统提供的共享内存机制,实现了在同一处理单元/机器上运行的实体之间的快速通信。注意 Fast DDS 利用域参与者(DomainParticipant)的 GuidPrefix_t 来识别在同一主机上…

记 2025/9/6

人工智能常见的模型按照处理问题分为6大类:处理权重问题的权重模型、处理状态问题的状态模型、处理序列问题的问题模型、处理表示问题的表示模型、处理相似度的相似模型、处理分类问题的分类模型。权重是计算特定状态下事物的重要性。状态问题是刻画权重动态变化的过…

开启Python之路,第一节学习大纲-从入门到进阶

前端开启Python之路,前端有没有必要卷后端技术,欢迎各位大神批评指正 第一阶段:基础入门 (打好根基) 目标: 理解编程基本概念,掌握 Python 核心语法,能编写简单的脚本程序。 1、环境搭建与开发工具 安装 Py…

webshell及冰蝎双击无法打开?

什么是webshell? web:万维网 shell:是指一种应用程序,为用户和系统之间建立连接,通过这个界面访问操作系统内核的服务 webshell:是以asp、aspx、php、jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称做…

【星闪】Hi2821 | PWM脉宽调制模块 + 呼吸灯例程

1. 简介PWM(Pulse Width Modulation),全称脉宽调制,通过对一系列脉冲的宽度进行调制,等效出所需波形。即对模拟信号电平进行数字编码,通过调节频率、占空比的变化来调节信号的变化。一个 PWM 周期内由一段高…