我正在制作一个doc转换程序,我发生了如下错误:

我是编程中的乞丐,我不知道如何修复它,下面我粘贴python代码:
from flask import Flask
from flask import request, render_template, redirect, url_for, send_file
import os
from typing import Tuple
from docx2pdf import convert
#from tkinter import Tk,messagebox
#from tkinter import _tkinter
UPLOADER_FOLDER = ''
app = Flask(__name__)
app.config['UPLOADER_FOLDER'] = UPLOADER_FOLDER
@app.route('/')
@app.route('/index', methods=['GET', 'POST'])
def index():
if request.method == "POST":
def docx2pdf(input_file: str, output_file: str, pages: Tuple = None):
if pages:
pages = [int(i) for i in list(pages) if i.isnumeric()]
result = convert(docx_file=input_file, pdf_file=output_file, pages=pages)
summary = {
"File": input_file, "Pages": str(pages), "Output File": output_file
}
print("\n".join("{}:{}".format(i, j) for i, j in summary.items()))
return result
file = request.files['filename']
if file.filename!= '':
file.save(os.path.join(app.config['UPLOADER_FOLDER'], file.filename))
input_file = file.filename
output_file = r"hello.pdf"
docx2pdf(input_file, output_file)
pdf = input_file.split(".")[0]+".pdf"
print(pdf)
lis=pdf.replace(" ", "=")
return render_template("docx.html", variable=lis)
return render_template("index.html")
@app.route('/docx', methods=['GET', 'POST'])
def docx():
if request.method=="POST":
lis = request.form.get('filename', None)
lis = lis.replace("=", " ")
return send_file(lis, as_attachment=True)
return render_template("index.html")
if __name__=="__main__":
app.debug = True
app.run()模板目录中有两个名为index.html和docx.html的模板,在Pycharm中如下所示:

有人知道我犯了什么错吗?谢谢
发布于 2022-06-27 07:27:43
您将参数传递到convert方法中,如下所示:
result = convert(docx_file=input_file, pdf_file=output_file, pages=pages)但是docx2pdf convert方法的定义如下:
def convert(input_path, output_path=None, keep_active=False):正如您所看到的,没有名为docx_file的参数,因此您会得到该参数意外的错误。要解决这个问题,要么干脆去掉名称:
result = convert(input_file, output_file)或使用正确的参数名称:
result = convert(input_path=input_file, output_path=output_file)我还看到您传递了一个名为pages的变量。我不熟悉这个库,所以我不能百分之百地确定,但是我没有在任何地方找到一个参数名为pages的convert函数。
由于您是在PyCharm中,右键单击convert函数并选择Go到->声明来查看该方法。您应该能够看到该函数的功能。这个库的文档有限,因此您必须依赖于阅读代码才能理解。
https://stackoverflow.com/questions/72768203
复制相似问题