WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Figure - Anzeige A4-landscape wird vertikal angezeigt

 

Iamus
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 04.01.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.01.2013, 12:23     Titel: Figure - Anzeige A4-landscape wird vertikal angezeigt
  Antworten mit Zitat      
Hallo zusammen,

ich habe folgendes Problem. Ich habe eine figure erzeugt, die mehrere subplots enthält.

Da ich die Grafik als pdf drucken möchte, habe ich sie auf a4 landscape skaliert. Die Anzeige auf dem Monitor (in Matlab) scheint zu stimmen. Wenn ich die Grafik dann aber als pdf speichern will, ist die Anzeige immer im Fochformat, sprich, es werden einige plots abgeschnitten.

Habe ich da beim Code was falsch?

Code:

f = figure;
    set(f,'PaperType','A4', 'PaperOrientation', 'landscape');
 


Vielen Dank
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 04.01.2013, 15:05     Titel: Re: Figure - Anzeige A4-landscape wird vertikal angezeigt
  Antworten mit Zitat      
Hallo Iamus,

Nun müssten wir noch wissen, wie Du das PDF erzeugst.
Ich mache dies mit Erfolg so:
Code:
EPSParam = {'-dpsc2', '-r300', '-noui'};

set(FigH, ...
      'ResizeFcn',         '', ...
      'PaperUnits',        'centimeters', ...
      'PaperPosition',     [0.63452, 0.63452, 28.408, 19.715], ...
      'PaperPositionMode', 'manual', ...
      'PaperType',         'a4', ...
      'PaperOrientation',  'landscape');
print(FigH, EPSParam{:}, '-append', TempEPSFile);

GSFlag1 = '-q -dNOPAUSE -dBATCH -dFIXEDMEDIA -sDEVICE=pdfwrite';
GSFlag2 = '-sPAPERSIZE=a4 -dPDFSETTINGS=/prepress -dAutoRotatePages=/All';
PDFlevel = '-dCompatibilityLevel=1.4';

PDFout = ['-sOutputFile="', PDFFile, '" -c save pop'];
PDFin  = ['-f "', TempEPSFile, '"'];

PDFcmd = ...
   [GSExe, ' ', GSFlag1, ' ', GSFlag2, ' ', PDFlevel, ' ', PDFout, ' ', PDFin];
[errflag, msg] = system(PDFcmd);
 

Ein paar Anpassungen werden nötig sein - frage bei Schwierigkeiten einfach nochmal nach.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Iamus
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 04.01.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.01.2013, 15:52     Titel:
  Antworten mit Zitat      
Hi Jan,

vielen Dank für die Hilfe, hat geklappt. Ich exportiere zwar nicht über den Druckbefehl, aber habe alles Wichtige gefunden.

Nochmal eine Nachfrage:
In der Figure lasse ich mehrere sub-plots erstellen, die Graphen plotten. Die Anzahl der Graphen kann bei Programmbeginn variabel festgelegt werden. Ich kann also 5, 10, 100 Graphen etc. plotten. Ganz wie ich will.

Kann man irgendwie definieren, dass in der Druckausgabe nur 3 subplots pro Seite geplottet werden und anschließend eine neue Seite (allerdings in derselben Figure) erzeugt wird?

Grüße

Iamus
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 07.01.2013, 01:38     Titel:
  Antworten mit Zitat      
Hallo Iamus,

Ich kenne keine Methode dies automatisch zu machen.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Iamus
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 04.01.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.01.2013, 12:55     Titel:
  Antworten mit Zitat      
Hallo Jan,

soweit läuft das Script jetzt. Eine Nachfrage (aus Interesse) hätte ich noch zum unteren Code-Teil
Code:

GSFlag1 = '-q -dNOPAUSE -dBATCH -dFIXEDMEDIA -sDEVICE=pdfwrite';
GSFlag2 = '-sPAPERSIZE=a4 -dPDFSETTINGS=/prepress -dAutoRotatePages=/All';
PDFlevel = '-dCompatibilityLevel=1.4';

PDFout = ['-sOutputFile="', PDFFile, '" -c save pop'];
PDFin  = ['-f "', TempEPSFile, '"'];

PDFcmd = ...
   [GSExe, ' ', GSFlag1, ' ', GSFlag2, ' ', PDFlevel, ' ', PDFout, ' ', PDFin];
[errflag, msg] = system(PDFcmd);
 


Erzeugst du da automatisch ein pdf aus der ps-Datei? Benutzt du dazu ein bestimmtes Programm?

Danke für Deine Hilfe bisher, hat mich wirklich weitergebracht!
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 08.01.2013, 13:20     Titel:
  Antworten mit Zitat      
Hallo Iamus,

Ja, ein wichtiger Teil fhelt hier noch, nämlich GSexe! Diese ist die gswin32c.exe aus dem GhostScript Programm, welches man frei aus dem Internet downloaden kann.
Matlab enthält zwar auch ein GhostScript-Abkömmling, der ist aber nicht mehr aktuell und weniger mächtig. Im Grunde macht "PRINTF -dPDF" aber auch nichts anderes.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Iamus
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 04.01.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.01.2013, 14:14     Titel:
  Antworten mit Zitat      
Klasse, danke!

dpdf hatte ich auch probiert, aber da wird -append nicht unterstützt. Aber das Workaround mit der ps-Datei reicht für mich auch aus.
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.