我正在Matlab中编写代码,该代码执行一些计算,并以.doc格式写出包含表格和结果的报告。我想将生成的.doc报告保存为PDF或不可编辑的文字格式,以便报告未经编辑。我正在使用WritetoWordFromMatlab()
函数来写出文件。
我正在寻找使用actxserver
的命令,它会将我的文件保存为PDF。有没有办法做到这一点?
答案 0 :(得分:2)
在Office 2007或2010中,您可以使用Document.ExportAsFixedFormat
方法,将wdExportFormatPDF
作为ExportFormat
参数传递。在Matlab中使用actxserver
启动Word,让它打开你的.doc文件,并用ExportAsFixedFormat
写出.pdf。或者使用writetowordfrommatlab
来直接将其保存为PDF格式。
这是ExportAsFixedFormat
上的doco:http://msdn.microsoft.com/en-us/library/bb256835%28v=office.12%29.aspx。
以下是一个示例:
filename = fullfile(pwd, 'myfile.docx');
pdf_filename = fullfile(pwd, 'myfile.pdf');
% Create COM server
actx_word = actxserver('Word.Application');
actx_word.Visible = true;
% Open existing document
word_handle = invoke(actx_word.Documents,'Open',filename);
% Save as PDF
invoke(word_handle,'ExportAsFixedFormat',pdf_filename,'wdExportFormatPDF');
% Close the window
invoke(word_handle,'Close');
% Quit Word
invoke(actx_word,'Quit');
% Close Word and terminate ActiveX
delete(actx_word);