Print only UIPanel object to PDF

조회 수: 7 (최근 30일)
Austin Burritt
Austin Burritt 2022년 1월 25일
답변: Austin Burritt 2022년 1월 27일
I have an app that displays multiple figures, and I'd like for the user to be able to print off a page of these figures. exportapp() gets me close, but I'm hoping I can cut out all the extra widgets and buttons that are also on the app and print just the axes to a pdf. Unfortunately none of the print functions seem to interact with UIPanel objects, which is where all my graphs are located. Anyone know how to print just what is shown in a panel to a pdf? Or perhaps another way to group my UIAxes objects so that they print as they are shown in my app?
Thanks for the help as always.

답변 (1개)

Austin Burritt
Austin Burritt 2022년 1월 27일
To any who stumble upon the same problem as I did, here was my solution using the getframe function and its rect argument:
pos = app.Panel.Position;
%Changing the height and width ensures that the position arguments are
% within the bounds of the app window, I had issues with the panel position
% showing as out of bounds when calling getframe(). There is probably a
% cleaner way to avoid this issue.
pos(3) = app.UIFigure.Position(3)-pos(1)-1;
pos(4) = min(app.UIFigure.Position(4)-pos(2)-1, pos(4));
printFig = figure(Visible="off");
appFrame = getframe(app.UIFigure, pos);
imshow(appFrame.cdata)
exportgraphics(printFig, filepath)

카테고리

Help CenterFile Exchange에서 Interactive Control and Callbacks에 대해 자세히 알아보기

제품


릴리스

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by