<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <link>http://www.mathworks.nl/matlabcentral/newsreader/view_thread/317402</link>
    <title>MATLAB Central Newsreader - Save as pdf Microsoft Excel from Matlab</title>
    <description>Feed for thread: Save as pdf Microsoft Excel from Matlab</description>
    <language>en-us</language>
    <copyright>&amp;copy;1994-2013 by MathWorks, Inc.</copyright>
    <webmaster>webmaster@mathworks.com</webmaster>
    <generator>MATLAB Central Newsreader</generator>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <ttl>60</ttl>
    <image>
      <title>MathWorks</title>
      <url>http://www.mathworks.nl/images/membrane_icon.gif</url>
    </image>
    <item>
      <pubDate>Tue, 28 Feb 2012 10:26:10 +0000</pubDate>
      <title>Save as pdf Microsoft Excel from Matlab</title>
      <link>http://www.mathworks.nl/matlabcentral/newsreader/view_thread/317402#868264</link>
      <author>audric</author>
      <description>Hello,&lt;br&gt;
&lt;br&gt;
I need to export some sheets of an Excel file into a pdf file. This has to be done very often so I would like to automate it from Matlab (part of a larger application).&lt;br&gt;
&lt;br&gt;
From this page &lt;a href="http://www.mathworks.nl/help/techdoc/ref/f16-5702.html#f16-14631"&gt;http://www.mathworks.nl/help/techdoc/ref/f16-5702.html#f16-14631&lt;/a&gt; I see that there is no "save as" function for office documents. My idea is maybe to write a vba code with as arguments the names of the sheet that would be called from my Matlab application. Is this possible to call vba code from Matlab?&lt;br&gt;
&lt;br&gt;
I have found this following code from this site https://www.quantnet.com/forum/threads/interface-between-matlab-vba-excel.2090/&lt;br&gt;
&lt;br&gt;
%Open a COM server on Matlab&lt;br&gt;
Excel = actxserver('Excel.Application');&lt;br&gt;
&lt;br&gt;
Workbook = Excel.Workbooks.Open('c:\Code\Book1.xls');&lt;br&gt;
x = fseminf(@(x) callFunc1(x,Excel),x0,ntheta,seminfcon);&lt;br&gt;
&lt;br&gt;
function x = callFunc1(param,Excel)&lt;br&gt;
&lt;br&gt;
x=Excel.Run('Func1',param);&lt;br&gt;
Excel.Quit;&lt;br&gt;
&lt;br&gt;
Is this possible? And how? If there is another way to do it, I am open to everything.&lt;br&gt;
&lt;br&gt;
Thanks a lot in advance !</description>
    </item>
    <item>
      <pubDate>Tue, 28 Feb 2012 16:04:13 +0000</pubDate>
      <title>Re: Save as pdf Microsoft Excel from Matlab</title>
      <link>http://www.mathworks.nl/matlabcentral/newsreader/view_thread/317402#868305</link>
      <author>audric</author>
      <description>Apparently I can use one the following :&lt;br&gt;
&lt;br&gt;
Excel workbook.SaveAs&lt;br&gt;
&lt;br&gt;
or&lt;br&gt;
&lt;br&gt;
Excel workbook.Printout&lt;br&gt;
&lt;br&gt;
Anyone can help me to define the parameters?&lt;br&gt;
&lt;br&gt;
Thanks in advance</description>
    </item>
    <item>
      <pubDate>Wed, 29 Feb 2012 13:08:11 +0000</pubDate>
      <title>Re: Save as pdf Microsoft Excel from Matlab</title>
      <link>http://www.mathworks.nl/matlabcentral/newsreader/view_thread/317402#868387</link>
      <author>audric</author>
      <description>I am now using&lt;br&gt;
&lt;br&gt;
&amp;nbsp;Excel.ActiveWorkbook.PrintOut(1,1,1,'False', 'PDFCreator', 'False', 'False', filename)&lt;br&gt;
&lt;br&gt;
with PDFCreator installed on my laptop.&lt;br&gt;
&lt;br&gt;
A pdf is created on the right place but I cannot read it.&lt;br&gt;
&lt;br&gt;
Can someone help me?</description>
    </item>
    <item>
      <pubDate>Fri, 09 Mar 2012 17:41:18 +0000</pubDate>
      <title>Re: Save as pdf Microsoft Excel from Matlab</title>
      <link>http://www.mathworks.nl/matlabcentral/newsreader/view_thread/317402#869513</link>
      <author>audric</author>
      <description>I am the only one to participate to this thread but still I continue to ask for help.&lt;br&gt;
&lt;br&gt;
I can print Excel files selecting my sheets without a problem but I cannot call the PDFCreator to get my pdf. I wonder if I should not add something to be able to use PDFCreator saving functionalities&lt;br&gt;
&lt;br&gt;
I give you my latest code&lt;br&gt;
&lt;br&gt;
sheets = {'page1', 'page2', 'page3'}&lt;br&gt;
k = 1;&lt;br&gt;
for i = ExcelWorkbook.Sheets.count&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;aaa = get(ExcelWorkbook.Sheets, 'item', i);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bbb = get(aaa, 'Name'); &lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if strcmp(bbb, sheets(k))&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;invoke(aaa, 'select', 'false');&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if k &amp;lt; numel(sheets)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;k = k + 1;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end&lt;br&gt;
end &lt;br&gt;
Excel.ActiveWindow.SelectedSheets.PrintOut([],[],[],'False', 'PDFCreator', 'True', 'False', filenamepdf);&lt;br&gt;
&lt;br&gt;
The pdf produced is corrupted. I have played already with the false and true options. With default printer I can print without problem. With preview mode I can select the name of my file from a window and my pdf is ok (if I don t give a filenamepdf).&lt;br&gt;
&lt;br&gt;
Thanks for your help</description>
    </item>
    <item>
      <pubDate>Fri, 09 Mar 2012 21:46:00 +0000</pubDate>
      <title>Re: Save as pdf Microsoft Excel from Matlab</title>
      <link>http://www.mathworks.nl/matlabcentral/newsreader/view_thread/317402#869530</link>
      <author>ImageAnalyst</author>
      <description>Do you have Adobe Acrobat installed?  Acrobat installs a PDF toolbar&lt;br&gt;
