在隐藏窗口模式下,应用程序无法正确访问标准输出和标准错误输出流,就会导致这个错误。
因为docx2pdf引用了tqdm库,隐藏窗口模式打包后,无法显示进度条。
只需要将源码中的tqdm库去掉就OK了。
if paths["batch"]:
# for docx_filepath in tqdm(sorted(Path(paths["input"]).glob("*.docx"))):
for docx_filepath in sorted(Path(paths["input"]).glob("*.docx")):
pdf_filepath = Path(paths["output"]) / (str(docx_filepath.stem) + ".pdf")
doc = word.Documents.Open(str(docx_filepath))
doc.SaveAs(str(pdf_filepath), FileFormat=wdFormatPDF)
doc.Close(0)
else:
# pbar = tqdm(total=1)
docx_filepath = Path(paths["input"]).resolve()
pdf_filepath = Path(paths["output"]).resolve()
doc = word.Documents.Open(str(docx_filepath))
doc.SaveAs(str(pdf_filepath), FileFormat=wdFormatPDF)
doc.Close(0)
# pbar.update(1)