-
Notifications
You must be signed in to change notification settings - Fork 79
/
Copy pathps-begin-page.xml
140 lines (134 loc) · 5.5 KB
/
ps-begin-page.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 96c9d88bad9a7d7d44bfb7f26c226df7ee9ddf26 Maintainer: takagi Status: ready -->
<refentry xml:id="function.ps-begin-page" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>ps_begin_page</refname>
<refpurpose>新しいページを開始する</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>ps_begin_page</methodname>
<methodparam><type>resource</type><parameter>psdoc</parameter></methodparam>
<methodparam><type>float</type><parameter>width</parameter></methodparam>
<methodparam><type>float</type><parameter>height</parameter></methodparam>
</methodsynopsis>
<para>
新しいページを開始します。<parameter>width</parameter> や
<parameter>height</parameter> というパラメータを見ると
いかにもページ単位でサイズを変えられるように思えますが、PostScript
ではこれは不可能です。最初に <function>ps_begin_page</function>
を呼んだ際に指定されたサイズが、ドキュメント全体に適用されます。
2 回目以降に呼ばれた場合はこのパラメータは意味を持たず、
単に新しいページが作られるだけです。しかし、もしあなたが PostScript ドキュメントを
PDF に変換しようと考えているのなら話は別です。
この関数はドキュメントの各ページごとに pdfmark を設定するので、
PDF に変換した後はページごとにサイズを変えることができます。
</para>
<para>
PostScript はさまざまなページサイズを知らないので、pslib
ではドキュメントの各ページに対してバウンディングボックスを設定します。
このサイズは PostScript ビューアによって評価され、
ドキュメントヘッダの BoundingBox より優先されます。
左下角が (0, 0) ではない BoundingBox を設定すると、
予期せぬ結果を引き起こすことがあります。なぜなら、
ページ単位のバウンディングボックスは常に左下角が (0, 0) であり、
これが全体の設定より優先されるからです。
</para>
<para>
個々のページの情報はカプセル化して保存されています。どういうことかというと、
あるページで設定した情報のほとんどは次のページに引き継がれないということです。
</para>
<para>
最初の <function>ps_begin_page</function> 呼び出しまでに一度も
<function>ps_findfont</function> が呼び出されていなかった場合は、
PostScript ドキュメントのヘッダが出力され、
バウンディングボックスが最初のページのサイズに設定されます。
バウンディングボックスの左下角は (0, 0) に設定されます。もしすでに
<function>ps_findfont</function> が呼ばれていた場合は既にヘッダが出力されてしまっており、
ドキュメントに適切なバウンディングボックスが設定されていないことになります。
このようなことを避けるために、<function>ps_findfont</function> や
<function>ps_begin_page</function> を実行する前にはいつも
<function>ps_set_info</function> を実行し、
<literal>BoundingBox</literal> や <literal>Orientation</literal>
の値を設定しておくべきです。
</para>
<note>
<para>
pslib のバージョン 0.2.6 まででは、
<function>ps_set_info</function> によって事前に設定されていたり
<function>ps_findfont</function> が事前にコールされていない限り、
この関数は常に BoundingBox および Orientation を上書きします。
</para>
</note>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>psdoc</parameter></term>
<listitem>
<para>
<function>ps_new</function> が返す、postscript
ファイルのリソース ID。
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>width</parameter></term>
<listitem>
<para>
ピクセル単位のページの幅 (例: A4 の場合は 596)。
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>height</parameter></term>
<listitem>
<para>
ピクセル単位のページの高さ (例: A4 の場合は 842)。
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.success;
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>ps_end_page</function></member>
<member><function>ps_findfont</function></member>
<member><function>ps_set_info</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->