@@ -34,44 +34,62 @@ require_once('path/to/vendor/autoload.php');
3434### Encoding data as QR code block data
3535
3636``` {php}
37- use QrCodeSuite\QrEncode\QrEncoder;
37+ use CommonException\IoException;
38+ use QrCodeSuite\QrEncode;
3839
3940// Encode the data as QR code block data
40- $encoder = new QrEncoder();
41- $qrCodeData = $encoder
42- ->setLevel(QrEncoder::QR_CODE_LEVEL_LOW)
43- ->setTempDir('path/to/writable/directory')
44- ->encodeQrCode('https://github.com/markenwerk/php-qr-code-suite');
41+ try {
42+ $encoder = new QrEncode\QrEncoder();
43+ $qrCodeData = $encoder
44+ ->setLevel(QrEncoder::QR_CODE_LEVEL_LOW)
45+ ->setTempDir('path/to/writable/directory')
46+ ->encodeQrCode('https://github.com/markenwerk/php-qr-code-suite');
47+ } catch(\InvalidArgumentException $exception) {
48+ // QR code content contains invalid characters or is too large
49+ } catch(IoException\FolderWritableException $exception) {
50+ // Temp dir is not writable
51+ } catch(QrEncode\Exception\QrEncoderException $exception) {
52+ // QR encoder failed
53+ }
4554```
4655
4756### Render encoded QR code block data as image
4857
4958``` {php}
59+ use CommonException\IoException;
5060use QrCodeSuite\QrRender;
5161use QrCodeSuite\QrRender\Color\RgbColor;
5262use QrCodeSuite\QrRender\Color\CmykColor;
5363
5464// Render the encoded QR code block data as RGB PNG
5565// Width and height should measure about 800 pixels
56- $renderer = new QrRender\QrCodeRendererPng();
57- $renderer
58- ->setApproximateSize(800)
59- ->setForegroundColor(new RgbColor(255, 0, 255))
60- ->setBackgroundColor(new RgbColor(51, 51, 51))
61- ->render($qrCodeData, 'path/to/qr-code.png');
66+ try {
67+ $renderer = new QrRender\QrCodeRendererPng();
68+ $renderer
69+ ->setApproximateSize(800)
70+ ->setForegroundColor(new RgbColor(255, 0, 255))
71+ ->setBackgroundColor(new RgbColor(51, 51, 51))
72+ ->render($qrCodeData, 'path/to/qr-code.png');
73+ } catch(IoException\FileWritableException $exception) {
74+ // Output file not writable
75+ }
6276
6377// Get the effective width and height of the rendered image
6478$imageWidth = $renderer->getWidth();
6579$imageHeight = $renderer->getHeight();
6680
6781// Render the encoded QR code block data as CMYK TIFF
6882// Width and height should measure about 800 pixels
69- $renderer = new QrRender\QrCodeRendererTiff();
70- $renderer
71- ->setApproximateSize(800)
72- ->setForegroundColor(new CmykColor(0, 100, 0, 0))
73- ->setBackgroundColor(new CmykColor(0, 100, 100, 0))
74- ->render($qrCodeData, 'path/to/qr-code.tif');
83+ try {
84+ $renderer = new QrRender\QrCodeRendererTiff();
85+ $renderer
86+ ->setApproximateSize(800)
87+ ->setForegroundColor(new CmykColor(0, 100, 0, 0))
88+ ->setBackgroundColor(new CmykColor(0, 100, 100, 0))
89+ ->render($qrCodeData, 'path/to/qr-code.tif');
90+ } catch(IoException\FileWritableException $exception) {
91+ // Output file not writable
92+ }
7593
7694// Get the effective width and height of the rendered image
7795$imageWidth = $renderer->getWidth();
@@ -80,14 +98,25 @@ $imageHeight = $renderer->getHeight();
8098// Render the encoded QR code block data as CMYK vectorized EPS
8199// EPS has no background color. It is just the blocks on blank cnavas.
82100// EPS also has no approximate size. Scale the vectorized image as you like.
83- $renderer = new QrRender\QrCodeRendererEps();
84- $renderer
85- ->setForegroundColor(new CmykColor(0, 100, 0, 0))
86- ->render($qrCodeData, 'path/to/qr-code.eps');
101+ try {
102+ $renderer = new QrRender\QrCodeRendererEps();
103+ $renderer
104+ ->setForegroundColor(new CmykColor(0, 100, 0, 0))
105+ ->render($qrCodeData, 'path/to/qr-code.eps');
106+ } catch(IoException\FileWritableException $exception) {
107+ // Output file not writable
108+ }
87109```
88110
89111---
90112
113+ ## Exception handling
114+
115+ PHP Google Geocoder provides different exceptions provided by the PHP Common Exceptions project for proper handling.
116+ You can find more information about [ PHP Common Exceptions at Github] ( https://github.com/markenwerk/php-common-exceptions ) .
117+
118+ ---
119+
91120## Contribution
92121
93122Contributing to our projects is always very appreciated.
0 commit comments