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

Mehrere Figures in pdf drucken

 

Slamdunker23
Forum-Century

Forum-Century


Beiträge: 101
Anmeldedatum: 03.11.09
Wohnort: Stuttgart
Version: R2012b
     Beitrag Verfasst am: 13.12.2012, 09:02     Titel: Mehrere Figures in pdf drucken
  Antworten mit Zitat      
Hallo zusammen.

Wenn ich eine Figure als pdf drucken will nutze ich folgenden Code:

Code:

print('-f1', '-dpsc', FileName);
ps2pdf('psfile', char(FileName), 'pdffile', char(FileNamePDF), 'gspapersize','a4');
 


Wenn ich nun aber mehrere Figures als pdf drucken will benutze ich eine FOR-Schleife um die ps-Datei zu erstellen:

Code:

for i = 1:3
    print(['-f', num2str(i)], '-dpsc', FileName, '-append');
end
ps2pdf('psfile', char(FileName), 'pdffile', char(FileNamePDF), 'gspapersize','a4');
 


Bei einer Figure klappt der Druck wunderbar. Doch bei mehreren Figures kann ich die erstellte ps-Datei nicht mit Irfan View öffnen. Da kommt ein Ghostscript-Error. Und der PDF-Druck mit ps2pdf funktioniert ebenfalls nicht.

IrfanView ist upgedatet, sowie alle Plugins installiert, Ghostscript ebenfalls.

Vielen Dank für eure Hilfe!

Gruß, Daniel
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: 13.12.2012, 09:52     Titel: Re: Mehrere Figures in pdf drucken
  Antworten mit Zitat      
Hallo Slamdunker23,

Was genau is "ps2pdf"?
GhostScript updaten bringt nur dann etwas, wenn auch die neueste Version aufgerufen wird, und nicht die, die mit Matlab mitinstalliert wird.

Welcher GhostScript-Fehler erscheint denn und was bedeutet "funktioniert nicht" genau?

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

Forum-Century

Forum-Century


Beiträge: 101
Anmeldedatum: 03.11.09
Wohnort: Stuttgart
Version: R2012b
     Beitrag Verfasst am: 13.12.2012, 09:57     Titel:
  Antworten mit Zitat      
PS2PDF ist ein externes Matlab Script zum Umwandeln von Postscript-Dateien in PDF-Dateien:

http://www.mathworks.com/matlabcentral/fileexchange/19516-ps2pdf

Folgender Ghostscript Fehler erscheint:

Decode Error!
Can't Load Ghostscript or Ghostscript error.

Install Ghostscript from:
...

Das erscheint, wenn ich die erstellte ps-Datei mit IV öffnen will.

Wenn ich versuche diese ps-Datei mit ps2pdf in Matlab umzuwandeln erscheint folgender Fehler:

??? Error using ==> ps2pdf at 141
Problem converting PostScript. System returned error: -1.Failed to convert to output format; Ghostscript
status: -100.Error: /undefined in -7106MRefined
Operand stack:
10115 7106 -10067
Execution stack:


Wie schon gesagt, wenn die ps-Datei nur eine Figure enthält, klappt alles wunderbar!

Vielen Dank!
Gruß, Daniel
Private Nachricht senden Benutzer-Profile anzeigen
 
Slamdunker23
Themenstarter

Forum-Century

Forum-Century


Beiträge: 101
Anmeldedatum: 03.11.09
Wohnort: Stuttgart
Version: R2012b
     Beitrag Verfasst am: 14.12.2012, 08:19     Titel:
  Antworten mit Zitat      
Guten Morgen!

Oder habt ihr mir eine bessere Variante, wie ich mehrere Figures in Matlab in ein PDF drucken kann?

Vielen Dank!

Gruß, Daniel
Private Nachricht senden Benutzer-Profile anzeigen
 
gast1

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.12.2012, 10:13     Titel: gleiches Problem wie slamdunker23
  Antworten mit Zitat      
habe genau das gleiche problem wie slamdunker23.
es funktioniert nur wenn ich den print-befehl zuerst ohne "ps2pdf" laufen lasse und somit der "zwischenspeicher" in current folder mit der postscript datei gefüllt ist.
bitte MATLAB helft uns weiter!


Error using ps2pdf (line 141)
Problem converting PostScript. System returned error: -1.Failed to convert to output format; Ghostscript
status: -100.Error: /undefinedfilename in (tempScript.ps)lename
 
