PluginProbe
PDF & Print by BestWebSoft – WordPress Posts and Pages PDF Generator Plugin / 1.5
PDF & Print by BestWebSoft – WordPress Posts and Pages PDF Generator Plugin v1.5
trunk 1.5 1.6 1.7 1.7.1 1.7.2 1.7.3 1.7.4 1.7.5 1.7.6 1.7.7 1.7.8 1.7.9 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.8 1.8.9 1.9.0 1.9.1 All 71 releases
← All changes | mpdf/classes/barcode.php +60 -67 1.8.11.5 View file →
@@ -374,9 +374,8 @@
374 374 $chr['%'] = '111212121';
375 375 $chr['*'] = '121121211';
376 376
377 377 $code = strtoupper($code);
378 - $checkdigit = '';
379 378 if ($extended) {
380 379 // extended mode
381 380 $code = $this->encode_code39_ext($code);
382 381 }
@@ -428,9 +427,9 @@
428 427 protected function encode_code39_ext($code) {
429 428 $encode = array(
430 429 chr(0) => '%U', chr(1) => '$A', chr(2) => '$B', chr(3) => '$C',
431 430 chr(4) => '$D', chr(5) => '$E', chr(6) => '$F', chr(7) => '$G',
432 - chr(8) => '$H', chr(9) => '$I', chr(10) => '$J', chr(11) => '�K',
431 + chr(8) => '$H', chr(9) => '$I', chr(10) => '$J', chr(11) => '£K',
433 432 chr(12) => '$L', chr(13) => '$M', chr(14) => '$N', chr(15) => '$O',
434 433 chr(16) => '$P', chr(17) => '$Q', chr(18) => '$R', chr(19) => '$S',
435 434 chr(20) => '$T', chr(21) => '$U', chr(22) => '$V', chr(23) => '$W',
436 435 chr(24) => '$X', chr(25) => '$Y', chr(26) => '$Z', chr(27) => '%A',
@@ -493,61 +492,61 @@
493 492 * CODE 93 - USS-93
494 493 * Compact code similar to Code 39
495 494 */
496 495 protected function barcode_code93($code) {
497 - $chr[48] = '131112'; // 0
498 - $chr[49] = '111213'; // 1
499 - $chr[50] = '111312'; // 2
500 - $chr[51] = '111411'; // 3
501 - $chr[52] = '121113'; // 4
502 - $chr[53] = '121212'; // 5
503 - $chr[54] = '121311'; // 6
504 - $chr[55] = '111114'; // 7
505 - $chr[56] = '131211'; // 8
506 - $chr[57] = '141111'; // 9
507 - $chr[65] = '211113'; // A
508 - $chr[66] = '211212'; // B
509 - $chr[67] = '211311'; // C
510 - $chr[68] = '221112'; // D
511 - $chr[69] = '221211'; // E
512 - $chr[70] = '231111'; // F
513 - $chr[71] = '112113'; // G
514 - $chr[72] = '112212'; // H
515 - $chr[73] = '112311'; // I
516 - $chr[74] = '122112'; // J
517 - $chr[75] = '132111'; // K
518 - $chr[76] = '111123'; // L
519 - $chr[77] = '111222'; // M
520 - $chr[78] = '111321'; // N
521 - $chr[79] = '121122'; // O
522 - $chr[80] = '131121'; // P
523 - $chr[81] = '212112'; // Q
524 - $chr[82] = '212211'; // R
525 - $chr[83] = '211122'; // S
526 - $chr[84] = '211221'; // T
527 - $chr[85] = '221121'; // U
528 - $chr[86] = '222111'; // V
529 - $chr[87] = '112122'; // W
530 - $chr[88] = '112221'; // X
531 - $chr[89] = '122121'; // Y
532 - $chr[90] = '123111'; // Z
533 - $chr[45] = '121131'; // -
534 - $chr[46] = '311112'; // .
535 - $chr[32] = '311211'; //
536 - $chr[36] = '321111'; // $
537 - $chr[47] = '112131'; // /
538 - $chr[43] = '113121'; // +
539 - $chr[37] = '211131'; // %
496 + $chr['0'] = '131112';
497 + $chr['1'] = '111213';
498 + $chr['2'] = '111312';
499 + $chr['3'] = '111411';
500 + $chr['4'] = '121113';
501 + $chr['5'] = '121212';
502 + $chr['6'] = '121311';
503 + $chr['7'] = '111114';
504 + $chr['8'] = '131211';
505 + $chr['9'] = '141111';
506 + $chr['A'] = '211113';
507 + $chr['B'] = '211212';
508 + $chr['C'] = '211311';
509 + $chr['D'] = '221112';
510 + $chr['E'] = '221211';
511 + $chr['F'] = '231111';
512 + $chr['G'] = '112113';
513 + $chr['H'] = '112212';
514 + $chr['I'] = '112311';
515 + $chr['J'] = '122112';
516 + $chr['K'] = '132111';
517 + $chr['L'] = '111123';
518 + $chr['M'] = '111222';
519 + $chr['N'] = '111321';
520 + $chr['O'] = '121122';
521 + $chr['P'] = '131121';
522 + $chr['Q'] = '212112';
523 + $chr['R'] = '212211';
524 + $chr['S'] = '211122';
525 + $chr['T'] = '211221';
526 + $chr['U'] = '221121';
527 + $chr['V'] = '222111';
528 + $chr['W'] = '112122';
529 + $chr['X'] = '112221';
530 + $chr['Y'] = '122121';
531 + $chr['Z'] = '123111';
532 + $chr['-'] = '121131';
533 + $chr['.'] = '311112';
534 + $chr[' '] = '311211';
535 + $chr['$'] = '321111';
536 + $chr['/'] = '112131';
537 + $chr['+'] = '113121';
538 + $chr['%'] = '211131';
540 539 $chr[128] = '121221'; // ($)
541 540 $chr[129] = '311121'; // (/)
542 541 $chr[130] = '122211'; // (+)
543 542 $chr[131] = '312111'; // (%)
544 - $chr[42] = '111141'; // start-stop
543 + $chr['*'] = '111141';
545 544 $code = strtoupper($code);
546 545 $encode = array(
547 546 chr(0) => chr(131).'U', chr(1) => chr(128).'A', chr(2) => chr(128).'B', chr(3) => chr(128).'C',
548 547 chr(4) => chr(128).'D', chr(5) => chr(128).'E', chr(6) => chr(128).'F', chr(7) => chr(128).'G',
549 - chr(8) => chr(128).'H', chr(9) => chr(128).'I', chr(10) => chr(128).'J', chr(11) => '�K',
548 + chr(8) => chr(128).'H', chr(9) => chr(128).'I', chr(10) => chr(128).'J', chr(11) => '£K',
550 549 chr(12) => chr(128).'L', chr(13) => chr(128).'M', chr(14) => chr(128).'N', chr(15) => chr(128).'O',
551 550 chr(16) => chr(128).'P', chr(17) => chr(128).'Q', chr(18) => chr(128).'R', chr(19) => chr(128).'S',
552 551 chr(20) => chr(128).'T', chr(21) => chr(128).'U', chr(22) => chr(128).'V', chr(23) => chr(128).'W',
553 552 chr(24) => chr(128).'X', chr(25) => chr(128).'Y', chr(26) => chr(128).'Z', chr(27) => chr(131).'A',
@@ -578,22 +577,23 @@
578 577 chr(124) => chr(131).'Q', chr(125) => chr(131).'R', chr(126) => chr(131).'S', chr(127) => chr(131).'T');
579 578 $code_ext = '';
580 579 $clen = strlen($code);
581 580 for ($i = 0 ; $i < $clen; ++$i) {
582 - if (ord($code{$i}) > 127) {
581 + if (ord($code[$i]) > 127) {
583 582 return false;
584 583 }
585 - $code_ext .= $encode[$code{$i}];
584 + $code_ext .= $encode[$code[$i]];
586 585 }
587 586 // checksum
588 - $code_ext .= $this->checksum_code93($code_ext);
587 + $checkdigit = $this->checksum_code93($code);
588 + $code .= $checkdigit ;
589 589 // add start and stop codes
590 - $code = '*'.$code_ext.'*';
590 + $code = '*'.$code.'*';
591 591 $bararray = array('code' => $code, 'maxw' => 0, 'maxh' => 1, 'bcode' => array());
592 592 $k = 0;
593 593 $clen = strlen($code);
594 594 for ($i = 0; $i < $clen; ++$i) {
595 - $char = ord($code{$i});
595 + $char = $code[$i];
596 596 if(!isset($chr[$char])) {
597 597 // invalid character
598 598 return false;
599 599 }
@@ -602,9 +602,9 @@
602 602 $t = true; // bar
603 603 } else {
604 604 $t = false; // space
605 605 }
606 - $w = $chr[$char]{$j};
606 + $w = $chr[$char][$j];
607 607 $bararray['bcode'][$k] = array('t' => $t, 'w' => $w, 'h' => 1, 'p' => 0);
608 608 $bararray['maxw'] += $w;
609 609 ++$k;
610 610 }
@@ -610,9 +610,10 @@
610 610 }
611 611 }
612 612 $bararray['bcode'][$k] = array('t' => true, 'w' => 1, 'h' => 1, 'p' => 0);
613 613 $bararray['maxw'] += 1;
614 - ++$k;
614 + ++$k;
615 + $bararray['checkdigit'] = $checkdigit;
615 616 return $bararray;
616 617 }
617 618
618 619 /**
@@ -622,18 +623,17 @@
622 623 $chars = array(
623 624 '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
624 625 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K',
625 626 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V',
626 - 'W', 'X', 'Y', 'Z', '-', '.', ' ', '$', '/', '+', '%',
627 - '<', '=', '>', '?');
627 + 'W', 'X', 'Y', 'Z', '-', '.', ' ', '$', '/', '+', '%');
628 628 // translate special characters
629 - $code = strtr($code, chr(128).chr(131).chr(129).chr(130), '<=>?');
629 + $code = strtr($code, chr(128).chr(129).chr(130).chr(131), '$/+%');
630 630 $len = strlen($code);
631 631 // calculate check digit C
632 632 $p = 1;
633 633 $check = 0;
634 634 for ($i = ($len - 1); $i >= 0; --$i) {
635 - $k = array_keys($chars, $code{$i});
635 + $k = array_keys($chars, $code[$i]);
636 636 $check += ($k[0] * $p);
637 637 ++$p;
638 638 if ($p > 20) {
639 639 $p = 1;
@@ -645,9 +645,9 @@
645 645 // calculate check digit K
646 646 $p = 1;
647 647 $check = 0;
648 648 for ($i = $len; $i >= 0; --$i) {
649 - $k = array_keys($chars, $code{$i});
649 + $k = array_keys($chars, $code[$i]);
650 650 $check += ($k[0] * $p);
651 651 ++$p;
652 652 if ($p > 15) {
653 653 $p = 1;
@@ -654,12 +654,9 @@
654 654 }
655 655 }
656 656 $check %= 47;
657 657 $k = $chars[$check];
658 - $checksum = $c.$k;
659 - // resto respecial characters
660 - $checksum = strtr($checksum, '<=>?', chr(128).chr(131).chr(129).chr(130));
661 - return $checksum;
658 + return $c.$k;
662 659 }
663 660
664 661 /**
665 662 * Checksum for standard 2 of 5 barcodes.
@@ -702,9 +699,8 @@
702 699 $chr['C'] = '110110100100';
703 700 $chr['D'] = '110110100110';
704 701 $chr['E'] = '110110110100';
705 702 $chr['F'] = '110110110110';
706 - $checkdigit = '';
707 703 if ($checksum) {
708 704 // add checksum
709 705 $clen = strlen($code);
710 706 $p = 2;
@@ -754,9 +750,8 @@
754 750 $chr['6'] = '10111011101010';
755 751 $chr['7'] = '10101011101110';
756 752 $chr['8'] = '10101110111010';
757 753 $chr['9'] = '10111010111010';
758 - $checkdigit = '';
759 754 if ($checksum) {
760 755 // add checksum
761 756 $checkdigit = $this->checksum_s25($code);
762 757 $code .= $checkdigit ;
@@ -822,9 +817,8 @@
822 817 $chr['8'] = '21121';
823 818 $chr['9'] = '12121';
824 819 $chr['A'] = '11';
825 820 $chr['Z'] = '21';
826 - $checkdigit = '';
827 821 if ($checksum) {
828 822 // add checksum
829 823 $checkdigit = $this->checksum_s25($code);
830 824 $code .= $checkdigit ;
@@ -876,9 +870,8 @@
876 870 * C128 barcodes.
877 871 * Very capable code, excellent density, high reliability; in very wide use world-wide
878 872 */
879 873 protected function barcode_c128($code, $type='B', $ean=false) {
880 - $code = strcode2utf($code); // mPDF 5.7.1 Allows e.g. <barcode code="5432&#013;1068" type="C128A" />
881 874 $chr = array(
882 875 '212222', /* 00 */
883 876 '222122', /* 01 */
884 877 '222221', /* 02 */