2012-01-16 43 views
2

我有一个应用程序需要从命令行打印MS Word .docx文件。背景是在Snow Leopard Server上使用CUPS-PDF作为默认打印机。如果在查找器中,我点击一次.docx文件来选择,然后从文件菜单中选择打印,它会打开MS Word(2011已安装)并以PDF格式将文件打印到假脱机文件(通过CUPS)。完善!现在什么是BASH命令相当于?命令行等同于从Mac OS X发现者打印.docx文件

我已经尝试过lpr,它似乎只能使用直接的文本文件。我曾尝试打开哪些打开MS Word,但我没有看到“打印”选项打开。我已经尝试了通常的MS Office等价物(OpenOffice和LibreOffice),它们都可以工作,但生成的PDF布局与Word生成的格式相差甚远,因此它是可耻的不可接受的。我尝试过使用osascript = AppleScript =它可以工作,但是不稳定 - 它并不总是触发。

我的挑战是我使用PHP程序在模板外创建.docx文字,只需将其转换为PDF即可保留所有格式。

回答

3

launch看看,请访问:http://sabi.net/nriley/software/,也容易使用自制或MacPorts的安装。

它就像open,但增加了一些额外的功能,包括从问题中提取

-p  Ask application(s) to print document(s). 
+0

我结束了使用与发射的一个组合和'PDFwriter',使这项工作。 – TJChambers

+0

请注意,您可以使用'appswitch'(在同一位置提供免责声明,我写了'launch'和'appswitch')以更优雅的方式退出应用程序,例如'appswitch -qi com.microsoft.Word'。这样,你不必与碰撞记者竞争:-) –

+0

我发现'launch -p'在Chrome中打开文档,但不会触发显示打印对话框。 – intuited

3

如果您拥有的Automator动作"Convert Format of Word Document"安装,你可以写一个的Automator工作流,然后尝试使用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 
0

另外一个微软Word的.docx文档转换为在Mac OS X中的PDF文件的方式是使用附带的Mac OS X.

qlmanage可以用来转化的.docx文档转换为目录qlmanage命令其中包含一个Preview.html文件,一个PreviewProperties.plist文件以及可能包含一些转储的附件文件。稍微调整Preview.html后,可以使用wkhtmltopdf(或wkpdfprince)生成PDF文件。

欲了解更多信息,请参阅:

1

OP的解决方案:使用发射和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