Mercurial > octave
annotate scripts/plot/util/private/__opengl_print__.m @ 30581:05cf43c9b351
__opengl_print__.m: Use "findstr" on Windows instead of "cat".
* scripts/plot/util/private/__opengl_print__.m: Use "findstr" on Windows
instead of "cat".
author | Gene Harvey <gharveymn@gmail.com> |
---|---|
date | Fri, 24 Sep 2021 15:44:38 -0500 |
parents | 796f54d4ddbf |
children | 5d3faba0342e |
rev | line source |
---|---|
27923
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
1 ######################################################################## |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
2 ## |
30564
796f54d4ddbf
update Octave Project Developers copyright for the new year
John W. Eaton <jwe@octave.org>
parents:
30295
diff
changeset
|
3 ## Copyright (C) 2010-2022 The Octave Project Developers |
27918
b442ec6dda5c
use centralized file for copyright info for individual contributors
John W. Eaton <jwe@octave.org>
parents:
27622
diff
changeset
|
4 ## |
27923
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
5 ## See the file COPYRIGHT.md in the top-level directory of this |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
6 ## distribution or <https://octave.org/copyright/>. |
10727
570f30a48732
split printing between backends
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
7 ## |
570f30a48732
split printing between backends
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
8 ## This file is part of Octave. |
570f30a48732
split printing between backends
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
9 ## |
24534
194eb4bd202b
maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents:
24221
diff
changeset
|
10 ## Octave is free software: you can redistribute it and/or modify it |
10727
570f30a48732
split printing between backends
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
11 ## under the terms of the GNU General Public License as published by |
24534
194eb4bd202b
maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents:
24221
diff
changeset
|
12 ## the Free Software Foundation, either version 3 of the License, or |
22755
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
13 ## (at your option) any later version. |
10727
570f30a48732
split printing between backends
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
14 ## |
570f30a48732
split printing between backends
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
15 ## Octave is distributed in the hope that it will be useful, but |
570f30a48732
split printing between backends
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
16 ## WITHOUT ANY WARRANTY; without even the implied warranty of |
22755
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
17 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
18 ## GNU General Public License for more details. |
10727
570f30a48732
split printing between backends
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
19 ## |
570f30a48732
split printing between backends
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
20 ## You should have received a copy of the GNU General Public License |
570f30a48732
split printing between backends
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
21 ## along with Octave; see the file COPYING. If not, see |
24534
194eb4bd202b
maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents:
24221
diff
changeset
|
22 ## <https://www.gnu.org/licenses/>. |
27923
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
23 ## |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
24 ######################################################################## |
10727
570f30a48732
split printing between backends
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
25 |
570f30a48732
split printing between backends
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
26 ## -*- texinfo -*- |
20852
516bb87ea72e
2015 Code Sprint: remove class of function from docstring for all m-files.
Rik <rik@octave.org>
parents:
20778
diff
changeset
|
27 ## @deftypefn {} {} __opengl_print__ (@var{@dots{}}) |
10727
570f30a48732
split printing between backends
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
28 ## Undocumented internal function. |
570f30a48732
split printing between backends
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
29 ## @end deftypefn |
570f30a48732
split printing between backends
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
30 |
19640
3b0b4d55002d
rename __fltk_print__.m to __opengl_print__.m
John W. Eaton <jwe@octave.org>
parents:
19596
diff
changeset
|
31 function opts = __opengl_print__ (opts) |
10834
05ba991794d4
Improvements for fltk printing.
Ben Abbott <bpabbott@mac.com>
parents:
10793
diff
changeset
|
32 |
11009 | 33 dos_shell = (ispc () && ! isunix ()); |
34 | |
10854
d5a7db05d591
Add PS and PDF output for the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10834
diff
changeset
|
35 if (! isempty (opts.fig2dev_binary)) |
27956
2310164737b3
fix many spelling errors (bug #57613)
John W. Eaton <jwe@octave.org>
parents:
26932
diff
changeset
|
36 ## fig2dev is preferred for conversion to emf |
10854
d5a7db05d591
Add PS and PDF output for the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10834
diff
changeset
|
37 fig2dev_devices = {"pstex", "mf", "emf"}; |
d5a7db05d591
Add PS and PDF output for the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10834
diff
changeset
|
38 else |
d5a7db05d591
Add PS and PDF output for the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10834
diff
changeset
|
39 fig2dev_devices = {"pstex", "mf"}; |
10834
05ba991794d4
Improvements for fltk printing.
Ben Abbott <bpabbott@mac.com>
parents:
10793
diff
changeset
|
40 endif |
10727
570f30a48732
split printing between backends
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
41 |
11009 | 42 gl2ps_device = {}; |
43 pipeline = {}; | |
11120
a44f979a35ce
style fixes for some .m files
John W. Eaton <jwe@octave.org>
parents:
11009
diff
changeset
|
44 switch (lower (opts.devopt)) |
17174
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
45 case {"eps", "eps2", "epsc", "epsc2"} |
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
46 ## format GL2PS_EPS |
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
47 gl2ps_device = {"eps"}; |
17176
abf384f5d243
maint: Remove unneeded input validation from internal fcns in private/ directories.
Rik <rik@octave.org>
parents:
17174
diff
changeset
|
48 ## FIXME: use epstool to tighten bbox and provide preview. |
17174
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
49 pipeline = {opts.epstool_cmd(opts, "-", opts.name)}; |
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
50 case {"epslatex", "pslatex", "pdflatex", "epslatexstandalone", ... |
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
51 "pslatexstandalone", "pdflatexstandalone"} |
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
52 ## format GL2PS_TEX |
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
53 n = find (opts.devopt == "l", 1); |
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
54 suffix = opts.devopt(1:n-1); |
20444
ab2c5e84954a
Allow relative paths when printing with -dpdflatex (bug #45601).
Rik <rik@octave.org>
parents:
19853
diff
changeset
|
55 [ndir, name, ext] = fileparts (opts.name); |
ab2c5e84954a
Allow relative paths when printing with -dpdflatex (bug #45601).
Rik <rik@octave.org>
parents:
19853
diff
changeset
|
56 if (isempty (ext)) |
ab2c5e84954a
Allow relative paths when printing with -dpdflatex (bug #45601).
Rik <rik@octave.org>
parents:
19853
diff
changeset
|
57 ext = "tex"; |
ab2c5e84954a
Allow relative paths when printing with -dpdflatex (bug #45601).
Rik <rik@octave.org>
parents:
19853
diff
changeset
|
58 else |
ab2c5e84954a
Allow relative paths when printing with -dpdflatex (bug #45601).
Rik <rik@octave.org>
parents:
19853
diff
changeset
|
59 ext = ext(2:end); # remove leading '.' |
ab2c5e84954a
Allow relative paths when printing with -dpdflatex (bug #45601).
Rik <rik@octave.org>
parents:
19853
diff
changeset
|
60 endif |
ab2c5e84954a
Allow relative paths when printing with -dpdflatex (bug #45601).
Rik <rik@octave.org>
parents:
19853
diff
changeset
|
61 if (any (strcmpi (ext, {suffix, "tex"}))) |
ab2c5e84954a
Allow relative paths when printing with -dpdflatex (bug #45601).
Rik <rik@octave.org>
parents:
19853
diff
changeset
|
62 name = fullfile (ndir, name); |
ab2c5e84954a
Allow relative paths when printing with -dpdflatex (bug #45601).
Rik <rik@octave.org>
parents:
19853
diff
changeset
|
63 if (any (strcmpi (ext, {"eps", "ps", "pdf"}))) |
ab2c5e84954a
Allow relative paths when printing with -dpdflatex (bug #45601).
Rik <rik@octave.org>
parents:
19853
diff
changeset
|
64 suffix = ext; # If user provides eps/ps/pdf suffix, use it. |
17174
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
65 endif |
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
66 else |
27069
0a62d9a6aa2d
Place Octave's warning and error IDs in to the "Octave" namespace (bug #56213).
Rik <rik@octave.org>
parents:
27068
diff
changeset
|
67 error ("Octave:print:invalid-suffix", |
17174
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
68 "invalid suffix '%s' for device '%s'.", |
20444
ab2c5e84954a
Allow relative paths when printing with -dpdflatex (bug #45601).
Rik <rik@octave.org>
parents:
19853
diff
changeset
|
69 ext, lower (opts.devopt)); |
10861 | 70 endif |
17174
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
71 gl2ps_device = {sprintf("%snotxt", lower (suffix))}; |
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
72 gl2ps_device{2} = "tex"; |
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
73 if (dos_shell) |
30581
05cf43c9b351
__opengl_print__.m: Use "findstr" on Windows instead of "cat".
Gene Harvey <gharveymn@gmail.com>
parents:
30564
diff
changeset
|
74 pipeline = {sprintf('findstr . > "%s-inc.%s"', name, suffix)}; |
05cf43c9b351
__opengl_print__.m: Use "findstr" on Windows instead of "cat".
Gene Harvey <gharveymn@gmail.com>
parents:
30564
diff
changeset
|
75 pipeline{2} = sprintf ('findstr . > "%s.tex"', name); |
17174
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
76 else |
27622
df8942d19b7b
Allow printing with Octave installed in path with parenthesis (bug #49718)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27343
diff
changeset
|
77 pipeline = {sprintf('cat > "%s-inc.%s"', name, suffix)}; |
df8942d19b7b
Allow printing with Octave installed in path with parenthesis (bug #49718)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27343
diff
changeset
|
78 pipeline{2} = sprintf ('cat > "%s.tex"', name); |
10913
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10864
diff
changeset
|
79 endif |
17174
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
80 case "tikz" |
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
81 ## format GL2PS_PGF |
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
82 gl2ps_device = {"pgf"}; |
27622
df8942d19b7b
Allow printing with Octave installed in path with parenthesis (bug #49718)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27343
diff
changeset
|
83 pipeline = {sprintf('cat > "%s"', opts.name)}; |
17174
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
84 case "svg" |
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
85 ## format GL2PS_SVG |
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
86 gl2ps_device = {"svg"}; |
26027
98d7a111786a
Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25589
diff
changeset
|
87 svgcmd = ""; |
98d7a111786a
Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25589
diff
changeset
|
88 if (opts.svgconvert) |
98d7a111786a
Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25589
diff
changeset
|
89 svgcmd = opts.svgconvert_cmd (opts, opts.ghostscript.device); |
98d7a111786a
Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25589
diff
changeset
|
90 endif |
98d7a111786a
Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25589
diff
changeset
|
91 if (! isempty (svgcmd)) |
98d7a111786a
Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25589
diff
changeset
|
92 pipeline = {sprintf(svgcmd, "svg", opts.name)}; |
98d7a111786a
Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25589
diff
changeset
|
93 else |
27622
df8942d19b7b
Allow printing with Octave installed in path with parenthesis (bug #49718)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27343
diff
changeset
|
94 pipeline = {sprintf('cat > "%s"', opts.name)}; |
26027
98d7a111786a
Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25589
diff
changeset
|
95 endif |
17174
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
96 case fig2dev_devices |
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
97 cmd_fig2dev = opts.fig2dev_cmd (opts, opts.devopt); |
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
98 if (strcmp (opts.devopt, "pstex")) |
26932
aa9745a1114a
Feed fig2dev with PDF files converted from svg (bug #55906)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26376
diff
changeset
|
99 cmd_pstoedit = opts.pstoedit_cmd (opts, "fig", false); |
17174
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
100 [~, ~, ext] = fileparts (opts.name); |
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
101 if (any (strcmpi (ext, {".ps", ".tex", "."}))) |
28912
0de38a6ef693
maint: Use Octave convention of space after function name in scripts dir.
Rik <rik@octave.org>
parents:
27957
diff
changeset
|
102 opts.name = opts.name(1:end-numel (ext)); |
17174
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
103 endif |
20778
8513c84a13cb
Use parser string concatenation rather than strcat() for performance in m-files.
Rik <rik@octave.org>
parents:
20444
diff
changeset
|
104 opts.name = [opts.name ".ps"]; |
27622
df8942d19b7b
Allow printing with Octave installed in path with parenthesis (bug #49718)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27343
diff
changeset
|
105 cmd = sprintf ('%s | %s > "%s"', cmd_pstoedit, cmd_fig2dev, opts.name); |
17174
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
106 gl2ps_device = {"eps"}; |
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
107 pipeline = {cmd}; |
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
108 cmd_fig2dev = opts.fig2dev_cmd (opts, "pstex_t"); |
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
109 gl2ps_device{2} = "eps"; |
27622
df8942d19b7b
Allow printing with Octave installed in path with parenthesis (bug #49718)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27343
diff
changeset
|
110 pipeline{2} = sprintf ('%s | %s > "%s"', cmd_pstoedit, |
28912
0de38a6ef693
maint: Use Octave convention of space after function name in scripts dir.
Rik <rik@octave.org>
parents:
27957
diff
changeset
|
111 cmd_fig2dev, strrep (opts.name, ".ps", ".tex")); |
17174
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
112 else |
26932
aa9745a1114a
Feed fig2dev with PDF files converted from svg (bug #55906)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26376
diff
changeset
|
113 ## Using svgconvert |
aa9745a1114a
Feed fig2dev with PDF files converted from svg (bug #55906)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26376
diff
changeset
|
114 tmp = tempname (); |
aa9745a1114a
Feed fig2dev with PDF files converted from svg (bug #55906)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26376
diff
changeset
|
115 opts.unlink = [opts.unlink tmp]; |
aa9745a1114a
Feed fig2dev with PDF files converted from svg (bug #55906)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26376
diff
changeset
|
116 cmd_pstoedit = sprintf (opts.pstoedit_cmd (opts, "fig"), ... |
aa9745a1114a
Feed fig2dev with PDF files converted from svg (bug #55906)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26376
diff
changeset
|
117 "pdf", tmp, tmp); |
30295
1830a8f85476
print: Avoid using pipes or redirecting stdout (bug #58702).
Markus Mützel <markus.muetzel@gmx.de>
parents:
30198
diff
changeset
|
118 tmp = [tempname(), ".fig"]; |
1830a8f85476
print: Avoid using pipes or redirecting stdout (bug #58702).
Markus Mützel <markus.muetzel@gmx.de>
parents:
30198
diff
changeset
|
119 opts.unlink = [opts.unlink tmp]; |
1830a8f85476
print: Avoid using pipes or redirecting stdout (bug #58702).
Markus Mützel <markus.muetzel@gmx.de>
parents:
30198
diff
changeset
|
120 if (ispc () && ! isunix ()) |
1830a8f85476
print: Avoid using pipes or redirecting stdout (bug #58702).
Markus Mützel <markus.muetzel@gmx.de>
parents:
30198
diff
changeset
|
121 cmd = sprintf ('%s "%s" & %s "%s" "%s"', cmd_pstoedit, tmp, cmd_fig2dev, tmp, opts.name); |
1830a8f85476
print: Avoid using pipes or redirecting stdout (bug #58702).
Markus Mützel <markus.muetzel@gmx.de>
parents:
30198
diff
changeset
|
122 else |
1830a8f85476
print: Avoid using pipes or redirecting stdout (bug #58702).
Markus Mützel <markus.muetzel@gmx.de>
parents:
30198
diff
changeset
|
123 cmd = sprintf ('%s "%s" ; %s "%s" "%s"', cmd_pstoedit, tmp, cmd_fig2dev, tmp, opts.name); |
1830a8f85476
print: Avoid using pipes or redirecting stdout (bug #58702).
Markus Mützel <markus.muetzel@gmx.de>
parents:
30198
diff
changeset
|
124 endif |
26932
aa9745a1114a
Feed fig2dev with PDF files converted from svg (bug #55906)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26376
diff
changeset
|
125 gl2ps_device = {"svg"}; |
17174
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
126 pipeline = {cmd}; |
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
127 endif |
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
128 case "aifm" |
26932
aa9745a1114a
Feed fig2dev with PDF files converted from svg (bug #55906)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26376
diff
changeset
|
129 tmp = tempname (); |
aa9745a1114a
Feed fig2dev with PDF files converted from svg (bug #55906)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26376
diff
changeset
|
130 opts.unlink = [opts.unlink tmp]; |
aa9745a1114a
Feed fig2dev with PDF files converted from svg (bug #55906)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26376
diff
changeset
|
131 cmd = sprintf (opts.pstoedit_cmd (opts, "ps2ai"), "pdf", tmp, tmp); |
aa9745a1114a
Feed fig2dev with PDF files converted from svg (bug #55906)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26376
diff
changeset
|
132 gl2ps_device = {"svg"}; |
17174
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
133 pipeline = {sprintf("%s > %s", cmd, opts.name)}; |
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
134 case {"dxf", "emf", "fig", "hpgl"} |
26932
aa9745a1114a
Feed fig2dev with PDF files converted from svg (bug #55906)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26376
diff
changeset
|
135 tmp = tempname (); |
aa9745a1114a
Feed fig2dev with PDF files converted from svg (bug #55906)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26376
diff
changeset
|
136 opts.unlink = [opts.unlink tmp]; |
aa9745a1114a
Feed fig2dev with PDF files converted from svg (bug #55906)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26376
diff
changeset
|
137 cmd = sprintf (opts.pstoedit_cmd (opts), "pdf", tmp, tmp); |
aa9745a1114a
Feed fig2dev with PDF files converted from svg (bug #55906)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26376
diff
changeset
|
138 gl2ps_device = {"svg"}; |
30295
1830a8f85476
print: Avoid using pipes or redirecting stdout (bug #58702).
Markus Mützel <markus.muetzel@gmx.de>
parents:
30198
diff
changeset
|
139 pipeline = {sprintf('%s "%s"', cmd, opts.name)}; |
17174
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
140 case opts.ghostscript.device |
26027
98d7a111786a
Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25589
diff
changeset
|
141 svgcmd = ""; |
98d7a111786a
Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25589
diff
changeset
|
142 if (opts.svgconvert) |
98d7a111786a
Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25589
diff
changeset
|
143 svgcmd = opts.svgconvert_cmd (opts, opts.ghostscript.device); |
98d7a111786a
Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25589
diff
changeset
|
144 endif |
27343
2c9795736894
print.m: Allow "-svgconvert" to be used for EPS output (bug #52764)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27069
diff
changeset
|
145 dosvg = ! isempty (svgcmd); |
26027
98d7a111786a
Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25589
diff
changeset
|
146 if (! dosvg) |
98d7a111786a
Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25589
diff
changeset
|
147 opts.ghostscript.source = "-"; |
98d7a111786a
Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25589
diff
changeset
|
148 else |
98d7a111786a
Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25589
diff
changeset
|
149 tmp = tempname (); |
98d7a111786a
Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25589
diff
changeset
|
150 opts.ghostscript.source = tmp; |
98d7a111786a
Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25589
diff
changeset
|
151 opts.unlink = [opts.unlink tmp]; |
98d7a111786a
Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25589
diff
changeset
|
152 svgcmd = sprintf (svgcmd, "pdf", tmp); |
98d7a111786a
Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25589
diff
changeset
|
153 endif |
98d7a111786a
Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25589
diff
changeset
|
154 |
17174
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
155 opts.ghostscript.output = opts.name; |
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
156 if (opts.send_to_printer) |
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
157 opts.unlink(strcmp (opts.unlink, opts.ghostscript.output)) = []; |
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
158 opts.ghostscript.output = "-"; |
11009 | 159 endif |
26027
98d7a111786a
Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25589
diff
changeset
|
160 |
17174
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
161 [cmd_gs, cmd_cleanup] = __ghostscript__ (opts.ghostscript); |
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
162 if (opts.send_to_printer || isempty (opts.name)) |
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
163 cmd_lpr = opts.lpr_cmd (opts); |
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
164 cmd = sprintf ("%s | %s", cmd_gs, cmd_lpr); |
26027
98d7a111786a
Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25589
diff
changeset
|
165 elseif (dosvg) |
98d7a111786a
Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25589
diff
changeset
|
166 if (dos_shell) |
98d7a111786a
Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25589
diff
changeset
|
167 cmd = sprintf ("%s & %s", svgcmd, cmd_gs); |
98d7a111786a
Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25589
diff
changeset
|
168 else |
98d7a111786a
Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25589
diff
changeset
|
169 cmd = sprintf ("%s ; %s", svgcmd, cmd_gs); |
98d7a111786a
Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25589
diff
changeset
|
170 endif |
17174
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
171 else |
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
172 cmd = sprintf ("%s", cmd_gs); |
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
173 endif |
26027
98d7a111786a
Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25589
diff
changeset
|
174 |
98d7a111786a
Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25589
diff
changeset
|
175 if (dosvg) |
98d7a111786a
Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25589
diff
changeset
|
176 gl2ps_device = {"svg"}; |
98d7a111786a
Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25589
diff
changeset
|
177 else |
98d7a111786a
Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25589
diff
changeset
|
178 gl2ps_device = {"eps"}; |
98d7a111786a
Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25589
diff
changeset
|
179 endif |
98d7a111786a
Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25589
diff
changeset
|
180 |
17174
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
181 if (! isempty (cmd_cleanup)) |
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
182 if (dos_shell) |
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
183 pipeline = {sprintf("%s & %s", cmd, cmd_cleanup)}; |
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
184 else |
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
185 pipeline = {sprintf("%s ; %s", cmd, cmd_cleanup)}; |
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
186 endif |
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
187 else |
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
188 pipeline = {cmd}; |
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
189 endif |
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
190 otherwise |
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
191 error (sprintf ("print:no%soutput", opts.devopt), |
27059
2bf6dcb1563c
Clean up error messages in print subsystem.
Rik <rik@octave.org>
parents:
26934
diff
changeset
|
192 "print: %s output is not available for OpenGL toolkits", |
17174
c3c1ebfaa7dc
maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents:
17146
diff
changeset
|
193 upper (opts.devopt)); |
10954
ee9d74048827
Consolidate gs code into print.m.
Ben Abbott <bpabbott@mac.com>
parents:
10913
diff
changeset
|
194 endswitch |
10727
570f30a48732
split printing between backends
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
195 |
11009 | 196 opts.pipeline = pipeline; |
197 | |
14868
5d3a684236b0
maint: Use Octave coding conventions for cuddling parentheses in scripts directory
Rik <octave@nomad.inbox5.com>
parents:
14552
diff
changeset
|
198 for n = 1:numel (pipeline) |
11009 | 199 if (opts.debug) |
19640
3b0b4d55002d
rename __fltk_print__.m to __opengl_print__.m
John W. Eaton <jwe@octave.org>
parents:
19596
diff
changeset
|
200 fprintf ("opengl-pipeline: '%s'\n", pipeline{n}); |
11009 | 201 endif |
19707
59ad278cfb98
__opengl_print__.m: Use OSMesa for offscreen rendering (Bug #33180)
Andreas Weber <andy.weber.aw@gmail.com>
parents:
19697
diff
changeset
|
202 |
30198
a87e5f9d5446
improve graphics toolkit rendering failure error message
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
203 __check_rendering_capability__ ("print", opts.figure); |
a87e5f9d5446
improve graphics toolkit rendering failure error message
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
204 |
a87e5f9d5446
improve graphics toolkit rendering failure error message
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
205 ## Use toolkits "print_figure" method |
a87e5f9d5446
improve graphics toolkit rendering failure error message
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
206 if (ispc () && ! isunix ()) |
a87e5f9d5446
improve graphics toolkit rendering failure error message
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
207 drawnow (gl2ps_device{n}, ['| "' pipeline{n} '"']); |
19707
59ad278cfb98
__opengl_print__.m: Use OSMesa for offscreen rendering (Bug #33180)
Andreas Weber <andy.weber.aw@gmail.com>
parents:
19697
diff
changeset
|
208 else |
30198
a87e5f9d5446
improve graphics toolkit rendering failure error message
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
209 drawnow (gl2ps_device{n}, ["| " pipeline{n}]); |
19707
59ad278cfb98
__opengl_print__.m: Use OSMesa for offscreen rendering (Bug #33180)
Andreas Weber <andy.weber.aw@gmail.com>
parents:
19697
diff
changeset
|
210 endif |
11009 | 211 endfor |
212 | |
12199
3fc07861449b
Fix {eps,ps,pdf}latexstandalone printing for fltk, bug 32262.
Ben Abbott <bpabbott@mac.com>
parents:
11589
diff
changeset
|
213 if (! isempty (strfind (opts.devopt, "standalone"))) |
3fc07861449b
Fix {eps,ps,pdf}latexstandalone printing for fltk, bug 32262.
Ben Abbott <bpabbott@mac.com>
parents:
11589
diff
changeset
|
214 opts.latex_standalone (opts); |
3fc07861449b
Fix {eps,ps,pdf}latexstandalone printing for fltk, bug 32262.
Ben Abbott <bpabbott@mac.com>
parents:
11589
diff
changeset
|
215 endif |
3fc07861449b
Fix {eps,ps,pdf}latexstandalone printing for fltk, bug 32262.
Ben Abbott <bpabbott@mac.com>
parents:
11589
diff
changeset
|
216 |
10727
570f30a48732
split printing between backends
Shai Ayal <shaiay@users.sourceforge.net>
parents:
diff
changeset
|
217 endfunction |