rghost_barcode 0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/doc/classes/RGhost.html +109 -0
- data/lib/doc/classes/RGhost/Barcode.html +147 -0
- data/lib/doc/classes/RGhost/Barcode/Auspost.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Azteccode.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Base.html +266 -0
- data/lib/doc/classes/RGhost/Barcode/Base.src/M000004.html +34 -0
- data/lib/doc/classes/RGhost/Barcode/Base.src/M000005.html +30 -0
- data/lib/doc/classes/RGhost/Barcode/Base.src/M000006.html +20 -0
- data/lib/doc/classes/RGhost/Barcode/Border.html +170 -0
- data/lib/doc/classes/RGhost/Barcode/Border.src/M000001.html +27 -0
- data/lib/doc/classes/RGhost/Barcode/Code11.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Code128.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Code2of5.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Code39.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Code93.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Datamatrix.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Ean13.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Ean2.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Ean5.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Ean8.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Guard.html +174 -0
- data/lib/doc/classes/RGhost/Barcode/Guard.src/M000003.html +27 -0
- data/lib/doc/classes/RGhost/Barcode/Interleaved2of5.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Isbn.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Kix.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Maxicode.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Msi.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Onecode.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Parameter.html +262 -0
- data/lib/doc/classes/RGhost/Barcode/Parameter.src/M000007.html +20 -0
- data/lib/doc/classes/RGhost/Barcode/Parameter.src/M000008.html +18 -0
- data/lib/doc/classes/RGhost/Barcode/Parameter.src/M000009.html +18 -0
- data/lib/doc/classes/RGhost/Barcode/Parameter.src/M000010.html +18 -0
- data/lib/doc/classes/RGhost/Barcode/Parameter.src/M000011.html +18 -0
- data/lib/doc/classes/RGhost/Barcode/Parameter.src/M000012.html +24 -0
- data/lib/doc/classes/RGhost/Barcode/Parameter.src/M000013.html +18 -0
- data/lib/doc/classes/RGhost/Barcode/Parameter.src/M000014.html +18 -0
- data/lib/doc/classes/RGhost/Barcode/Parameter.src/M000015.html +16 -0
- data/lib/doc/classes/RGhost/Barcode/Pdf417.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Pharmacode.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Plessey.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Postnet.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Qrcode.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Rationalizedcodabar.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Raw.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Royalmail.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Rss14.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Rssexpanded.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Rsslimited.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Symbol.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Text.html +193 -0
- data/lib/doc/classes/RGhost/Barcode/Text.src/M000002.html +30 -0
- data/lib/doc/classes/RGhost/Barcode/Upca.html +113 -0
- data/lib/doc/classes/RGhost/Barcode/Upce.html +113 -0
- data/lib/doc/classes/RGhost/Config.html +150 -0
- data/lib/doc/classes/RGhost/Config.src/M000016.html +45 -0
- data/lib/doc/classes/RGhost/Document.html +704 -0
- data/lib/doc/classes/RGhost/Document.src/M000017.html +19 -0
- data/lib/doc/classes/RGhost/Document.src/M000018.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000019.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000020.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000021.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000022.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000023.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000024.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000025.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000026.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000027.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000028.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000029.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000030.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000031.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000032.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000033.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000034.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000035.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000036.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000037.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000038.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000039.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000040.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000041.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000042.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000043.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000044.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000045.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000046.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000047.html +18 -0
- data/lib/doc/classes/RGhost/Document.src/M000048.html +18 -0
- data/lib/doc/created.rid +1 -0
- data/lib/doc/files/rghost_barcode/rghost_barcode_adapter_rb.html +101 -0
- data/lib/doc/files/rghost_barcode/rghost_barcode_base_rb.html +101 -0
- data/lib/doc/files/rghost_barcode/rghost_barcode_classes_rb.html +101 -0
- data/lib/doc/files/rghost_barcode/rghost_barcode_examples_rb.html +101 -0
- data/lib/doc/files/rghost_barcode/rghost_barcode_version_rb.html +101 -0
- data/lib/doc/files/rghost_barcode_rb.html +111 -0
- data/lib/doc/files/teste_main_rb.html +110 -0
- data/lib/doc/fr_class_index.html +67 -0
- data/lib/doc/fr_file_index.html +33 -0
- data/lib/doc/fr_method_index.html +74 -0
- data/lib/doc/index.html +24 -0
- data/lib/rghost_barcode.rb +7 -0
- data/lib/rghost_barcode/ps/auspost.ps +192 -0
- data/lib/rghost_barcode/ps/azteccode.ps +357 -0
- data/lib/rghost_barcode/ps/barcode_template.eps +1193 -0
- data/lib/rghost_barcode/ps/code11.ps +128 -0
- data/lib/rghost_barcode/ps/code128.ps +121 -0
- data/lib/rghost_barcode/ps/code2of5.ps +106 -0
- data/lib/rghost_barcode/ps/code39.ps +109 -0
- data/lib/rghost_barcode/ps/code93.ps +117 -0
- data/lib/rghost_barcode/ps/datamatrix.ps +328 -0
- data/lib/rghost_barcode/ps/ean13.ps +183 -0
- data/lib/rghost_barcode/ps/ean2.ps +101 -0
- data/lib/rghost_barcode/ps/ean5.ps +116 -0
- data/lib/rghost_barcode/ps/ean8.ps +101 -0
- data/lib/rghost_barcode/ps/interleaved2of5.ps +132 -0
- data/lib/rghost_barcode/ps/isbn.ps +118 -0
- data/lib/rghost_barcode/ps/kix.ps +98 -0
- data/lib/rghost_barcode/ps/maxicode.ps +307 -0
- data/lib/rghost_barcode/ps/msi.ps +104 -0
- data/lib/rghost_barcode/ps/onecode.ps +276 -0
- data/lib/rghost_barcode/ps/pdf417.ps +428 -0
- data/lib/rghost_barcode/ps/pharmacode.ps +69 -0
- data/lib/rghost_barcode/ps/plessey.ps +121 -0
- data/lib/rghost_barcode/ps/postnet.ps +114 -0
- data/lib/rghost_barcode/ps/qrcode.ps +530 -0
- data/lib/rghost_barcode/ps/rationalizedcodabar.ps +117 -0
- data/lib/rghost_barcode/ps/raw.ps +35 -0
- data/lib/rghost_barcode/ps/render.ps +307 -0
- data/lib/rghost_barcode/ps/render.ps~ +308 -0
- data/lib/rghost_barcode/ps/royalmail.ps +119 -0
- data/lib/rghost_barcode/ps/rss14.ps +237 -0
- data/lib/rghost_barcode/ps/rssexpanded.ps +211 -0
- data/lib/rghost_barcode/ps/rsslimited.ps +191 -0
- data/lib/rghost_barcode/ps/symbol.ps +49 -0
- data/lib/rghost_barcode/ps/upca.ps +128 -0
- data/lib/rghost_barcode/ps/upce.ps +157 -0
- data/lib/rghost_barcode/rghost_barcode_adapter.rb +249 -0
- data/lib/rghost_barcode/rghost_barcode_base.rb +210 -0
- data/lib/rghost_barcode/rghost_barcode_classes.rb +96 -0
- data/lib/rghost_barcode/rghost_barcode_examples.rb +35 -0
- data/lib/rghost_barcode/rghost_barcode_version.rb +8 -0
- data/lib/teste_main.rb +94 -0
- metadata +218 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
|
|
2
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
3
|
+
<!DOCTYPE html
|
|
4
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
5
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
6
|
+
|
|
7
|
+
<!--
|
|
8
|
+
|
|
9
|
+
Files
|
|
10
|
+
|
|
11
|
+
-->
|
|
12
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
13
|
+
<head>
|
|
14
|
+
<title>Files</title>
|
|
15
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
16
|
+
<link rel="stylesheet" href="rdoc-style.css" type="text/css" />
|
|
17
|
+
<base target="docwin" />
|
|
18
|
+
</head>
|
|
19
|
+
<body>
|
|
20
|
+
<div id="index">
|
|
21
|
+
<h1 class="section-bar">Files</h1>
|
|
22
|
+
<div id="index-entries">
|
|
23
|
+
<a href="files/rghost_barcode_rb.html">rghost_barcode.rb</a><br />
|
|
24
|
+
<a href="files/rghost_barcode/rghost_barcode_adapter_rb.html">rghost_barcode/rghost_barcode_adapter.rb</a><br />
|
|
25
|
+
<a href="files/rghost_barcode/rghost_barcode_base_rb.html">rghost_barcode/rghost_barcode_base.rb</a><br />
|
|
26
|
+
<a href="files/rghost_barcode/rghost_barcode_classes_rb.html">rghost_barcode/rghost_barcode_classes.rb</a><br />
|
|
27
|
+
<a href="files/rghost_barcode/rghost_barcode_examples_rb.html">rghost_barcode/rghost_barcode_examples.rb</a><br />
|
|
28
|
+
<a href="files/rghost_barcode/rghost_barcode_version_rb.html">rghost_barcode/rghost_barcode_version.rb</a><br />
|
|
29
|
+
<a href="files/teste_main_rb.html">teste_main.rb</a><br />
|
|
30
|
+
</div>
|
|
31
|
+
</div>
|
|
32
|
+
</body>
|
|
33
|
+
</html>
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
|
|
2
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
3
|
+
<!DOCTYPE html
|
|
4
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
5
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
6
|
+
|
|
7
|
+
<!--
|
|
8
|
+
|
|
9
|
+
Methods
|
|
10
|
+
|
|
11
|
+
-->
|
|
12
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
13
|
+
<head>
|
|
14
|
+
<title>Methods</title>
|
|
15
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
16
|
+
<link rel="stylesheet" href="rdoc-style.css" type="text/css" />
|
|
17
|
+
<base target="docwin" />
|
|
18
|
+
</head>
|
|
19
|
+
<body>
|
|
20
|
+
<div id="index">
|
|
21
|
+
<h1 class="section-bar">Methods</h1>
|
|
22
|
+
<div id="index-entries">
|
|
23
|
+
<a href="classes/RGhost/Barcode/Parameter.html#M000009">add (RGhost::Barcode::Parameter)</a><br />
|
|
24
|
+
<a href="classes/RGhost/Barcode/Parameter.html#M000010">add_color (RGhost::Barcode::Parameter)</a><br />
|
|
25
|
+
<a href="classes/RGhost/Barcode/Parameter.html#M000011">add_single (RGhost::Barcode::Parameter)</a><br />
|
|
26
|
+
<a href="classes/RGhost/Barcode/Parameter.html#M000012">add_with_unit (RGhost::Barcode::Parameter)</a><br />
|
|
27
|
+
<a href="classes/RGhost/Document.html#M000023">barcode_auspost (RGhost::Document)</a><br />
|
|
28
|
+
<a href="classes/RGhost/Document.html#M000026">barcode_azteccode (RGhost::Document)</a><br />
|
|
29
|
+
<a href="classes/RGhost/Document.html#M000018">barcode_code11 (RGhost::Document)</a><br />
|
|
30
|
+
<a href="classes/RGhost/Document.html#M000033">barcode_code128 (RGhost::Document)</a><br />
|
|
31
|
+
<a href="classes/RGhost/Document.html#M000019">barcode_code2of5 (RGhost::Document)</a><br />
|
|
32
|
+
<a href="classes/RGhost/Document.html#M000024">barcode_code39 (RGhost::Document)</a><br />
|
|
33
|
+
<a href="classes/RGhost/Document.html#M000038">barcode_code93 (RGhost::Document)</a><br />
|
|
34
|
+
<a href="classes/RGhost/Document.html#M000032">barcode_datamatrix (RGhost::Document)</a><br />
|
|
35
|
+
<a href="classes/RGhost/Document.html#M000041">barcode_ean13 (RGhost::Document)</a><br />
|
|
36
|
+
<a href="classes/RGhost/Document.html#M000043">barcode_ean2 (RGhost::Document)</a><br />
|
|
37
|
+
<a href="classes/RGhost/Document.html#M000027">barcode_ean5 (RGhost::Document)</a><br />
|
|
38
|
+
<a href="classes/RGhost/Document.html#M000020">barcode_ean8 (RGhost::Document)</a><br />
|
|
39
|
+
<a href="classes/RGhost/Config.html#M000016">barcode_examples (RGhost::Config)</a><br />
|
|
40
|
+
<a href="classes/RGhost/Document.html#M000044">barcode_interleaved2of5 (RGhost::Document)</a><br />
|
|
41
|
+
<a href="classes/RGhost/Document.html#M000017">barcode_isbn (RGhost::Document)</a><br />
|
|
42
|
+
<a href="classes/RGhost/Document.html#M000047">barcode_kix (RGhost::Document)</a><br />
|
|
43
|
+
<a href="classes/RGhost/Document.html#M000036">barcode_maxicode (RGhost::Document)</a><br />
|
|
44
|
+
<a href="classes/RGhost/Document.html#M000039">barcode_msi (RGhost::Document)</a><br />
|
|
45
|
+
<a href="classes/RGhost/Document.html#M000042">barcode_onecode (RGhost::Document)</a><br />
|
|
46
|
+
<a href="classes/RGhost/Document.html#M000046">barcode_pdf417 (RGhost::Document)</a><br />
|
|
47
|
+
<a href="classes/RGhost/Document.html#M000048">barcode_pharmacode (RGhost::Document)</a><br />
|
|
48
|
+
<a href="classes/RGhost/Document.html#M000028">barcode_plessey (RGhost::Document)</a><br />
|
|
49
|
+
<a href="classes/RGhost/Document.html#M000021">barcode_postnet (RGhost::Document)</a><br />
|
|
50
|
+
<a href="classes/RGhost/Document.html#M000035">barcode_qrcode (RGhost::Document)</a><br />
|
|
51
|
+
<a href="classes/RGhost/Document.html#M000037">barcode_rationalizedcodabar (RGhost::Document)</a><br />
|
|
52
|
+
<a href="classes/RGhost/Document.html#M000029">barcode_raw (RGhost::Document)</a><br />
|
|
53
|
+
<a href="classes/RGhost/Document.html#M000031">barcode_royalmail (RGhost::Document)</a><br />
|
|
54
|
+
<a href="classes/RGhost/Document.html#M000030">barcode_rss14 (RGhost::Document)</a><br />
|
|
55
|
+
<a href="classes/RGhost/Document.html#M000022">barcode_rssexpanded (RGhost::Document)</a><br />
|
|
56
|
+
<a href="classes/RGhost/Document.html#M000040">barcode_rsslimited (RGhost::Document)</a><br />
|
|
57
|
+
<a href="classes/RGhost/Document.html#M000045">barcode_symbol (RGhost::Document)</a><br />
|
|
58
|
+
<a href="classes/RGhost/Document.html#M000034">barcode_upca (RGhost::Document)</a><br />
|
|
59
|
+
<a href="classes/RGhost/Document.html#M000025">barcode_upce (RGhost::Document)</a><br />
|
|
60
|
+
<a href="classes/RGhost/Barcode/Parameter.html#M000013">inspect (RGhost::Barcode::Parameter)</a><br />
|
|
61
|
+
<a href="classes/RGhost/Barcode/Parameter.html#M000015">make (RGhost::Barcode::Parameter)</a><br />
|
|
62
|
+
<a href="classes/RGhost/Barcode/Text.html#M000002">make (RGhost::Barcode::Text)</a><br />
|
|
63
|
+
<a href="classes/RGhost/Barcode/Guard.html#M000003">make (RGhost::Barcode::Guard)</a><br />
|
|
64
|
+
<a href="classes/RGhost/Barcode/Base.html#M000005">make (RGhost::Barcode::Base)</a><br />
|
|
65
|
+
<a href="classes/RGhost/Barcode/Border.html#M000001">make (RGhost::Barcode::Border)</a><br />
|
|
66
|
+
<a href="classes/RGhost/Barcode/Parameter.html#M000008">map (RGhost::Barcode::Parameter)</a><br />
|
|
67
|
+
<a href="classes/RGhost/Barcode/Parameter.html#M000007">new (RGhost::Barcode::Parameter)</a><br />
|
|
68
|
+
<a href="classes/RGhost/Barcode/Base.html#M000004">new (RGhost::Barcode::Base)</a><br />
|
|
69
|
+
<a href="classes/RGhost/Barcode/Base.html#M000006">ps (RGhost::Barcode::Base)</a><br />
|
|
70
|
+
<a href="classes/RGhost/Barcode/Parameter.html#M000014">to_s (RGhost::Barcode::Parameter)</a><br />
|
|
71
|
+
</div>
|
|
72
|
+
</div>
|
|
73
|
+
</body>
|
|
74
|
+
</html>
|
data/lib/doc/index.html
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
2
|
+
<!DOCTYPE html
|
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
|
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
|
|
5
|
+
|
|
6
|
+
<!--
|
|
7
|
+
|
|
8
|
+
RDoc Documentation
|
|
9
|
+
|
|
10
|
+
-->
|
|
11
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
12
|
+
<head>
|
|
13
|
+
<title>RDoc Documentation</title>
|
|
14
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
15
|
+
</head>
|
|
16
|
+
<frameset rows="20%, 80%">
|
|
17
|
+
<frameset cols="25%,35%,45%">
|
|
18
|
+
<frame src="fr_file_index.html" title="Files" name="Files" />
|
|
19
|
+
<frame src="fr_class_index.html" name="Classes" />
|
|
20
|
+
<frame src="fr_method_index.html" name="Methods" />
|
|
21
|
+
</frameset>
|
|
22
|
+
<frame src="files/teste_main_rb.html" name="docwin" />
|
|
23
|
+
</frameset>
|
|
24
|
+
</html>
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
|
|
2
|
+
% --DESC: AusPost 4 State Customer Code
|
|
3
|
+
% --EXAM: 5956439111ABA 9
|
|
4
|
+
% --EXOP: includetext custinfoenc=character
|
|
5
|
+
% --RNDR: renlinear
|
|
6
|
+
/auspost {
|
|
7
|
+
|
|
8
|
+
0 begin
|
|
9
|
+
|
|
10
|
+
/options exch def % We are given an option string
|
|
11
|
+
/useropts options def
|
|
12
|
+
/barcode exch def % We are given a barcode string
|
|
13
|
+
|
|
14
|
+
/includetext false def % Enable/disable text
|
|
15
|
+
/textfont /Courier def
|
|
16
|
+
/textsize 10 def
|
|
17
|
+
/textyoffset -7 def
|
|
18
|
+
/height 0.175 def
|
|
19
|
+
/custinfoenc (character) def
|
|
20
|
+
|
|
21
|
+
% Parse the input options
|
|
22
|
+
options {
|
|
23
|
+
token false eq {exit} if dup length string cvs (=) search
|
|
24
|
+
true eq {cvlit exch pop exch def} {cvlit true def} ifelse
|
|
25
|
+
} loop
|
|
26
|
+
|
|
27
|
+
/textfont textfont cvlit def
|
|
28
|
+
/textsize textsize cvr def
|
|
29
|
+
/textyoffset textyoffset cvr def
|
|
30
|
+
/height height cvr def
|
|
31
|
+
|
|
32
|
+
% Create an array containing the character mappings
|
|
33
|
+
/encs
|
|
34
|
+
[ (000) (001) (002) (010) (011) (012) (020) (021)
|
|
35
|
+
(022) (100) (101) (102) (110) (111) (112) (120)
|
|
36
|
+
(121) (122) (200) (201) (202) (210) (211) (212)
|
|
37
|
+
(220) (221) (222) (300) (301) (302) (310) (311)
|
|
38
|
+
(312) (320) (321) (322) (023) (030) (031) (032)
|
|
39
|
+
(033) (103) (113) (123) (130) (131) (132) (133)
|
|
40
|
+
(203) (213) (223) (230) (231) (232) (233) (303)
|
|
41
|
+
(313) (323) (330) (331) (332) (333) (003) (013)
|
|
42
|
+
(00) (01) (02) (10) (11) (12) (20) (21) (22) (30)
|
|
43
|
+
(13) (3)
|
|
44
|
+
] def
|
|
45
|
+
|
|
46
|
+
% Create a string of the available characters
|
|
47
|
+
/barchars (ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz #) def
|
|
48
|
+
|
|
49
|
+
/barlen barcode length def
|
|
50
|
+
barcode 0 2 getinterval (11) eq {37} if
|
|
51
|
+
barcode 0 2 getinterval (45) eq {37} if
|
|
52
|
+
barcode 0 2 getinterval (59) eq {52} if
|
|
53
|
+
barcode 0 2 getinterval (62) eq {67} if
|
|
54
|
+
/encstr exch string def
|
|
55
|
+
/txt barlen 2 sub array def
|
|
56
|
+
|
|
57
|
+
% Put start character
|
|
58
|
+
encstr 0 encs 74 get putinterval
|
|
59
|
+
|
|
60
|
+
% Encode the FCC
|
|
61
|
+
0 1 1 {
|
|
62
|
+
/i exch def
|
|
63
|
+
encs barcode i 1 getinterval cvi 64 add get
|
|
64
|
+
encstr i 2 mul 2 add 3 2 roll putinterval
|
|
65
|
+
} for
|
|
66
|
+
|
|
67
|
+
% Encode the DPID
|
|
68
|
+
2 1 9 {
|
|
69
|
+
/i exch def
|
|
70
|
+
encs barcode i 1 getinterval cvi 64 add get
|
|
71
|
+
encstr i 2 mul 2 add 3 2 roll putinterval
|
|
72
|
+
txt i 2 sub [barcode i 1 getinterval i 2 sub 2 mul 6 add 3.312 mul textyoffset textfont textsize] put
|
|
73
|
+
} for
|
|
74
|
+
|
|
75
|
+
% Encode the customer information
|
|
76
|
+
custinfoenc (numeric) eq {
|
|
77
|
+
0 1 barlen 11 sub {
|
|
78
|
+
/i exch def
|
|
79
|
+
encs barcode i 10 add 1 getinterval cvi 64 add get
|
|
80
|
+
encstr i 2 mul 22 add 3 2 roll putinterval
|
|
81
|
+
txt i 8 add [barcode i 10 add 1 getinterval i 2 mul 22 add 3.312 mul textyoffset textfont textsize] put
|
|
82
|
+
} for
|
|
83
|
+
/ciflen barlen 10 sub 2 mul def
|
|
84
|
+
} {
|
|
85
|
+
0 1 barlen 11 sub {
|
|
86
|
+
/i exch def
|
|
87
|
+
barcode i 10 add 1 getinterval barchars exch search
|
|
88
|
+
pop
|
|
89
|
+
length /indx exch def
|
|
90
|
+
pop pop
|
|
91
|
+
/enc encs indx get def
|
|
92
|
+
encstr i 3 mul 22 add enc putinterval
|
|
93
|
+
txt i 8 add [barcode i 10 add 1 getinterval i 3 mul 22 add 3.312 mul textyoffset textfont textsize] put
|
|
94
|
+
} for
|
|
95
|
+
/ciflen barlen 10 sub 3 mul def
|
|
96
|
+
} ifelse
|
|
97
|
+
|
|
98
|
+
% Add any filler characters
|
|
99
|
+
22 ciflen add 1 encstr length 14 sub {
|
|
100
|
+
encstr exch encs 75 get putinterval
|
|
101
|
+
} for
|
|
102
|
+
|
|
103
|
+
% Create the 64x64 Reed-Solomon table
|
|
104
|
+
/rstable 64 64 mul array def
|
|
105
|
+
rstable 0 [ 64 {0} repeat ] putinterval
|
|
106
|
+
rstable 64 [ 0 1 63 {} for ] putinterval
|
|
107
|
+
/prev 1 def
|
|
108
|
+
64 {
|
|
109
|
+
/next prev 1 bitshift def
|
|
110
|
+
next 64 and 0 ne {
|
|
111
|
+
/next next 67 xor def
|
|
112
|
+
} if
|
|
113
|
+
0 1 63 {
|
|
114
|
+
/j exch def
|
|
115
|
+
/nextcell {rstable 64 next mul j add} def
|
|
116
|
+
nextcell rstable 64 prev mul j add get 1 bitshift put
|
|
117
|
+
nextcell get 64 and 0 ne {
|
|
118
|
+
nextcell nextcell get 67 xor put
|
|
119
|
+
} if
|
|
120
|
+
} for
|
|
121
|
+
/prev next def
|
|
122
|
+
} repeat
|
|
123
|
+
|
|
124
|
+
% Calculate the Reed-Solomon codes for triples
|
|
125
|
+
/rscodes encstr length 16 sub 3 idiv 4 add array def
|
|
126
|
+
rscodes 0 [ 4 {0} repeat ] putinterval
|
|
127
|
+
2 3 encstr length 16 sub {
|
|
128
|
+
/i exch def
|
|
129
|
+
rscodes rscodes length i 2 sub 3 idiv sub 1 sub
|
|
130
|
+
encstr i 1 getinterval cvi 16 mul
|
|
131
|
+
encstr i 1 add 1 getinterval cvi 4 mul add
|
|
132
|
+
encstr i 2 add 1 getinterval cvi add
|
|
133
|
+
put
|
|
134
|
+
} for
|
|
135
|
+
rscodes length 5 sub -1 0 {
|
|
136
|
+
/i exch def
|
|
137
|
+
0 1 4 {
|
|
138
|
+
/j exch def
|
|
139
|
+
rscodes i j add rscodes i j add get
|
|
140
|
+
rstable 64 [48 17 29 30 1] j get mul rscodes i 4 add get add get
|
|
141
|
+
xor put
|
|
142
|
+
} for
|
|
143
|
+
} for
|
|
144
|
+
/checkcode (000000000000) 12 string copy def
|
|
145
|
+
0 1 3 {
|
|
146
|
+
/i exch def
|
|
147
|
+
/enc rscodes 3 i sub get 4 3 string cvrs def
|
|
148
|
+
checkcode i 3 mul 3 enc length sub add enc putinterval
|
|
149
|
+
} for
|
|
150
|
+
|
|
151
|
+
% Put checkcode and end characters
|
|
152
|
+
encstr encstr length 14 sub checkcode putinterval
|
|
153
|
+
encstr encstr length 2 sub encs 74 get putinterval
|
|
154
|
+
|
|
155
|
+
/bbs encstr length array def
|
|
156
|
+
/bhs encstr length array def
|
|
157
|
+
0 1 encstr length 1 sub {
|
|
158
|
+
/i exch def
|
|
159
|
+
/enc encstr i 1 getinterval def
|
|
160
|
+
enc (0) eq {
|
|
161
|
+
bbs i 0 height mul 8 div put
|
|
162
|
+
bhs i 8 height mul 8 div put
|
|
163
|
+
} if
|
|
164
|
+
enc (1) eq {
|
|
165
|
+
bbs i 3 height mul 8 div put
|
|
166
|
+
bhs i 5 height mul 8 div put
|
|
167
|
+
} if
|
|
168
|
+
enc (2) eq {
|
|
169
|
+
bbs i 0 height mul 8 div put
|
|
170
|
+
bhs i 5 height mul 8 div put
|
|
171
|
+
} if
|
|
172
|
+
enc (3) eq {
|
|
173
|
+
bbs i 3 height mul 8 div put
|
|
174
|
+
bhs i 2 height mul 8 div put
|
|
175
|
+
} if
|
|
176
|
+
} for
|
|
177
|
+
|
|
178
|
+
/retval 8 dict def
|
|
179
|
+
retval (ren) (renlinear) put
|
|
180
|
+
retval (bbs) bbs put
|
|
181
|
+
retval (bhs) bhs put
|
|
182
|
+
retval (sbs) [bhs length 1 sub {1.44 1.872} repeat 1.44] put
|
|
183
|
+
includetext {
|
|
184
|
+
retval (txt) txt put
|
|
185
|
+
} if
|
|
186
|
+
retval (opt) useropts put
|
|
187
|
+
retval
|
|
188
|
+
|
|
189
|
+
end
|
|
190
|
+
|
|
191
|
+
} bind def
|
|
192
|
+
/auspost load 0 1 dict put
|
|
@@ -0,0 +1,357 @@
|
|
|
1
|
+
|
|
2
|
+
% --DESC: Aztec Code
|
|
3
|
+
% --EXAM: 00100111001000000101001101111000010100111100101000000110
|
|
4
|
+
% --EXOP: format=compact
|
|
5
|
+
% --RNDR: renmatrix
|
|
6
|
+
/azteccode {
|
|
7
|
+
|
|
8
|
+
0 begin
|
|
9
|
+
|
|
10
|
+
/options exch def
|
|
11
|
+
/useropts options def
|
|
12
|
+
/barcode exch def
|
|
13
|
+
|
|
14
|
+
/format (unset) def % full, compact or rune
|
|
15
|
+
/readerinit false def
|
|
16
|
+
/layers -1 def
|
|
17
|
+
/eclevel 23 def
|
|
18
|
+
/ecaddchars 3 def
|
|
19
|
+
|
|
20
|
+
% Parse the input options
|
|
21
|
+
options {
|
|
22
|
+
token false eq {exit} if dup length string cvs (=) search
|
|
23
|
+
true eq {cvlit exch pop exch def} {cvlit true def} ifelse
|
|
24
|
+
} loop
|
|
25
|
+
|
|
26
|
+
/layers layers cvi def
|
|
27
|
+
/eclevel eclevel cvr def
|
|
28
|
+
/ecaddchars ecaddchars cvi def
|
|
29
|
+
|
|
30
|
+
% Convert from input into message bitstream
|
|
31
|
+
/msgbits () def
|
|
32
|
+
format (rune) ne {/msgbits barcode def} if
|
|
33
|
+
|
|
34
|
+
% Lookup the most appropriate symbol specification
|
|
35
|
+
/metrics [
|
|
36
|
+
[ (rune) 0 0 0 6 ] % Special metric for rune symbols
|
|
37
|
+
[ (compact) 1 1 17 6 ] [ (full) 1 1 21 6 ] [ (compact) 2 0 40 6 ]
|
|
38
|
+
[ (full) 2 1 48 6 ] [ (compact) 3 0 51 8 ] [ (full) 3 1 60 8 ]
|
|
39
|
+
[ (compact) 4 0 76 8 ] [ (full) 4 1 88 8 ] [ (full) 5 1 120 8 ]
|
|
40
|
+
[ (full) 6 1 156 8 ] [ (full) 7 1 196 8 ] [ (full) 8 1 240 8 ]
|
|
41
|
+
[ (full) 9 1 230 10 ] [ (full) 10 1 272 10 ] [ (full) 11 1 316 10 ]
|
|
42
|
+
[ (full) 12 1 364 10 ] [ (full) 13 1 416 10 ] [ (full) 14 1 470 10 ]
|
|
43
|
+
[ (full) 15 1 528 10 ] [ (full) 16 1 588 10 ] [ (full) 17 1 652 10 ]
|
|
44
|
+
[ (full) 18 1 720 10 ] [ (full) 19 1 790 10 ] [ (full) 20 1 864 10 ]
|
|
45
|
+
[ (full) 21 1 940 10 ] [ (full) 22 1 1020 10 ] [ (full) 23 0 920 12 ]
|
|
46
|
+
[ (full) 24 0 992 12 ] [ (full) 25 0 1066 12 ] [ (full) 26 0 1144 12 ]
|
|
47
|
+
[ (full) 27 0 1224 12 ] [ (full) 28 0 1306 12 ] [ (full) 29 0 1392 12 ]
|
|
48
|
+
[ (full) 30 0 1480 12 ] [ (full) 31 0 1570 12 ] [ (full) 32 0 1664 12 ]
|
|
49
|
+
] def
|
|
50
|
+
|
|
51
|
+
/i 0 def
|
|
52
|
+
{ % loop
|
|
53
|
+
/m metrics i get def
|
|
54
|
+
/frmt m 0 get def % Format of the symbol
|
|
55
|
+
/mlyr m 1 get def % Data layers
|
|
56
|
+
/icap m 2 get def % Reader initialisation capable
|
|
57
|
+
/ncws m 3 get def % Total of codewords
|
|
58
|
+
/bpcw m 4 get def % Bits per codeword
|
|
59
|
+
/numecw ncws eclevel mul 100 div ecaddchars add ceiling cvi def
|
|
60
|
+
msgbits length 0 eq {/numecw 0 def} if % Error correction codewords
|
|
61
|
+
/numdcw ncws numecw sub def % Data codewords
|
|
62
|
+
/okay true def
|
|
63
|
+
format (unset) ne format frmt ne and {/okay false def} if
|
|
64
|
+
readerinit icap 1 ne and {/okay false def} if
|
|
65
|
+
layers -1 ne layers mlyr ne and {/okay false def} if
|
|
66
|
+
msgbits length bpcw div ceiling cvi numdcw gt {/okay false def} if
|
|
67
|
+
okay {exit} if
|
|
68
|
+
/i i 1 add def
|
|
69
|
+
} loop
|
|
70
|
+
/layers mlyr def
|
|
71
|
+
/format frmt def
|
|
72
|
+
|
|
73
|
+
% Expand message bits into codewords avoiding codewords with all zeros or all ones
|
|
74
|
+
/allzero {dup length (000000000000) 0 3 -1 roll getinterval eq} bind def
|
|
75
|
+
/allones {dup length (111111111111) 0 3 -1 roll getinterval eq} bind def
|
|
76
|
+
/cws ncws array def
|
|
77
|
+
/m 0 def /c 0 def
|
|
78
|
+
{
|
|
79
|
+
msgbits length m le {exit} if
|
|
80
|
+
msgbits length m sub bpcw ge {
|
|
81
|
+
/cwb msgbits m bpcw 1 sub getinterval def % All but last bit
|
|
82
|
+
/cwf msgbits m bpcw add 1 sub 1 getinterval def % Last bit
|
|
83
|
+
cwb allzero {/cwf (1) def /m m 1 sub def} if % Flip last bit to avoid zeros
|
|
84
|
+
cwb allones {/cwf (0) def /m m 1 sub def} if % Flip last bit to avoid ones
|
|
85
|
+
% Concatinate the bits
|
|
86
|
+
12 string dup 0 cwb putinterval
|
|
87
|
+
dup bpcw 1 sub cwf putinterval
|
|
88
|
+
0 bpcw getinterval
|
|
89
|
+
/cwb exch def
|
|
90
|
+
} { % Final codeword
|
|
91
|
+
/cwb msgbits m msgbits length m sub getinterval def
|
|
92
|
+
/cwb (111111111111) 12 string copy dup 0 cwb putinterval 0 bpcw getinterval def
|
|
93
|
+
cwb allones {cwb cwb length 1 sub (0) putinterval} if % Prevent all ones
|
|
94
|
+
} ifelse
|
|
95
|
+
% Conversion of binary data into byte array
|
|
96
|
+
/cw 0 def
|
|
97
|
+
0 1 bpcw 1 sub {
|
|
98
|
+
/i exch def
|
|
99
|
+
/cw cw 2 bpcw i sub 1 sub exp cvi cwb i get 48 sub mul add def
|
|
100
|
+
} for
|
|
101
|
+
cws c cw put
|
|
102
|
+
/m m bpcw add def
|
|
103
|
+
/c c 1 add def
|
|
104
|
+
} loop
|
|
105
|
+
/cws cws 0 c getinterval def
|
|
106
|
+
|
|
107
|
+
% Reed-Solomon algorithm
|
|
108
|
+
/rscodes {
|
|
109
|
+
|
|
110
|
+
/rspm exch def
|
|
111
|
+
/rsgf exch def
|
|
112
|
+
/rsnc exch def
|
|
113
|
+
/rscws exch def
|
|
114
|
+
|
|
115
|
+
% Calculate the log and anti-log tables
|
|
116
|
+
/rslog [ 1 rsgf sub rsgf 1 sub {0} repeat ] def
|
|
117
|
+
/rsalog [ 1 rsgf 1 sub {0} repeat ] def
|
|
118
|
+
1 1 rsgf 1 sub {
|
|
119
|
+
/i exch def
|
|
120
|
+
rsalog i rsalog i 1 sub get 2 mul put
|
|
121
|
+
rsalog i get rsgf ge { rsalog i rsalog i get rspm xor put } if
|
|
122
|
+
rslog rsalog i get i put
|
|
123
|
+
} for
|
|
124
|
+
|
|
125
|
+
% Function to calculate the product in the field
|
|
126
|
+
/rsprod {
|
|
127
|
+
/y exch def
|
|
128
|
+
/x exch def
|
|
129
|
+
x y mul 0 ne {
|
|
130
|
+
rsalog rslog x get rslog y get add rsgf 1 sub mod get
|
|
131
|
+
} {
|
|
132
|
+
0
|
|
133
|
+
} ifelse
|
|
134
|
+
} bind def
|
|
135
|
+
|
|
136
|
+
% Generate the coefficients
|
|
137
|
+
/coeffs [ 1 rsnc {0} repeat ] def
|
|
138
|
+
1 1 rsnc {
|
|
139
|
+
/i exch def
|
|
140
|
+
coeffs i coeffs i 1 sub get put
|
|
141
|
+
i 1 sub -1 1 {
|
|
142
|
+
/j exch def
|
|
143
|
+
coeffs j coeffs j 1 sub get coeffs j get rsalog i get rsprod xor put
|
|
144
|
+
} for
|
|
145
|
+
coeffs 0 coeffs 0 get rsalog i get rsprod put
|
|
146
|
+
} for
|
|
147
|
+
|
|
148
|
+
% Extend the input with the error correction values
|
|
149
|
+
/nd rscws length def
|
|
150
|
+
/rscws [ rscws {} forall rsnc {0} repeat 0 ] def
|
|
151
|
+
0 1 nd 1 sub {
|
|
152
|
+
/k exch rscws exch get rscws nd get xor def
|
|
153
|
+
0 1 rsnc 1 sub {
|
|
154
|
+
/j exch def
|
|
155
|
+
rscws nd j add rscws nd j add 1 add get k coeffs rsnc j sub 1 sub get rsprod xor put
|
|
156
|
+
} for
|
|
157
|
+
} for
|
|
158
|
+
|
|
159
|
+
% Return all but the last codeword
|
|
160
|
+
rscws 0 rscws length 1 sub getinterval
|
|
161
|
+
|
|
162
|
+
} bind def
|
|
163
|
+
|
|
164
|
+
% Create the codewords and bit string for the mode
|
|
165
|
+
format (full) eq {
|
|
166
|
+
/mode layers 1 sub 11 bitshift cws length 1 sub add def
|
|
167
|
+
readerinit {/mode mode 2#1000000000000000 or def} if
|
|
168
|
+
/mode [
|
|
169
|
+
mode 2#1111000000000000 and -12 bitshift
|
|
170
|
+
mode 2#0000111100000000 and -8 bitshift
|
|
171
|
+
mode 2#0000000011110000 and -4 bitshift
|
|
172
|
+
mode 2#0000000000001111 and
|
|
173
|
+
] def
|
|
174
|
+
/mode mode 6 16 19 rscodes def
|
|
175
|
+
} if
|
|
176
|
+
format (compact) eq {
|
|
177
|
+
/mode layers 1 sub 6 bitshift cws length 1 sub add def
|
|
178
|
+
readerinit {/mode mode 2#10000000 or def} if
|
|
179
|
+
/mode [
|
|
180
|
+
mode 2#11110000 and -4 bitshift
|
|
181
|
+
mode 2#00001111 and
|
|
182
|
+
] def
|
|
183
|
+
/mode mode 5 16 19 rscodes def
|
|
184
|
+
} if
|
|
185
|
+
format (rune) eq {
|
|
186
|
+
/mode barcode cvi def
|
|
187
|
+
/mode [
|
|
188
|
+
mode 2#11110000 and -4 bitshift
|
|
189
|
+
mode 2#00001111 and
|
|
190
|
+
] def
|
|
191
|
+
/mode mode 5 16 19 rscodes def
|
|
192
|
+
/mode [mode {2#1010 xor} forall] def % Invert alternate bits
|
|
193
|
+
} if
|
|
194
|
+
/modebits mode length 4 mul string def
|
|
195
|
+
0 1 modebits length 1 sub {modebits exch (0) putinterval} for
|
|
196
|
+
0 1 mode length 1 sub {
|
|
197
|
+
/i exch def
|
|
198
|
+
modebits mode i get 2 4 string cvrs dup length 4 exch sub 4 i mul add exch putinterval
|
|
199
|
+
} for
|
|
200
|
+
|
|
201
|
+
% Extend the data codewords with error correction codewords to create the bit string for the data
|
|
202
|
+
/rsparams [
|
|
203
|
+
[] [] [] [] [] []
|
|
204
|
+
[ 64 67 ] % 6-bit codewords
|
|
205
|
+
[]
|
|
206
|
+
[ 256 301 ] % 8-bit codewords
|
|
207
|
+
[]
|
|
208
|
+
[ 1024 1033 ] % 10-bit codewords
|
|
209
|
+
[]
|
|
210
|
+
[ 4096 4201 ] % 12-bit codewords
|
|
211
|
+
] def
|
|
212
|
+
/cws cws ncws cws length sub rsparams bpcw get {} forall rscodes def
|
|
213
|
+
format (full) eq {
|
|
214
|
+
/databits layers layers mul 16 mul layers 112 mul add string def
|
|
215
|
+
} {
|
|
216
|
+
/databits layers layers mul 16 mul layers 88 mul add string def
|
|
217
|
+
} ifelse
|
|
218
|
+
0 1 databits length 1 sub {databits exch (0) putinterval} for
|
|
219
|
+
0 1 ncws 1 sub {
|
|
220
|
+
/i exch def
|
|
221
|
+
databits cws i get 2 bpcw string cvrs
|
|
222
|
+
dup length bpcw exch sub bpcw i mul add databits length ncws bpcw mul sub add
|
|
223
|
+
exch putinterval
|
|
224
|
+
} for
|
|
225
|
+
|
|
226
|
+
% Move to a point in the cartesian plane centered on the bullseye
|
|
227
|
+
/cmv {size mul sub mid add} bind def
|
|
228
|
+
|
|
229
|
+
% Move to a bit position within a layer
|
|
230
|
+
/lmv {
|
|
231
|
+
/lbit exch def
|
|
232
|
+
/llyr exch def
|
|
233
|
+
/lwid fw llyr 4 mul add def
|
|
234
|
+
/ldir lbit 2 idiv lwid idiv def
|
|
235
|
+
ldir 0 eq { % Top
|
|
236
|
+
lwid 1 sub 2 idiv neg 1 add lbit 2 idiv lwid mod add
|
|
237
|
+
fw 1 sub 2 idiv llyr 2 mul add lbit 2 mod add
|
|
238
|
+
cmv
|
|
239
|
+
} if
|
|
240
|
+
ldir 1 eq { % Right
|
|
241
|
+
fw 2 idiv llyr 2 mul add lbit 2 mod add
|
|
242
|
+
lwid 1 sub 2 idiv 1 sub lbit 2 idiv lwid mod sub
|
|
243
|
+
cmv
|
|
244
|
+
} if
|
|
245
|
+
ldir 2 eq { % Bottom
|
|
246
|
+
lwid 2 idiv neg 1 add lbit 2 idiv lwid mod add neg
|
|
247
|
+
fw 2 idiv llyr 2 mul add lbit 2 mod add neg
|
|
248
|
+
cmv
|
|
249
|
+
} if
|
|
250
|
+
ldir 3 eq { % Left
|
|
251
|
+
fw 1 sub 2 idiv llyr 2 mul add lbit 2 mod add neg
|
|
252
|
+
lwid 2 idiv 1 sub lbit 2 idiv lwid mod sub neg
|
|
253
|
+
cmv
|
|
254
|
+
} if
|
|
255
|
+
} bind def
|
|
256
|
+
|
|
257
|
+
% Create the pixel map
|
|
258
|
+
% For full symbols we disregard the reference grid at this stage
|
|
259
|
+
format (full) eq {/fw 12 def} {/fw 9 def} ifelse
|
|
260
|
+
/size fw layers 4 mul add 2 add def
|
|
261
|
+
/pixs [size size mul {-1} repeat] def
|
|
262
|
+
/mid size 1 sub 2 idiv size mul size 1 sub 2 idiv add def
|
|
263
|
+
|
|
264
|
+
% Data layers
|
|
265
|
+
/i 0 def
|
|
266
|
+
1 1 layers {
|
|
267
|
+
/layer exch def
|
|
268
|
+
0 1 fw layer 4 mul add 8 mul 1 sub {
|
|
269
|
+
/pos exch def
|
|
270
|
+
pixs layer pos lmv databits databits length i sub 1 sub get 48 sub put
|
|
271
|
+
/i i 1 add def
|
|
272
|
+
} for
|
|
273
|
+
} for
|
|
274
|
+
|
|
275
|
+
% For full symbols expand the pixel map by inserting the reference grid
|
|
276
|
+
format (full) eq {
|
|
277
|
+
/fw 13 def
|
|
278
|
+
/size fw layers 4 mul add 2 add layers 10.5 add 7.5 div 1 sub cvi 2 mul add def
|
|
279
|
+
/mid size size mul 2 idiv def
|
|
280
|
+
/npixs [size size mul {-2} repeat] def
|
|
281
|
+
0 16 size 2 idiv {
|
|
282
|
+
/i exch def
|
|
283
|
+
0 1 size 1 sub {
|
|
284
|
+
/j exch def
|
|
285
|
+
npixs size 2 idiv neg j add i cmv [size 2 idiv j add i add 1 add 2 mod] putinterval
|
|
286
|
+
npixs size 2 idiv neg j add i neg cmv [size 2 idiv j add i add 1 add 2 mod] putinterval
|
|
287
|
+
npixs i size 2 idiv neg j add cmv [size 2 idiv j add i add 1 add 2 mod] putinterval
|
|
288
|
+
npixs i neg size 2 idiv neg j add cmv [size 2 idiv j add i add 1 add 2 mod] putinterval
|
|
289
|
+
} for
|
|
290
|
+
} for
|
|
291
|
+
/j 0 def
|
|
292
|
+
0 1 npixs length 1 sub {
|
|
293
|
+
/i exch def
|
|
294
|
+
npixs i get -2 eq {
|
|
295
|
+
npixs i pixs j get put
|
|
296
|
+
/j j 1 add def
|
|
297
|
+
} if
|
|
298
|
+
} for
|
|
299
|
+
/pixs npixs def
|
|
300
|
+
} if
|
|
301
|
+
|
|
302
|
+
% Finder pattern
|
|
303
|
+
/fw fw 2 idiv def
|
|
304
|
+
fw neg 1 fw {
|
|
305
|
+
/i exch def
|
|
306
|
+
fw neg 1 fw {
|
|
307
|
+
/j exch def
|
|
308
|
+
pixs i j cmv
|
|
309
|
+
i abs j abs gt {i abs} {j abs} ifelse 1 add 2 mod
|
|
310
|
+
put
|
|
311
|
+
} for
|
|
312
|
+
} for
|
|
313
|
+
|
|
314
|
+
% Orientation bits
|
|
315
|
+
[ [ fw 1 add neg fw 1 ] [ fw 1 add neg fw 1 add 1 ]
|
|
316
|
+
[ fw neg fw 1 add 1 ] [ fw 1 add fw 1 add 1 ]
|
|
317
|
+
[ fw 1 add fw 1 ] [ fw 1 add fw neg 1 ]
|
|
318
|
+
[ fw fw 1 add 0 ] [ fw 1 add fw 1 add neg 0 ]
|
|
319
|
+
[ fw fw 1 add neg 0 ] [ fw neg fw 1 add neg 0 ]
|
|
320
|
+
[ fw 1 add neg fw 1 add neg 0 ] [ fw 1 add neg fw neg 0 ]
|
|
321
|
+
] {pixs exch {} forall 3 1 roll cmv exch put} forall
|
|
322
|
+
|
|
323
|
+
% Mode ring
|
|
324
|
+
format (full) eq {
|
|
325
|
+
/modemap [
|
|
326
|
+
[-5 7] [-4 7] [-3 7] [-2 7] [-1 7] [ 1 7] [ 2 7] [ 3 7] [ 4 7] [ 5 7]
|
|
327
|
+
[ 7 5] [ 7 4] [ 7 3] [ 7 2] [ 7 1] [ 7 -1] [ 7 -2] [ 7 -3] [ 7 -4] [ 7 -5]
|
|
328
|
+
[ 5 -7] [ 4 -7] [ 3 -7] [ 2 -7] [ 1 -7] [-1 -7] [-2 -7] [-3 -7] [-4 -7] [-5 -7]
|
|
329
|
+
[-7 -5] [-7 -4] [-7 -3] [-7 -2] [-7 -1] [-7 1] [-7 2] [-7 3] [-7 4] [-7 5]
|
|
330
|
+
] def
|
|
331
|
+
} {
|
|
332
|
+
/modemap [
|
|
333
|
+
[-3 5] [-2 5] [-1 5] [ 0 5] [ 1 5] [ 2 5] [ 3 5]
|
|
334
|
+
[ 5 3] [ 5 2] [ 5 1] [ 5 0] [ 5 -1] [ 5 -2] [ 5 -3]
|
|
335
|
+
[ 3 -5] [ 2 -5] [ 1 -5] [ 0 -5] [-1 -5] [-2 -5] [-3 -5]
|
|
336
|
+
[-5 -3] [-5 -2] [-5 -1] [-5 0] [-5 1] [-5 2] [-5 3]
|
|
337
|
+
] def
|
|
338
|
+
} ifelse
|
|
339
|
+
0 1 modemap length 1 sub {
|
|
340
|
+
/i exch def
|
|
341
|
+
pixs modemap i get {} forall cmv modebits i get 48 sub put
|
|
342
|
+
} for
|
|
343
|
+
|
|
344
|
+
/retval 7 dict def
|
|
345
|
+
retval (ren) (renmatrix) put
|
|
346
|
+
retval (pixs) pixs put
|
|
347
|
+
retval (pixx) size put
|
|
348
|
+
retval (pixy) size put
|
|
349
|
+
retval (height) size 2 mul 72 div put
|
|
350
|
+
retval (width) size 2 mul 72 div put
|
|
351
|
+
retval (opt) useropts put
|
|
352
|
+
retval
|
|
353
|
+
|
|
354
|
+
end
|
|
355
|
+
|
|
356
|
+
} bind def
|
|
357
|
+
/azteccode load 0 1 dict put
|