How to execute a print command for the MATLAB Web Broser from the command line

조회 수: 11 (최근 30일)
As neither gcf, gcob, gca or the findall function can return a handle for the MATLAB web browser window, I cannot print from the command line. Can you help?
  댓글 수: 4
Mario Malic
Mario Malic 2021년 1월 21일
Are you trying to save the figure as an image?
exportgraphics(gcf, 'Image.png')
If not, please explain what kind of data are you trying to get.
I never used print, but try only calling the function in command window without input arguments, like this
print
you'll get your figure in new window in .pdf format.
Claus Andersson
Claus Andersson 2021년 1월 22일
Thanks for taking time answer my question. I really appreciate it.
The point is that the matlab browser window (try ">>web("https://www.amazon.com") is not 'printable' from the matlab command line, becuase the 'gcf' handle does not apply to the matlab web browser window. This windows really is different in a way; it has no matlab axes or matlab graphics. Any suggestions will help, and perhaps even utitlizing the java.lang library could fix it.I found out that >>com.mathworks.mlservices.MatlabDesktopServices.getDesktop.closeGroup('Web Browser')
will make the web window close, but I really dont know how to move on from here as regards a 'saveas' or 'save' command..

댓글을 달려면 로그인하십시오.

채택된 답변

Mario Malic
Mario Malic 2021년 1월 22일
편집: Mario Malic 2021년 1월 22일
Hello,
I found two ways of doing so, the first one is not great because it is not documented, and this may not be working in new releases (will not work once Java components are removed from MATLAB).
They both share the same con, and that is, once the code is ran, you have to manually finish the operation by entering filename and/or printer.
First option is through MATLAB's browser client:
desktop = com.mathworks.mde.desk.MLDesktop.getInstance;
web("https://www.google.com")
desktop.getClientTitles % In my case, Google was shown as a name for Browser Client
webBrowserClient = desktop.getClient('Google');
webBrowserPanel = webBrowserClient.getComponent(0); % Client has a Panel component
webBrowserWidgets = webBrowserPanel.getComponent(0) % Panel has Widgets and jPanel components
printButton = webBrowserWidgets.getComponent(5); % 5th component is print button
printButton.doClick; % This will make a programmatic click of the button and prompt you to choose printer and name
Second is through Internet Explorer:
ieHandle = actxserver('internetexplorer.application');
ieHandle.Visible = 1;
Navigate(ieHandle, 'https://www.google.com');
pause(1); % to load the webpage
ieHandle.ExecWB(6,2);
There's also a possibility using websave combined with MATLAB Report Generator to convert html to other file formats.
  댓글 수: 1
Claus Andersson
Claus Andersson 2021년 1월 22일
Thanks Mario. Thanks for helping out. I will try tomorrow how far it will take me.
Again - your time is highly appreciated!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Environment and Settings에 대해 자세히 알아보기

제품


릴리스

R2020b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by