命令行等效于从Mac OS X finder打印.docx文件

时间:2012-01-16 12:17:24

标签: macos bash pdf printing ms-word

我有一个应用程序需要从命令行打印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保留所有格式。

5 个答案:

答案 0 :(得分:4)

查看此处提供的launchhttp://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(或wkpdfprince)生成PDF文件。

有关详细信息,请参阅:

答案 4 :(得分:0)

您可以使用docx2pdf工具将docx文件转换为pdf,并保留所有格式。它可以在macOS和Linux上运行,并且需要安装Microsoft Word。

pip install docx2pdf
docx2pdf input.docx output.pdf

免责声明:我写了docx2pdf工具。 https://github.com/AlJohri/docx2pdf