首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python docx2pdf AttributeError: Open.SaveAs

Python docx2pdf AttributeError: Open.SaveAs
EN

Stack Overflow用户
提问于 2022-02-28 08:59:45
回答 3查看 891关注 0票数 1

我试图使用docx2pdf库将docx文件转换为pdf,使用以下代码:

代码语言:javascript
复制
from docx2pdf import convert

convert("generated.docx")

正如所写的这里。但我有个错误:

代码语言:javascript
复制
Traceback (most recent call last):
  File "c:\Users\user\Desktop\folder\script.py", line 29, in <module>
    convert("generated.docx")
  File "C:\Users\user\AppData\Local\Programs\Python\Python310\lib\site-packages\docx2pdf-0.1.8-py3.10.egg\docx2pdf\__init__.py", line 106, in convert
    return windows(paths, keep_active)
  File "C:\Users\user\AppData\Local\Programs\Python\Python310\lib\site-packages\docx2pdf-0.1.8-py3.10.egg\docx2pdf\__init__.py", line 33, in windows
    doc.SaveAs(str(pdf_filepath), FileFormat=wdFormatPDF)
  File "C:\Users\user\AppData\Local\Programs\Python\Python310\lib\site-packages\win32com\client\dynamic.py", line 639, in __getattr__
    raise AttributeError("%s.%s" % (self._username_, attr))
AttributeError: Open.SaveAs

我还尝试过使用comtypespywin32进行转换,但是我得到了相同的错误。我从这里获取代码。

代码语言:javascript
复制
import sys
import comtypes.client

wdFormatPDF = 17

in_file = os.path.abspath("generated.docx")
out_file = os.path.abspath("generated.pdf")

word = comtypes.client.CreateObject('Word.Application')
doc = word.Documents.Open(in_file)
doc.SaveAs(out_file, FileFormat=wdFormatPDF)
doc.Close()
word.Quit()
---------------------------------
Traceback (most recent call last):
  File "c:\Users\user\Desktop\folder\script.py", line 45, in <module>
    doc.SaveAs(out_file, FileFormat=wdFormatPDF)
_ctypes.COMError: (-2147418111, 'Call was rejected by callee.', (None, None, None, 0, None))
代码语言:javascript
复制
import sys
import win32com.client

wdFormatPDF = 17

in_file = os.path.abspath("generated.docx")
out_file = os.path.abspath("generated.pdf")

word = win32com.client.Dispatch('Word.Application')
doc = word.Documents.Open(in_file)
doc.SaveAs(out_file, FileFormat=wdFormatPDF)
doc.Close()
word.Quit()
---------------------------------
Traceback (most recent call last):
  File "c:\Users\user\Desktop\folder\script.py", line 46, in <module>
    doc.SaveAs(out_file, FileFormat=wdFormatPDF)
  File "C:\Users\user\AppData\Local\Programs\Python\Python310\lib\site-packages\win32com\client\dynamic.py", line 639, in __getattr__
    raise AttributeError("%s.%s" % (self._username_, attr))
AttributeError: Open.SaveAs

如何纠正此错误?或者请提出另一种将docx转换为pdf的方法。提前谢谢你

EN

回答 3

Stack Overflow用户

发布于 2022-04-27 11:23:05

改变:

代码语言:javascript
复制
word = win32com.client.Dispatch('Word.Application')

代码语言:javascript
复制
import pythoncom
word = win32com.client.Dispatch('Word.Application', pythoncom.CoInitialize())
票数 1
EN

Stack Overflow用户

发布于 2022-02-28 09:35:37

代码语言:javascript
复制
from docx2pdf import convert

inputFile = "document.docx"
outputFile = "document2.pdf"
file = open(outputFile, "w")
file.close()

convert(inputFile, outputFile)

应该首先创建输出文件。

票数 0
EN

Stack Overflow用户

发布于 2022-12-02 07:42:14

我对这个问题的观察之一是,当在Microsoft中打开word文档时,当我们尝试为同一个Word文件执行转换()时,即发生此问题时。以防万一,如果文件打开,请关闭它并尝试。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71292585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档