如何将.doc或.docx批量转换为.pdf


18

我需要在不使用GUI的情况下将一组.doc.docx文件批量转换为.pdfin终端。

如果我可以批量处理多个文件,将很有帮助。

我还想维护尽可能多的元数据。



最好的答案是安装另一个应用程序并使用“ pdf打印机”。使用CLI方法有什么问题,还是我会丢失元数据
Ringtail 2012年

我没有说oowriter,gscan2pdf或任何其他GUI方法有什么问题。我一直在寻找CLI,然后打算将其合并到.bashrc中,这样就可以pdf ~/some_.docx了。谢谢你的建议。
Ringtail 2012年

1
另请参阅此答案
塔卡特2012年

@Takkat-这个答案对我来说是重复的区域。
RobotHumans 2012年

Answers:


28

lowriter可以用作命令行工具(lowriter是LibreOffice的一部分)

lowriter --convert-to pdf *.doc
convert /home/bodhi/Documents/testdoc2.doc -> /home/bodhi/Documents/testdoc2.pdf using writer_pdf_Export
convert /home/bodhi/Documents/testdoc.doc -> /home/bodhi/Documents/testdoc.pdf using writer_pdf_Export

evince testdoc.pdf

我没有Windows,因此testdoc从这里下载

www.mltweb.com/prof/testdoc.doc


libreofice抛出使用这种方法的错误,没有找到/home/user/documents/test.docx嗒嗒的抱怨
猫熊

您使用了什么命令?你有一个test.docx吗?

1
对我来说很完美!当心从命令行使用“空格”字符...当您到达空格字符时,只需按“ tab”;)
Pitto 2012年

1
lowriter无法正确转换docx文件。至少并非总是如此。
怀疑的Jule 2013年

1
当我第一次lowriter在Ubuntu 12.04上尝试您建议的命令时,它打开了一个启动窗口并冻结。我用Cc杀死了它,然后在没有DISPLAY变量的情况下再次尝试。这次它第一次打印出有关缺少显示的错误,但是转换文档没有任何问题。命令只能在没有DISPLAY环境变量的情况下工作才是预期的行为吗?
卡巴斯德(Kasperd),2014年


3

我使用以下脚本:

for f in *.doc
do
lowriter --headless --convert-to pdf "$f"
done

--headless将阻止Libreoffice打开100多个文件,如果您对包含大量.doc文件的目录进行尝试,最终将导致崩溃


0

我认为,最好的方法是使用unoconv

首先安装软件包:

sudo apt install unoconv

然后使用以下命令转换为pdf:

unoconv -f pdf XXYY.docx

(替换XXYY.docx为文件名。)


为什么您会选择unoconv而不是其他选项?
gatorback
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.