expand on motivation for this project
[Printer-EVOLIS.git] / lib / Printer / EVOLIS.pm
1 package Printer::EVOLIS;
2
3 use warnings;
4 use strict;
5
6 =head1 NAME
7
8 Printer::EVOLIS - pixel-exact driver for EVOLIS Dualys two-side card printer in perl
9
10 =cut
11
12 our $VERSION = '0.01';
13
14 =head1 DESCRIPTION
15
16 This is experimental support for EVOLIS Dualys 3 printer with black ribbon (K)
17 to provide pixel-exact driver with support for two-side printing.
18
19 Existing cups driver is available at
20
21 L<http://www.evolis.com/eng/Drivers-Support/Product-support/Dualys-3>
22
23 but I haven't been able to make it print on both sides of cards,
24 partly because using dumplex option in cups seems to segfault GhostScript
25 and/or C<rastertoevolis> cups filter depending on combination of duplex
26 options.
27
28 I also needed pixel perfect transfer to printer, and cups
29 bitmap format is always in color, leaving final pixel modifications down
30 to cups filter which always produced differences between file sent to
31 printer and perfect black and white rendition of it.
32
33 =head1 SCRIPTS
34
35 Current toolset consists of following scripts:
36
37 =head2 scripts/inkscape-render.pl card/template.svg 201008159999 Name Surname
38
39 Generate pdf files from Inkscape SVG template in C<card/> using
40 C<print-front> and C<print-back> object IDs. Layers doesn't work
41 since we can't toggle visilbity easily. To print more than one
42 object gruop them and change ID of group.
43
44 After pdf files are created, GhostScript is used to rasterize them
45 into pbm (monochrome) bitmaps.
46
47 =head2 scripts/evolis-driver.pl front.pbm back.pbm > evolis.commands
48
49 Provides driver which generates printer command stream to print
50 two-sided card from pbm files.
51
52 =head2 scripts/evolis-simulator.pl evolis
53
54 Simulator for EVOLIS printer commands which is useful for development.
55 It creates one pbm file per page printed.
56
57 =head1 EXAMPLE
58
59 Following is simple walk-through from svg image in Inkscape to
60 evolis command stream which can be executed in top-level directory
61 of this distribution:
62
63   ./scripts/inkscape-render.pl card/ffzg-2010.svg 201008159999 Ime Prezime
64   ./scripts/evolis-driver.pl out/201008159999.front.pbm out/201008159999.back.pbm > evolis
65   ./scripts/evolis-simulator.pl evolis
66   qiv evolis*.pbm
67
68 =cut