annotate scripts/plot/util/print.m @ 27007:dd31206c87c0

Fix scaling of fonts when printing with -Sxsz,ysz option (bug #55907). * print.m: Declare intermediate variables do_font (true when changing fontname), do_scalefontsize (true when -S option present and scaling fonts), and do_fontsize (true when -F option to scale fontsize is present). Use intermediate variable to improve readability of code. When scaling fontsize, rather than setting fontsize to single value, use for loop over text objects to scale and set new fontsize. * __print_parse_opts__.m: Initialize arg_st.fontsize to '[]'. When -S option given, check for -r option and issue a warning if present. Use a new scale factor formula that produces results close to those on screen (WYSIWYG).
author Rik <rik@octave.org>
date Fri, 29 Mar 2019 21:01:43 -0700
parents 734901c8979e
children 986128cf1e07
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
26376
00f796120a6d maint: Update copyright dates in all source files.
John W. Eaton <jwe@octave.org>
parents: 26191
diff changeset
1 ## Copyright (C) 2008-2019 David Bateman
5361
0ac38aea9f76 [project @ 2005-05-23 19:08:36 by jwe]
jwe
parents:
diff changeset
2 ##
5362
ef053d682e42 [project @ 2005-05-23 19:21:54 by jwe]
jwe
parents: 5361
diff changeset
3 ## This file is part of Octave.
ef053d682e42 [project @ 2005-05-23 19:21:54 by jwe]
jwe
parents: 5361
diff changeset
4 ##
24534
194eb4bd202b maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents: 24423
diff changeset
5 ## Octave is free software: you can redistribute it and/or modify it
5362
ef053d682e42 [project @ 2005-05-23 19:21:54 by jwe]
jwe
parents: 5361
diff changeset
6 ## 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: 24423
diff changeset
7 ## the Free Software Foundation, either version 3 of the License, or
22755
3a2b891d0b33 maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents: 22578
diff changeset
8 ## (at your option) any later version.
5362
ef053d682e42 [project @ 2005-05-23 19:21:54 by jwe]
jwe
parents: 5361
diff changeset
9 ##
ef053d682e42 [project @ 2005-05-23 19:21:54 by jwe]
jwe
parents: 5361
diff changeset
10 ## Octave is distributed in the hope that it will be useful, but
ef053d682e42 [project @ 2005-05-23 19:21:54 by jwe]
jwe
parents: 5361
diff changeset
11 ## WITHOUT ANY WARRANTY; without even the implied warranty of
22755
3a2b891d0b33 maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents: 22578
diff changeset
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3a2b891d0b33 maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents: 22578
diff changeset
13 ## GNU General Public License for more details.
5361
0ac38aea9f76 [project @ 2005-05-23 19:08:36 by jwe]
jwe
parents:
diff changeset
14 ##
0ac38aea9f76 [project @ 2005-05-23 19:08:36 by jwe]
jwe
parents:
diff changeset
15 ## You should have received a copy of the GNU General Public License
7016
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6965
diff changeset
16 ## 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: 24423
diff changeset
17 ## <https://www.gnu.org/licenses/>.
5361
0ac38aea9f76 [project @ 2005-05-23 19:08:36 by jwe]
jwe
parents:
diff changeset
18
0ac38aea9f76 [project @ 2005-05-23 19:08:36 by jwe]
jwe
parents:
diff changeset
19 ## -*- texinfo -*-
20852
516bb87ea72e 2015 Code Sprint: remove class of function from docstring for all m-files.
Rik <rik@octave.org>
parents: 20778
diff changeset
20 ## @deftypefn {} {} print ()
516bb87ea72e 2015 Code Sprint: remove class of function from docstring for all m-files.
Rik <rik@octave.org>
parents: 20778
diff changeset
21 ## @deftypefnx {} {} print (@var{options})
516bb87ea72e 2015 Code Sprint: remove class of function from docstring for all m-files.
Rik <rik@octave.org>
parents: 20778
diff changeset
22 ## @deftypefnx {} {} print (@var{filename}, @var{options})
26102
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
23 ## @deftypefnx {} {} print (@var{hfig}, @dots{})
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
24 ## @deftypefnx {} {@var{rgb} =} print (@qcode{"-RGBImage"}, @dots{})
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
25 ## Format a figure for printing and either save it to a file, send it to a
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
26 ## printer, or return an RGB image.
5361
0ac38aea9f76 [project @ 2005-05-23 19:08:36 by jwe]
jwe
parents:
diff changeset
27 ##
20713
2469d78a1d8b Consistently use 'filename' rather than 'file name' throughout code base.
Rik <rik@octave.org>
parents: 20231
diff changeset
28 ## @var{filename} defines the name of the output file. If the filename has
26102
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
29 ## no suffix then one is inferred from the specified device and appended to the
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
30 ## filename. When neither a filename nor the @qcode{"-RGBImage"} option is
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
31 ## present, the output is sent to the printer. The various options and
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
32 ## filename arguments may be given in any order, except for the figure handle
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
33 ## argument @var{hfig} which must be first if it is present.
25998
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
34 ##
26102
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
35 ## Example: Print to a file using PDF and JPEG formats.
14456
05635e4c605a Improve documentation for print().
Ben Abbott <bpabbott@mac.com>
parents: 14382
diff changeset
36 ##
25998
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
37 ## @example
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
38 ## @group
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
39 ## figure (1);
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
40 ## clf ();
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
41 ## surf (peaks);
26043
5cef57130cb9 doc: grammar check m-files in scripts/ directory.
Rik <rik@octave.org>
parents: 26027
diff changeset
42 ## print figure1.pdf # The extension specifies the format
5cef57130cb9 doc: grammar check m-files in scripts/ directory.
Rik <rik@octave.org>
parents: 26027
diff changeset
43 ## print -djpg figure1 # Will produce "figure1.jpg" file
25998
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
44 ## @end group
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
45 ## @end example
15301
3d05b55c91c7 doc: Clean up docstring for print.m.
Rik <rik@octave.org>
parents: 15214
diff changeset
46 ##
26102
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
47 ## If the first argument is a handle @var{hfig} to a figure object then it
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
48 ## specifies the figure to print. By default, the current figure returned
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
49 ## by @code{gcf} is printed.
25998
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
50 ##
26102
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
51 ## For outputs to paged formats, for example, PostScript and PDF, the page size
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
52 ## is specified by the figure's @code{papersize} property together with the
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
53 ## @code{paperunits} property. The location and size of the plot on the page
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
54 ## are specified by the figure's @code{paperposition} property. The
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
55 ## orientation of the page is specified by the figure's @code{paperorientation}
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
56 ## property.
14456
05635e4c605a Improve documentation for print().
Ben Abbott <bpabbott@mac.com>
parents: 14382
diff changeset
57 ##
26102
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
58 ## For non-page formats---for example, image formats like JPEG---the width and
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
59 ## height of the output are specified by the figure's @code{paperposition(3:4)}
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
60 ## property values.
14456
05635e4c605a Improve documentation for print().
Ben Abbott <bpabbott@mac.com>
parents: 14382
diff changeset
61 ##
15301
3d05b55c91c7 doc: Clean up docstring for print.m.
Rik <rik@octave.org>
parents: 15214
diff changeset
62 ## The @code{print} command supports many @var{options}:
10834
05ba991794d4 Improvements for fltk printing.
Ben Abbott <bpabbott@mac.com>
parents: 10821
diff changeset
63 ##
5361
0ac38aea9f76 [project @ 2005-05-23 19:08:36 by jwe]
jwe
parents:
diff changeset
64 ## @table @code
10834
05ba991794d4 Improvements for fltk printing.
Ben Abbott <bpabbott@mac.com>
parents: 10821
diff changeset
65 ## @item -f@var{h}
26102
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
66 ## Specify the handle, @var{h}, of the figure to be printed.
10834
05ba991794d4 Improvements for fltk printing.
Ben Abbott <bpabbott@mac.com>
parents: 10821
diff changeset
67 ##
25998
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
68 ## Example: Print figure 1.
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
69 ##
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
70 ## @example
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
71 ## @group
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
72 ## figure (1);
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
73 ## clf ();
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
74 ## surf (peaks);
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
75 ## figure (2);
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
76 ## print -f1 figure1.pdf
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
77 ## ## Equivalent functional form:
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
78 ## print (1, "figure1.pdf")
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
79 ## @end group
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
80 ## @end example
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
81 ##
5361
0ac38aea9f76 [project @ 2005-05-23 19:08:36 by jwe]
jwe
parents:
diff changeset
82 ## @item -P@var{printer}
26043
5cef57130cb9 doc: grammar check m-files in scripts/ directory.
Rik <rik@octave.org>
parents: 26027
diff changeset
83 ## Set the @var{printer} name to which the plot is sent if no @var{filename}
5cef57130cb9 doc: grammar check m-files in scripts/ directory.
Rik <rik@octave.org>
parents: 26027
diff changeset
84 ## is specified.
10821
693e22af08ae Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents: 10793
diff changeset
85 ##
26043
5cef57130cb9 doc: grammar check m-files in scripts/ directory.
Rik <rik@octave.org>
parents: 26027
diff changeset
86 ## Example: Print to printer named PS_printer using PostScript format.
25998
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
87 ##
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
88 ## @example
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
89 ## @group
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
90 ## clf ();
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
91 ## surf (peaks);
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
92 ## print -dpswrite -PPS_printer
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
93 ## @end group
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
94 ## @end example
10821
693e22af08ae Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents: 10793
diff changeset
95 ##
25998
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
96 ## @item -RGBImage
26043
5cef57130cb9 doc: grammar check m-files in scripts/ directory.
Rik <rik@octave.org>
parents: 26027
diff changeset
97 ## Return an M-by-N-by-3 RGB image of the figure. The size of the image
26102
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
98 ## depends on the formatting options. This is similar to taking a screen
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
99 ## capture of the plot, but formatting options may be changed such as the
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
100 ## resolution or monochrome/color.
25998
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
101 ##
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
102 ## Example: Get the pixels of a figure image.
10821
693e22af08ae Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents: 10793
diff changeset
103 ##
25998
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
104 ## @example
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
105 ## @group
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
106 ## clf ();
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
107 ## surf (peaks);
26102
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
108 ## @var{rgb} = print ("-RGBImage");
25998
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
109 ## @end group
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
110 ## @end example
10821
693e22af08ae Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents: 10793
diff changeset
111 ##
26102
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
112 ## @item -opengl
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
113 ## @itemx -painters
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
114 ## Specifies whether the opengl (pixel-based) or painters (vector-based)
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
115 ## renderer is used. This is equivalent to changing the figure's
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
116 ## @qcode{"Renderer"} property. When the figure @code{RendererMode} property
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
117 ## is @qcode{"auto"} Octave will use the @qcode{"opengl"} renderer for raster
26689
6764d6a428ca print.m: Use sentence-ending period @. in Texinfo doc.
Rik <rik@octave.org>
parents: 26567
diff changeset
118 ## formats (e.g., JPEG) and @qcode{"painters"} for vector formats (e.g., PDF)@.
26567
bf05a7c16e9e Choose "painters" renderer when printing rotated text (bug #55485)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
119 ## Those options are only supported for the "qt" graphics tookit.
26102
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
120 ##
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
121 ## @item -svgconvert
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
122 ## For OpenGL-based graphic toolkits, this enables a different backend
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
123 ## toolchain with enhanced characteristics. The toolchain adds support for
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
124 ## printing arbitrary characters and fonts in PDF outputs; it avoids some
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
125 ## anti-aliasing artifacts in the rendering of patch and surface objects
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
126 ## (particularly for 2-D scenes); and it supports transparency of line, patch,
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
127 ## and surface objects.
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
128 ##
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
129 ## This option only affects PDF outputs, unless it is combined with
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
130 ## @option{-painters} option, in which case raster outputs are also affected.
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
131 ##
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
132 ## Caution: @option{-svgconvert} may lead to inaccurate rendering of image
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
133 ## objects.
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
134 ##
17122
eaab03308c0b doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents: 16933
diff changeset
135 ## @item -portrait
5361
0ac38aea9f76 [project @ 2005-05-23 19:08:36 by jwe]
jwe
parents:
diff changeset
136 ## @itemx -landscape
20173
777f26aa8e3e doc: Update more docstrings to have one sentence summary as first line.
Rik <rik@octave.org>
parents: 19990
diff changeset
137 ## Specify the orientation of the plot for printed output.
777f26aa8e3e doc: Update more docstrings to have one sentence summary as first line.
Rik <rik@octave.org>
parents: 19990
diff changeset
138 ## For non-printed output the aspect ratio of the output corresponds to the
777f26aa8e3e doc: Update more docstrings to have one sentence summary as first line.
Rik <rik@octave.org>
parents: 19990
diff changeset
139 ## plot area defined by the @qcode{"paperposition"} property in the
777f26aa8e3e doc: Update more docstrings to have one sentence summary as first line.
Rik <rik@octave.org>
parents: 19990
diff changeset
140 ## orientation specified. This option is equivalent to changing the figure's
777f26aa8e3e doc: Update more docstrings to have one sentence summary as first line.
Rik <rik@octave.org>
parents: 19990
diff changeset
141 ## @qcode{"paperorientation"} property.
10821
693e22af08ae Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents: 10793
diff changeset
142 ##
26103
9cfbe7688368 Add -fillpage and -bestfit print options (bug #52838).
Jun Wang <jstzwj@aliyun.com>
parents: 26102
diff changeset
143 ## @item -fillpage
9cfbe7688368 Add -fillpage and -bestfit print options (bug #52838).
Jun Wang <jstzwj@aliyun.com>
parents: 26102
diff changeset
144 ## @itemx -bestfit
9cfbe7688368 Add -fillpage and -bestfit print options (bug #52838).
Jun Wang <jstzwj@aliyun.com>
parents: 26102
diff changeset
145 ## When using a page-based format (PDF, PostScript, printer) ignore the
9cfbe7688368 Add -fillpage and -bestfit print options (bug #52838).
Jun Wang <jstzwj@aliyun.com>
parents: 26102
diff changeset
146 ## @qcode{"paperposition"} property and have the plot occupy the entire page.
9cfbe7688368 Add -fillpage and -bestfit print options (bug #52838).
Jun Wang <jstzwj@aliyun.com>
parents: 26102
diff changeset
147 ## The option @option{-fillpage} will stretch the plot to occupy the page with
9cfbe7688368 Add -fillpage and -bestfit print options (bug #52838).
Jun Wang <jstzwj@aliyun.com>
parents: 26102
diff changeset
148 ## 0.25 inch margins all around. The option @option{-bestfit} will expand the
9cfbe7688368 Add -fillpage and -bestfit print options (bug #52838).
Jun Wang <jstzwj@aliyun.com>
parents: 26102
diff changeset
149 ## plot to take up as much room as possible on the page @strong{without}
9cfbe7688368 Add -fillpage and -bestfit print options (bug #52838).
Jun Wang <jstzwj@aliyun.com>
parents: 26102
diff changeset
150 ## distorting the original aspect ratio of the plot.
9cfbe7688368 Add -fillpage and -bestfit print options (bug #52838).
Jun Wang <jstzwj@aliyun.com>
parents: 26102
diff changeset
151 ##
26102
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
152 ## @item -color
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
153 ## @itemx -mono
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
154 ## Color or monochrome output.
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
155 ##
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
156 ## @item -solid
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
157 ## @itemx -dashed
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
158 ## Force all lines to be solid or dashed, respectively.
25998
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
159 ##
26104
0e4b9df85361 Don't issue a warning when -noui option used with print.
Rik <rik@octave.org>
parents: 26103
diff changeset
160 ## @item -noui
0e4b9df85361 Don't issue a warning when -noui option used with print.
Rik <rik@octave.org>
parents: 26103
diff changeset
161 ## Don't print uicontrol objects such as pushbuttons which may overlay the
0e4b9df85361 Don't issue a warning when -noui option used with print.
Rik <rik@octave.org>
parents: 26103
diff changeset
162 ## plot. This is the default behavior and it is not possible to include
0e4b9df85361 Don't issue a warning when -noui option used with print.
Rik <rik@octave.org>
parents: 26103
diff changeset
163 ## uicontrol objects in the output without using an external screen capture
0e4b9df85361 Don't issue a warning when -noui option used with print.
Rik <rik@octave.org>
parents: 26103
diff changeset
164 ## tool.
0e4b9df85361 Don't issue a warning when -noui option used with print.
Rik <rik@octave.org>
parents: 26103
diff changeset
165 ##
25998
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
166 ## @item -r@var{NUM}
26102
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
167 ## Resolution of bitmaps in dots per inch (DPI). For both metafiles and SVG
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
168 ## the default is the screen resolution; for other formats the default is 150
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
169 ## DPI@. To specify screen resolution, use @qcode{"-r0"}.
25998
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
170 ##
26102
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
171 ## Example: high resolution raster output.
25998
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
172 ##
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
173 ## @example
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
174 ## @group
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
175 ## clf ();
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
176 ## surf (peaks (), "facelighting", "gouraud");
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
177 ## light ();
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
178 ## print ("-r600", "lit_peaks.png");
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
179 ## @end group
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
180 ## @end example
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
181 ##
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
182 ## @item -S@var{xsize},@var{ysize}
26102
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
183 ## Plot size in pixels for raster formats including PNG, JPEG, PNG, and
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
184 ## (unusually (SVG))@. For all vector formats, including PDF, PS, and EPS, the
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
185 ## plot size is specified in points. This option is equivalent to changing the
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
186 ## width and height of the output by setting the figure property
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
187 ## @code{paperposition(3:4)}. When using the command form of the print
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
188 ## function you must quote the @var{xsize},@var{ysize} option to prevent the
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
189 ## Octave interpreter from recognizing the embedded comma (','). For example,
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
190 ## by writing @w{"-S640,480"}.
25998
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
191 ##
26739
0c18acaa8b58 Revert changeset 3a10bdbe6839 which is only for stable branch.
Rik <rik@octave.org>
parents: 26738
diff changeset
192 ## @item -tight
0c18acaa8b58 Revert changeset 3a10bdbe6839 which is only for stable branch.
Rik <rik@octave.org>
parents: 26738
diff changeset
193 ## @itemx -loose
0c18acaa8b58 Revert changeset 3a10bdbe6839 which is only for stable branch.
Rik <rik@octave.org>
parents: 26738
diff changeset
194 ## Force a tight or loose bounding box for EPS files. The default is tight.
25998
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
195 ##
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
196 ## @item -@var{preview}
26043
5cef57130cb9 doc: grammar check m-files in scripts/ directory.
Rik <rik@octave.org>
parents: 26027
diff changeset
197 ## Add a preview to EPS files. Supported formats are:
25998
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
198 ##
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
199 ## @table @code
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
200 ## @item -interchange
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
201 ## Provide an interchange preview.
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
202 ##
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
203 ## @item -metafile
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
204 ## Provide a metafile preview.
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
205 ##
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
206 ## @item -pict
26043
5cef57130cb9 doc: grammar check m-files in scripts/ directory.
Rik <rik@octave.org>
parents: 26027
diff changeset
207 ## Provide a pict preview.
25998
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
208 ##
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
209 ## @item -tiff
26043
5cef57130cb9 doc: grammar check m-files in scripts/ directory.
Rik <rik@octave.org>
parents: 26027
diff changeset
210 ## Provide a TIFF preview.
25998
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
211 ## @end table
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
212 ##
26102
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
213 ## @item -append
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
214 ## Append PostScript or PDF output to an existing file of the same type.
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
215 ##
25998
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
216 ## @item -F@var{fontname}
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
217 ## @itemx -F@var{fontname}:@var{size}
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
218 ## @itemx -F:@var{size}
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
219 ## Use @var{fontname} and/or @var{fontsize} for all text.
26934
1771bed38482 Remove some formats from the list of supported formats (bug #55906)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26933
diff changeset
220 ## @var{fontname} is ignored for some devices: fig, etc.
25998
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
221 ##
5361
0ac38aea9f76 [project @ 2005-05-23 19:08:36 by jwe]
jwe
parents:
diff changeset
222 ## @item -d@var{device}
20173
777f26aa8e3e doc: Update more docstrings to have one sentence summary as first line.
Rik <rik@octave.org>
parents: 19990
diff changeset
223 ## The available output format is specified by the option @var{device}, and
26102
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
224 ## is one of the following (devices marked with a "*" are only available with
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
225 ## the Gnuplot toolkit):
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
226 ##
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
227 ## Vector Formats
14366
b76f0740940e doc: Periodic grammar check of documentation.
Rik <octave@nomad.inbox5.com>
parents: 14356
diff changeset
228 ##
5361
0ac38aea9f76 [project @ 2005-05-23 19:08:36 by jwe]
jwe
parents:
diff changeset
229 ## @table @code
26102
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
230 ## @item pdf
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
231 ## @itemx pdfcrop
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
232 ## Portable Document Format. The @code{pdfcrop} device removes the default
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
233 ## surrounding page.
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
234 ##
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
235 ## The OpenGL-based graphics toolkits have limited support for text.
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
236 ## Limitations include using only ASCII characters (e.g., no Greek letters)
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
237 ## and support for just three base PostScript fonts: Helvetica (the default),
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
238 ## Times, or Courier. Any other font will be replaced by Helvetica.
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
239 ##
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
240 ## For an enhanced output with complete text support and basic transparency,
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
241 ## use the @option{-svgconvert} option.
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
242 ##
17122
eaab03308c0b doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents: 16933
diff changeset
243 ## @item ps
5361
0ac38aea9f76 [project @ 2005-05-23 19:08:36 by jwe]
jwe
parents:
diff changeset
244 ## @itemx ps2
0ac38aea9f76 [project @ 2005-05-23 19:08:36 by jwe]
jwe
parents:
diff changeset
245 ## @itemx psc
0ac38aea9f76 [project @ 2005-05-23 19:08:36 by jwe]
jwe
parents:
diff changeset
246 ## @itemx psc2
26102
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
247 ## PostScript (level 1 and 2, mono and color). The OpenGL-based graphics
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
248 ## toolkits always generate PostScript level 3.0 and have limited support for
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
249 ## text.
10821
693e22af08ae Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents: 10793
diff changeset
250 ##
17122
eaab03308c0b doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents: 16933
diff changeset
251 ## @item eps
5361
0ac38aea9f76 [project @ 2005-05-23 19:08:36 by jwe]
jwe
parents:
diff changeset
252 ## @itemx eps2
0ac38aea9f76 [project @ 2005-05-23 19:08:36 by jwe]
jwe
parents:
diff changeset
253 ## @itemx epsc
0ac38aea9f76 [project @ 2005-05-23 19:08:36 by jwe]
jwe
parents:
diff changeset
254 ## @itemx epsc2
23485
2f90ac754550 print.m: Update documentation to refer to OpenGL-based toolkits, not just FLTK.
Rik <rik@octave.org>
parents: 23219
diff changeset
255 ## Encapsulated PostScript (level 1 and 2, mono and color). The
26102
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
256 ## OpenGL-based toolkits always generate PostScript level 3.0 and have
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
257 ## limited support for text.
10841
1577accf2ed8 print.m: Update documentation string. Change to active voice.
Rik <octave@nomad.inbox5.com>
parents: 10834
diff changeset
258 ##
19026
d6f1f46e5b8f Fix double '-P' in print command to printer (bug #41957).
Michael Godfrey <michaeldgodfrey@gmail.com>
parents: 17751
diff changeset
259 ## @item pslatex
6739
db0a05a61d09 [project @ 2007-06-15 21:59:16 by jwe]
jwe
parents: 6727
diff changeset
260 ## @itemx epslatex
10860
3a5f5c99cc39 print.m: Modify texinfo. Add unwind_protect block.
Ben Abbott <bpabbott@mac.com>
parents: 10854
diff changeset
261 ## @itemx pdflatex
19026
d6f1f46e5b8f Fix double '-P' in print command to printer (bug #41957).
Michael Godfrey <michaeldgodfrey@gmail.com>
parents: 17751
diff changeset
262 ## @itemx pslatexstandalone
d6f1f46e5b8f Fix double '-P' in print command to printer (bug #41957).
Michael Godfrey <michaeldgodfrey@gmail.com>
parents: 17751
diff changeset
263 ## @itemx epslatexstandalone
d6f1f46e5b8f Fix double '-P' in print command to printer (bug #41957).
Michael Godfrey <michaeldgodfrey@gmail.com>
parents: 17751
diff changeset
264 ## @itemx pdflatexstandalone
26043
5cef57130cb9 doc: grammar check m-files in scripts/ directory.
Rik <rik@octave.org>
parents: 26027
diff changeset
265 ## Generate a @LaTeX{} file @file{@var{filename}.tex} for the text portions
5cef57130cb9 doc: grammar check m-files in scripts/ directory.
Rik <rik@octave.org>
parents: 26027
diff changeset
266 ## of a plot and a file @file{@var{filename}.(ps|eps|pdf)} for the remaining
5cef57130cb9 doc: grammar check m-files in scripts/ directory.
Rik <rik@octave.org>
parents: 26027
diff changeset
267 ## graphics. The graphics file suffix .ps|eps|pdf is determined by the
5cef57130cb9 doc: grammar check m-files in scripts/ directory.
Rik <rik@octave.org>
parents: 26027
diff changeset
268 ## specified device type. The @LaTeX{} file produced by the @samp{standalone}
5cef57130cb9 doc: grammar check m-files in scripts/ directory.
Rik <rik@octave.org>
parents: 26027
diff changeset
269 ## option can be processed directly by @LaTeX{}. The file generated without
5cef57130cb9 doc: grammar check m-files in scripts/ directory.
Rik <rik@octave.org>
parents: 26027
diff changeset
270 ## the @samp{standalone} option is intended to be included from another
5cef57130cb9 doc: grammar check m-files in scripts/ directory.
Rik <rik@octave.org>
parents: 26027
diff changeset
271 ## @LaTeX{} document. In either case, the @LaTeX{} file contains an
5cef57130cb9 doc: grammar check m-files in scripts/ directory.
Rik <rik@octave.org>
parents: 26027
diff changeset
272 ## @code{\includegraphics} command so that the generated graphics file is
5cef57130cb9 doc: grammar check m-files in scripts/ directory.
Rik <rik@octave.org>
parents: 26027
diff changeset
273 ## automatically included when the @LaTeX{} file is processed. The text that
5cef57130cb9 doc: grammar check m-files in scripts/ directory.
Rik <rik@octave.org>
parents: 26027
diff changeset
274 ## is written to the @LaTeX{} file contains the strings @strong{exactly} as
5cef57130cb9 doc: grammar check m-files in scripts/ directory.
Rik <rik@octave.org>
parents: 26027
diff changeset
275 ## they were specified in the plot. If any special characters of the @TeX{}
5cef57130cb9 doc: grammar check m-files in scripts/ directory.
Rik <rik@octave.org>
parents: 26027
diff changeset
276 ## mode interpreter were used, the file must be edited before @LaTeX{}
5cef57130cb9 doc: grammar check m-files in scripts/ directory.
Rik <rik@octave.org>
parents: 26027
diff changeset
277 ## processing. Specifically, the special characters must be enclosed with
26102
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
278 ## dollar signs @w{(@code{$ @dots{} $})}, and other characters that are
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
279 ## recognized by @LaTeX{} may also need editing (e.g., braces). The
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
280 ## @samp{pdflatex} device, and any of the @samp{standalone} formats, are not
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
281 ## available with the Gnuplot toolkit.
10821
693e22af08ae Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents: 10793
diff changeset
282 ##
26027
98d7a111786a Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25998
diff changeset
283 ## @item epscairo*
98d7a111786a Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25998
diff changeset
284 ## @itemx pdfcairo*
98d7a111786a Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25998
diff changeset
285 ## @itemx epscairolatex*
98d7a111786a Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25998
diff changeset
286 ## @itemx pdfcairolatex*
98d7a111786a Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25998
diff changeset
287 ## @itemx epscairolatexstandalone*
98d7a111786a Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25998
diff changeset
288 ## @itemx pdfcairolatexstandalone*
26102
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
289 ## Generate output with Cairo renderer. The devices @samp{epscairo} and
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
290 ## @samp{pdfcairo} are synonymous with the @samp{epsc} device. The @LaTeX{}
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
291 ## variants generate a @LaTeX{} file, @file{@var{filename}.tex}, for the text
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
292 ## portions of a plot, and an image file, @file{@var{filename}.(eps|pdf)}, for
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
293 ## the graph portion of the plot. The @samp{standalone} variants behave as
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
294 ## described for @samp{epslatexstandalone} above.
20964
6ac3d299c5ad Add support for cairo based gnuplot terminals: "cairolatex", "epscairo",
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 20936
diff changeset
295 ##
26102
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
296 ## @item svg
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
297 ## Scalable Vector Graphics
10821
693e22af08ae Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents: 10793
diff changeset
298 ##
26027
98d7a111786a Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25998
diff changeset
299 ## @item canvas*
26102
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
300 ## Javascript-based drawing on an HTML5 canvas viewable in a web browser.
20971
22318eeaca3b Add gnuplot "canvas" terminal to the print.m doc-string.
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 20970
diff changeset
301 ##
17122
eaab03308c0b doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents: 16933
diff changeset
302 ## @item emf
9107
d0d507cbd123 Improvements to printing functionality.
Ben Abbott <bpabbott@mac.com>
parents: 9056
diff changeset
303 ## @itemx meta
6965
c962cc09067a [project @ 2007-10-06 04:54:36 by jwe]
jwe
parents: 6895
diff changeset
304 ## Microsoft Enhanced Metafile
10821
693e22af08ae Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents: 10793
diff changeset
305 ##
6965
c962cc09067a [project @ 2007-10-06 04:54:36 by jwe]
jwe
parents: 6895
diff changeset
306 ## @item fig
11576
8ac9687dbe9f rename backend to graphics_toolkit
John W. Eaton <jwe@octave.org>
parents: 11563
diff changeset
307 ## XFig. For the Gnuplot graphics toolkit, the additional options
22571
83f106bfcb37 Make "pdflatex" an alias of "pdfcairolatex" for gnuplot toolkit print (bug #49223).
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 22517
diff changeset
308 ## @option{-textspecial} or @option{-textnormal} can be used to control
83f106bfcb37 Make "pdflatex" an alias of "pdfcairolatex" for gnuplot toolkit print (bug #49223).
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 22517
diff changeset
309 ## whether the special flag should be set for the text in the figure.
83f106bfcb37 Make "pdflatex" an alias of "pdfcairolatex" for gnuplot toolkit print (bug #49223).
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 22517
diff changeset
310 ## (default is @option{-textnormal})
10821
693e22af08ae Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents: 10793
diff changeset
311 ##
26043
5cef57130cb9 doc: grammar check m-files in scripts/ directory.
Rik <rik@octave.org>
parents: 26027
diff changeset
312 ## @item latex*
26027
98d7a111786a Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25998
diff changeset
313 ## @itemx eepic*
98d7a111786a Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25998
diff changeset
314 ## @LaTeX{} picture environment and extended picture environment.
20969
984678f19352 Impproved support gnuplot terminals "eepic", "latex", "pstricks", & "texdraw".
Daniel J Sebald <daniel.sebald@ieee.org>
parents: 20968
diff changeset
315 ##
26102
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
316 ## @item tikz
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
317 ## @itemx tikzstandalone*
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
318 ## Generate a @LaTeX{} file using PGF/TikZ format. The OpenGL-based
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
319 ## toolkits create a PGF file while Gnuplot creates a TikZ file. The
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
320 ## @samp{tikzstandalone} device produces a @LaTeX{} document which includes the
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
321 ## TikZ file.
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
322 ##
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
323 ## @end table
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
324 ##
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
325 ## Raster Formats
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
326 ##
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
327 ## @table @code
5361
0ac38aea9f76 [project @ 2005-05-23 19:08:36 by jwe]
jwe
parents:
diff changeset
328 ## @item png
25582
0df6454f58ea print.m: Allow 'tif' to indicate 'tiff' format (bug #54282).
Rik <rik@octave.org>
parents: 25307
diff changeset
329 ## Portable Network Graphics
10821
693e22af08ae Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents: 10793
diff changeset
330 ##
26102
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
331 ## @item jpg
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
332 ## @itemx jpeg
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
333 ## JPEG image
25582
0df6454f58ea print.m: Allow 'tif' to indicate 'tiff' format (bug #54282).
Rik <rik@octave.org>
parents: 25307
diff changeset
334 ##
0df6454f58ea print.m: Allow 'tif' to indicate 'tiff' format (bug #54282).
Rik <rik@octave.org>
parents: 25307
diff changeset
335 ## @item tif
0df6454f58ea print.m: Allow 'tif' to indicate 'tiff' format (bug #54282).
Rik <rik@octave.org>
parents: 25307
diff changeset
336 ## @itemx tiff
26027
98d7a111786a Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25998
diff changeset
337 ## @itemx tiffn
26048
d02e4b1df697 doc: Spellcheck documentation.
Rik <rik@octave.org>
parents: 26043
diff changeset
338 ## TIFF image with LZW compression (@nospell{tif}, tiff) or uncompressed
d02e4b1df697 doc: Spellcheck documentation.
Rik <rik@octave.org>
parents: 26043
diff changeset
339 ## (@nospell{tiffn}).
10821
693e22af08ae Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents: 10793
diff changeset
340 ##
26102
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
341 ## @item gif
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
342 ## GIF image
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
343 ##
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
344 ## @item pbm
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
345 ## PBMplus
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
346 ##
26191
f41494a4977f Add "dumb" terminal to produce ASCII art with gnuplot (patch #8203).
Rüdiger Sonderfeld <ruediger@c-plusplus.de>
parents: 26173
diff changeset
347 ## @item dumb*
f41494a4977f Add "dumb" terminal to produce ASCII art with gnuplot (patch #8203).
Rüdiger Sonderfeld <ruediger@c-plusplus.de>
parents: 26173
diff changeset
348 ## ASCII art
f41494a4977f Add "dumb" terminal to produce ASCII art with gnuplot (patch #8203).
Rüdiger Sonderfeld <ruediger@c-plusplus.de>
parents: 26173
diff changeset
349 ##
24207
f3d754deb41d print.m: fix device table formating in docstring
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 24139
diff changeset
350 ## @end table
5361
0ac38aea9f76 [project @ 2005-05-23 19:08:36 by jwe]
jwe
parents:
diff changeset
351 ##
0ac38aea9f76 [project @ 2005-05-23 19:08:36 by jwe]
jwe
parents:
diff changeset
352 ## If the device is omitted, it is inferred from the file extension,
26102
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
353 ## or if there is no filename then it is sent to the printer as PostScript.
5361
0ac38aea9f76 [project @ 2005-05-23 19:08:36 by jwe]
jwe
parents:
diff changeset
354 ##
10423
dfc662a47b7a print.m: Add '-append' option.
Ben Abbott <bpabbott@mac.com>
parents: 10422
diff changeset
355 ## @item -d@var{ghostscript_device}
10854
d5a7db05d591 Add PS and PDF output for the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents: 10841
diff changeset
356 ## Additional devices are supported by Ghostscript.
26102
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
357 ## Some examples are:
9152
4c9aff0c9a61 print.m: Use Ghostscript rather than ImageMagick's 'convert'.
Ben Abbott <bpabbott@mac.com>
parents: 9107
diff changeset
358 ##
4c9aff0c9a61 print.m: Use Ghostscript rather than ImageMagick's 'convert'.
Ben Abbott <bpabbott@mac.com>
parents: 9107
diff changeset
359 ## @table @code
11587
c792872f8942 all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents: 11576
diff changeset
360 ## @item ljet2p
16826
a4969508008e doc: Periodic spellcheck of the documentation.
Rik <rik@octave.org>
parents: 16766
diff changeset
361 ## HP LaserJet @nospell{IIP}
10821
693e22af08ae Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents: 10793
diff changeset
362 ##
9152
4c9aff0c9a61 print.m: Use Ghostscript rather than ImageMagick's 'convert'.
Ben Abbott <bpabbott@mac.com>
parents: 9107
diff changeset
363 ## @item pcx24b
4c9aff0c9a61 print.m: Use Ghostscript rather than ImageMagick's 'convert'.
Ben Abbott <bpabbott@mac.com>
parents: 9107
diff changeset
364 ## 24-bit color PCX file format
10821
693e22af08ae Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents: 10793
diff changeset
365 ##
9152
4c9aff0c9a61 print.m: Use Ghostscript rather than ImageMagick's 'convert'.
Ben Abbott <bpabbott@mac.com>
parents: 9107
diff changeset
366 ## @item ppm
4c9aff0c9a61 print.m: Use Ghostscript rather than ImageMagick's 'convert'.
Ben Abbott <bpabbott@mac.com>
parents: 9107
diff changeset
367 ## Portable Pixel Map file format
4c9aff0c9a61 print.m: Use Ghostscript rather than ImageMagick's 'convert'.
Ben Abbott <bpabbott@mac.com>
parents: 9107
diff changeset
368 ## @end table
4c9aff0c9a61 print.m: Use Ghostscript rather than ImageMagick's 'convert'.
Ben Abbott <bpabbott@mac.com>
parents: 9107
diff changeset
369 ##
26102
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
370 ## For a complete list of available formats and devices type
15ebd65f18c9 print.m: Rewrite complex docstring in an attempt to be clearer.
Rik <rik@octave.org>
parents: 26063
diff changeset
371 ## @code{system ("gs -h")}.
9152
4c9aff0c9a61 print.m: Use Ghostscript rather than ImageMagick's 'convert'.
Ben Abbott <bpabbott@mac.com>
parents: 9107
diff changeset
372 ##
20173
777f26aa8e3e doc: Update more docstrings to have one sentence summary as first line.
Rik <rik@octave.org>
parents: 19990
diff changeset
373 ## When Ghostscript output is sent to a printer the size is determined by
777f26aa8e3e doc: Update more docstrings to have one sentence summary as first line.
Rik <rik@octave.org>
parents: 19990
diff changeset
374 ## the figure's @qcode{"papersize"} property. When the output is sent to a
777f26aa8e3e doc: Update more docstrings to have one sentence summary as first line.
Rik <rik@octave.org>
parents: 19990
diff changeset
375 ## file the size is determined by the plot box defined by the figure's
777f26aa8e3e doc: Update more docstrings to have one sentence summary as first line.
Rik <rik@octave.org>
parents: 19990
diff changeset
376 ## @qcode{"paperposition"} property.
9152
4c9aff0c9a61 print.m: Use Ghostscript rather than ImageMagick's 'convert'.
Ben Abbott <bpabbott@mac.com>
parents: 9107
diff changeset
377 ##
25998
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
378 ## @item -G@var{ghostscript_command}
26043
5cef57130cb9 doc: grammar check m-files in scripts/ directory.
Rik <rik@octave.org>
parents: 26027
diff changeset
379 ## Specify the command for calling Ghostscript. For Unix the default is
5cef57130cb9 doc: grammar check m-files in scripts/ directory.
Rik <rik@octave.org>
parents: 26027
diff changeset
380 ## @qcode{"gs"} and for Windows it is @qcode{"gswin32c"}.
11009
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
381 ##
25998
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
382 ## @item -TextAlphaBits=@var{n}
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
383 ## @itemx -GraphicsAlphaBits=@var{n}
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
384 ## Octave is able to produce output for various printers, bitmaps, and
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
385 ## vector formats by using Ghostscript. For bitmap and printer output
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
386 ## anti-aliasing is applied using Ghostscript's TextAlphaBits and
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
387 ## GraphicsAlphaBits options. The default number of bits are 4 and 1
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
388 ## respectively. Allowed values for @var{N} are 1, 2, or 4.
5361
0ac38aea9f76 [project @ 2005-05-23 19:08:36 by jwe]
jwe
parents:
diff changeset
389 ## @end table
0ac38aea9f76 [project @ 2005-05-23 19:08:36 by jwe]
jwe
parents:
diff changeset
390 ##
25998
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
391 ## @seealso{saveas, hgsave, getframe, orient, figure}
5361
0ac38aea9f76 [project @ 2005-05-23 19:08:36 by jwe]
jwe
parents:
diff changeset
392 ## @end deftypefn
0ac38aea9f76 [project @ 2005-05-23 19:08:36 by jwe]
jwe
parents:
diff changeset
393
25998
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
394 function rgbout = print (varargin)
10834
05ba991794d4 Improvements for fltk printing.
Ben Abbott <bpabbott@mac.com>
parents: 10821
diff changeset
395
05ba991794d4 Improvements for fltk printing.
Ben Abbott <bpabbott@mac.com>
parents: 10821
diff changeset
396 opts = __print_parse_opts__ (varargin{:});
7550
bffb1e2ab732 print.m: Figure handle as argument.
Ben Abbott <bpabbott@mac.com>
parents: 7543
diff changeset
397
25998
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
398 ## Check the requested file is writable
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
399 if (! opts.rgb_output)
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
400 folder = fileparts (opts.name);
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
401 if (! isempty (folder) && ! isfolder (folder))
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
402 error ("print: directory %s does not exist", folder);
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
403 endif
23118
46b914a213db Workaround segfault when an error occurs while printing (bug #49779)
Avinoam Kalma <a.kalma@gmail.com>
parents: 23083
diff changeset
404
25998
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
405 do_unlink = (exist (opts.name, "file") != 2);
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
406 fid = fopen (opts.name, "a");
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
407 if (fid == -1)
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
408 error ("print: cannot open file %s for writing", opts.name);
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
409 endif
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
410 fclose (fid);
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
411 if (do_unlink)
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
412 unlink (opts.name);
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
413 endif
23189
0c9195baea1a print.m: fix regression with -append option (bug #50318)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 23139
diff changeset
414 endif
23139
900ae902aa90 maint: strip trailing whitespace from source files.
John W. Eaton <jwe@octave.org>
parents: 23118
diff changeset
415
11009
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
416 opts.pstoedit_cmd = @pstoedit;
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
417 opts.fig2dev_cmd = @fig2dev;
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
418 opts.latex_standalone = @latex_standalone;
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
419 opts.lpr_cmd = @lpr;
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
420 opts.epstool_cmd = @epstool;
26027
98d7a111786a Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25998
diff changeset
421 opts.svgconvert_cmd = @svgconvert;
11009
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
422
19026
d6f1f46e5b8f Fix double '-P' in print command to printer (bug #41957).
Michael Godfrey <michaeldgodfrey@gmail.com>
parents: 17751
diff changeset
423 if (isempty (opts.figure) || ! isfigure (opts.figure))
11589
b0084095098e missing semicolons in script files
John W. Eaton <jwe@octave.org>
parents: 11587
diff changeset
424 error ("print: no figure to print");
10834
05ba991794d4 Improvements for fltk printing.
Ben Abbott <bpabbott@mac.com>
parents: 10821
diff changeset
425 endif
05ba991794d4 Improvements for fltk printing.
Ben Abbott <bpabbott@mac.com>
parents: 10821
diff changeset
426
22099
4c0f78b3c86f print.m: Fix typo "1" (char) to 1 (integer) as argument to findall -depth (bug #48478).
Rik <rik@octave.org>
parents: 21859
diff changeset
427 if (isempty (findall (opts.figure, "-depth", 1, "type", "axes")))
19990
9a2d8b1f931e Issue error when trying to print a figure with no axes object (bug #44655).
Rik <rik@octave.org>
parents: 19833
diff changeset
428 error ("print: no axes object in figure to print");
9a2d8b1f931e Issue error when trying to print a figure with no axes object (bug #44655).
Rik <rik@octave.org>
parents: 19833
diff changeset
429 endif
9a2d8b1f931e Issue error when trying to print a figure with no axes object (bug #44655).
Rik <rik@octave.org>
parents: 19833
diff changeset
430
10834
05ba991794d4 Improvements for fltk printing.
Ben Abbott <bpabbott@mac.com>
parents: 10821
diff changeset
431 orig_figure = get (0, "currentfigure");
17146
bbda4d952eb5 Fix pop-up of invisible figures during printing.
Rik <rik@octave.org>
parents: 17129
diff changeset
432 set (0, "currentfigure", opts.figure);
10834
05ba991794d4 Improvements for fltk printing.
Ben Abbott <bpabbott@mac.com>
parents: 10821
diff changeset
433
11009
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
434 if (opts.append_to_file)
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
435 [~, ~, ext] = fileparts (opts.ghostscript.output);
19278
6ca096827123 Use tempname() rather than tmpnam() in core Octave.
Rik <rik@octave.org>
parents: 19078
diff changeset
436 opts.ghostscript.prepend = [tempname() ext];
11014
92bb25c0da9e When appending, delete temporary files at the end of the ghostscript pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 11009
diff changeset
437 copyfile (opts.ghostscript.output, opts.ghostscript.prepend);
10834
05ba991794d4 Improvements for fltk printing.
Ben Abbott <bpabbott@mac.com>
parents: 10821
diff changeset
438 endif
05ba991794d4 Improvements for fltk printing.
Ben Abbott <bpabbott@mac.com>
parents: 10821
diff changeset
439
10913
dd6b90f44ae5 Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents: 10866
diff changeset
440 unwind_protect
10834
05ba991794d4 Improvements for fltk printing.
Ben Abbott <bpabbott@mac.com>
parents: 10821
diff changeset
441
10913
dd6b90f44ae5 Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents: 10866
diff changeset
442 ## Modify properties as specified by options
24139
5d2d0e570e46 print.m: fake grid transparency with gray color (bug #49705)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 23991
diff changeset
443 tk = get (opts.figure, "__graphics_toolkit__");
10913
dd6b90f44ae5 Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents: 10866
diff changeset
444 props = [];
22783
219c70d2ba28 print.m: Don't change ui* objects units (bug #49600).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 22755
diff changeset
445 nfig = 0;
10834
05ba991794d4 Improvements for fltk printing.
Ben Abbott <bpabbott@mac.com>
parents: 10821
diff changeset
446
14355
a6a5c5008e39 Print() function requires figure units to be "pixels".
Ben Abbott <bpabbott@mac.com>
parents: 14335
diff changeset
447 drawnow ();
a6a5c5008e39 Print() function requires figure units to be "pixels".
Ben Abbott <bpabbott@mac.com>
parents: 14335
diff changeset
448
26728
f034b29320ad Use OpenGl textures to render image objects (bug #55632).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26689
diff changeset
449 ## Set the __printing__ property first
f034b29320ad Use OpenGl textures to render image objects (bug #55632).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26689
diff changeset
450 props(1).h = opts.figure;
f034b29320ad Use OpenGl textures to render image objects (bug #55632).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26689
diff changeset
451 props(1).name = "__printing__";
f034b29320ad Use OpenGl textures to render image objects (bug #55632).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26689
diff changeset
452 props(1).value = {"off"};
f034b29320ad Use OpenGl textures to render image objects (bug #55632).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26689
diff changeset
453 set (opts.figure, "__printing__", "on");
f034b29320ad Use OpenGl textures to render image objects (bug #55632).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26689
diff changeset
454 nfig += 1;
f034b29320ad Use OpenGl textures to render image objects (bug #55632).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26689
diff changeset
455
20936
80dd7b3529ee Convert figure's descendants units to "normalized" during printing (Bug #46292).
Ben Abbott <bpabbott@mac.com>
parents: 20852
diff changeset
456 ## print() requires children of axes to have units = "normalized", or "data"
80dd7b3529ee Convert figure's descendants units to "normalized" during printing (Bug #46292).
Ben Abbott <bpabbott@mac.com>
parents: 20852
diff changeset
457 hobj = findall (opts.figure, "-not", "type", "figure", ...
22783
219c70d2ba28 print.m: Don't change ui* objects units (bug #49600).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 22755
diff changeset
458 "-not", "type", "axes", "-property", "units", ...
219c70d2ba28 print.m: Don't change ui* objects units (bug #49600).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 22755
diff changeset
459 "-not", "units", "normalized", "-not", "units", "data");
22784
e58879c649b5 print.m: Fix incorrect optimization from cset 219c70d2ba28.
Rik <rik@octave.org>
parents: 22783
diff changeset
460 hobj(strncmp (get (hobj, "type"), "ui", 2)) = [];
20936
80dd7b3529ee Convert figure's descendants units to "normalized" during printing (Bug #46292).
Ben Abbott <bpabbott@mac.com>
parents: 20852
diff changeset
461 for n = 1:numel(hobj)
80dd7b3529ee Convert figure's descendants units to "normalized" during printing (Bug #46292).
Ben Abbott <bpabbott@mac.com>
parents: 20852
diff changeset
462 props(n).h = hobj(n);
80dd7b3529ee Convert figure's descendants units to "normalized" during printing (Bug #46292).
Ben Abbott <bpabbott@mac.com>
parents: 20852
diff changeset
463 props(n).name = "units";
80dd7b3529ee Convert figure's descendants units to "normalized" during printing (Bug #46292).
Ben Abbott <bpabbott@mac.com>
parents: 20852
diff changeset
464 props(n).value = {get(hobj(n), "units")};
21323
030d4d6c2b58 Implement figure property "InvertHardCopy" for printing (bug #47230).
Rik <rik@octave.org>
parents: 21122
diff changeset
465 set (hobj(n), "units", "data");
22783
219c70d2ba28 print.m: Don't change ui* objects units (bug #49600).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 22755
diff changeset
466 nfig += 1;
20936
80dd7b3529ee Convert figure's descendants units to "normalized" during printing (Bug #46292).
Ben Abbott <bpabbott@mac.com>
parents: 20852
diff changeset
467 endfor
80dd7b3529ee Convert figure's descendants units to "normalized" during printing (Bug #46292).
Ben Abbott <bpabbott@mac.com>
parents: 20852
diff changeset
468
25998
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
469 if (strcmp (opts.renderer, "opengl"))
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
470 ## Scale the figure to reach the required resolution
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
471 scale = opts.ghostscript.resolution / 72;
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
472 if (scale != 1)
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
473 props(end+1).h = opts.figure;
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
474 props(end).name = "__device_pixel_ratio__";
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
475 props(end).value{1} = get (opts.figure, "__device_pixel_ratio__");
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
476 set (opts.figure, "__device_pixel_ratio__", scale);
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
477 nfig += 1;
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
478 endif
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
479 elseif (strcmp (tk, "qt"))
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
480 ## Don't account for the actual pixel density
25884
4e108574385c Improve OpenGL rendering on high resolution screens with Qt 5 (bug #49053)
John Swensen <jpswensen@gmail.com>
parents: 25787
diff changeset
481 props(end+1).h = opts.figure;
4e108574385c Improve OpenGL rendering on high resolution screens with Qt 5 (bug #49053)
John Swensen <jpswensen@gmail.com>
parents: 25787
diff changeset
482 props(end).name = "__device_pixel_ratio__";
4e108574385c Improve OpenGL rendering on high resolution screens with Qt 5 (bug #49053)
John Swensen <jpswensen@gmail.com>
parents: 25787
diff changeset
483 props(end).value = {get(opts.figure, "__device_pixel_ratio__")};
4e108574385c Improve OpenGL rendering on high resolution screens with Qt 5 (bug #49053)
John Swensen <jpswensen@gmail.com>
parents: 25787
diff changeset
484 set (opts.figure, "__device_pixel_ratio__", 1);
4e108574385c Improve OpenGL rendering on high resolution screens with Qt 5 (bug #49053)
John Swensen <jpswensen@gmail.com>
parents: 25787
diff changeset
485 nfig += 1;
4e108574385c Improve OpenGL rendering on high resolution screens with Qt 5 (bug #49053)
John Swensen <jpswensen@gmail.com>
parents: 25787
diff changeset
486 endif
4e108574385c Improve OpenGL rendering on high resolution screens with Qt 5 (bug #49053)
John Swensen <jpswensen@gmail.com>
parents: 25787
diff changeset
487
20936
80dd7b3529ee Convert figure's descendants units to "normalized" during printing (Bug #46292).
Ben Abbott <bpabbott@mac.com>
parents: 20852
diff changeset
488 ## print() requires axes units = "normalized"
80dd7b3529ee Convert figure's descendants units to "normalized" during printing (Bug #46292).
Ben Abbott <bpabbott@mac.com>
parents: 20852
diff changeset
489 hax = findall (opts.figure, "-depth", 1, "type", "axes", ...
80dd7b3529ee Convert figure's descendants units to "normalized" during printing (Bug #46292).
Ben Abbott <bpabbott@mac.com>
parents: 20852
diff changeset
490 "-not", "units", "normalized");
24139
5d2d0e570e46 print.m: fake grid transparency with gray color (bug #49705)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 23991
diff changeset
491 for n = 1:numel (hax)
22783
219c70d2ba28 print.m: Don't change ui* objects units (bug #49600).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 22755
diff changeset
492 props(end+1).h = hax(n);
219c70d2ba28 print.m: Don't change ui* objects units (bug #49600).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 22755
diff changeset
493 props(end).name = "units";
219c70d2ba28 print.m: Don't change ui* objects units (bug #49600).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 22755
diff changeset
494 props(end).value = {get(hax(n), "units")};
21323
030d4d6c2b58 Implement figure property "InvertHardCopy" for printing (bug #47230).
Rik <rik@octave.org>
parents: 21122
diff changeset
495 set (hax(n), "units", "normalized");
22783
219c70d2ba28 print.m: Don't change ui* objects units (bug #49600).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 22755
diff changeset
496 nfig += 1;
20936
80dd7b3529ee Convert figure's descendants units to "normalized" during printing (Bug #46292).
Ben Abbott <bpabbott@mac.com>
parents: 20852
diff changeset
497 endfor
80dd7b3529ee Convert figure's descendants units to "normalized" during printing (Bug #46292).
Ben Abbott <bpabbott@mac.com>
parents: 20852
diff changeset
498
26027
98d7a111786a Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25998
diff changeset
499 ## With the -painters (gl2ps) renderer, line transparency is only
98d7a111786a Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25998
diff changeset
500 ## handled for svg and pdf outputs using svgconvert.
26063
4407b315339d print.m: Fix localization of the default font file (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26055
diff changeset
501 ## Otherwise, switch grid lines color to light gray so that the image
26027
98d7a111786a Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25998
diff changeset
502 ## output approximately matches on-screen experience.
24139
5d2d0e570e46 print.m: fake grid transparency with gray color (bug #49705)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 23991
diff changeset
503 hax = findall (opts.figure, "type", "axes");
26027
98d7a111786a Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25998
diff changeset
504 if (! strcmp (tk, "gnuplot") && ! strcmp (opts.renderer, "opengl")
98d7a111786a Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25998
diff changeset
505 && ! (opts.svgconvert && strcmp (opts.devopt, "pdfwrite"))
98d7a111786a Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25998
diff changeset
506 && ! strcmp (opts.devopt, "svg"))
24139
5d2d0e570e46 print.m: fake grid transparency with gray color (bug #49705)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 23991
diff changeset
507 for n = 1:numel (hax)
5d2d0e570e46 print.m: fake grid transparency with gray color (bug #49705)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 23991
diff changeset
508 if (strcmp (get (hax(n), "gridcolormode"), "auto"))
5d2d0e570e46 print.m: fake grid transparency with gray color (bug #49705)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 23991
diff changeset
509 props(end+1).h = hax(n);
5d2d0e570e46 print.m: fake grid transparency with gray color (bug #49705)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 23991
diff changeset
510 props(end).name = "gridcolormode";
5d2d0e570e46 print.m: fake grid transparency with gray color (bug #49705)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 23991
diff changeset
511 props(end).value = {"auto"};
5d2d0e570e46 print.m: fake grid transparency with gray color (bug #49705)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 23991
diff changeset
512 props(end+1).h = hax(n);
5d2d0e570e46 print.m: fake grid transparency with gray color (bug #49705)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 23991
diff changeset
513 props(end).name = "gridcolor";
5d2d0e570e46 print.m: fake grid transparency with gray color (bug #49705)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 23991
diff changeset
514 props(end).value = {get(hax(n), "gridcolor")};
5d2d0e570e46 print.m: fake grid transparency with gray color (bug #49705)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 23991
diff changeset
515 set (hax(n), "gridcolor", [0.85 0.85 0.85]);
5d2d0e570e46 print.m: fake grid transparency with gray color (bug #49705)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 23991
diff changeset
516 nfig += 2;
5d2d0e570e46 print.m: fake grid transparency with gray color (bug #49705)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 23991
diff changeset
517 endif
5d2d0e570e46 print.m: fake grid transparency with gray color (bug #49705)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 23991
diff changeset
518
5d2d0e570e46 print.m: fake grid transparency with gray color (bug #49705)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 23991
diff changeset
519 if (strcmp (get (hax(n), "minorgridcolormode"), "auto"))
5d2d0e570e46 print.m: fake grid transparency with gray color (bug #49705)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 23991
diff changeset
520 props(end+1).h = hax(n);
5d2d0e570e46 print.m: fake grid transparency with gray color (bug #49705)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 23991
diff changeset
521 props(end).name = "minorgridcolormode";
5d2d0e570e46 print.m: fake grid transparency with gray color (bug #49705)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 23991
diff changeset
522 props(end).value = {"auto"};
5d2d0e570e46 print.m: fake grid transparency with gray color (bug #49705)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 23991
diff changeset
523 props(end+1).h = hax(n);
5d2d0e570e46 print.m: fake grid transparency with gray color (bug #49705)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 23991
diff changeset
524 props(end).name = "minorgridcolor";
5d2d0e570e46 print.m: fake grid transparency with gray color (bug #49705)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 23991
diff changeset
525 props(end).value = {get(hax(n), "minorgridcolor")};
5d2d0e570e46 print.m: fake grid transparency with gray color (bug #49705)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 23991
diff changeset
526 set (hax(n), "minorgridcolor", [0.75 0.75 0.75]);
5d2d0e570e46 print.m: fake grid transparency with gray color (bug #49705)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 23991
diff changeset
527 nfig += 2;
5d2d0e570e46 print.m: fake grid transparency with gray color (bug #49705)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 23991
diff changeset
528 endif
5d2d0e570e46 print.m: fake grid transparency with gray color (bug #49705)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 23991
diff changeset
529 endfor
5d2d0e570e46 print.m: fake grid transparency with gray color (bug #49705)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 23991
diff changeset
530 endif
24208
eec262017c6a maint: Strip trailing whitespace from source files.
John W. Eaton <jwe@octave.org>
parents: 24207
diff changeset
531
14355
a6a5c5008e39 Print() function requires figure units to be "pixels".
Ben Abbott <bpabbott@mac.com>
parents: 14335
diff changeset
532 ## print() requires figure units to be "pixels"
22783
219c70d2ba28 print.m: Don't change ui* objects units (bug #49600).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 22755
diff changeset
533 props(end+1).h = opts.figure;
219c70d2ba28 print.m: Don't change ui* objects units (bug #49600).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 22755
diff changeset
534 props(end).name = "units";
219c70d2ba28 print.m: Don't change ui* objects units (bug #49600).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 22755
diff changeset
535 props(end).value = {get(opts.figure, "units")};
14355
a6a5c5008e39 Print() function requires figure units to be "pixels".
Ben Abbott <bpabbott@mac.com>
parents: 14335
diff changeset
536 set (opts.figure, "units", "pixels");
22783
219c70d2ba28 print.m: Don't change ui* objects units (bug #49600).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 22755
diff changeset
537 nfig += 1;
14355
a6a5c5008e39 Print() function requires figure units to be "pixels".
Ben Abbott <bpabbott@mac.com>
parents: 14335
diff changeset
538
17742
4e225f952885 Fix shrinking axes when printing plots with legends (bug #40333).
Rik <rik@octave.org>
parents: 17723
diff changeset
539 ## graphics toolkit translates figure position to eps bbox (points)
10860
3a5f5c99cc39 print.m: Modify texinfo. Add unwind_protect block.
Ben Abbott <bpabbott@mac.com>
parents: 10854
diff changeset
540 fpos = get (opts.figure, "position");
22783
219c70d2ba28 print.m: Don't change ui* objects units (bug #49600).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 22755
diff changeset
541 props(end+1).h = opts.figure;
219c70d2ba28 print.m: Don't change ui* objects units (bug #49600).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 22755
diff changeset
542 props(end).name = "position";
219c70d2ba28 print.m: Don't change ui* objects units (bug #49600).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 22755
diff changeset
543 props(end).value = {fpos};
10860
3a5f5c99cc39 print.m: Modify texinfo. Add unwind_protect block.
Ben Abbott <bpabbott@mac.com>
parents: 10854
diff changeset
544 fpos(3:4) = opts.canvas_size;
26728
f034b29320ad Use OpenGl textures to render image objects (bug #55632).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26689
diff changeset
545 set (opts.figure, "position", fpos);
22783
219c70d2ba28 print.m: Don't change ui* objects units (bug #49600).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 22755
diff changeset
546 nfig += 1;
7550
bffb1e2ab732 print.m: Figure handle as argument.
Ben Abbott <bpabbott@mac.com>
parents: 7543
diff changeset
547
21323
030d4d6c2b58 Implement figure property "InvertHardCopy" for printing (bug #47230).
Rik <rik@octave.org>
parents: 21122
diff changeset
548 ## Implement InvertHardCopy option
030d4d6c2b58 Implement figure property "InvertHardCopy" for printing (bug #47230).
Rik <rik@octave.org>
parents: 21122
diff changeset
549 do_hardcopy = strcmp (get (opts.figure, "inverthardcopy"), "on");
030d4d6c2b58 Implement figure property "InvertHardCopy" for printing (bug #47230).
Rik <rik@octave.org>
parents: 21122
diff changeset
550
030d4d6c2b58 Implement figure property "InvertHardCopy" for printing (bug #47230).
Rik <rik@octave.org>
parents: 21122
diff changeset
551 if (do_hardcopy)
030d4d6c2b58 Implement figure property "InvertHardCopy" for printing (bug #47230).
Rik <rik@octave.org>
parents: 21122
diff changeset
552 ## Set figure background to white.
22783
219c70d2ba28 print.m: Don't change ui* objects units (bug #49600).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 22755
diff changeset
553 props(end+1).h = opts.figure;
219c70d2ba28 print.m: Don't change ui* objects units (bug #49600).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 22755
diff changeset
554 props(end).name = "color";
219c70d2ba28 print.m: Don't change ui* objects units (bug #49600).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 22755
diff changeset
555 props(end).value{1} = get (opts.figure, "color");
219c70d2ba28 print.m: Don't change ui* objects units (bug #49600).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 22755
diff changeset
556 set (opts.figure, "color", "white");
219c70d2ba28 print.m: Don't change ui* objects units (bug #49600).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 22755
diff changeset
557 nfig += 1;
21323
030d4d6c2b58 Implement figure property "InvertHardCopy" for printing (bug #47230).
Rik <rik@octave.org>
parents: 21122
diff changeset
558 endif
030d4d6c2b58 Implement figure property "InvertHardCopy" for printing (bug #47230).
Rik <rik@octave.org>
parents: 21122
diff changeset
559
030d4d6c2b58 Implement figure property "InvertHardCopy" for printing (bug #47230).
Rik <rik@octave.org>
parents: 21122
diff changeset
560 if (do_hardcopy)
030d4d6c2b58 Implement figure property "InvertHardCopy" for printing (bug #47230).
Rik <rik@octave.org>
parents: 21122
diff changeset
561 ## Set background to white for all top-level axes objects
030d4d6c2b58 Implement figure property "InvertHardCopy" for printing (bug #47230).
Rik <rik@octave.org>
parents: 21122
diff changeset
562 hax = findall (opts.figure, "-depth", 1, "type", "axes",
21859
ec3adcec1337 Fix "inverthardcopy" for transparent axes and plotyy (bug #48161).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 21759
diff changeset
563 "-not", "tag", "legend",
ec3adcec1337 Fix "inverthardcopy" for transparent axes and plotyy (bug #48161).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 21759
diff changeset
564 "-not", "color", "none");
22578
956f5c71dc3c Fix printing when axes has color "none" (bug #49243).
Rik <rik@octave.org>
parents: 22571
diff changeset
565 if (! isempty (hax))
956f5c71dc3c Fix printing when axes has color "none" (bug #49243).
Rik <rik@octave.org>
parents: 22571
diff changeset
566 for n = 1:numel (hax)
22783
219c70d2ba28 print.m: Don't change ui* objects units (bug #49600).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 22755
diff changeset
567 props(end+1).h = hax(n);
219c70d2ba28 print.m: Don't change ui* objects units (bug #49600).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 22755
diff changeset
568 props(end).name = "color";
219c70d2ba28 print.m: Don't change ui* objects units (bug #49600).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 22755
diff changeset
569 props(end).value{1} = get(hax(n), "color");
22578
956f5c71dc3c Fix printing when axes has color "none" (bug #49243).
Rik <rik@octave.org>
parents: 22571
diff changeset
570 set (hax(n), "color", "white");
22783
219c70d2ba28 print.m: Don't change ui* objects units (bug #49600).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 22755
diff changeset
571 nfig += 1;
22578
956f5c71dc3c Fix printing when axes has color "none" (bug #49243).
Rik <rik@octave.org>
parents: 22571
diff changeset
572 endfor
956f5c71dc3c Fix printing when axes has color "none" (bug #49243).
Rik <rik@octave.org>
parents: 22571
diff changeset
573 endif
21323
030d4d6c2b58 Implement figure property "InvertHardCopy" for printing (bug #47230).
Rik <rik@octave.org>
parents: 21122
diff changeset
574 endif
10913
dd6b90f44ae5 Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents: 10866
diff changeset
575
10860
3a5f5c99cc39 print.m: Modify texinfo. Add unwind_protect block.
Ben Abbott <bpabbott@mac.com>
parents: 10854
diff changeset
576 if (opts.force_solid != 0)
10913
dd6b90f44ae5 Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents: 10866
diff changeset
577 h = findall (opts.figure, "-property", "linestyle");
10834
05ba991794d4 Improvements for fltk printing.
Ben Abbott <bpabbott@mac.com>
parents: 10821
diff changeset
578 m = numel (props);
14868
5d3a684236b0 maint: Use Octave coding conventions for cuddling parentheses in scripts directory
Rik <octave@nomad.inbox5.com>
parents: 14852
diff changeset
579 for n = 1:numel (h)
10834
05ba991794d4 Improvements for fltk printing.
Ben Abbott <bpabbott@mac.com>
parents: 10821
diff changeset
580 props(m+n).h = h(n);
10860
3a5f5c99cc39 print.m: Modify texinfo. Add unwind_protect block.
Ben Abbott <bpabbott@mac.com>
parents: 10854
diff changeset
581 props(m+n).name = "linestyle";
3a5f5c99cc39 print.m: Modify texinfo. Add unwind_protect block.
Ben Abbott <bpabbott@mac.com>
parents: 10854
diff changeset
582 props(m+n).value = {get(h(n), "linestyle")};
10834
05ba991794d4 Improvements for fltk printing.
Ben Abbott <bpabbott@mac.com>
parents: 10821
diff changeset
583 endfor
10860
3a5f5c99cc39 print.m: Modify texinfo. Add unwind_protect block.
Ben Abbott <bpabbott@mac.com>
parents: 10854
diff changeset
584 if (opts.force_solid > 0)
3a5f5c99cc39 print.m: Modify texinfo. Add unwind_protect block.
Ben Abbott <bpabbott@mac.com>
parents: 10854
diff changeset
585 linestyle = "-";
3a5f5c99cc39 print.m: Modify texinfo. Add unwind_protect block.
Ben Abbott <bpabbott@mac.com>
parents: 10854
diff changeset
586 else
3a5f5c99cc39 print.m: Modify texinfo. Add unwind_protect block.
Ben Abbott <bpabbott@mac.com>
parents: 10854
diff changeset
587 linestyle = "--";
3a5f5c99cc39 print.m: Modify texinfo. Add unwind_protect block.
Ben Abbott <bpabbott@mac.com>
parents: 10854
diff changeset
588 endif
11589
b0084095098e missing semicolons in script files
John W. Eaton <jwe@octave.org>
parents: 11587
diff changeset
589 set (h, "linestyle", linestyle);
10860
3a5f5c99cc39 print.m: Modify texinfo. Add unwind_protect block.
Ben Abbott <bpabbott@mac.com>
parents: 10854
diff changeset
590 endif
10834
05ba991794d4 Improvements for fltk printing.
Ben Abbott <bpabbott@mac.com>
parents: 10821
diff changeset
591
21365
5b9618f4f841 Rely upon print.m for mono/color conversion. This simplifies gnuplot support
Ben Abbott <bpabbott@mac.com>
parents: 21323
diff changeset
592 if (opts.use_color < 0)
10866
045558999570 print.m: Include 'colormap' when converting RGB to mono.
Ben Abbott <bpabbott@mac.com>
parents: 10860
diff changeset
593 color_props = {"color", "facecolor", "edgecolor", "colormap"};
14868
5d3a684236b0 maint: Use Octave coding conventions for cuddling parentheses in scripts directory
Rik <octave@nomad.inbox5.com>
parents: 14852
diff changeset
594 for c = 1:numel (color_props)
10913
dd6b90f44ae5 Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents: 10866
diff changeset
595 h = findall (opts.figure, "-property", color_props{c});
dd6b90f44ae5 Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents: 10866
diff changeset
596 hnone = findall (opts.figure, color_props{c}, "none");
10860
3a5f5c99cc39 print.m: Modify texinfo. Add unwind_protect block.
Ben Abbott <bpabbott@mac.com>
parents: 10854
diff changeset
597 h = setdiff (h, hnone);
3a5f5c99cc39 print.m: Modify texinfo. Add unwind_protect block.
Ben Abbott <bpabbott@mac.com>
parents: 10854
diff changeset
598 m = numel (props);
14868
5d3a684236b0 maint: Use Octave coding conventions for cuddling parentheses in scripts directory
Rik <octave@nomad.inbox5.com>
parents: 14852
diff changeset
599 for n = 1:numel (h)
24423
1d52db450db4 Change ishandle to return true for Java objects for Matlab compatibility.
Rik <rik@octave.org>
parents: 24370
diff changeset
600 if (ishghandle (h(n)))
11551
84fa2ba414ee print.m: Fix printing to eps for DOS.
Ben Abbott <bpabbott@mac.com>
parents: 11523
diff changeset
601 ## Need to verify objects exist since callbacks may delete objects
84fa2ba414ee print.m: Fix printing to eps for DOS.
Ben Abbott <bpabbott@mac.com>
parents: 11523
diff changeset
602 ## as the colors for others are modified.
84fa2ba414ee print.m: Fix printing to eps for DOS.
Ben Abbott <bpabbott@mac.com>
parents: 11523
diff changeset
603 rgb = get (h(n), color_props{c});
84fa2ba414ee print.m: Fix printing to eps for DOS.
Ben Abbott <bpabbott@mac.com>
parents: 11523
diff changeset
604 props(end+1).h = h(n);
84fa2ba414ee print.m: Fix printing to eps for DOS.
Ben Abbott <bpabbott@mac.com>
parents: 11523
diff changeset
605 props(end).name = color_props{c};
84fa2ba414ee print.m: Fix printing to eps for DOS.
Ben Abbott <bpabbott@mac.com>
parents: 11523
diff changeset
606 props(end).value = {get(h(n), color_props{c})};
84fa2ba414ee print.m: Fix printing to eps for DOS.
Ben Abbott <bpabbott@mac.com>
parents: 11523
diff changeset
607 if (isnumeric (rgb))
84fa2ba414ee print.m: Fix printing to eps for DOS.
Ben Abbott <bpabbott@mac.com>
parents: 11523
diff changeset
608 ## convert RGB color to RGB gray scale
14872
c2dbdeaa25df maint: use rows() and columns() to clarify m-files.
Rik <octave@nomad.inbox5.com>
parents: 14868
diff changeset
609 xfer = repmat ([0.30, 0.59, 0.11], rows (rgb), 1);
11551
84fa2ba414ee print.m: Fix printing to eps for DOS.
Ben Abbott <bpabbott@mac.com>
parents: 11523
diff changeset
610 ggg = repmat (sum (xfer .* rgb, 2), 1, 3);
11589
b0084095098e missing semicolons in script files
John W. Eaton <jwe@octave.org>
parents: 11587
diff changeset
611 set (h(n), color_props{c}, ggg);
11551
84fa2ba414ee print.m: Fix printing to eps for DOS.
Ben Abbott <bpabbott@mac.com>
parents: 11523
diff changeset
612 endif
10866
045558999570 print.m: Include 'colormap' when converting RGB to mono.
Ben Abbott <bpabbott@mac.com>
parents: 10860
diff changeset
613 endif
10860
3a5f5c99cc39 print.m: Modify texinfo. Add unwind_protect block.
Ben Abbott <bpabbott@mac.com>
parents: 10854
diff changeset
614 endfor
3a5f5c99cc39 print.m: Modify texinfo. Add unwind_protect block.
Ben Abbott <bpabbott@mac.com>
parents: 10854
diff changeset
615 endfor
3a5f5c99cc39 print.m: Modify texinfo. Add unwind_protect block.
Ben Abbott <bpabbott@mac.com>
parents: 10854
diff changeset
616 endif
3a5f5c99cc39 print.m: Modify texinfo. Add unwind_protect block.
Ben Abbott <bpabbott@mac.com>
parents: 10854
diff changeset
617
27007
dd31206c87c0 Fix scaling of fonts when printing with -Sxsz,ysz option (bug #55907).
Rik <rik@octave.org>
parents: 26994
diff changeset
618 do_font = ! isempty (opts.font);
dd31206c87c0 Fix scaling of fonts when printing with -Sxsz,ysz option (bug #55907).
Rik <rik@octave.org>
parents: 26994
diff changeset
619 do_scalefontsize = ! isempty (opts.scalefontsize) && opts.scalefontsize != 1;
dd31206c87c0 Fix scaling of fonts when printing with -Sxsz,ysz option (bug #55907).
Rik <rik@octave.org>
parents: 26994
diff changeset
620 do_fontsize = ! isempty (opts.fontsize) || do_scalefontsize;
dd31206c87c0 Fix scaling of fonts when printing with -Sxsz,ysz option (bug #55907).
Rik <rik@octave.org>
parents: 26994
diff changeset
621 if (do_font || do_fontsize)
10913
dd6b90f44ae5 Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents: 10866
diff changeset
622 h = findall (opts.figure, "-property", "fontname");
10860
3a5f5c99cc39 print.m: Modify texinfo. Add unwind_protect block.
Ben Abbott <bpabbott@mac.com>
parents: 10854
diff changeset
623 m = numel (props);
14868
5d3a684236b0 maint: Use Octave coding conventions for cuddling parentheses in scripts directory
Rik <octave@nomad.inbox5.com>
parents: 14852
diff changeset
624 for n = 1:numel (h)
24423
1d52db450db4 Change ishandle to return true for Java objects for Matlab compatibility.
Rik <rik@octave.org>
parents: 24370
diff changeset
625 if (ishghandle (h(n)))
27007
dd31206c87c0 Fix scaling of fonts when printing with -Sxsz,ysz option (bug #55907).
Rik <rik@octave.org>
parents: 26994
diff changeset
626 if (do_font)
11551
84fa2ba414ee print.m: Fix printing to eps for DOS.
Ben Abbott <bpabbott@mac.com>
parents: 11523
diff changeset
627 props(end+1).h = h(n);
84fa2ba414ee print.m: Fix printing to eps for DOS.
Ben Abbott <bpabbott@mac.com>
parents: 11523
diff changeset
628 props(end).name = "fontname";
84fa2ba414ee print.m: Fix printing to eps for DOS.
Ben Abbott <bpabbott@mac.com>
parents: 11523
diff changeset
629 props(end).value = {get(h(n), "fontname")};
84fa2ba414ee print.m: Fix printing to eps for DOS.
Ben Abbott <bpabbott@mac.com>
parents: 11523
diff changeset
630 endif
27007
dd31206c87c0 Fix scaling of fonts when printing with -Sxsz,ysz option (bug #55907).
Rik <rik@octave.org>
parents: 26994
diff changeset
631 if (do_fontsize)
11551
84fa2ba414ee print.m: Fix printing to eps for DOS.
Ben Abbott <bpabbott@mac.com>
parents: 11523
diff changeset
632 props(end+1).h = h(n);
84fa2ba414ee print.m: Fix printing to eps for DOS.
Ben Abbott <bpabbott@mac.com>
parents: 11523
diff changeset
633 props(end).name = "fontsize";
84fa2ba414ee print.m: Fix printing to eps for DOS.
Ben Abbott <bpabbott@mac.com>
parents: 11523
diff changeset
634 props(end).value = {get(h(n), "fontsize")};
84fa2ba414ee print.m: Fix printing to eps for DOS.
Ben Abbott <bpabbott@mac.com>
parents: 11523
diff changeset
635 endif
10860
3a5f5c99cc39 print.m: Modify texinfo. Add unwind_protect block.
Ben Abbott <bpabbott@mac.com>
parents: 10854
diff changeset
636 endif
3a5f5c99cc39 print.m: Modify texinfo. Add unwind_protect block.
Ben Abbott <bpabbott@mac.com>
parents: 10854
diff changeset
637 endfor
27007
dd31206c87c0 Fix scaling of fonts when printing with -Sxsz,ysz option (bug #55907).
Rik <rik@octave.org>
parents: 26994
diff changeset
638 if (do_font)
24423
1d52db450db4 Change ishandle to return true for Java objects for Matlab compatibility.
Rik <rik@octave.org>
parents: 24370
diff changeset
639 set (h(ishghandle (h)), "fontname", opts.font);
10834
05ba991794d4 Improvements for fltk printing.
Ben Abbott <bpabbott@mac.com>
parents: 10821
diff changeset
640 endif
27007
dd31206c87c0 Fix scaling of fonts when printing with -Sxsz,ysz option (bug #55907).
Rik <rik@octave.org>
parents: 26994
diff changeset
641 if (do_fontsize)
dd31206c87c0 Fix scaling of fonts when printing with -Sxsz,ysz option (bug #55907).
Rik <rik@octave.org>
parents: 26994
diff changeset
642 if (! isempty (opts.fontsize))
dd31206c87c0 Fix scaling of fonts when printing with -Sxsz,ysz option (bug #55907).
Rik <rik@octave.org>
parents: 26994
diff changeset
643 ## Changing all fontsizes to a fixed value
dd31206c87c0 Fix scaling of fonts when printing with -Sxsz,ysz option (bug #55907).
Rik <rik@octave.org>
parents: 26994
diff changeset
644 if (ischar (opts.fontsize))
dd31206c87c0 Fix scaling of fonts when printing with -Sxsz,ysz option (bug #55907).
Rik <rik@octave.org>
parents: 26994
diff changeset
645 fontsize = str2double (opts.fontsize);
dd31206c87c0 Fix scaling of fonts when printing with -Sxsz,ysz option (bug #55907).
Rik <rik@octave.org>
parents: 26994
diff changeset
646 else
dd31206c87c0 Fix scaling of fonts when printing with -Sxsz,ysz option (bug #55907).
Rik <rik@octave.org>
parents: 26994
diff changeset
647 fontsize = opts.fontsize;
dd31206c87c0 Fix scaling of fonts when printing with -Sxsz,ysz option (bug #55907).
Rik <rik@octave.org>
parents: 26994
diff changeset
648 endif
dd31206c87c0 Fix scaling of fonts when printing with -Sxsz,ysz option (bug #55907).
Rik <rik@octave.org>
parents: 26994
diff changeset
649 if (do_scalefontsize)
dd31206c87c0 Fix scaling of fonts when printing with -Sxsz,ysz option (bug #55907).
Rik <rik@octave.org>
parents: 26994
diff changeset
650 ## This is done to work around the bbox being whole numbers.
dd31206c87c0 Fix scaling of fonts when printing with -Sxsz,ysz option (bug #55907).
Rik <rik@octave.org>
parents: 26994
diff changeset
651 fontsize *= opts.scalefontsize;
dd31206c87c0 Fix scaling of fonts when printing with -Sxsz,ysz option (bug #55907).
Rik <rik@octave.org>
parents: 26994
diff changeset
652 endif
dd31206c87c0 Fix scaling of fonts when printing with -Sxsz,ysz option (bug #55907).
Rik <rik@octave.org>
parents: 26994
diff changeset
653
dd31206c87c0 Fix scaling of fonts when printing with -Sxsz,ysz option (bug #55907).
Rik <rik@octave.org>
parents: 26994
diff changeset
654 ## FIXME: legend child objects need to be acted on first.
dd31206c87c0 Fix scaling of fonts when printing with -Sxsz,ysz option (bug #55907).
Rik <rik@octave.org>
parents: 26994
diff changeset
655 ## or legend fontsize callback will destroy them.
dd31206c87c0 Fix scaling of fonts when printing with -Sxsz,ysz option (bug #55907).
Rik <rik@octave.org>
parents: 26994
diff changeset
656 hlist = h(ishghandle (h));
dd31206c87c0 Fix scaling of fonts when printing with -Sxsz,ysz option (bug #55907).
Rik <rik@octave.org>
parents: 26994
diff changeset
657 haxes = strcmp (get (hlist, "type"), "axes");
dd31206c87c0 Fix scaling of fonts when printing with -Sxsz,ysz option (bug #55907).
Rik <rik@octave.org>
parents: 26994
diff changeset
658 set (hlist(! haxes), "fontsize", fontsize);
dd31206c87c0 Fix scaling of fonts when printing with -Sxsz,ysz option (bug #55907).
Rik <rik@octave.org>
parents: 26994
diff changeset
659 set (hlist(haxes), "fontsize", fontsize);
dd31206c87c0 Fix scaling of fonts when printing with -Sxsz,ysz option (bug #55907).
Rik <rik@octave.org>
parents: 26994
diff changeset
660
10860
3a5f5c99cc39 print.m: Modify texinfo. Add unwind_protect block.
Ben Abbott <bpabbott@mac.com>
parents: 10854
diff changeset
661 else
27007
dd31206c87c0 Fix scaling of fonts when printing with -Sxsz,ysz option (bug #55907).
Rik <rik@octave.org>
parents: 26994
diff changeset
662 ## Scaling fonts
dd31206c87c0 Fix scaling of fonts when printing with -Sxsz,ysz option (bug #55907).
Rik <rik@octave.org>
parents: 26994
diff changeset
663 ## FIXME: legend child objects need to be acted on first.
dd31206c87c0 Fix scaling of fonts when printing with -Sxsz,ysz option (bug #55907).
Rik <rik@octave.org>
parents: 26994
diff changeset
664 ## or legend fontsize callback will destroy them.
dd31206c87c0 Fix scaling of fonts when printing with -Sxsz,ysz option (bug #55907).
Rik <rik@octave.org>
parents: 26994
diff changeset
665 hlist = h(ishghandle (h));
dd31206c87c0 Fix scaling of fonts when printing with -Sxsz,ysz option (bug #55907).
Rik <rik@octave.org>
parents: 26994
diff changeset
666 haxes = strcmp (get (hlist, "type"), "axes");
dd31206c87c0 Fix scaling of fonts when printing with -Sxsz,ysz option (bug #55907).
Rik <rik@octave.org>
parents: 26994
diff changeset
667 for h = hlist(! haxes).'
dd31206c87c0 Fix scaling of fonts when printing with -Sxsz,ysz option (bug #55907).
Rik <rik@octave.org>
parents: 26994
diff changeset
668 fontsz = get (h, "fontsize");
dd31206c87c0 Fix scaling of fonts when printing with -Sxsz,ysz option (bug #55907).
Rik <rik@octave.org>
parents: 26994
diff changeset
669 set (h, "fontsize", fontsz * opts.scalefontsize);
dd31206c87c0 Fix scaling of fonts when printing with -Sxsz,ysz option (bug #55907).
Rik <rik@octave.org>
parents: 26994
diff changeset
670 endfor
dd31206c87c0 Fix scaling of fonts when printing with -Sxsz,ysz option (bug #55907).
Rik <rik@octave.org>
parents: 26994
diff changeset
671 for h = hlist(haxes).'
dd31206c87c0 Fix scaling of fonts when printing with -Sxsz,ysz option (bug #55907).
Rik <rik@octave.org>
parents: 26994
diff changeset
672 fontsz = get (h, "fontsize");
dd31206c87c0 Fix scaling of fonts when printing with -Sxsz,ysz option (bug #55907).
Rik <rik@octave.org>
parents: 26994
diff changeset
673 set (h, "fontsize", fontsz * opts.scalefontsize);
dd31206c87c0 Fix scaling of fonts when printing with -Sxsz,ysz option (bug #55907).
Rik <rik@octave.org>
parents: 26994
diff changeset
674 endfor
dd31206c87c0 Fix scaling of fonts when printing with -Sxsz,ysz option (bug #55907).
Rik <rik@octave.org>
parents: 26994
diff changeset
675
10860
3a5f5c99cc39 print.m: Modify texinfo. Add unwind_protect block.
Ben Abbott <bpabbott@mac.com>
parents: 10854
diff changeset
676 endif
10834
05ba991794d4 Improvements for fltk printing.
Ben Abbott <bpabbott@mac.com>
parents: 10821
diff changeset
677 endif
05ba991794d4 Improvements for fltk printing.
Ben Abbott <bpabbott@mac.com>
parents: 10821
diff changeset
678 endif
10860
3a5f5c99cc39 print.m: Modify texinfo. Add unwind_protect block.
Ben Abbott <bpabbott@mac.com>
parents: 10854
diff changeset
679
26055
8b9e6a39e0a2 Allow log axes to be exported correctly in tex formats (bug #50130).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26048
diff changeset
680 ## When exporting latex files use "latex" for the ticklabelinterpreter.
8b9e6a39e0a2 Allow log axes to be exported correctly in tex formats (bug #50130).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26048
diff changeset
681 ## It will format tick labels in log axes correctly
8b9e6a39e0a2 Allow log axes to be exported correctly in tex formats (bug #50130).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26048
diff changeset
682 if (strfind (opts.devopt, "latex"))
26935
d17eecaf4a14 Don't issue warning about unsupported latex when printing with -dpdflatexstandalone (bug #55946).
Rik <rik@octave.org>
parents: 26934
diff changeset
683 ## Disable warnings about Latex being unsupported since Octave will be
d17eecaf4a14 Don't issue warning about unsupported latex when printing with -dpdflatexstandalone (bug #55946).
Rik <rik@octave.org>
parents: 26934
diff changeset
684 ## passing Latex code directly to interpreter with no rendering.
d17eecaf4a14 Don't issue warning about unsupported latex when printing with -dpdflatexstandalone (bug #55946).
Rik <rik@octave.org>
parents: 26934
diff changeset
685 warning ("off", "Octave:text_interpreter", "local");
26055
8b9e6a39e0a2 Allow log axes to be exported correctly in tex formats (bug #50130).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26048
diff changeset
686 h = findall (opts.figure, "type", "axes");
8b9e6a39e0a2 Allow log axes to be exported correctly in tex formats (bug #50130).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26048
diff changeset
687 for n = 1:numel (h)
8b9e6a39e0a2 Allow log axes to be exported correctly in tex formats (bug #50130).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26048
diff changeset
688 if (ishghandle (h(n)))
8b9e6a39e0a2 Allow log axes to be exported correctly in tex formats (bug #50130).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26048
diff changeset
689 props(end+1).h = h(n);
8b9e6a39e0a2 Allow log axes to be exported correctly in tex formats (bug #50130).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26048
diff changeset
690 props(end).name = "ticklabelinterpreter";
8b9e6a39e0a2 Allow log axes to be exported correctly in tex formats (bug #50130).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26048
diff changeset
691 props(end).value = {get(h(n), "ticklabelinterpreter")};
8b9e6a39e0a2 Allow log axes to be exported correctly in tex formats (bug #50130).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26048
diff changeset
692 set (h(n), "ticklabelinterpreter", "latex");
8b9e6a39e0a2 Allow log axes to be exported correctly in tex formats (bug #50130).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26048
diff changeset
693 endif
8b9e6a39e0a2 Allow log axes to be exported correctly in tex formats (bug #50130).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26048
diff changeset
694 endfor
8b9e6a39e0a2 Allow log axes to be exported correctly in tex formats (bug #50130).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26048
diff changeset
695 endif
8b9e6a39e0a2 Allow log axes to be exported correctly in tex formats (bug #50130).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26048
diff changeset
696
19026
d6f1f46e5b8f Fix double '-P' in print command to printer (bug #41957).
Michael Godfrey <michaeldgodfrey@gmail.com>
parents: 17751
diff changeset
697 ## call the graphics toolkit print script
24139
5d2d0e570e46 print.m: fake grid transparency with gray color (bug #49705)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 23991
diff changeset
698 switch (tk)
17174
c3c1ebfaa7dc maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents: 17146
diff changeset
699 case "gnuplot"
c3c1ebfaa7dc maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents: 17146
diff changeset
700 opts = __gnuplot_print__ (opts);
c3c1ebfaa7dc maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents: 17146
diff changeset
701 otherwise
25998
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
702 if (strcmp (opts.renderer, "opengl"))
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
703 if (opts.rgb_output)
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
704 rgbout = __get_frame__ (opts.figure);
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
705 else
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
706 compression = "none";
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
707
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
708 if (strcmp (opts.devopt, "tiff"))
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
709 compression = "lzw";
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
710 elseif (strcmp (opts.devopt, "tiffn"))
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
711 opts.devopt = "tiff";
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
712 endif
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
713
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
714 imwrite (__get_frame__ (opts.figure), opts.name, ...
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
715 opts.devopt, "Compression", compression);
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
716 endif
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
717 else
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
718 opts = __opengl_print__ (opts);
8d2b3e3ff182 print.m: Implement "-opengl", "-painters" and "-RGBImage" options (bug #52866)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25884
diff changeset
719 endif
11009
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
720 endswitch
19706
18fd412c7dc3 Remove erroneously added "keyboard" in cset ef3cdadc2a08
Andreas Weber <andy.weber.aw@gmail.com>
parents: 19705
diff changeset
721
10860
3a5f5c99cc39 print.m: Modify texinfo. Add unwind_protect block.
Ben Abbott <bpabbott@mac.com>
parents: 10854
diff changeset
722 unwind_protect_cleanup
3a5f5c99cc39 print.m: Modify texinfo. Add unwind_protect block.
Ben Abbott <bpabbott@mac.com>
parents: 10854
diff changeset
723 ## restore modified properties
3a5f5c99cc39 print.m: Modify texinfo. Add unwind_protect block.
Ben Abbott <bpabbott@mac.com>
parents: 10854
diff changeset
724 if (isstruct (props))
17751
e2f83152e64a print.m: Restore figure position first (in pixels) and then original units.
Rik <rik@octave.org>
parents: 17744
diff changeset
725 ## Restore figure position and units first
20936
80dd7b3529ee Convert figure's descendants units to "normalized" during printing (Bug #46292).
Ben Abbott <bpabbott@mac.com>
parents: 20852
diff changeset
726 for n = nfig:-1:1
24423
1d52db450db4 Change ishandle to return true for Java objects for Matlab compatibility.
Rik <rik@octave.org>
parents: 24370
diff changeset
727 if (ishghandle (props(n).h))
17751
e2f83152e64a print.m: Restore figure position first (in pixels) and then original units.
Rik <rik@octave.org>
parents: 17744
diff changeset
728 set (props(n).h, props(n).name, props(n).value{1});
e2f83152e64a print.m: Restore figure position first (in pixels) and then original units.
Rik <rik@octave.org>
parents: 17744
diff changeset
729 endif
e2f83152e64a print.m: Restore figure position first (in pixels) and then original units.
Rik <rik@octave.org>
parents: 17744
diff changeset
730 endfor
20936
80dd7b3529ee Convert figure's descendants units to "normalized" during printing (Bug #46292).
Ben Abbott <bpabbott@mac.com>
parents: 20852
diff changeset
731 for n = numel (props):-1:(nfig + 1)
24423
1d52db450db4 Change ishandle to return true for Java objects for Matlab compatibility.
Rik <rik@octave.org>
parents: 24370
diff changeset
732 if (ishghandle (props(n).h))
11589
b0084095098e missing semicolons in script files
John W. Eaton <jwe@octave.org>
parents: 11587
diff changeset
733 set (props(n).h, props(n).name, props(n).value{1});
11551
84fa2ba414ee print.m: Fix printing to eps for DOS.
Ben Abbott <bpabbott@mac.com>
parents: 11523
diff changeset
734 endif
10860
3a5f5c99cc39 print.m: Modify texinfo. Add unwind_protect block.
Ben Abbott <bpabbott@mac.com>
parents: 10854
diff changeset
735 endfor
3a5f5c99cc39 print.m: Modify texinfo. Add unwind_protect block.
Ben Abbott <bpabbott@mac.com>
parents: 10854
diff changeset
736 endif
10834
05ba991794d4 Improvements for fltk printing.
Ben Abbott <bpabbott@mac.com>
parents: 10821
diff changeset
737
26728
f034b29320ad Use OpenGl textures to render image objects (bug #55632).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26689
diff changeset
738 ## Avoid a redraw since the figure should not have changed
f034b29320ad Use OpenGl textures to render image objects (bug #55632).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26689
diff changeset
739 set (gcf, "__modified__", "off");
f034b29320ad Use OpenGl textures to render image objects (bug #55632).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26689
diff changeset
740
10913
dd6b90f44ae5 Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents: 10866
diff changeset
741 ## Unlink temporary files
14868
5d3a684236b0 maint: Use Octave coding conventions for cuddling parentheses in scripts directory
Rik <octave@nomad.inbox5.com>
parents: 14852
diff changeset
742 for n = 1:numel (opts.unlink)
10913
dd6b90f44ae5 Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents: 10866
diff changeset
743 [status, output] = unlink (opts.unlink{n});
dd6b90f44ae5 Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents: 10866
diff changeset
744 if (status != 0)
26936
72fab319b47d Capitalize "Octave" in warning IDs.
Rik <rik@octave.org>
parents: 26935
diff changeset
745 warning ("Octave:print:unlinkerror", ...
72fab319b47d Capitalize "Octave" in warning IDs.
Rik <rik@octave.org>
parents: 26935
diff changeset
746 "print: %s, '%s'", output, opts.unlink{n});
10913
dd6b90f44ae5 Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents: 10866
diff changeset
747 endif
dd6b90f44ae5 Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents: 10866
diff changeset
748 endfor
10860
3a5f5c99cc39 print.m: Modify texinfo. Add unwind_protect block.
Ben Abbott <bpabbott@mac.com>
parents: 10854
diff changeset
749 end_unwind_protect
10834
05ba991794d4 Improvements for fltk printing.
Ben Abbott <bpabbott@mac.com>
parents: 10821
diff changeset
750
05ba991794d4 Improvements for fltk printing.
Ben Abbott <bpabbott@mac.com>
parents: 10821
diff changeset
751 if (isfigure (orig_figure))
17146
bbda4d952eb5 Fix pop-up of invisible figures during printing.
Rik <rik@octave.org>
parents: 17129
diff changeset
752 set (0, "currentfigure", orig_figure);
10834
05ba991794d4 Improvements for fltk printing.
Ben Abbott <bpabbott@mac.com>
parents: 10821
diff changeset
753 endif
5361
0ac38aea9f76 [project @ 2005-05-23 19:08:36 by jwe]
jwe
parents:
diff changeset
754 endfunction
11009
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
755
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
756 function cmd = epstool (opts, filein, fileout)
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
757 ## As epstool does not work with pipes, a subshell is used to
21751
b571fc85953f maint: Use two spaces after period to indicate sentence break.
Rik <rik@octave.org>
parents: 21578
diff changeset
758 ## permit piping. Since this solution does not work with the DOS
11009
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
759 ## command shell, the -tight and -preview options are disabled if
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
760 ## output must be piped.
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
761
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
762 ## DOS Shell:
11551
84fa2ba414ee print.m: Fix printing to eps for DOS.
Ben Abbott <bpabbott@mac.com>
parents: 11523
diff changeset
763 ## gs.exe [...] -sOutputFile=<filein> - & epstool -bbox -preview-tiff <filein> <fileout> & del <filein>
11009
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
764 ## Unix Shell;
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
765 ## cat > <filein> ; epstool -bbox -preview-tiff <filein> <fileout> ; rm <filein>
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
766
19724
abc158e7122e Use epswrite/eps2write depending on capabilities of ghostscript (bug #44186).
Rik <rik@octave.org>
parents: 19706
diff changeset
767 ## HACK: Keep track of whether ghostscript supports epswrite or eps2write.
abc158e7122e Use epswrite/eps2write depending on capabilities of ghostscript (bug #44186).
Rik <rik@octave.org>
parents: 19706
diff changeset
768 persistent epsdevice;
abc158e7122e Use epswrite/eps2write depending on capabilities of ghostscript (bug #44186).
Rik <rik@octave.org>
parents: 19706
diff changeset
769 if (isempty (epsdevice))
abc158e7122e Use epswrite/eps2write depending on capabilities of ghostscript (bug #44186).
Rik <rik@octave.org>
parents: 19706
diff changeset
770 [status, devlist] = system (sprintf ("%s -h", opts.ghostscript.binary));
abc158e7122e Use epswrite/eps2write depending on capabilities of ghostscript (bug #44186).
Rik <rik@octave.org>
parents: 19706
diff changeset
771 if (isempty (strfind (devlist, "eps2write")))
abc158e7122e Use epswrite/eps2write depending on capabilities of ghostscript (bug #44186).
Rik <rik@octave.org>
parents: 19706
diff changeset
772 epsdevice = "epswrite";
abc158e7122e Use epswrite/eps2write depending on capabilities of ghostscript (bug #44186).
Rik <rik@octave.org>
parents: 19706
diff changeset
773 else
abc158e7122e Use epswrite/eps2write depending on capabilities of ghostscript (bug #44186).
Rik <rik@octave.org>
parents: 19706
diff changeset
774 epsdevice = "eps2write";
abc158e7122e Use epswrite/eps2write depending on capabilities of ghostscript (bug #44186).
Rik <rik@octave.org>
parents: 19706
diff changeset
775 endif
abc158e7122e Use epswrite/eps2write depending on capabilities of ghostscript (bug #44186).
Rik <rik@octave.org>
parents: 19706
diff changeset
776 endif
19833
9fc020886ae9 maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents: 19725
diff changeset
777
11009
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
778 dos_shell = (ispc () && ! isunix ());
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
779
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
780 cleanup = "";
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
781 if (nargin < 3)
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
782 fileout = opts.name;
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
783 elseif (isempty (fileout))
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
784 fileout = "-";
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
785 endif
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
786
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
787 if (nargin < 2 || strcmp (filein, "-") || isempty (filein))
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
788 pipein = true;
19278
6ca096827123 Use tempname() rather than tmpnam() in core Octave.
Rik <rik@octave.org>
parents: 19078
diff changeset
789 filein = [tempname() ".eps"];
11009
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
790 if (dos_shell)
11252
d048ce3f7cef Replace "delete" with "del" in DOS shell commands.
Michael Goffioul <michael.goffioul@gmail.com>
parents: 11120
diff changeset
791 cleanup = sprintf ("& del %s ", strrep (filein, '/', '\'));
11009
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
792 else
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
793 cleanup = sprintf ("; rm %s ", filein);
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
794 endif
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
795 else
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
796 pipein = false;
20778
8513c84a13cb Use parser string concatenation rather than strcat() for performance in m-files.
Rik <rik@octave.org>
parents: 20713
diff changeset
797 filein = ["'" strtrim(filein) "'"];
11009
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
798 endif
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
799 if (strcmp (fileout, "-"))
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
800 pipeout = true;
19278
6ca096827123 Use tempname() rather than tmpnam() in core Octave.
Rik <rik@octave.org>
parents: 19078
diff changeset
801 fileout = [tempname() ".eps"];
11009
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
802 if (dos_shell)
19833
9fc020886ae9 maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents: 19725
diff changeset
803 cleanup = [cleanup, sprintf("& del %s ", strrep (fileout, '/', '\'))];
11009
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
804 else
19833
9fc020886ae9 maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents: 19725
diff changeset
805 cleanup = [cleanup, sprintf("; rm %s ", fileout)];
11009
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
806 endif
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
807 else
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
808 pipeout = false;
20778
8513c84a13cb Use parser string concatenation rather than strcat() for performance in m-files.
Rik <rik@octave.org>
parents: 20713
diff changeset
809 fileout = ["'" strtrim(fileout) "'"];
11009
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
810 endif
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
811
26173
0a145a1600e3 Use -tight option by default when printing EPS files (bug #53535).
Rik <rik@octave.org>
parents: 26104
diff changeset
812 if (! isempty (opts.preview) && opts.tight)
26936
72fab319b47d Capitalize "Octave" in warning IDs.
Rik <rik@octave.org>
parents: 26935
diff changeset
813 warning ("Octave:print:previewandtight",
72fab319b47d Capitalize "Octave" in warning IDs.
Rik <rik@octave.org>
parents: 26935
diff changeset
814 "print: eps preview may not be combined with -tight");
11009
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
815 endif
26173
0a145a1600e3 Use -tight option by default when printing EPS files (bug #53535).
Rik <rik@octave.org>
parents: 26104
diff changeset
816 if (! isempty (opts.preview) || opts.tight)
23991
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
817
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
818 if (isempty (opts.epstool_binary))
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
819 error ("print:noepstool", "print.m: 'epstool' is required for specified output format, but binary is not available in PATH");
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
820 endif
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
821
26173
0a145a1600e3 Use -tight option by default when printing EPS files (bug #53535).
Rik <rik@octave.org>
parents: 26104
diff changeset
822 if (opts.tight)
23991
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
823 cmd = "--copy --bbox";
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
824 elseif (! isempty (opts.preview))
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
825 switch (opts.preview)
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
826 case "tiff"
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
827 cmd = sprintf ("--add-%s-preview --device tiffg3", opts.preview);
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
828 case {"tiff6u", "tiff6p", "metafile"}
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
829 cmd = sprintf ("--add-%s-preview --device bmpgray", opts.preview);
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
830 case {"tiff4", "interchange"}
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
831 cmd = sprintf ("--add-%s-preview", opts.preview);
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
832 case "pict"
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
833 cmd = sprintf ("--add-%s-preview --mac-single", opts.preview);
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
834 otherwise
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
835 error ("print:invalidpreview",
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
836 "print.m: epstool cannot include preview for format '%s'",
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
837 opts.preview);
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
838 endswitch
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
839 if (! isempty (opts.ghostscript.resolution))
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
840 cmd = sprintf ("%s --dpi %d", cmd, fix (opts.ghostscript.resolution));
11009
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
841 endif
23991
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
842 else
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
843 cmd = "";
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
844 endif
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
845 if (! isempty (cmd))
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
846 cmd = sprintf ("%s --quiet %s %s %s ", opts.epstool_binary,
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
847 cmd, filein, fileout);
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
848 endif
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
849 if (pipein)
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
850 if (dos_shell)
24370
b1d1229d9e83 maint: Use single quotes to simplify excessive backslash escapes in code.
Rik <rik@octave.org>
parents: 24208
diff changeset
851 filein(filein=="'") = '"';
23991
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
852 gs_cmd = __ghostscript__ ("binary", opts.ghostscript.binary,
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
853 "device", epsdevice,
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
854 "source", "-",
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
855 "output", filein);
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
856 cmd = sprintf ("%s %s & %s", gs_cmd, filein, cmd);
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
857 else
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
858 cmd = sprintf ("cat > %s ; %s", filein, cmd);
11009
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
859 endif
23991
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
860 endif
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
861 if (pipeout)
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
862 if (dos_shell)
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
863 cmd = sprintf ("%s & type %s", cmd, fileout);
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
864 else
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
865 cmd = sprintf ("%s ; cat %s", cmd, fileout);
11009
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
866 endif
23991
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
867 endif
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
868 if (! isempty (cleanup))
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
869 if (pipeout && dos_shell)
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
870 error ("print:epstoolpipe",
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
871 "print.m: cannot pipe output of 'epstool' for DOS shell");
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
872 elseif (pipeout)
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
873 cmd = sprintf ("( %s %s )", cmd, cleanup);
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
874 else
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
875 cmd = sprintf ("%s %s", cmd, cleanup);
11009
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
876 endif
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
877 endif
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
878 else
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
879 if (pipein && pipeout)
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
880 if (dos_shell)
11551
84fa2ba414ee print.m: Fix printing to eps for DOS.
Ben Abbott <bpabbott@mac.com>
parents: 11523
diff changeset
881 cmd = __ghostscript__ ("binary", opts.ghostscript.binary,
19724
abc158e7122e Use epswrite/eps2write depending on capabilities of ghostscript (bug #44186).
Rik <rik@octave.org>
parents: 19706
diff changeset
882 "device", epsdevice,
11551
84fa2ba414ee print.m: Fix printing to eps for DOS.
Ben Abbott <bpabbott@mac.com>
parents: 11523
diff changeset
883 "source", "-",
84fa2ba414ee print.m: Fix printing to eps for DOS.
Ben Abbott <bpabbott@mac.com>
parents: 11523
diff changeset
884 "output", "-");
11009
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
885 else
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
886 cmd = " cat ";
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
887 endif
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
888 elseif (pipein && ! pipeout)
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
889 if (dos_shell)
11551
84fa2ba414ee print.m: Fix printing to eps for DOS.
Ben Abbott <bpabbott@mac.com>
parents: 11523
diff changeset
890 ## ghostscript expects double, not single, quotes
24370
b1d1229d9e83 maint: Use single quotes to simplify excessive backslash escapes in code.
Rik <rik@octave.org>
parents: 24208
diff changeset
891 fileout(fileout=="'") = '"';
11551
84fa2ba414ee print.m: Fix printing to eps for DOS.
Ben Abbott <bpabbott@mac.com>
parents: 11523
diff changeset
892 cmd = __ghostscript__ ("binary", opts.ghostscript.binary,
19724
abc158e7122e Use epswrite/eps2write depending on capabilities of ghostscript (bug #44186).
Rik <rik@octave.org>
parents: 19706
diff changeset
893 "device", epsdevice,
11551
84fa2ba414ee print.m: Fix printing to eps for DOS.
Ben Abbott <bpabbott@mac.com>
parents: 11523
diff changeset
894 "source", "-",
84fa2ba414ee print.m: Fix printing to eps for DOS.
Ben Abbott <bpabbott@mac.com>
parents: 11523
diff changeset
895 "output", fileout);
11009
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
896 else
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
897 cmd = sprintf (" cat > %s ", fileout);
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
898 endif
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
899 elseif (! pipein && pipeout)
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
900 if (dos_shell)
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
901 cmd = sprintf (" type %s ", filein);
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
902 else
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
903 cmd = sprintf (" cat %s ", filein);
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
904 endif
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
905 else
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
906 if (dos_shell)
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
907 cmd = sprintf (" copy %s %s ", filein, fileout);
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
908 else
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
909 cmd = sprintf (" cp %s %s ", filein, fileout);
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
910 endif
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
911 endif
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
912 endif
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
913 if (opts.debug)
11589
b0084095098e missing semicolons in script files
John W. Eaton <jwe@octave.org>
parents: 11587
diff changeset
914 fprintf ("epstool command: '%s'\n", cmd);
11009
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
915 endif
21758
ffad2baa90f7 maint: Use newlines to make code more readable.
Rik <rik@octave.org>
parents: 21751
diff changeset
916
11009
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
917 endfunction
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
918
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
919 function cmd = fig2dev (opts, devopt)
21758
ffad2baa90f7 maint: Use newlines to make code more readable.
Rik <rik@octave.org>
parents: 21751
diff changeset
920
11009
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
921 if (nargin < 2)
19833
9fc020886ae9 maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents: 19725
diff changeset
922 devopt = opts.devopt;
11009
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
923 endif
21758
ffad2baa90f7 maint: Use newlines to make code more readable.
Rik <rik@octave.org>
parents: 21751
diff changeset
924
23991
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
925 if (isempty (opts.fig2dev_binary))
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
926 error ("print:nofig2dev", "print.m: 'fig2dev' is required for specified output format, but binary is not available in PATH");
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
927 endif
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
928
11009
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
929 dos_shell = (ispc () && ! isunix ());
23991
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
930 if (dos_shell)
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
931 ## FIXME: Is this the right thing to do for DOS?
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
932 cmd = sprintf ("%s -L %s 2> NUL", opts.fig2dev_binary, devopt);
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
933 else
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
934 cmd = sprintf ("%s -L %s 2> /dev/null", opts.fig2dev_binary, devopt);
11009
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
935 endif
23991
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
936
11009
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
937 if (opts.debug)
11589
b0084095098e missing semicolons in script files
John W. Eaton <jwe@octave.org>
parents: 11587
diff changeset
938 fprintf ("fig2dev command: '%s'\n", cmd);
11009
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
939 endif
21758
ffad2baa90f7 maint: Use newlines to make code more readable.
Rik <rik@octave.org>
parents: 21751
diff changeset
940
11009
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
941 endfunction
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
942
12199
3fc07861449b Fix {eps,ps,pdf}latexstandalone printing for fltk, bug 32262.
Ben Abbott <bpabbott@mac.com>
parents: 11589
diff changeset
943 function latex_standalone (opts)
21758
ffad2baa90f7 maint: Use newlines to make code more readable.
Rik <rik@octave.org>
parents: 21751
diff changeset
944
12199
3fc07861449b Fix {eps,ps,pdf}latexstandalone printing for fltk, bug 32262.
Ben Abbott <bpabbott@mac.com>
parents: 11589
diff changeset
945 n = find (opts.name == ".", 1, "last");
3fc07861449b Fix {eps,ps,pdf}latexstandalone printing for fltk, bug 32262.
Ben Abbott <bpabbott@mac.com>
parents: 11589
diff changeset
946 if (! isempty (n))
3fc07861449b Fix {eps,ps,pdf}latexstandalone printing for fltk, bug 32262.
Ben Abbott <bpabbott@mac.com>
parents: 11589
diff changeset
947 opts.name = opts.name(1:n-1);
3fc07861449b Fix {eps,ps,pdf}latexstandalone printing for fltk, bug 32262.
Ben Abbott <bpabbott@mac.com>
parents: 11589
diff changeset
948 endif
20778
8513c84a13cb Use parser string concatenation rather than strcat() for performance in m-files.
Rik <rik@octave.org>
parents: 20713
diff changeset
949 latexfile = [opts.name ".tex"];
21758
ffad2baa90f7 maint: Use newlines to make code more readable.
Rik <rik@octave.org>
parents: 21751
diff changeset
950
16933
e39f00a32dc7 maint: Use parentheses around condition for switch(),while(),if() statements.
Rik <rik@octave.org>
parents: 16826
diff changeset
951 switch (opts.devopt)
17174
c3c1ebfaa7dc maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents: 17146
diff changeset
952 case {"pdflatexstandalone"}
c3c1ebfaa7dc maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents: 17146
diff changeset
953 packages = "\\usepackage{graphicx,color}";
20778
8513c84a13cb Use parser string concatenation rather than strcat() for performance in m-files.
Rik <rik@octave.org>
parents: 20713
diff changeset
954 graphicsfile = [opts.name "-inc.pdf"];
17174
c3c1ebfaa7dc maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents: 17146
diff changeset
955 case {"pslatexstandalone"}
c3c1ebfaa7dc maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents: 17146
diff changeset
956 packages = "\\usepackage{epsfig,color}";
20778
8513c84a13cb Use parser string concatenation rather than strcat() for performance in m-files.
Rik <rik@octave.org>
parents: 20713
diff changeset
957 graphicsfile = [opts.name "-inc.ps"];
17174
c3c1ebfaa7dc maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents: 17146
diff changeset
958 otherwise
c3c1ebfaa7dc maint: Use common indentation for switch statement.
Rik <rik@octave.org>
parents: 17146
diff changeset
959 packages = "\\usepackage{epsfig,color}";
20778
8513c84a13cb Use parser string concatenation rather than strcat() for performance in m-files.
Rik <rik@octave.org>
parents: 20713
diff changeset
960 graphicsfile = [opts.name "-inc.eps"];
12199
3fc07861449b Fix {eps,ps,pdf}latexstandalone printing for fltk, bug 32262.
Ben Abbott <bpabbott@mac.com>
parents: 11589
diff changeset
961 endswitch
21758
ffad2baa90f7 maint: Use newlines to make code more readable.
Rik <rik@octave.org>
parents: 21751
diff changeset
962
12199
3fc07861449b Fix {eps,ps,pdf}latexstandalone printing for fltk, bug 32262.
Ben Abbott <bpabbott@mac.com>
parents: 11589
diff changeset
963 papersize = sprintf ("\\usepackage[papersize={%.2fbp,%.2fbp},text={%.2fbp,%.2fbp}]{geometry}",
19725
5f2c0ca0ef51 Ensure that numbers passed to integer *printf format codes are integers (bug #44245).
Rik <rik@octave.org>
parents: 19724
diff changeset
964 fix (opts.canvas_size), fix (opts.canvas_size));
11009
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
965 prepend = {"\\documentclass{minimal}";
12199
3fc07861449b Fix {eps,ps,pdf}latexstandalone printing for fltk, bug 32262.
Ben Abbott <bpabbott@mac.com>
parents: 11589
diff changeset
966 packages;
3fc07861449b Fix {eps,ps,pdf}latexstandalone printing for fltk, bug 32262.
Ben Abbott <bpabbott@mac.com>
parents: 11589
diff changeset
967 papersize;
11009
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
968 "\\begin{document}";
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
969 "\\centering"};
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
970 postpend = {"\\end{document}"};
21758
ffad2baa90f7 maint: Use newlines to make code more readable.
Rik <rik@octave.org>
parents: 21751
diff changeset
971
11009
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
972 fid = fopen (latexfile, "r");
21759
b002b4331a12 maint: Use two newlines after endfunction and start of BIST tests.
Rik <rik@octave.org>
parents: 21758
diff changeset
973 if (fid < 0)
11009
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
974 error ("print:erroropeningfile",
11589
b0084095098e missing semicolons in script files
John W. Eaton <jwe@octave.org>
parents: 11587
diff changeset
975 "print.m: error opening file '%s'", latexfile);
11009
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
976 endif
21759
b002b4331a12 maint: Use two newlines after endfunction and start of BIST tests.
Rik <rik@octave.org>
parents: 21758
diff changeset
977 latex = fscanf (fid, "%c", Inf);
b002b4331a12 maint: Use two newlines after endfunction and start of BIST tests.
Rik <rik@octave.org>
parents: 21758
diff changeset
978 status = fclose (fid);
b002b4331a12 maint: Use two newlines after endfunction and start of BIST tests.
Rik <rik@octave.org>
parents: 21758
diff changeset
979 if (status != 0)
b002b4331a12 maint: Use two newlines after endfunction and start of BIST tests.
Rik <rik@octave.org>
parents: 21758
diff changeset
980 error ("print:errorclosingfile",
b002b4331a12 maint: Use two newlines after endfunction and start of BIST tests.
Rik <rik@octave.org>
parents: 21758
diff changeset
981 "print.m: error closing file '%s'", latexfile);
b002b4331a12 maint: Use two newlines after endfunction and start of BIST tests.
Rik <rik@octave.org>
parents: 21758
diff changeset
982 endif
b002b4331a12 maint: Use two newlines after endfunction and start of BIST tests.
Rik <rik@octave.org>
parents: 21758
diff changeset
983 ## FIXME: should this be fixed in GL2PS?
b002b4331a12 maint: Use two newlines after endfunction and start of BIST tests.
Rik <rik@octave.org>
parents: 21758
diff changeset
984 latex = strrep (latex, "\\includegraphics{}",
b002b4331a12 maint: Use two newlines after endfunction and start of BIST tests.
Rik <rik@octave.org>
parents: 21758
diff changeset
985 sprintf ("\\includegraphics{%s}", graphicsfile));
21758
ffad2baa90f7 maint: Use newlines to make code more readable.
Rik <rik@octave.org>
parents: 21751
diff changeset
986
11009
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
987 fid = fopen (latexfile, "w");
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
988 if (fid >= 0)
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
989 fprintf (fid, "%s\n", prepend{:});
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
990 fprintf (fid, "%s", latex);
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
991 fprintf (fid, "%s\n", postpend{:});
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
992 status = fclose (fid);
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
993 if (status != 0)
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
994 error ("print:errorclosingfile",
11589
b0084095098e missing semicolons in script files
John W. Eaton <jwe@octave.org>
parents: 11587
diff changeset
995 "print.m: error closing file '%s'", latexfile);
11009
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
996 endif
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
997 else
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
998 error ("print:erroropeningfile",
11589
b0084095098e missing semicolons in script files
John W. Eaton <jwe@octave.org>
parents: 11587
diff changeset
999 "print.m: error opening file '%s'", latexfile);
11009
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
1000 endif
21758
ffad2baa90f7 maint: Use newlines to make code more readable.
Rik <rik@octave.org>
parents: 21751
diff changeset
1001
11009
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
1002 endfunction
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
1003
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
1004 function cmd = lpr (opts)
21758
ffad2baa90f7 maint: Use newlines to make code more readable.
Rik <rik@octave.org>
parents: 21751
diff changeset
1005
11009
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
1006 if (nargin < 2)
19833
9fc020886ae9 maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents: 19725
diff changeset
1007 devopt = opts.devopt;
11009
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
1008 endif
21758
ffad2baa90f7 maint: Use newlines to make code more readable.
Rik <rik@octave.org>
parents: 21751
diff changeset
1009
11009
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
1010 if (! isempty (opts.lpr_binary))
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
1011 cmd = opts.lpr_binary;
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
1012 if (! isempty (opts.lpr_options))
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
1013 cmd = sprintf ("%s %s", cmd, opts.lpr_options);
11113
a8ac114ec9ab Stylefixes, replace end by endif.
Thorsten Meyer <thorsten.meyier@gmx.de>
parents: 11107
diff changeset
1014 endif
11009
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
1015 if (! isempty (opts.printer))
19026
d6f1f46e5b8f Fix double '-P' in print command to printer (bug #41957).
Michael Godfrey <michaeldgodfrey@gmail.com>
parents: 17751
diff changeset
1016 cmd = sprintf ("%s %s", cmd, opts.printer);
11113
a8ac114ec9ab Stylefixes, replace end by endif.
Thorsten Meyer <thorsten.meyier@gmx.de>
parents: 11107
diff changeset
1017 endif
11009
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
1018 elseif (isempty (opts.lpr_binary))
11589
b0084095098e missing semicolons in script files
John W. Eaton <jwe@octave.org>
parents: 11587
diff changeset
1019 error ("print:nolpr", "print.m: 'lpr' not found in PATH");
11009
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
1020 endif
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
1021 if (opts.debug)
11589
b0084095098e missing semicolons in script files
John W. Eaton <jwe@octave.org>
parents: 11587
diff changeset
1022 fprintf ("lpr command: '%s'\n", cmd);
11009
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
1023 endif
21758
ffad2baa90f7 maint: Use newlines to make code more readable.
Rik <rik@octave.org>
parents: 21751
diff changeset
1024
11009
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
1025 endfunction
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
1026
26932
aa9745a1114a Feed fig2dev with PDF files converted from svg (bug #55906)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26737
diff changeset
1027 function cmd = pstoedit (opts, devopt, do_svg = true)
21758
ffad2baa90f7 maint: Use newlines to make code more readable.
Rik <rik@octave.org>
parents: 21751
diff changeset
1028
11009
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
1029 if (nargin < 2)
19833
9fc020886ae9 maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents: 19725
diff changeset
1030 devopt = opts.devopt;
11009
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
1031 endif
21758
ffad2baa90f7 maint: Use newlines to make code more readable.
Rik <rik@octave.org>
parents: 21751
diff changeset
1032
23991
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
1033 if (isempty (opts.pstoedit_binary))
26932
aa9745a1114a Feed fig2dev with PDF files converted from svg (bug #55906)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26737
diff changeset
1034 error ("print:nopstoedit", ...
aa9745a1114a Feed fig2dev with PDF files converted from svg (bug #55906)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26737
diff changeset
1035 ["print.m: 'pstoedit' is required for specified output format, ", ...
aa9745a1114a Feed fig2dev with PDF files converted from svg (bug #55906)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26737
diff changeset
1036 "but binary is not available in PATH"]);
23991
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
1037 endif
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
1038
11009
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
1039 dos_shell = (ispc () && ! isunix ());
26993
119353eb6b38 maint: Strip trailing whitespace from source files.
John W. Eaton <jwe@octave.org>
parents: 26932
diff changeset
1040
26932
aa9745a1114a Feed fig2dev with PDF files converted from svg (bug #55906)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26737
diff changeset
1041 if (! do_svg)
aa9745a1114a Feed fig2dev with PDF files converted from svg (bug #55906)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26737
diff changeset
1042 if (dos_shell)
aa9745a1114a Feed fig2dev with PDF files converted from svg (bug #55906)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26737
diff changeset
1043 cmd = sprintf ("%s -f %s 2> NUL", opts.pstoedit_binary, devopt);
aa9745a1114a Feed fig2dev with PDF files converted from svg (bug #55906)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26737
diff changeset
1044 else
aa9745a1114a Feed fig2dev with PDF files converted from svg (bug #55906)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26737
diff changeset
1045 cmd = sprintf ("%s -f %s 2> /dev/null", opts.pstoedit_binary, devopt);
aa9745a1114a Feed fig2dev with PDF files converted from svg (bug #55906)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26737
diff changeset
1046 endi;f
aa9745a1114a Feed fig2dev with PDF files converted from svg (bug #55906)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26737
diff changeset
1047 endif
23991
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
1048 else
26932
aa9745a1114a Feed fig2dev with PDF files converted from svg (bug #55906)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26737
diff changeset
1049 cmd = svgconvert (opts, devopt);
aa9745a1114a Feed fig2dev with PDF files converted from svg (bug #55906)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26737
diff changeset
1050 if (dos_shell)
aa9745a1114a Feed fig2dev with PDF files converted from svg (bug #55906)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26737
diff changeset
1051 cmd = sprintf ("%s & %s -ssp -f %s %%s 2> NUL", cmd, ...
aa9745a1114a Feed fig2dev with PDF files converted from svg (bug #55906)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26737
diff changeset
1052 opts.pstoedit_binary, devopt);
aa9745a1114a Feed fig2dev with PDF files converted from svg (bug #55906)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26737
diff changeset
1053 else
aa9745a1114a Feed fig2dev with PDF files converted from svg (bug #55906)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26737
diff changeset
1054 cmd = sprintf ("%s ; %s -ssp -f %s %%s 2> /dev/null", cmd, ...
aa9745a1114a Feed fig2dev with PDF files converted from svg (bug #55906)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26737
diff changeset
1055 opts.pstoedit_binary, devopt);
aa9745a1114a Feed fig2dev with PDF files converted from svg (bug #55906)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26737
diff changeset
1056 endif
11009
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
1057 endif
23991
fcf7543e0d49 Only print warning messages about missing print tools when needed (bug #44152).
Rik <rik@octave.org>
parents: 23486
diff changeset
1058
11009
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
1059 if (opts.debug)
11589
b0084095098e missing semicolons in script files
John W. Eaton <jwe@octave.org>
parents: 11587
diff changeset
1060 fprintf ("pstoedit command: '%s'\n", cmd);
11009
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
1061 endif
21758
ffad2baa90f7 maint: Use newlines to make code more readable.
Rik <rik@octave.org>
parents: 21751
diff changeset
1062
11009
064aaf82222f Print via a pipeline.
Ben Abbott <bpabbott@mac.com>
parents: 10954
diff changeset
1063 endfunction
26027
98d7a111786a Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25998
diff changeset
1064
98d7a111786a Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25998
diff changeset
1065 function cmd = svgconvert (opts, devopt)
98d7a111786a Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25998
diff changeset
1066
98d7a111786a Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25998
diff changeset
1067 cmd = "";
98d7a111786a Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25998
diff changeset
1068
98d7a111786a Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25998
diff changeset
1069 if (nargin < 2)
98d7a111786a Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25998
diff changeset
1070 devopt = opts.devopt;
98d7a111786a Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25998
diff changeset
1071 endif
98d7a111786a Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25998
diff changeset
1072
98d7a111786a Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25998
diff changeset
1073 if (isempty (opts.svgconvert_binary))
26936
72fab319b47d Capitalize "Octave" in warning IDs.
Rik <rik@octave.org>
parents: 26935
diff changeset
1074 warning ("Octave:print:nosvgconvert", ...
72fab319b47d Capitalize "Octave" in warning IDs.
Rik <rik@octave.org>
parents: 26935
diff changeset
1075 ["print: unable to find octave-svgconvert, ", ...
72fab319b47d Capitalize "Octave" in warning IDs.
Rik <rik@octave.org>
parents: 26935
diff changeset
1076 "falling back to eps conversion"]);
26027
98d7a111786a Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25998
diff changeset
1077 else
26063
4407b315339d print.m: Fix localization of the default font file (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26055
diff changeset
1078 fontdir = getenv ("OCTAVE_FONTS_DIR");
4407b315339d print.m: Fix localization of the default font file (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26055
diff changeset
1079
4407b315339d print.m: Fix localization of the default font file (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26055
diff changeset
1080 if (isempty (fontdir))
4407b315339d print.m: Fix localization of the default font file (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26055
diff changeset
1081 fontdir = __octave_config_info__ ("octfontsdir");
4407b315339d print.m: Fix localization of the default font file (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26055
diff changeset
1082 endif
4407b315339d print.m: Fix localization of the default font file (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26055
diff changeset
1083
26027
98d7a111786a Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25998
diff changeset
1084 cmd = sprintf ("%s - %%s %3.2f %s %d %%s", opts.svgconvert_binary, ...
26063
4407b315339d print.m: Fix localization of the default font file (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26055
diff changeset
1085 get (0, "screenpixelsperinch"), ...
4407b315339d print.m: Fix localization of the default font file (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26055
diff changeset
1086 fullfile (fontdir, "FreeSans.otf"), 1);
26027
98d7a111786a Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25998
diff changeset
1087
98d7a111786a Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25998
diff changeset
1088 if (opts.debug)
98d7a111786a Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25998
diff changeset
1089 fprintf ("svgconvert command: '%s'\n", cmd);
98d7a111786a Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25998
diff changeset
1090 endif
98d7a111786a Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25998
diff changeset
1091 endif
98d7a111786a Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25998
diff changeset
1092
98d7a111786a Add SVG convertion option for printing to PDF and raster outputs (bug #52193)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25998
diff changeset
1093 endfunction