*================================================================ * RPGPDF * * This is a sample ILE RPG (RPG IV) program which demonstrates * the use of the PDF417 Encoder. This sample calls the * encoder as a bound procedure (not as an external program). * CRTPGM must be used to link this module with the PDF417 * service program. * * NOTE: There is no doubt that I am the world's worst RPG * programmer. Hopefully though this is good enough * to demonstrate the ease of using the PDF417 * Encoder. I'm sure there are MUCH better ways to * write RPG than I've done in this thing. * *================================================================ H FPDF417 O E PRINTER *================================================================ D $PDFV C CONST('0200') D $IND1 C CONST('This is a test of th- D e Silver Bay Software- D , LLC. PDF417 Enc- D oder. ') D $IND2 C CONST('The error correction- D will encode at leve- D l 3 with ECC padding- D . ') *================================================================ D OPDF DS D WIDTH 1 3 D HEIGHT 4 6 D RESULT 7 9 *---------------------------------------------------------------- * The following is the output buffer structure which * will receive the Font characters. This definition * is setup for 25 rows with 37 columns of font characters. *!!!!! * BE SURE TO VERIFY YOUR FONT CHARACTERS WILL FIT INTO * THIS BUFFER SIZE!! *!!!!! *---------------------------------------------------------------- D PDF01 10 46 D PDF02 47 83 D PDF03 84 120 D PDF04 121 157 D PDF05 158 194 D PDF06 195 231 D PDF07 232 268 D PDF08 269 305 D PDF09 306 342 D PDF10 343 379 D PDF11 380 416 D PDF12 417 453 D PDF13 454 490 D PDF14 491 527 D PDF15 528 564 D PDF16 565 601 D PDF17 602 638 D PDF18 639 675 D PDF19 676 712 D PDF20 713 749 D PDF21 750 786 D PDF22 787 823 D PDF23 824 860 D PDF24 861 897 D PDF25 898 934 D IPDF DS D #VER 1 4 D #NBYTS 5 8 D #SH 9 10 D #SW 11 12 D #ETYP 13 13 D #EVAL 14 16 D #NPECC 17 17 D #DFRMT 18 18 D #STYPE 19 19 D #EMTHD 20 20 D #HALGN 21 21 D #VALGN 22 22 D #E2AFL 23 23 D INDATA DS D #LINE1 1 67 D #LINE2 68 134 ******************************* * CALL PDF417 ENCODER ******************************* C EXSR S001 ******************************* * PRINT PDF417 SYMBOL ******************************* C EXSR S002 ******************************* * END OF PROGRAM ******************************* C SETON LR *======================================================== * S001 - CALL THE PDF417 ENCODER *======================================================== C S001 BEGSR * * INITIALIZE OUR INPUT RECORD * C CLEAR IPDF C MOVEL $PDFV #VER C MOVEL '01' #SH C MOVEL '02' #SW C MOVEL '0' #ETYP C MOVEL '005' #EVAL C MOVEL 'F' #NPECC C MOVEL 'N' #DFRMT C MOVEL 'S' #STYPE C MOVEL 'O' #EMTHD C MOVEL 'L' #HALGN C MOVEL 'T' #VALGN C MOVEL 'T' #E2AFL C CLEAR #LINE1 C MOVEL $IND1 #LINE1 C CLEAR #LINE2 C MOVEL $IND2 #LINE2 C MOVEL '0135' #NBYTS *-------------------------------------------------------- * Move the appropriate values into the output * width and height to indicate the size of the * receiver buffer. *-------------------------------------------------------- C MOVEL '037' WIDTH C MOVEL '025' HEIGHT C MOVEL '000' RESULT * * HERE IS WHERE THE PDF417 ENCODER IS CALLED; IT IS * AN EXTERNAL ILE PROGRAM * C CALLB 'PDFENCOD' C PARM IPDF C PARM OPDF C PARM INDATA C ENDSR *======================================================== * S002 - PRINT THE PDF417 SYMBOL *======================================================== C S002 BEGSR C MOVEL PDF01 PDFO01 C MOVEL PDF02 PDFO02 C MOVEL PDF03 PDFO03 C MOVEL PDF04 PDFO04 C MOVEL PDF05 PDFO05 C MOVEL PDF06 PDFO06 C MOVEL PDF07 PDFO07 C MOVEL PDF08 PDFO08 C MOVEL PDF09 PDFO09 C MOVEL PDF10 PDFO10 C MOVEL PDF11 PDFO11 C MOVEL PDF12 PDFO12 C MOVEL PDF13 PDFO13 C MOVEL PDF14 PDFO14 C MOVEL PDF15 PDFO15 C MOVEL PDF16 PDFO16 C MOVEL PDF17 PDFO17 C MOVEL PDF18 PDFO18 C MOVEL PDF19 PDFO19 C MOVEL PDF20 PDFO20 C MOVEL PDF21 PDFO21 C MOVEL PDF22 PDFO22 C MOVEL PDF23 PDFO23 C MOVEL PDF24 PDFO24 C MOVEL PDF25 PDFO25 C WRITE PDFOUT C ENDSR