annotate scripts/plot/util/private/__opengl_print__.m @ 30875:5d3faba0342e

doc: Ensure documentation lists output argument when it exists for all m-files. For new users of Octave it is best to show explicit calling forms in the documentation and to show a return argument when it exists. * bp-table.cc, shift.m, accumarray.m, accumdim.m, bincoeff.m, bitcmp.m, bitget.m, bitset.m, blkdiag.m, celldisp.m, cplxpair.m, dblquad.m, flip.m, fliplr.m, flipud.m, idivide.m, int2str.m, interpft.m, logspace.m, num2str.m, polyarea.m, postpad.m, prepad.m, randi.m, repmat.m, rng.m, rot90.m, rotdim.m, structfun.m, triplequad.m, uibuttongroup.m, uicontrol.m, uipanel.m, uipushtool.m, uitoggletool.m, uitoolbar.m, waitforbuttonpress.m, help.m, __additional_help_message__.m, hsv.m, im2double.m, im2frame.m, javachk.m, usejava.m, argnames.m, char.m, formula.m, inline.m, __vectorize__.m, findstr.m, flipdim.m, strmatch.m, vectorize.m, commutation_matrix.m, cond.m, cross.m, duplication_matrix.m, expm.m, orth.m, rank.m, rref.m, trace.m, vech.m, cast.m, compare_versions.m, delete.m, dir.m, fileattrib.m, grabcode.m, gunzip.m, inputname.m, license.m, list_primes.m, ls.m, mexext.m, movefile.m, namelengthmax.m, nargoutchk.m, nthargout.m, substruct.m, swapbytes.m, ver.m, verLessThan.m, what.m, fminunc.m, fsolve.m, fzero.m, optimget.m, __fdjac__.m, matlabroot.m, savepath.m, campos.m, camroll.m, camtarget.m, camup.m, camva.m, camzoom.m, clabel.m, diffuse.m, legend.m, orient.m, rticks.m, specular.m, thetaticks.m, xlim.m, xtickangle.m, xticklabels.m, xticks.m, ylim.m, ytickangle.m, yticklabels.m, yticks.m, zlim.m, ztickangle.m, zticklabels.m, zticks.m, ellipsoid.m, isocolors.m, isonormals.m, stairs.m, surfnorm.m, __actual_axis_position__.m, __pltopt__.m, close.m, graphics_toolkit.m, pan.m, print.m, printd.m, __ghostscript__.m, __gnuplot_print__.m, __opengl_print__.m, rotate3d.m, subplot.m, zoom.m, compan.m, conv.m, poly.m, polyaffine.m, polyder.m, polyint.m, polyout.m, polyreduce.m, polyvalm.m, roots.m, prefdir.m, prefsfile.m, profexplore.m, profexport.m, profshow.m, powerset.m, unique.m, arch_rnd.m, arma_rnd.m, autoreg_matrix.m, bartlett.m, blackman.m, detrend.m, durbinlevinson.m, fftconv.m, fftfilt.m, fftshift.m, fractdiff.m, hamming.m, hanning.m, hurst.m, ifftshift.m, rectangle_lw.m, rectangle_sw.m, triangle_lw.m, sinc.m, sinetone.m, sinewave.m, spectral_adf.m, spectral_xdf.m, spencer.m, ilu.m, __sprand__.m, sprand.m, sprandn.m, sprandsym.m, treelayout.m, beta.m, betainc.m, betaincinv.m, betaln.m, cosint.m, expint.m, factorial.m, gammainc.m, gammaincinv.m, lcm.m, nthroot.m, perms.m, reallog.m, realpow.m, realsqrt.m, sinint.m, hadamard.m, hankel.m, hilb.m, invhilb.m, magic.m, pascal.m, rosser.m, toeplitz.m, vander.m, wilkinson.m, center.m, corr.m, cov.m, discrete_cdf.m, discrete_inv.m, discrete_pdf.m, discrete_rnd.m, empirical_cdf.m, empirical_inv.m, empirical_pdf.m, empirical_rnd.m, kendall.m, kurtosis.m, mad.m, mean.m, meansq.m, median.m, mode.m, moment.m, range.m, ranks.m, run_count.m, skewness.m, spearman.m, statistics.m, std.m, base2dec.m, bin2dec.m, blanks.m, cstrcat.m, deblank.m, dec2base.m, dec2bin.m, dec2hex.m, hex2dec.m, index.m, regexptranslate.m, rindex.m, strcat.m, strjust.m, strtrim.m, strtrunc.m, substr.m, untabify.m, __have_feature__.m, __prog_output_assert__.m, __run_test_suite__.m, example.m, fail.m, asctime.m, calendar.m, ctime.m, date.m, etime.m: Add return arguments to @deftypefn macros where they were missing. Rename variables in functions (particularly generic "retval") to match documentation. Rename some return variables for (hopefully) better clarity (e.g., 'ax' to 'hax' to indicate it is a graphics handle to an axes object).
author Rik <rik@octave.org>
date Wed, 30 Mar 2022 20:40:27 -0700
parents 05cf43c9b351
children 597f3ee61a48
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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 -*-
30875
5d3faba0342e doc: Ensure documentation lists output argument when it exists for all m-files.
Rik <rik@octave.org>
parents: 30581
diff changeset
27 ## @deftypefn {} {@var{opts} =} __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
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
33 dos_shell = (ispc () && ! isunix ());
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
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
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
42 gl2ps_device = {};
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
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
2f70e7098cbe __print_parse_opts__.m: .
Ben Abbott <bpabbott@mac.com>
parents: 10854
diff changeset
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
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
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
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
196 opts.pipeline = pipeline;
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
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
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
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
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
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
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
211 endfor
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
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