Mmmartina
Forum-Meister

Forum-Meister


Beiträge: 745
Anmeldedatum: 30.10.12
Wohnort: hier
Version: R2020a
     Beitrag Verfasst am: 21.12.2012, 10:41     Titel:
  Antworten mit Zitat      
Ich könnte mir vorstellen, dass der erste Durchlauf, für das erste Bild OHNE append erfolgen muss.
Denn append sagt ja aus, dass die DAtei schon existiert - tut sie aber nicht, du erstellst sie ja gerade erst.

Code:

print('-f1', '-dpsc', FileName);
for i =2:3
    print(['-f', num2str(i)], '-dpsc', FileName, '-append');
end
ps2pdf('psfile', char(FileName), 'pdffile', char(FileNamePDF), 'gspapersize','a4');
 

_________________

LG
Martina

"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
Private Nachricht senden Benutzer-Profile anzeigen
 
gast1

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.12.2012, 11:26     Titel:
  Antworten mit Zitat      
Hi Martina,

auch ohne -append gibt er folgende fehlermeldung aus:
(die fehlermeldung ist entweder die erstgenannte oder diese hier)

Error using ps2pdf>LocalParseArgs (line 190)
Can not find postscript file <tempScript.ps> to convert

Error in ps2pdf (line 105)
gsData = LocalParseArgs(varargin{:});

Error in Scatter_script (line 369)
ps2pdf('psfile', 'tempScript.ps', 'pdffile', filename, 'gspapersize', 'a4', 'deletepsfile', 1);


Gruss, Peter
 
gast1

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.12.2012, 11:31     Titel:
  Antworten mit Zitat      
ich habe 2 for-Schleifen.
momentan steht das "ps2pdf" zwischen beiden for-schleifen (weil ich eben dort die charts abfange)

komischerweise, wenn ich das "ps2pdf" hinter die beiden for-Schleifen setze, funktionert es. aber dann habe ich nicht die gewünschten charts, weil ich aus der 2. for schleife (j) übergehe.
 
gast1

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.12.2012, 11:37     Titel:
  Antworten mit Zitat      
... bzw. ich übergehe die Charts nicht, sie werden halt alle nach den for.schleifen in ein einziges PDF-File geschrieben.

vielleicht kann ich mich damit arrangieren..
 
gast1

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.12.2012, 12:25     Titel:
  Antworten mit Zitat      
wenn ich zwischen die beiden for-schleifen eine leeres-Figure einbaue und speicher, funktioniert es einwandfrei. nur habe ich dann eben auf der ersten seite immer einen leeren chart.

plot(0);
saveas(gcf, 'tempScript', 'ps');
close all;

wäre es möglich das File 'tempScript' danach wieder zu leeren aber nicht zu löschen?
vielen Dank im Voraus für Deine/Eure Hilfe.

Gruss, Peter
 
Jan S
Moderator

Moderator


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

Ich habe keine Schwierigkeiten mit -append auch im ersten PS file. Ich erstelle PDFs mit mehreren Seiten so:

1. Eine aktuelle Version von GhostScript installieren.
2. Schleife über alle Figures:
Code:
EPSFile = fullfile(tempdir, 'temp.eps');
printf(FigH, '-dpsc2', '-r300', '-noui', '-append', EPSFile);

3. GhostScript aufrufen um das EPS-File zu konvertieren (das geschieht auch in PS2PDF):
Code:
GhostCommand = ['-q -dNOPAUSE -dBATCH -dFIXEDMEDIA ', ...
        '-sDEVICE=pdfwrite ', ...
        '-sPAPERSIZE=a4 -dPDFSETTINGS=/prepress -dAutoRotatePages=/All ', ...
        '-dCompatibilityLevel=1.4 ', ...
        '-sOutputFile="C:\Temp\Sheets.pdf" -c save pop ', ...
        '-f "', EPSFile, '"']);
GhostExe = '"C:\Program Files (x86)\gs\gs8.64\bin\gswin32c.exe"';
[errflag, msg] = system([GhostExe, ' ', GhostCommand])

Das funktioniert seit Matlab 5.3 unter Windows 2000 bis Matlab 2011b unter Windoes 7/64 zuverlässig (eine neuere Version habe ich nicht).

Gruß, Jan
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.