在Mac OS X Finder中打印.docx文件的命令行等效方法

3
我有一个应用程序需要从命令行打印MS Word .docx文件。背景是,这是在Snow Leopard Server上使用CUPS-PDF作为默认打印机。如果在Finder中单击一次.docx文件进行选择,然后从文件菜单中选择打印,它将打开安装了MS Word(2011)的程序,并将文件以PDF格式打印到队列(通过CUPS)。完美!现在,相应的BASH命令是什么??
我尝试过使用lpr,但它似乎只适用于纯文本文件。我尝试过OPEN,它可以打开MS Word,但我没有看到打印选项。我还尝试了常见的MS Office替代品(OpenOffice和LibreOffice),它们都可以工作,但生成的PDF布局与Word生成的差距太大了,这是不可接受的。我试图使用osascript=AppleScript=,它可以工作,但是有时会出现问题-它不总是触发。
我的挑战是我正在使用PHP程序从模板外部创建.docx,只需要将其转换为PDF并保留所有格式。
5个回答

5
请查看此处提供的launch,链接为:http://sabi.net/nriley/software/,同时也可以使用homebrew或macports轻松安装。
它类似于open,但添加了一些额外功能,包括:
-p       Ask application(s) to print document(s).

1
最终我使用launch和PDFwriter的组合来使这个工作正常运行。 - TJChambers
请注意,您可以使用appswitch(在同一位置提供 - 免责声明,我编写了launchappswitch)更优雅地退出应用程序,例如:appswitch -qi com.microsoft.Word。这样,您就不必再与崩溃报告器打交道了 :-) - Nicholas Riley
我发现 launch -p 可以在 Chrome 中打开文档,但不会触发打印对话框的显示。 - intuited
2
这太棒了。@NicholasRiley,感谢您为那些命令行工具做出的贡献,您是我的英雄。 - Paul Gowder
@TJChambers,您能否解释一下您是如何解决这个问题的? - Caterina

3
如果您安装了自动化操作“转换Word文档格式”,则可以编写自动化工作流程,然后尝试使用命令行工具automator(请参阅man automator)。
更多信息: 另一个选择可能是使用PDFwriter for Mac(托管在sourceforge上)或CUPS-PDF for Mac OS X(由codepoetry开发),然后使用命令行...
 # 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
在Mac OS X上将MS Word .docx文档转换为PDF文件的另一种方法是使用随Mac OS X一起提供的qlmanage命令。可以使用qlmanage将.docx文档转换为包含Preview.html文件、PreviewProperties.plist文件和一些附件文件的目录。在对Preview.html进行微调后,可以使用wkhtmltopdf(或wkpdfprince)生成PDF文件。
更多信息请参见: - 使用QuickLook创建PDF文件 - doc2pdf

2

以下是提问者的解决方案:

using launch and PDFwriter with the Ruby Script below.

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

0
你可以使用 docx2pdf 工具将 docx 文件转换为 PDF,并保留所有格式。它适用于 macOS 和 Windows 系统,但需要安装 Microsoft Word。
pip install docx2pdf
docx2pdf input.docx output.pdf

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


也许您可以解释一下如何在Linux上安装Microsoft Word。仓库页面没有提供相关信息。 - TJChambers
@TJChambers 我本意是写macOS和Windows,而不是Linux-我已经更新了答案。该工具试图进行无损、忠实的转换,因此需要安装Microsoft Word。也许你可以使用Wine或Crossover在Linux上安装Word? - Al Johri
@AlJohri 能否通过 docx2pdf 调整页面边距和整体布局? - Caterina
@AlJohri docx2pdf可以调整页面边距和整体布局吗? - Caterina

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接