mcc2 1.5.0
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.
- checksums.yaml +7 -0
- checksums.yaml.gz.sig +0 -0
- data/.autotest +23 -0
- data/.gitignore +15 -0
- data/.rubocop.yml +3 -0
- data/Gemfile +13 -0
- data/History.txt +6 -0
- data/LICENSE.txt +21 -0
- data/README.md +51 -0
- data/Rakefile +12 -0
- data/config/i18n-tasks.yml +193 -0
- data/exe/mcc2 +18 -0
- data/exe/mcc2-generate-preview +17 -0
- data/exe/mcc2print +6 -0
- data/lib/libguib16.rb +1620 -0
- data/lib/mcc2/advanced_data_edit_dlg.rb +139 -0
- data/lib/mcc2/cc_dialogbox.rb +52 -0
- data/lib/mcc2/constants.rb +154 -0
- data/lib/mcc2/dataman/base.rb +61 -0
- data/lib/mcc2/dataman/csv.rb +49 -0
- data/lib/mcc2/dataman/database.rb +8 -0
- data/lib/mcc2/dataman/dbf.rb +45 -0
- data/lib/mcc2/dataman/none.rb +25 -0
- data/lib/mcc2/dataview.rb +348 -0
- data/lib/mcc2/dataview_dlg.rb +232 -0
- data/lib/mcc2/debug_tools.rb +20 -0
- data/lib/mcc2/fx_colored_item.rb +101 -0
- data/lib/mcc2/generate_preview.rb +68 -0
- data/lib/mcc2/gui/advanced_data_edit_dlg.rbin +0 -0
- data/lib/mcc2/gui/dataview_dlg.pp +522 -0
- data/lib/mcc2/gui/layoutview_dlg.pp +5115 -0
- data/lib/mcc2/gui/mcc2_mainwin.pp +838 -0
- data/lib/mcc2/gui/picture_data_edit_dlg.rbin +0 -0
- data/lib/mcc2/gui/printerview_dlg.pp +3311 -0
- data/lib/mcc2/images/Image-Arrow-Left.gif +0 -0
- data/lib/mcc2/images/Image-Arrow-Right.gif +0 -0
- data/lib/mcc2/images/Image-FastArrowLeft.gif +0 -0
- data/lib/mcc2/images/Image-FastArrowRight.bmp +0 -0
- data/lib/mcc2/images/Image-FastArrowRight.gif +0 -0
- data/lib/mcc2/images/application-exit.png +0 -0
- data/lib/mcc2/images/copy.png +0 -0
- data/lib/mcc2/images/country_de.png +0 -0
- data/lib/mcc2/images/country_gb.png +0 -0
- data/lib/mcc2/images/country_rs.png +0 -0
- data/lib/mcc2/images/cut.png +0 -0
- data/lib/mcc2/images/distribute-horizontal-baseline.png +0 -0
- data/lib/mcc2/images/distribute-vertical-baseline.png +0 -0
- data/lib/mcc2/images/document-close.png +0 -0
- data/lib/mcc2/images/document-edit.png +0 -0
- data/lib/mcc2/images/document-new.png +0 -0
- data/lib/mcc2/images/document-open.png +0 -0
- data/lib/mcc2/images/document-print-frame.png +0 -0
- data/lib/mcc2/images/document-print.png +0 -0
- data/lib/mcc2/images/document-save-as.png +0 -0
- data/lib/mcc2/images/document-save.png +0 -0
- data/lib/mcc2/images/documentation.png +0 -0
- data/lib/mcc2/images/draw-rectangle.png +0 -0
- data/lib/mcc2/images/dummy.gif +0 -0
- data/lib/mcc2/images/exchange-positions.png +0 -0
- data/lib/mcc2/images/insert-image.png +0 -0
- data/lib/mcc2/images/insert-text.png +0 -0
- data/lib/mcc2/images/libreoffice-oasis-master-document.png +0 -0
- data/lib/mcc2/images/measure.png +0 -0
- data/lib/mcc2/images/messagebox_warning.png +0 -0
- data/lib/mcc2/images/paste.png +0 -0
- data/lib/mcc2/images/process-stop.png +0 -0
- data/lib/mcc2/images/zoom-in.png +0 -0
- data/lib/mcc2/layout.rb +323 -0
- data/lib/mcc2/layout_file.rb +794 -0
- data/lib/mcc2/layout_object/barcode.rb +33 -0
- data/lib/mcc2/layout_object/box.rb +18 -0
- data/lib/mcc2/layout_object/chip.rb +54 -0
- data/lib/mcc2/layout_object/embed.rb +16 -0
- data/lib/mcc2/layout_object/go_attribut.rb +16 -0
- data/lib/mcc2/layout_object/graphic.rb +59 -0
- data/lib/mcc2/layout_object/magstripe.rb +13 -0
- data/lib/mcc2/layout_object/picture.rb +22 -0
- data/lib/mcc2/layout_object/text.rb +29 -0
- data/lib/mcc2/layout_win.rb +2052 -0
- data/lib/mcc2/layoutview.rb +845 -0
- data/lib/mcc2/layoutview_dlg.rb +2058 -0
- data/lib/mcc2/locales.rb +27 -0
- data/lib/mcc2/mcc2_mainwin.rb +453 -0
- data/lib/mcc2/mcc2gui.rb +295 -0
- data/lib/mcc2/mcc2print.rb +54 -0
- data/lib/mcc2/picture_data_edit_dlg.rb +139 -0
- data/lib/mcc2/print_dlg.rb +520 -0
- data/lib/mcc2/printer/base.rb +148 -0
- data/lib/mcc2/printer/card_printer.rb +45 -0
- data/lib/mcc2/printer/file_printer.rb +135 -0
- data/lib/mcc2/printer/gdi_card_printer.rb +14 -0
- data/lib/mcc2/printer/gdi_printer.rb +197 -0
- data/lib/mcc2/printer/linux_cups_printer.rb +92 -0
- data/lib/mcc2/printer/preview.rb +277 -0
- data/lib/mcc2/printer/printer_cab.rb +118 -0
- data/lib/mcc2/printer/printer_cx320_direct.rb +286 -0
- data/lib/mcc2/printer/printer_epl.rb +118 -0
- data/lib/mcc2/printer/printer_ttp34x.rb +124 -0
- data/lib/mcc2/printer/printer_zebra.rb +324 -0
- data/lib/mcc2/printer/svg_drawer.rb +689 -0
- data/lib/mcc2/printerview.rb +604 -0
- data/lib/mcc2/printerview_dlg.rb +1248 -0
- data/lib/mcc2/version.rb +3 -0
- data/lib/mcc2.rb +11 -0
- data/locales/de.yml +6 -0
- data/locales/en.yml +502 -0
- data/locales/rs.yml +502 -0
- data/mcc2.gemspec +41 -0
- data/test/dummy.rb +19 -0
- data/test/layouts/bart_simpson.png +0 -0
- data/test/layouts/color_test.xml +151 -0
- data/test/layouts/ms.xml +67 -0
- data/test/ruby_print.rb +380 -0
- data/test/test.csv +4 -0
- data/test/test.dbf +0 -0
- data/test/test.str +4 -0
- data/test/test_mcc2.rb +8 -0
- data.tar.gz.sig +6 -0
- metadata +421 -0
- metadata.gz.sig +0 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
require "mcc2/layout_object/graphic"
|
|
2
|
+
|
|
3
|
+
module Mcc2
|
|
4
|
+
module LayoutObject
|
|
5
|
+
class Barcode < Graphic
|
|
6
|
+
def initialize(xml_elem: nil, layout_file: nil)
|
|
7
|
+
super
|
|
8
|
+
@go_attributes[GOA_TYP].attr_value = BARCODEOBJECT
|
|
9
|
+
add_attr(@go_attributes, GOA_WIDTH, Integer, 30)
|
|
10
|
+
add_attr(@go_attributes, GOA_HEIGHT, Integer, 15)
|
|
11
|
+
add_attr(@go_attributes, GOA_DATA, String, "")
|
|
12
|
+
add_attr(@go_attributes, GOA_SAMPLE_DATA, String, "123456789012")
|
|
13
|
+
add_attr(@go_attributes, GOA_BARCODE_TYP, String, "EAN13")
|
|
14
|
+
add_attr(@go_attributes, GOA_BARCODE_HEIGHT, Integer, 0)
|
|
15
|
+
add_attr(@go_attributes, GOA_BARCODE_OPTIMIZED, String, true)
|
|
16
|
+
add_attr(@go_attributes, GOA_FONT_HEIGHT, Integer, 10)
|
|
17
|
+
add_attr(@go_attributes, GOA_FONT_TYP, String, "Arial")
|
|
18
|
+
add_attr(@go_attributes, GOA_FONT_COLOR, String, "000000FF")
|
|
19
|
+
add_attr(@go_attributes, GOA_FONT_FILE, String, "")
|
|
20
|
+
add_attr(@go_attributes, GOA_BACK_COLOR, String, "FFFFFFFF")
|
|
21
|
+
add_attr(@go_attributes, GOA_FONT_WEIGHT, Integer, 0)
|
|
22
|
+
add_attr(@go_attributes, GOA_BARCODE_OPTION_1, Integer, -1)
|
|
23
|
+
add_attr(@go_attributes, GOA_BARCODE_OPTION_2, Integer, 0)
|
|
24
|
+
add_attr(@go_attributes, GOA_BARCODE_OPTION_3, Integer, 0)
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
if __FILE__ == $0
|
|
31
|
+
bo = BarcodeObject.new
|
|
32
|
+
bo.go_attributes.each { |e| p e }
|
|
33
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
require "mcc2/layout_object/graphic"
|
|
2
|
+
|
|
3
|
+
module Mcc2
|
|
4
|
+
module LayoutObject
|
|
5
|
+
class Box < Graphic
|
|
6
|
+
def initialize(xml_elem: nil, layout_file: nil)
|
|
7
|
+
super
|
|
8
|
+
@go_attributes[GOA_TYP].attr_value = BOXOBJECT
|
|
9
|
+
add_attr(@go_attributes, GOA_WIDTH, Float, 30)
|
|
10
|
+
add_attr(@go_attributes, GOA_HEIGHT, Float, 20)
|
|
11
|
+
add_attr(@go_attributes, GOA_FILL_COLOR, String, "ffff00ff")
|
|
12
|
+
add_attr(@go_attributes, GOA_BORDER_COLOR, String, "ff00ffff")
|
|
13
|
+
add_attr(@go_attributes, GOA_BORDER_WIDTH, Float, 1)
|
|
14
|
+
add_attr(@go_attributes, GOA_CORNER_RADIUS, Float, 4)
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
require "mcc2/constants"
|
|
2
|
+
require "mcc2/dataman/base"
|
|
3
|
+
|
|
4
|
+
module Mcc2
|
|
5
|
+
module LayoutObject
|
|
6
|
+
# diese Klasse ist für die Personalisierung der Chips verantwortlich
|
|
7
|
+
class Chip
|
|
8
|
+
class InvalidScriptType < RuntimeError
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def initialize(xml_elem)
|
|
12
|
+
@xml_elem = xml_elem
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# Array of the chip parameters
|
|
16
|
+
def params(row = nil)
|
|
17
|
+
(1..CHIPPARAM_FIELD_COUNT).map do |i|
|
|
18
|
+
param = self["#{S_PARAM}_#{i}"]
|
|
19
|
+
param = DataMan.replace_variables(param, row) if row
|
|
20
|
+
param
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def params_hash(row = nil)
|
|
25
|
+
params.map do |param|
|
|
26
|
+
key, value = param.split("=", 2)
|
|
27
|
+
if key && value
|
|
28
|
+
[key, value]
|
|
29
|
+
else
|
|
30
|
+
nil
|
|
31
|
+
end
|
|
32
|
+
end.compact.to_h
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def [](attr)
|
|
36
|
+
@xml_elem.at_xpath(attr).content
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# personalisiert eine Karte
|
|
40
|
+
# === Parameter
|
|
41
|
+
# +xml_doc+:: die XML-Struktur mit den Definitionen des Kartenlayouts
|
|
42
|
+
# +row+:: ein Datensatz im FasteCSV-Format
|
|
43
|
+
def pers_chip(row)
|
|
44
|
+
require "chipcoding"
|
|
45
|
+
|
|
46
|
+
p "pers_chip #{row.inspect}"
|
|
47
|
+
# die Chip-Parameter auslesen
|
|
48
|
+
params = self.params_hash(row)
|
|
49
|
+
|
|
50
|
+
Chipcoding::Client.personalize_card( params )
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
require "mcc2/layout_object/graphic"
|
|
2
|
+
|
|
3
|
+
module Mcc2
|
|
4
|
+
module LayoutObject
|
|
5
|
+
class Embed < Graphic
|
|
6
|
+
def initialize(xml_elem: nil, layout_file: nil)
|
|
7
|
+
super
|
|
8
|
+
@go_attributes[GOA_TYP].attr_value = EMBEDOBJECT
|
|
9
|
+
add_attr(@go_attributes, GOA_WIDTH, Float, 30)
|
|
10
|
+
add_attr(@go_attributes, GOA_HEIGHT, Float, 20)
|
|
11
|
+
add_attr(@go_attributes, GOA_DATA, String, "")
|
|
12
|
+
add_attr(@go_attributes, GOA_SAMPLE_DATA, String, "%D/")
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# GraphicObject-Attribut
|
|
2
|
+
module Mcc2
|
|
3
|
+
module LayoutObject
|
|
4
|
+
class GO_Attribut
|
|
5
|
+
attr_accessor :attr_name
|
|
6
|
+
attr_accessor :attr_typ
|
|
7
|
+
attr_accessor :attr_value
|
|
8
|
+
|
|
9
|
+
def initialize(attr_name, attr_typ, attr_default_value)
|
|
10
|
+
@attr_name = attr_name
|
|
11
|
+
@attr_typ = attr_typ
|
|
12
|
+
@attr_value = attr_default_value
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
require "mcc2/layout_object/go_attribut" # die Attribut-Klasse für die grafischen Objekte
|
|
2
|
+
|
|
3
|
+
module Mcc2
|
|
4
|
+
module LayoutObject
|
|
5
|
+
class Graphic
|
|
6
|
+
attr_reader :layout_file
|
|
7
|
+
attr_accessor :go_attributes
|
|
8
|
+
|
|
9
|
+
def initialize(xml_elem: nil, layout_file: nil)
|
|
10
|
+
@go_attributes = {}
|
|
11
|
+
add_attr(@go_attributes, GOA_ID, Integer, 0)
|
|
12
|
+
add_attr(@go_attributes, GOA_NAME, String, GRAPHICOBJECT) # bekommen erst einmal alle den gleichen Namen, können später durch den Anwender geändert werden
|
|
13
|
+
add_attr(@go_attributes, GOA_TYP, String, GRAPHICOBJECT)
|
|
14
|
+
add_attr(@go_attributes, GOA_X, Integer, 10)
|
|
15
|
+
add_attr(@go_attributes, GOA_Y, Integer, 10)
|
|
16
|
+
add_attr(@go_attributes, GOA_ROTATION, Integer, 0)
|
|
17
|
+
add_attr(@go_attributes, GOA_PAGE_NR, Integer, 0)
|
|
18
|
+
add_attr(@go_attributes, GOA_LAYER, Integer, 0)
|
|
19
|
+
add_attr(@go_attributes, GOA_PRINTLIST, String, "false")
|
|
20
|
+
|
|
21
|
+
@xml_elem = xml_elem
|
|
22
|
+
@layout_file = layout_file
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def add_attr(dest, attr_name, attr_typ, attr_default_value)
|
|
26
|
+
attr = GO_Attribut.new(attr_name, attr_typ, attr_default_value)
|
|
27
|
+
dest[attr.attr_name] = attr
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def [](attr)
|
|
31
|
+
goattr = @xml_elem.at_xpath(attr)
|
|
32
|
+
goattr&.content
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def []=(attr, text)
|
|
36
|
+
goattr = @xml_elem.at_xpath(attr)
|
|
37
|
+
goattr.content = text if goattr
|
|
38
|
+
@layout_file.changed!
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def attributes
|
|
42
|
+
@go_attributes.keys
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def delete
|
|
46
|
+
@xml_elem.remove
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def self.get_object_by_typ(typ, xml_elem: nil, layout_file: nil)
|
|
50
|
+
if typ == TEXTOBJECT then Text.new xml_elem: xml_elem, layout_file: layout_file
|
|
51
|
+
elsif typ == BARCODEOBJECT then Barcode.new xml_elem: xml_elem, layout_file: layout_file
|
|
52
|
+
elsif typ == PICTUREOBJECT then Picture.new xml_elem: xml_elem, layout_file: layout_file
|
|
53
|
+
elsif typ == BOXOBJECT then Box.new xml_elem: xml_elem, layout_file: layout_file
|
|
54
|
+
elsif typ == EMBEDOBJECT then Embed.new xml_elem: xml_elem, layout_file: layout_file
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
require "mcc2/layout_object/graphic"
|
|
2
|
+
|
|
3
|
+
module Mcc2
|
|
4
|
+
module LayoutObject
|
|
5
|
+
class Picture < Graphic
|
|
6
|
+
def initialize(xml_elem: nil, layout_file: nil)
|
|
7
|
+
super
|
|
8
|
+
@go_attributes[GOA_TYP].attr_value = PICTUREOBJECT
|
|
9
|
+
add_attr(@go_attributes, GOA_WIDTH, Integer, 20)
|
|
10
|
+
add_attr(@go_attributes, GOA_HEIGHT, Integer, 28)
|
|
11
|
+
add_attr(@go_attributes, GOA_IMAGE_PAGE, Integer, 1)
|
|
12
|
+
add_attr(@go_attributes, GOA_DATA, String, "")
|
|
13
|
+
add_attr(@go_attributes, GOA_SAMPLE_DATA, String, File.join(File.dirname(__FILE__), "../../../test/layouts/bart_simpson.png"))
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
if __FILE__ == $0
|
|
20
|
+
po = PictureObject.new
|
|
21
|
+
po.go_attributes.each { |e| p e }
|
|
22
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
require "mcc2/layout_object/graphic"
|
|
2
|
+
|
|
3
|
+
module Mcc2
|
|
4
|
+
module LayoutObject
|
|
5
|
+
class Text < Graphic
|
|
6
|
+
def initialize(xml_elem: nil, layout_file: nil)
|
|
7
|
+
super
|
|
8
|
+
@go_attributes[GOA_TYP].attr_value = TEXTOBJECT
|
|
9
|
+
add_attr(@go_attributes, GOA_WIDTH, Integer, 30)
|
|
10
|
+
add_attr(@go_attributes, GOA_HEIGHT, Integer, 6)
|
|
11
|
+
add_attr(@go_attributes, GOA_DATA, String, "")
|
|
12
|
+
add_attr(@go_attributes, GOA_SAMPLE_DATA, String, "Sample-Text")
|
|
13
|
+
add_attr(@go_attributes, GOA_FONT_HEIGHT, Integer, 10)
|
|
14
|
+
add_attr(@go_attributes, GOA_FONT_TYP, String, "Arial")
|
|
15
|
+
add_attr(@go_attributes, GOA_FONT_COLOR, String, "000000FF")
|
|
16
|
+
add_attr(@go_attributes, GOA_FONT_FILE, String, "")
|
|
17
|
+
add_attr(@go_attributes, GOA_BACK_COLOR, String, "FFFFFFFF")
|
|
18
|
+
add_attr(@go_attributes, GOA_JUSTIFICATION, String, S_JUST_LEFT)
|
|
19
|
+
add_attr(@go_attributes, GOA_JUSTIFICATION_BLOCK, String, "false")
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
if __FILE__ == $PROGRAM_NAME
|
|
26
|
+
require "./../constants"
|
|
27
|
+
to = Mcc2::LayoutObject::Text.new
|
|
28
|
+
to.go_attributes.each { |e| p e }
|
|
29
|
+
end
|