You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: Readme.md
+22-13
Original file line number
Diff line number
Diff line change
@@ -18,7 +18,7 @@ Install through [composer](https://getcomposer.org/doc/00-intro.md):
18
18
composer require picqer/php-barcode-generator
19
19
```
20
20
21
-
If you want to generate PNG or JPG images, you need the GD library or Imagick installed on your system as well.
21
+
If you want to generate PNG or JPG images, you need the GD library or Imagick installed on your system as well. For SVG or HTML renders, there are no dependencies.
22
22
23
23
## Usage
24
24
You want a barcode for a specific "type" (for example Code 128 or UPC) in a specific image format (for example PNG or SVG).
@@ -54,21 +54,28 @@ $barcode = (new Picqer\Barcode\Types\TypeCode128())->getBarcode('081231723897');
54
54
$renderer = new Picqer\Barcode\Renderers\PngRenderer();
55
55
$renderer->setForegroundColor($colorRed);
56
56
57
-
// Save PNG to the filesystem, with widthFactor 3 and height of 50 pixels
Available image renderers: SVG, PNG, JPG and HTML.
63
63
64
-
Each renderer has their own options. Only the barcode is required, the rest is optional. Here are all the options for each renderers:
64
+
They all conform to the RendererInterface and have the same `render()` method. Some renderers have extra options as well, via set*() methods.
65
+
66
+
### Widths
67
+
The render() method needs the Barcode object, the width and height. **For JPG/PNG images**, you only get a valid barcode if you give a width that is a factor of the width of the Barcode object. That is why the examples show `$barcode->getWidth() * 2` to make the image 2 times wider in pixels then the width of the barcode data. You *can* give an arbitrary number as width and the image will be scaled as best as possible, but without anti-aliasing, it will not be perfectly valid.
68
+
69
+
HTML and SVG renderers can handle any width and height, even floats.
70
+
71
+
Here are all the options for each renderer:
65
72
66
73
### SVG
67
74
A vector based SVG image. Gives the best quality to print.
68
75
```php
69
76
$renderer = new Picqer\Barcode\Renderers\SvgRenderer();
70
-
$renderer->setForegroundColor('red'); // Give a color for the bars, default is black
71
-
$renderer->setBackgroundColor('blue'); // Give a color for the background, default is transparent
77
+
$renderer->setForegroundColor([255, 0, 0]); // Give a color red for the bars, default is black. Give it as 3 times 0-255 values for red, green and blue.
78
+
$renderer->setBackgroundColor([0, 0, 255]); // Give a color blue for the background, default is transparent. Give it as 3 times 0-255 values for red, green and blue.
72
79
$renderer->setSvgType($renderer::TYPE_SVG_INLINE); // Changes the output to be used inline inside HTML documents, instead of a standalone SVG image (default)
73
80
$renderer->setSvgType($renderer::TYPE_SVG_STANDALONE); // If you want to force the default, create a stand alone SVG image
74
81
@@ -91,8 +98,8 @@ $renderer->render($barcode, 5, 40); // Width factor (how many pixel wide every b
91
98
Gives HTML to use inline in a full HTML document.
92
99
```php
93
100
$renderer = new Picqer\Barcode\Renderers\HtmlRenderer();
94
-
$renderer->setForegroundColor('red'); // Give a color for the bars, default is black
95
-
$renderer->setBackgroundColor('blue'); // Give a color for the background, default is transparent
101
+
$renderer->setForegroundColor([255, 0, 0]); // Give a color red for the bars, default is black. Give it as 3 times 0-255 values for red, green and blue.
102
+
$renderer->setBackgroundColor([0, 0, 255]); // Give a color blue for the background, default is transparent. Give it as 3 times 0-255 values for red, green and blue.
96
103
97
104
$renderer->render($barcode, 450.20, 75); // Width and height support floats
98
105
````
@@ -101,8 +108,8 @@ $renderer->render($barcode, 450.20, 75); // Width and height support floats
101
108
Give HTML here the barcode is using the full width and height, to put inside a container/div that has a fixed size.
102
109
```php
103
110
$renderer = new Picqer\Barcode\Renderers\DynamicHtmlRenderer();
104
-
$renderer->setForegroundColor('red'); // Give a color for the bars, default is black
105
-
$renderer->setBackgroundColor('blue'); // Give a color for the background, default is transparent
111
+
$renderer->setForegroundColor([255, 0, 0]); // Give a color red for the bars, default is black. Give it as 3 times 0-255 values for red, green and blue.
112
+
$renderer->setBackgroundColor([0, 0, 255]); // Give a color blue for the background, default is transparent. Give it as 3 times 0-255 values for red, green and blue.
106
113
107
114
$renderer->render($barcode);
108
115
````
@@ -163,15 +170,15 @@ If you want to use PNG or JPG images, you need to install [Imagick](https://www.
163
170
```php
164
171
$barcode = (new Picqer\Barcode\Types\TypeCode128())->getBarcode('081231723897');
165
172
$renderer = new Picqer\Barcode\Renderers\PngRenderer();
@@ -182,6 +189,8 @@ file_put_contents('barcode.svg', (new Picqer\Barcode\Renderers\SvgRenderer())->r
182
189
## Upgrading to v3
183
190
There is no need to change anything when upgrading from v2 to v3. Above you find the new preferred way of using this library since v3. But the old style still works.
184
191
192
+
To give the renderers the same interface, setting colors is now always with an array of RGB colors. If you use the old BarcodeGenerator* classes and use colors with names ('red') or hex codes (#3399ef), these will be converted using the ColorHelper. All hexcodes are supported, but for names of colors only the basic colors are supported.
193
+
185
194
If you want to convert to the new style, here is an example:
186
195
```php
187
196
// Old style
@@ -194,7 +203,7 @@ $renderer = new Picqer\Barcode\Renderers\SvgRenderer();
194
203
echo $renderer->render($barcode);
195
204
```
196
205
197
-
The width in the SVG and HTML renderer is now the width of the end result, instead of the widthFactor. If you want to keep dynamic widths, you can get the width of the encoded Barcode and multiply it by the widthFactor to get the same result as before. See here an example for a widthFactor of 2:
206
+
The width in the renderer is now the width of the end result, instead of the widthFactor. If you want to keep dynamic widths, you can get the width of the encoded Barcode and multiply it by the widthFactor to get the same result as before. See here an example for a widthFactor of 2:
198
207
```php
199
208
// Old style
200
209
$generator = new Picqer\Barcode\BarcodeGeneratorSVG();
0 commit comments