我有一个应用程序需要从命令行打印MS Word .docx文件。背景是在Snow Leopard服务器上,CUPS-PDF作为默认打印机。如果在查找器中我单击.docx文件上的一次选择,然后从文件菜单中选择打印它打开MS Word(2011已安装)并以PDF格式将文件打印到假脱机(通过CUPS)。完善!现在什么是BASH命令等同于???
我尝试过lpr,它似乎只适用于直接文本文件。我试过OPEN哪个OPENS MS Word,但我看不到打开的“打印”选项。我尝试了通常的MS Office等效(OpenOffice和LibreOffice),它们都可以工作,但生成的PDF布局与Word生成的格式相差甚远,这是令人遗憾的不可接受的。我尝试使用osascript = AppleScript =但它有点不稳定 - 它并不总是触发。
我的挑战是我使用PHP程序在模板外创建.docx,只需要将其转换为PDF保留所有格式。
答案 0 :(得分:4)
查看此处提供的launch
:http://sabi.net/nriley/software/,也可以使用自制软件或macport轻松安装。
就像open
,但增加了一些额外的功能,包括
-p Ask application(s) to print document(s).
答案 1 :(得分:3)
如果您安装了Automator操作"Convert Format of Word Document"
,则可以编写Automator工作流程,然后尝试使用automator
命令行工具(请参阅man automator
)。
更多信息:
另一种选择可能是使用PDFwriter for Mac
(在sourceforge上托管)或CUPS-PDF for Mac OS X
(通过代码诗),然后使用命令行......
# cf. http://www.mac-forums.com/forums/os-x-apps-games/212770-how-print-files-preview-pdf-command-line.html
lpstat -v | awk '{ print $3; }'
lpr -P <printer name> /path/to/file
答案 2 :(得分:1)
从问题中提取OP的解决方案:
使用下面的Ruby脚本启动和PDFwriter。
require 'rb-fsevent' paths = ['/private/var/hosts/toPDF'] options = {:latency => 5, :no_defer => true } fsevent = FSEvent.new fsevent.watch paths, options do |directories| Dir['/private/var/hosts/toPDF/*.docx'].each do |f| puts 'processing '+f system( "launch -p "+f) end sleep 30 system("killall -u tj 'Microsoft Word'") system("killall -u tj 'Microsoft Error Reporting'") end fsevent.run
答案 3 :(得分:0)
在Mac OS X上将MS Word .docx文档转换为PDF文件的另一种方法是使用Mac OS X附带的qlmanage
命令。
qlmanage
可用于将.docx文档转换为包含Preview.html
文件,PreviewProperties.plist
文件以及某些转储附件文件的目录。稍微调整Preview.html
后,可以使用wkhtmltopdf
(或wkpdf
或prince
)生成PDF文件。
有关详细信息,请参阅:
答案 4 :(得分:0)
您可以使用docx2pdf
工具将docx文件转换为pdf,并保留所有格式。它可以在macOS和Linux上运行,并且需要安装Microsoft Word。
pip install docx2pdf
docx2pdf input.docx output.pdf
免责声明:我写了docx2pdf工具。 https://github.com/AlJohri/docx2pdf