From b04623c377ca2f44f5e12e6eb23c2f4af80e3ae5 Mon Sep 17 00:00:00 2001 From: Elena ``of Valhalla'' Grandi Date: Sat, 24 Jun 2017 17:22:10 +0200 Subject: Converted hex-paper to template --- conf/settings/hex-paper/5mm.yaml | 8 ++ conf/theme/thin_lines.yaml | 2 + designs/hex-paper-5mm-a4.yaml | 8 ++ src/hex-paper.ps | 190 --------------------------------------- src/hex-paper.ps.j2 | 184 +++++++++++++++++++++++++++++++++++++ 5 files changed, 202 insertions(+), 190 deletions(-) create mode 100644 conf/settings/hex-paper/5mm.yaml create mode 100644 designs/hex-paper-5mm-a4.yaml delete mode 100644 src/hex-paper.ps create mode 100644 src/hex-paper.ps.j2 diff --git a/conf/settings/hex-paper/5mm.yaml b/conf/settings/hex-paper/5mm.yaml new file mode 100644 index 0000000..131e208 --- /dev/null +++ b/conf/settings/hex-paper/5mm.yaml @@ -0,0 +1,8 @@ +hex_side: 5 mm + +x_spacing: 0 +y_spacing: 0 +uniform_spacing: true + +x_trasl: 0 mm +y_trasl: 0 mm diff --git a/conf/theme/thin_lines.yaml b/conf/theme/thin_lines.yaml index 85477ed..84273e9 100644 --- a/conf/theme/thin_lines.yaml +++ b/conf/theme/thin_lines.yaml @@ -7,4 +7,6 @@ heavy_line_color: '{ 0.75 0.75 0.75 }' border_line_size: 0.5 border_line_color: '{ 0.75 0.75 0.75 }' +fill_color: '{ 1.0 1.0 1.0 }' + background_color: '{ 1.0 1.0 1.0 }' diff --git a/designs/hex-paper-5mm-a4.yaml b/designs/hex-paper-5mm-a4.yaml new file mode 100644 index 0000000..09a744d --- /dev/null +++ b/designs/hex-paper-5mm-a4.yaml @@ -0,0 +1,8 @@ +template: hex-paper +paper: a4 +margins: 10mm +theme: thin_lines +settings: 5mm +override: + x_trasl: '10 mm' + y_trasl: '10 mm' diff --git a/src/hex-paper.ps b/src/hex-paper.ps deleted file mode 100644 index 4a117cc..0000000 --- a/src/hex-paper.ps +++ /dev/null @@ -1,190 +0,0 @@ -%!PS-Adobe-1.0 -%%Title: hex-paper - part of rpgTools by Elena of Valhalla -%%Pages:1 -%%BoundingBox: 0 0 596 842 -%%DocumentPaperSizes: a4 -%%CreationDate: 2004/10/04 -%%DocumentData: Clean7Bit -%%LanguageLevel: 1 -%%EndComments -%%BeginProlog -% Copyright (C) 2004 Elena Grandi -% All rights reserved. -% -% Redistribution and use in source and binary forms, with or without -% modification, are permitted provided that the following conditions are met: -% -% * Redistributions of source code must retain the above copyright -% notice, this list of conditions and the following disclaimer. -% * Redistributions in binary form must reproduce the above copyright -% notice, this list of conditions and the following disclaimer in the -% documentation and/or other materials provided with the distribution. -% * Neither the name of the nor the -% names of its contributors may be used to endorse or promote products -% derived from this software without specific prior written permission. -% -% THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -% AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -% IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -% ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY -% DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -% (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -% LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -% ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -% (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -% SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -% ------ Usage ---------------------------------------------------------------- - -% To use this file either send it to a postscript printer, or use your -% favourite postscript interpreter to visualize and print it. - -% You can customize the result by changing the values in the Settings -% section below (see the comments for details) - -% ------ sizes ---------------------------------------------------------------- -% This will allow you to give measurements in inches or millimiters -% do not change -/inch {72 mul} def -/mm {0.03937 inch mul} def - -% ------ Settings ------------------------------------------------------------- - -% ------ Basic settings - -/HexSide 24 mm def % lenght of hexagon side (or "radius") - -/LineSize 0.5 def % lines width -/LineColo { 0.5 0.5 0.5 } def % rgb triplet of line color -/FillColo { 1.0 1.0 1.0 } def % rgb triplet of hexagon color -/BackColo { 1.0 1.0 1.0 } def % rgb triplet of background color - -% page size: if you change this, you should change the BoundingBox -% in line 4 accordingly (you CAN'T use mm or inch over there) -% Default is A4 paper ( BoundingBox: 0 0 596 842 ) -/PageWidth 210 mm def -/PageHeight 297 mm def -% alternate page sizes (with BoundingBox values) may be -% A3 paper ( BoundingBox: 0 0 842 1192) -%/PageWidth 297 mm def -%/PageHeight 420 mm def -% Letter paper ( BoundingBox: 0 0 612 792) -%/PageWidth 8.5 inch def -%/PageHeight 11 inch def - -% white margins -/BorderTop 10 mm def -/BorderBottom 10 mm def -/BorderLeft 10 mm def -/BorderRight 10 mm def - -% ------ Advanced settings - -% spacing between consecutive hexes (hor and vert) -/HexSpaceX 0 def -/HexSpaceY 0 def -% uncomment the following line to have uniform spacing -%/HexSpaceY HexSpaceX 3 sqrt 0.5 mul mul def - -% translation of the starting point of the pattern -/PattTrasX 10 mm def -/PattTrasY 10 mm def - -% ------ Behaviour - -% Whether to print a line around the margins (1) or not (0) -/WillPrintBorder 1 def - -% From here on you shouldn't worry about changing or configuring anything -% ------ Variables ------------------------------------------------------------ - -% Spacing between hexagons -/HexSpacingX HexSide 3 sqrt mul HexSpaceX add def -/RowSpacingY HexSide 1.5 mul HexSpaceY add def -/ColSpacingX HexSide 3 sqrt 0.5 mul mul HexSpaceX 2 div add def - -% x y movements to get oblique sides -/HexSideX HexSide 3 sqrt 0.5 mul mul def -/HexSideY HexSide 2 div def - -% number of hexagons in a row and of rows in a page -/HexRowNum PageWidth HexSpacingX div 2 add def -/HexColNum PageHeight RowSpacingY div 2 add def - -% starting hexagon number in a row and row number in a page -/HexRowSta PattTrasX HexSpacingX div cvi neg 1 sub def -/HexColSta PattTrasY RowSpacingY div cvi neg 1 sub def - -% ending hexagon number in a row and row number in a page -/HexRowEnd HexRowSta HexRowNum add def -/HexColEnd HexColSta HexColNum add def - -% ------ Procedures ----------------------------------------------------------- - -% Describes the printable area (does NOT print anything) -/UsedArea { - newpath - BorderLeft BorderBottom moveto - BorderLeft PageHeight BorderTop sub lineto - PageWidth BorderRight sub PageHeight BorderTop sub lineto - PageWidth BorderRight sub BorderBottom lineto - closepath -} def - -% Prints an hexagon in the given position -% x y = cohordinates of bottom point of left side -/PrintHex { %stk: x y - newpath - moveto - 0 HexSide rlineto - HexSideX HexSideY rlineto - HexSideX HexSideY neg rlineto - 0 HexSide neg rlineto - HexSideX neg HexSideY neg rlineto - HexSideX neg HexSideY rlineto - closepath - gsave - FillColo setrgbcolor - fill - grestore - LineColo setrgbcolor - LineSize setlinewidth - stroke -} def - -% Prints a row in the given position -% x y = cohordinates of first hexagon in the row -/PrintRow { %stk: x y - /RowY exch def - /RowX exch def - HexRowSta 1 HexRowEnd { - HexSpacingX mul RowX add RowY PrintHex - } for -} def - -%%EndProlog -%%Page: 1 - -% set printing area -UsedArea clip - -% print background -BackColo setrgbcolor -UsedArea fill - -% print hex pattern -HexColSta 2 HexColEnd { - /rownum exch def - PattTrasX RowSpacingY rownum mul PattTrasY add PrintRow - PattTrasX ColSpacingX add RowSpacingY rownum mul PattTrasY add RowSpacingY add PrintRow -} for - -% print border (if WillPrintBorder is not 0 ) -WillPrintBorder 0 ne { - LineSize setlinewidth - LineColo setrgbcolor - UsedArea stroke -} if - -showpage -%%Trailer diff --git a/src/hex-paper.ps.j2 b/src/hex-paper.ps.j2 new file mode 100644 index 0000000..a60f81f --- /dev/null +++ b/src/hex-paper.ps.j2 @@ -0,0 +1,184 @@ +%!PS-Adobe-1.0 +%%Title: hex-paper - part of rpgTools by Elena of Valhalla +%%Pages: 1 +%%BoundingBox: {{ bounding_box }} +%%DocumentPaperSizes: {{ paper_name }} +%%CreationDate: 2004/10/04 +%%DocumentData: Clean7Bit +%%LanguageLevel: 1 +%%EndComments +%%BeginProlog +% Copyright (C) 2004 Elena Grandi +% All rights reserved. +% +% Redistribution and use in source and binary forms, with or without +% modification, are permitted provided that the following conditions are met: +% +% * Redistributions of source code must retain the above copyright +% notice, this list of conditions and the following disclaimer. +% * Redistributions in binary form must reproduce the above copyright +% notice, this list of conditions and the following disclaimer in the +% documentation and/or other materials provided with the distribution. +% * Neither the name of the nor the +% names of its contributors may be used to endorse or promote products +% derived from this software without specific prior written permission. +% +% THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +% AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +% IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +% ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY +% DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +% (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +% LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +% ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +% (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +% SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +% ------ Usage ---------------------------------------------------------------- + +% To use this file either send it to a postscript printer, or use your +% favourite postscript interpreter to visualize and print it. + +% You can customize the result by changing the values in the Settings +% section below (see the comments for details) + +% ------ sizes ---------------------------------------------------------------- +% This will allow you to give measurements in inches or millimiters +% do not change +/inch {72 mul} def +/mm {0.03937 inch mul} def + +% ------ Settings ------------------------------------------------------------- + +% ------ Basic settings + +/HexSide {{ hex_side }} def % lenght of hexagon side (or "radius") + +/LineSize {{ thin_line_size }} def % lines width +/LineColo {{ thin_line_color }} def % rgb triplet of line color +/FillColo {{ fill_color }} def % rgb triplet of hexagon color +/BackColo {{ background_color }} def % rgb triplet of background color + +% page size: if you change this, you should change the BoundingBox +% in line 4 accordingly (you CAN'T use mm or inch over there) +/PageWidth {{ page_width }} def +/PageHeight {{ page_height }} def + +% white margins +/BorderTop {{ margin_top }} def +/BorderBottom {{ margin_bottom }} def +/BorderLeft {{ margin_left }} def +/BorderRight {{ margin_right }} def + +% ------ Advanced settings + +% spacing between consecutive hexes (hor and vert) +/HexSpaceX {{ x_spacing }} def +/HexSpaceY {{ y_spacing }} def +{% if uniform_spacing %} +% uniform spacing, overrides the setting for y spacing +/HexSpaceY HexSpaceX 3 sqrt 0.5 mul mul def +{% endif %} + +% translation of the starting point of the pattern +/PattTrasX {{ x_trasl }} def +/PattTrasY {{ y_trasl }} def + +% ------ Behaviour + +% Whether to print a line around the margins (1) or not (0) +/WillPrintBorder {{ 1 if border else 0 }} def + +% From here on you shouldn't worry about changing or configuring anything +% ------ Variables ------------------------------------------------------------ + +% Spacing between hexagons +/HexSpacingX HexSide 3 sqrt mul HexSpaceX add def +/RowSpacingY HexSide 1.5 mul HexSpaceY add def +/ColSpacingX HexSide 3 sqrt 0.5 mul mul HexSpaceX 2 div add def + +% x y movements to get oblique sides +/HexSideX HexSide 3 sqrt 0.5 mul mul def +/HexSideY HexSide 2 div def + +% number of hexagons in a row and of rows in a page +/HexRowNum PageWidth HexSpacingX div 2 add def +/HexColNum PageHeight RowSpacingY div 2 add def + +% starting hexagon number in a row and row number in a page +/HexRowSta PattTrasX HexSpacingX div cvi neg 1 sub def +/HexColSta PattTrasY RowSpacingY div cvi neg 1 sub def + +% ending hexagon number in a row and row number in a page +/HexRowEnd HexRowSta HexRowNum add def +/HexColEnd HexColSta HexColNum add def + +% ------ Procedures ----------------------------------------------------------- + +% Describes the printable area (does NOT print anything) +/UsedArea { + newpath + BorderLeft BorderBottom moveto + BorderLeft PageHeight BorderTop sub lineto + PageWidth BorderRight sub PageHeight BorderTop sub lineto + PageWidth BorderRight sub BorderBottom lineto + closepath +} def + +% Prints an hexagon in the given position +% x y = cohordinates of bottom point of left side +/PrintHex { %stk: x y + newpath + moveto + 0 HexSide rlineto + HexSideX HexSideY rlineto + HexSideX HexSideY neg rlineto + 0 HexSide neg rlineto + HexSideX neg HexSideY neg rlineto + HexSideX neg HexSideY rlineto + closepath + gsave + FillColo setrgbcolor + fill + grestore + LineColo setrgbcolor + LineSize setlinewidth + stroke +} def + +% Prints a row in the given position +% x y = cohordinates of first hexagon in the row +/PrintRow { %stk: x y + /RowY exch def + /RowX exch def + HexRowSta 1 HexRowEnd { + HexSpacingX mul RowX add RowY PrintHex + } for +} def + +%%EndProlog +%%Page: 1 + +% set printing area +UsedArea clip + +% print background +BackColo setrgbcolor +UsedArea fill + +% print hex pattern +HexColSta 2 HexColEnd { + /rownum exch def + PattTrasX RowSpacingY rownum mul PattTrasY add PrintRow + PattTrasX ColSpacingX add RowSpacingY rownum mul PattTrasY add RowSpacingY add PrintRow +} for + +% print border (if WillPrintBorder is not 0 ) +WillPrintBorder 0 ne { + LineSize setlinewidth + LineColo setrgbcolor + UsedArea stroke +} if + +showpage +%%Trailer -- cgit v1.2.3