in MS office apps.  If so you could probably instruct Excel (via&lt;br&gt;
ActiveX commands) to save the workbook as a PDF (via the Acrobat Excel&lt;br&gt;
plugin).  I haven't done it but it seems reasonable.</description>
    </item>
    <item>
      <pubDate>Thu, 15 Mar 2012 15:49:17 +0000</pubDate>
      <title>Re: Save as pdf Microsoft Excel from Matlab</title>
      <link>http://www.mathworks.nl/matlabcentral/newsreader/view_thread/317402#870095</link>
      <author>audric</author>
      <description>Yes but I don t see how to use ActiveX commands with PDFCreator and Adobe Acrobat is not free and not an option.&lt;br&gt;
&lt;br&gt;
Should I start with something like this &lt;br&gt;
&lt;br&gt;
pdf = actxserver('PDFCreator.clsPDFCreator');  ???&lt;br&gt;
&lt;br&gt;
I have also found this VBA code but I cannot adapt it&lt;br&gt;
&lt;br&gt;
Sub PrintToPDF_Early()&lt;br&gt;
'Author       : Ken Puls ([url=&lt;a href="http://www.excelguru.ca"&gt;http://www.excelguru.ca&lt;/a&gt;]Excelguru.ca | Tips and pointers for Excel and other MS Office applications[/url])&lt;br&gt;
'Macro Purpose: Print to PDF file using PDFCreator&lt;br&gt;
'   (Download from [url=&lt;a href="http://sourceforge.net/projects/pdfcreator/"&gt;http://sourceforge.net/projects/pdfcreator/&lt;/a&gt;]SourceForge.net: PDFCreator[/url])&lt;br&gt;
'   Designed for early bind, set reference to PDFCreator&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Dim pdfjob As PDFCreator.clsPDFCreator&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Dim sPDFName As String&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Dim sPDFPath As String&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'/// Change the output file name here! ///&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sPDFName = "testPDF.pdf"&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sPDFPath = ActiveWorkbook.Path &amp; Application.PathSeparator&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'Check if worksheet is empty and exit if so&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;If IsEmpty(ActiveSheet.UsedRange) Then Exit Sub&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Set pdfjob = New PDFCreator.clsPDFCreator&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;With pdfjob&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;If .cStart("/NoProcessingAtStartup") = False Then&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MsgBox "Can't initialize PDFCreator.", vbCritical + _&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;vbOKOnly, "PrtPDFCreator"&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Exit Sub&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;End If&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.cOption("UseAutosave") = 1&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.cOption("UseAutosaveDirectory") = 1&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.cOption("AutosaveDirectory") = sPDFPath&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.cOption("AutosaveFilename") = sPDFName&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.cOption("AutosaveFormat") = 0    ' 0 = PDF&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.cClearCache&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;End With&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'Print the document to PDF&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ActiveSheet.PrintOut copies:=1, ActivePrinter:="PDFCreator"&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'Wait until the print job has entered the print queue&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Do Until pdfjob.cCountOfPrintjobs = 1&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DoEvents&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Loop&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pdfjob.cPrinterStop = False&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'Wait until PDF creator is finished then release the objects&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Do Until pdfjob.cCountOfPrintjobs = 0&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DoEvents&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Loop&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pdfjob.cClose&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Set pdfjob = Nothing&lt;br&gt;
End Sub&lt;br&gt;
&lt;br&gt;
I am sorry if my question is stupid...&lt;br&gt;
&lt;br&gt;
ImageAnalyst &amp;lt;imageanalyst@mailinator.com&amp;gt; wrote in message &amp;lt;d1140ff5-12a3-495c-8931-c808dc0a8a3b@a37g2000yqm.googlegroups.com&amp;gt;...&lt;br&gt;
&amp;gt; Do you have Adobe Acrobat installed?  Acrobat installs a PDF toolbar&lt;br&gt;
&amp;gt; in MS office apps.  If so you could probably instruct Excel (via&lt;br&gt;
&amp;gt; ActiveX commands) to save the workbook as a PDF (via the Acrobat Excel&lt;br&gt;
&amp;gt; plugin).  I haven't done it but it seems reasonable.</description>
    </item>
    <item>
      <pubDate>Thu, 15 Mar 2012 16:47:40 +0000</pubDate>
      <title>Re: Save as pdf Microsoft Excel from Matlab</title>
      <link>http://www.mathworks.nl/matlabcentral/newsreader/view_thread/317402#870100</link>
      <author>ImageAnalyst</author>
      <description>Sure, take a stab at converting that to ActiveX programming and see&lt;br&gt;
how it goes.  Use your Excel example as guidelines for how to do this.</description>
    </item>
  </channel>
</rss>
