当前位置: 首页 > 知识库问答 >
问题:

在使用Python和LibreOffice将pdf转换为docx和doc转换为docx时遇到问题

公冶谦
2023-03-14

我花了大量的时间试图确定到底出了什么问题,使用LibreOffice将pdf转换为docx(以及doc转换为docx)的代码。

我使用了两个windows run接口来测试运行一些我发现相关的代码,也尝试了python,但两者都不起作用。

我在Windows上安装了LibreOffice v6.0.2。

我一直在使用此代码的变体尝试将某些pdf文件转换为与特定pdf文件不相关的docx:

    import subprocess
    lowriter='C://Program Files/LibreOffice/program/swriter.exe'
    subprocess.run('{} --invisible --convert-to docx --outdir "{}" "{}"'
                   .format(lowriter,'dir',
                                
    'filepath.pdf',),shell=True)

我已经在windows操作系统上的运行界面和使用上述代码的python中再次尝试了代码,但没有成功。我也尝试过不使用outdir,以防万一我写错了,但总是得到1:

    CompletedProcess(args='C://Program Files/LibreOffice/program/swriter.exe 
    --invisible --convert-to docx --outdir "{dir}" 
    {filepath.pdf}"', returncode=1)

dir和filepath.pdf是我放置的占位符。

我在文档到docx的转换中也有类似的问题。

共有2个答案

乜元魁
2023-03-14

在python中安装pdf2docx包

source      = r'C:\Users\sdDesktop\New Project/Document2.pdf'
destination = r'C:\Users\sd\Desktop\New Project/sample_6.docx'

def Converter_pdf2docx(source,destination):
    pdf_file  = source
    docx_file = destination
    cv = Converter(pdf_file)
    cv.convert(docx_file, start=0, end=None)
    cv.close()
曹超
2023-03-14

这里有许多问题。您应该首先从@CristiFati注释的命令行中获得--trans-to调用,然后在python中实现。

这是在我的系统上工作的代码。路径中没有//,需要引号。此外,该文件夹在我的系统上是LibreOffice 5。

import subprocess
lowriter = 'C:/Program Files (x86)/LibreOffice 5/program/swriter.exe'
subprocess.run(
    '"{}" --convert-to docx --outdir "{}" "{}"'
    .format(lowriter,'dir', 'filepath.doc',), shell=True)

最后,看起来不支持从PDF转换为DOCX。LibreOffice Draw可以打开PDF文件并保存为ODG格式。

编辑:

下面是从PDF转换的工作代码。我升级到LO 6,因此路径中不再需要版本号(“LibreOffice 5”)。

import subprocess
loffice = 'C:/Program Files/LibreOffice/program/soffice.exe'
subprocess.run(
    '"{}" --convert-to odg --outdir "{}" "{}"'
    .format(loffice,'dir', 'filepath.pdf',), shell=True)
 类似资料:
  • 我正在努力寻找用Python将PDF文件转换为.docx文件的方法。 我见过其他与此相关的帖子,但在我的情况下,它们似乎都不正常。 我特别使用 这给了我输出[1],但在我的文件夹中找不到任何.docx文档。 我已经安装了LibreOffice 5.3。 有什么线索吗? 提前谢谢你!

  • 我需要使用python将.doc和.docx文件转换为.pdf。我已经看到了一些可用的答案,但它们使用的是comtypes和OpenWordApplication。我不能那样做。我寻求的是一种使用一些python库的方法,这些库保留字体、表格、标题大小和图像等,而不打开MS Word或LibreOffice或类似的东西,如果需要的话,将.doc和.docx文件转换为某种中间格式(然后将该格式转换为

  • 问题内容: 我正在寻找一种使用PHP将Word和Excel文件转换为PDF的方法。 这样做的原因是,我需要能够将各种格式的文件合并到一个文档中。我知道,如果我能够将所有内容转换为PDF,则可以使用PDFMerger(使用fpdf)将PDF合并为一个文件。 我已经能够从其他文件类型/图像创建PDF,但仍受Word Docs困扰。(我想我可以使用已经用于从html代码创建Excel文件的PHPExce

  • 我正在处理一个问题,试图开发一个网络应用程序,其中一部分将上传的docx文件转换为pdf文件(经过一些处理)。使用python-docx和其他方法,我不需要安装word的windows机器,甚至不需要在linux上安装libreoffice,进行大部分处理(我的网络服务器是pythonAnywhere-linux,但没有libreoffice,也没有sudo或codeapt安装权限。但是转换成pd

  • 我在运行时生成了一个docx文档,我想将其转换为PDF,而无需实际将文件保存在本地 PdfConverter无效。我怎样才能做到这一点?

  • 我有1000. docx文件,我想转换成pdf,所以我写了一个程序来做到这一点,但我永远无法通过所有1000文件之前抛出一个错误。我使用。我正在使用LibreOffice4.2.0.4和JODConver2.2.2。这是我的转换代码(在此之前,我只是迭代目录中的所有. docx文件): 在抛出错误之前,我总是可以转换至少50个文件左右;这是我遇到的错误之一: 其他错误示例包括: 和 和 和 在每种