From: <be...@us...> - 2012-08-08 22:54:52
|
Revision: 10046 http://xoops.svn.sourceforge.net/xoops/?rev=10046&view=rev Author: beckmi Date: 2012-08-08 22:54:43 +0000 (Wed, 08 Aug 2012) Log Message: ----------- Updating TCPDF to 5.9.176 (1.04 version of black_beard) Modified Paths: -------------- XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/2dbarcodes.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/barcodes.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/config/tcpdf_config.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/datamatrix.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/encodings_maps.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/fonts/dejavusans.ctg.z XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/fonts/dejavusans.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/htmlcolors.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/pdf417.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/qrcode.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/tcpdf.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/tcpdf_filters.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/tcpdf_parser.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/unicode_data.php Added Paths: ----------- XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/cache/index.html XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/config/index.html XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/config/lang/arabic.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/config/lang/armenian.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/config/lang/brazilian.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/config/lang/bulgarian.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/config/lang/chinese.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/config/lang/croatian.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/config/lang/czech.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/config/lang/danish.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/config/lang/english.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/config/lang/estonian.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/config/lang/euskara.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/config/lang/french.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/config/lang/galician.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/config/lang/geogian.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/config/lang/german.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/config/lang/hebrew.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/config/lang/hungarian.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/config/lang/index.html XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/config/lang/indonesian.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/config/lang/italian.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/config/lang/japanese.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/config/lang/korean.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/config/lang/macedonian.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/config/lang/malaysian.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/config/lang/maltese.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/config/lang/nederlands.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/config/lang/norwegian.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/config/lang/persian.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/config/lang/polish.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/config/lang/portuguese.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/config/lang/romanian.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/config/lang/russian.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/config/lang/schinese.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/config/lang/serbian.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/config/lang/slovenian.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/config/lang/spanish.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/config/lang/swahili.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/config/lang/swedish.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/config/lang/tchinese.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/config/lang/ukrainian.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/config/lang/urdu.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/docs/ XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/docs/README.txt XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/docs/changelog.txt XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/docs/index.html XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/fonts/index.html XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/images/index.html XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/index.html Removed Paths: ------------- XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/LICENSE.TXT XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/README.TXT XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/config/lang/swe.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/config/lang/urd.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/config/lang/yid.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/config/lang/zho.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/config/tcpdf_config_alt.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/doc/ XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/fonts/hysmyeongjostdmedium.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/fonts/kozgopromedium.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/fonts/kozminproregular.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/fonts/msungstdlight.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/fonts/pdfacourier.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/fonts/pdfacourier.z XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/fonts/pdfacourierb.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/fonts/pdfacourierb.z XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/fonts/pdfacourierbi.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/fonts/pdfacourierbi.z XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/fonts/pdfacourieri.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/fonts/pdfacourieri.z XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/fonts/pdfahelvetica.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/fonts/pdfahelvetica.z XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/fonts/pdfahelveticab.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/fonts/pdfahelveticab.z XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/fonts/pdfahelveticabi.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/fonts/pdfahelveticabi.z XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/fonts/pdfahelveticai.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/fonts/pdfahelveticai.z XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/fonts/pdfasymbol.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/fonts/pdfasymbol.z XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/fonts/pdfatimes.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/fonts/pdfatimes.z XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/fonts/pdfatimesb.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/fonts/pdfatimesb.z XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/fonts/pdfatimesbi.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/fonts/pdfatimesbi.z XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/fonts/pdfatimesi.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/fonts/pdfatimesi.z XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/fonts/pdfazapfdingbats.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/fonts/pdfazapfdingbats.z XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/fonts/stsongstdlight.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/images/bug.eps XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/images/tcpdf_cell.png XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/images/testsvg.svg XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/images/tux.svg XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/sRGB.icc XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/spotcolors.php XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/tcpdf.crt XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/tcpdf.fdf XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/tcpdf.p12 Modified: XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/2dbarcodes.php =================================================================== --- XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/2dbarcodes.php 2012-08-08 22:45:02 UTC (rev 10045) +++ XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/2dbarcodes.php 2012-08-08 22:54:43 UTC (rev 10046) @@ -1,333 +1,249 @@ -<?php -//============================================================+ -// File name : 2dbarcodes.php -// Version : 1.0.012 -// Begin : 2009-04-07 -// Last Update : 2011-09-15 -// Author : Nicola Asuni - Tecnick.com LTD - Manor Coach House, Church Hill, Aldershot, Hants, GU12 4RQ, UK - www.tecnick.com - in...@te... -// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html) -// ------------------------------------------------------------------- -// Copyright (C) 2009-2012 Nicola Asuni - Tecnick.com LTD -// -// This file is part of TCPDF software library. -// -// TCPDF is free software: you can redistribute it and/or modify it -// under the terms of the GNU Lesser General Public License as -// published by the Free Software Foundation, either version 3 of the -// License, or (at your option) any later version. -// -// TCPDF is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with TCPDF. If not, see <http://www.gnu.org/licenses/>. -// -// See LICENSE.TXT file for more information. -// ------------------------------------------------------------------- -// -// Description : PHP class to creates array representations for -// 2D barcodes to be used with TCPDF. -// -//============================================================+ - -/** - * @file - * PHP class to creates array representations for 2D barcodes to be used with TCPDF. - * @package com.tecnick.tcpdf - * @author Nicola Asuni - * @version 1.0.012 - */ - -/** - * @class TCPDF2DBarcode - * PHP class to creates array representations for 2D barcodes to be used with TCPDF (http://www.tcpdf.org). - * @package com.tecnick.tcpdf - * @version 1.0.012 - * @author Nicola Asuni - */ -class TCPDF2DBarcode { - - /** - * Array representation of barcode. - * @protected - */ - protected $barcode_array = false; - - /** - * This is the class constructor. - * Return an array representations for 2D barcodes:<ul> - * <li>$arrcode['code'] code to be printed on text label</li> - * <li>$arrcode['num_rows'] required number of rows</li> - * <li>$arrcode['num_cols'] required number of columns</li> - * <li>$arrcode['bcode'][$r][$c] value of the cell is $r row and $c column (0 = transparent, 1 = black)</li></ul> - * @param $code (string) code to print - * @param $type (string) type of barcode: <ul><li>DATAMATRIX : Datamatrix (ISO/IEC 16022)</li><li>PDF417 : PDF417 (ISO/IEC 15438:2006)</li><li>PDF417,a,e,t,s,f,o0,o1,o2,o3,o4,o5,o6 : PDF417 with parameters: a = aspect ratio (width/height); e = error correction level (0-8); t = total number of macro segments; s = macro segment index (0-99998); f = file ID; o0 = File Name (text); o1 = Segment Count (numeric); o2 = Time Stamp (numeric); o3 = Sender (text); o4 = Addressee (text); o5 = File Size (numeric); o6 = Checksum (numeric). NOTES: Parameters t, s and f are required for a Macro Control Block, all other parametrs are optional. To use a comma character ',' on text options, replace it with the character 255: "\xff".</li><li>QRCODE : QRcode Low error correction</li><li>QRCODE,L : QRcode Low error correction</li><li>QRCODE,M : QRcode Medium error correction</li><li>QRCODE,Q : QRcode Better error correction</li><li>QRCODE,H : QR-CODE Best error correction</li><li>RAW: raw mode - comma-separad list of array rows</li><li>RAW2: raw mode - array rows are surrounded by square parenthesis.</li><li>TEST : Test matrix</li></ul> - */ - public function __construct($code, $type) { - $this->setBarcode($code, $type); - } - - /** - * Return an array representations of barcode. - * @return array - */ - public function getBarcodeArray() { - return $this->barcode_array; - } - - /** - * Send barcode as SVG image object to the standard output. - * @param $w (int) Width of a single rectangle element in user units. - * @param $h (int) Height of a single rectangle element in user units. - * @param $color (string) Foreground color (in SVG format) for bar elements (background is transparent). - * @public - */ - public function getBarcodeSVG($w=3, $h=3, $color='black') { - // send headers - $code = $this->getBarcodeSVGcode($w, $h, $color); - header('Content-Type: application/svg+xml'); - header('Cache-Control: public, must-revalidate, max-age=0'); // HTTP/1.1 - header('Pragma: public'); - header('Expires: Sat, 26 Jul 1997 05:00:00 GMT'); // Date in the past - header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); - header('Content-Disposition: inline; filename="'.md5($code).'.svg";'); - //header('Content-Length: '.strlen($code)); - echo $code; - } - - /** - * Return a SVG string representation of barcode. - * @param $w (int) Width of a single rectangle element in user units. - * @param $h (int) Height of a single rectangle element in user units. - * @param $color (string) Foreground color (in SVG format) for bar elements (background is transparent). - * @return string SVG code. - * @public - */ - public function getBarcodeSVGcode($w=3, $h=3, $color='black') { - // replace table for special characters - $repstr = array("\0" => '', '&' => '&', '<' => '<', '>' => '>'); - $svg = '<'.'?'.'xml version="1.0" standalone="no"'.'?'.'>'."\n"; - $svg .= '<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">'."\n"; - $svg .= '<svg width="'.round(($this->barcode_array['num_cols'] * $w), 3).'" height="'.round(($this->barcode_array['num_rows'] * $h), 3).'" version="1.1" xmlns="http://www.w3.org/2000/svg">'."\n"; - $svg .= "\t".'<desc>'.strtr($this->barcode_array['code'], $repstr).'</desc>'."\n"; - $svg .= "\t".'<g id="elements" fill="'.$color.'" stroke="none">'."\n"; - // print barcode elements - $y = 0; - // for each row - for ($r = 0; $r < $this->barcode_array['num_rows']; ++$r) { - $x = 0; - // for each column - for ($c = 0; $c < $this->barcode_array['num_cols']; ++$c) { - if ($this->barcode_array['bcode'][$r][$c] == 1) { - // draw a single barcode cell - $svg .= "\t\t".'<rect x="'.$x.'" y="'.$y.'" width="'.$w.'" height="'.$h.'" />'."\n"; - } - $x += $w; - } - $y += $h; - } - $svg .= "\t".'</g>'."\n"; - $svg .= '</svg>'."\n"; - return $svg; - } - - /** - * Return an HTML representation of barcode. - * @param $w (int) Width of a single rectangle element in pixels. - * @param $h (int) Height of a single rectangle element in pixels. - * @param $color (string) Foreground color for bar elements (background is transparent). - * @return string HTML code. - * @public - */ - public function getBarcodeHTML($w=10, $h=10, $color='black') { - // replace table for special characters - $html = '<div style="font-size:0;position:relative;">'."\n"; - // print barcode elements - $y = 0; - // for each row - for ($r = 0; $r < $this->barcode_array['num_rows']; ++$r) { - $x = 0; - // for each column - for ($c = 0; $c < $this->barcode_array['num_cols']; ++$c) { - if ($this->barcode_array['bcode'][$r][$c] == 1) { - // draw a single barcode cell - $html .= '<div style="background-color:'.$color.';width:'.$w.'px;height:'.$h.'px;position:absolute;left:'.$x.'px;top:'.$y.'px;"> </div>'."\n"; - } - $x += $w; - } - $y += $h; - } - $html .= '</div>'."\n"; - return $html; - } - - /** - * Return a PNG image representation of barcode (requires GD or Imagick library). - * @param $w (int) Width of a single rectangle element in pixels. - * @param $h (int) Height of a single rectangle element in pixels. - * @param $color (array) RGB (0-255) foreground color for bar elements (background is transparent). - * @return image or false in case of error. - * @public - */ - public function getBarcodePNG($w=3, $h=3, $color=array(0,0,0)) { - // calculate image size - $width = ($this->barcode_array['num_cols'] * $w); - $height = ($this->barcode_array['num_rows'] * $h); - if (function_exists('imagecreate')) { - // GD library - $imagick = false; - $png = imagecreate($width, $height); - $bgcol = imagecolorallocate($png, 255, 255, 255); - imagecolortransparent($png, $bgcol); - $fgcol = imagecolorallocate($png, $color[0], $color[1], $color[2]); - } elseif (extension_loaded('imagick')) { - $imagick = true; - $bgcol = new imagickpixel('rgb(255,255,255'); - $fgcol = new imagickpixel('rgb('.$color[0].','.$color[1].','.$color[2].')'); - $png = new Imagick(); - $png->newImage($width, $height, 'none', 'png'); - $bar = new imagickdraw(); - $bar->setfillcolor($fgcol); - } else { - return false; - } - // print barcode elements - $y = 0; - // for each row - for ($r = 0; $r < $this->barcode_array['num_rows']; ++$r) { - $x = 0; - // for each column - for ($c = 0; $c < $this->barcode_array['num_cols']; ++$c) { - if ($this->barcode_array['bcode'][$r][$c] == 1) { - // draw a single barcode cell - if ($imagick) { - $bar->rectangle($x, $y, ($x + $w), ($y + $h)); - } else { - imagefilledrectangle($png, $x, $y, ($x + $w), ($y + $h), $fgcol); - } - } - $x += $w; - } - $y += $h; - } - // send headers - header('Content-Type: image/png'); - header('Cache-Control: public, must-revalidate, max-age=0'); // HTTP/1.1 - header('Pragma: public'); - header('Expires: Sat, 26 Jul 1997 05:00:00 GMT'); // Date in the past - header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); - if ($imagick) { - $png->drawimage($bar); - echo $png; - } else { - imagepng($png); - imagedestroy($png); - } - } - - /** - * Set the barcode. - * @param $code (string) code to print - * @param $type (string) type of barcode: <ul><li>DATAMATRIX : Datamatrix (ISO/IEC 16022)</li><li>PDF417 : PDF417 (ISO/IEC 15438:2006)</li><li>PDF417,a,e,t,s,f,o0,o1,o2,o3,o4,o5,o6 : PDF417 with parameters: a = aspect ratio (width/height); e = error correction level (0-8); t = total number of macro segments; s = macro segment index (0-99998); f = file ID; o0 = File Name (text); o1 = Segment Count (numeric); o2 = Time Stamp (numeric); o3 = Sender (text); o4 = Addressee (text); o5 = File Size (numeric); o6 = Checksum (numeric). NOTES: Parameters t, s and f are required for a Macro Control Block, all other parametrs are optional. To use a comma character ',' on text options, replace it with the character 255: "\xff".</li><li>QRCODE : QRcode Low error correction</li><li>QRCODE,L : QRcode Low error correction</li><li>QRCODE,M : QRcode Medium error correction</li><li>QRCODE,Q : QRcode Better error correction</li><li>QRCODE,H : QR-CODE Best error correction</li><li>RAW: raw mode - comma-separad list of array rows</li><li>RAW2: raw mode - array rows are surrounded by square parenthesis.</li><li>TEST : Test matrix</li></ul> - * @return array - */ - public function setBarcode($code, $type) { - $mode = explode(',', $type); - $qrtype = strtoupper($mode[0]); - switch ($qrtype) { - case 'DATAMATRIX': { // DATAMATRIX (ISO/IEC 16022) - require_once(dirname(__FILE__).'/datamatrix.php'); - $qrcode = new Datamatrix($code); - $this->barcode_array = $qrcode->getBarcodeArray(); - $this->barcode_array['code'] = $code; - break; - } - case 'PDF417': { // PDF417 (ISO/IEC 15438:2006) - require_once(dirname(__FILE__).'/pdf417.php'); - if (!isset($mode[1]) OR ($mode[1] === '')) { - $aspectratio = 2; // default aspect ratio (width / height) - } else { - $aspectratio = floatval($mode[1]); - } - if (!isset($mode[2]) OR ($mode[2] === '')) { - $ecl = -1; // default error correction level (auto) - } else { - $ecl = intval($mode[2]); - } - // set macro block - $macro = array(); - if (isset($mode[3]) AND ($mode[3] !== '') AND isset($mode[4]) AND ($mode[4] !== '') AND isset($mode[5]) AND ($mode[5] !== '')) { - $macro['segment_total'] = intval($mode[3]); - $macro['segment_index'] = intval($mode[4]); - $macro['file_id'] = strtr($mode[5], "\xff", ','); - for ($i = 0; $i < 7; ++$i) { - $o = $i + 6; - if (isset($mode[$o]) AND ($mode[$o] !== '')) { - // add option - $macro['option_'.$i] = strtr($mode[$o], "\xff", ','); - } - } - } - $qrcode = new PDF417($code, $ecl, $aspectratio, $macro); - $this->barcode_array = $qrcode->getBarcodeArray(); - $this->barcode_array['code'] = $code; - break; - } - case 'QRCODE': { // QR-CODE - require_once(dirname(__FILE__).'/qrcode.php'); - if (!isset($mode[1]) OR (!in_array($mode[1],array('L','M','Q','H')))) { - $mode[1] = 'L'; // Ddefault: Low error correction - } - $qrcode = new QRcode($code, strtoupper($mode[1])); - $this->barcode_array = $qrcode->getBarcodeArray(); - $this->barcode_array['code'] = $code; - break; - } - case 'RAW': - case 'RAW2': { // RAW MODE - // remove spaces - $code = preg_replace('/[\s]*/si', '', $code); - if (strlen($code) < 3) { - break; - } - if ($qrtype == 'RAW') { - // comma-separated rows - $rows = explode(',', $code); - } else { // RAW2 - // rows enclosed in square parentheses - $code = substr($code, 1, -1); - $rows = explode('][', $code); - } - $this->barcode_array['num_rows'] = count($rows); - $this->barcode_array['num_cols'] = strlen($rows[0]); - $this->barcode_array['bcode'] = array(); - foreach ($rows as $r) { - $this->barcode_array['bcode'][] = str_split($r, 1); - } - $this->barcode_array['code'] = $code; - break; - } - case 'TEST': { // TEST MODE - $this->barcode_array['num_rows'] = 5; - $this->barcode_array['num_cols'] = 15; - $this->barcode_array['bcode'] = array( - array(1,1,1,0,1,1,1,0,1,1,1,0,1,1,1), - array(0,1,0,0,1,0,0,0,1,0,0,0,0,1,0), - array(0,1,0,0,1,1,0,0,1,1,1,0,0,1,0), - array(0,1,0,0,1,0,0,0,0,0,1,0,0,1,0), - array(0,1,0,0,1,1,1,0,1,1,1,0,0,1,0)); - $this->barcode_array['code'] = $code; - break; - } - default: { - $this->barcode_array = false; - } - } - } -} // end of class - -//============================================================+ -// END OF FILE -//============================================================+ +<?php +/******************************************************************************* +* Software: TCPDF for Xoops * +* Version: 1.03 * +* Date: 2012-07-31 * +* Author: montuy337513 (frxoops.org) alias Black_beard (xoops.org) * +* License: Freeware * +* * +* You may use and modify this software as you wish. * +*******************************************************************************/ +// Original version : +//============================================================+ +// File name : tcpdf.php +// Version : 5.9.176 +// Begin : 2002-08-03 +// Last Update : 2012-07-26 +// Author : Nicola Asuni - Tecnick.com LTD - Manor Coach House, Church Hill, Aldershot, Hants, GU12 4RQ, UK - www.tecnick.com - in...@te... +// License : http://www.tecnick.com/pagefiles/tcpdf/LICENSE.TXT GNU-LGPLv3 +// ------------------------------------------------------------------- +if (!defined('XOOPS_ROOT_PATH')) { + die("XOOPS root path not defined"); +} + +class TCPDF2DBarcode { + + protected $barcode_array = false; + + public function __construct($code, $type) { + $this->setBarcode($code, $type); + } + + + public function getBarcodeArray() { + return $this->barcode_array; + } + + public function getBarcodeSVG($w=3, $h=3, $color='black') { + // send headers + $code = $this->getBarcodeSVGcode($w, $h, $color); + header('Content-Type: application/svg+xml'); + header('Cache-Control: public, must-revalidate, max-age=0'); // HTTP/1.1 + header('Pragma: public'); + header('Expires: Sat, 26 Jul 1997 05:00:00 GMT'); // Date in the past + header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); + header('Content-Disposition: inline; filename="'.md5($code).'.svg";'); + //header('Content-Length: '.strlen($code)); + echo $code; + } + + public function getBarcodeSVGcode($w=3, $h=3, $color='black') { + // replace table for special characters + $repstr = array("\0" => '', '&' => '&', '<' => '<', '>' => '>'); + $svg = '<'.'?'.'xml version="1.0" standalone="no"'.'?'.'>'."\n"; + $svg .= '<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">'."\n"; + $svg .= '<svg width="'.round(($this->barcode_array['num_cols'] * $w), 3).'" height="'.round(($this->barcode_array['num_rows'] * $h), 3).'" version="1.1" xmlns="http://www.w3.org/2000/svg">'."\n"; + $svg .= "\t".'<desc>'.strtr($this->barcode_array['code'], $repstr).'</desc>'."\n"; + $svg .= "\t".'<g id="elements" fill="'.$color.'" stroke="none">'."\n"; + // print barcode elements + $y = 0; + // for each row + for ($r = 0; $r < $this->barcode_array['num_rows']; ++$r) { + $x = 0; + // for each column + for ($c = 0; $c < $this->barcode_array['num_cols']; ++$c) { + if ($this->barcode_array['bcode'][$r][$c] == 1) { + // draw a single barcode cell + $svg .= "\t\t".'<rect x="'.$x.'" y="'.$y.'" width="'.$w.'" height="'.$h.'" />'."\n"; + } + $x += $w; + } + $y += $h; + } + $svg .= "\t".'</g>'."\n"; + $svg .= '</svg>'."\n"; + return $svg; + } + + public function getBarcodeHTML($w=10, $h=10, $color='black') { + $html = '<div style="font-size:0;position:relative;width:'.($w * $this->barcode_array['num_cols']).'px;height:'.($h * $this->barcode_array['num_rows']).'px;">'."\n"; + // print barcode elements + $y = 0; + // for each row + for ($r = 0; $r < $this->barcode_array['num_rows']; ++$r) { + $x = 0; + // for each column + for ($c = 0; $c < $this->barcode_array['num_cols']; ++$c) { + if ($this->barcode_array['bcode'][$r][$c] == 1) { + // draw a single barcode cell + $html .= '<div style="background-color:'.$color.';width:'.$w.'px;height:'.$h.'px;position:absolute;left:'.$x.'px;top:'.$y.'px;"> </div>'."\n"; + } + $x += $w; + } + $y += $h; + } + $html .= '</div>'."\n"; + return $html; + } + + public function getBarcodePNG($w=3, $h=3, $color=array(0,0,0)) { + // calculate image size + $width = ($this->barcode_array['num_cols'] * $w); + $height = ($this->barcode_array['num_rows'] * $h); + if (function_exists('imagecreate')) { + // GD library + $imagick = false; + $png = imagecreate($width, $height); + $bgcol = imagecolorallocate($png, 255, 255, 255); + imagecolortransparent($png, $bgcol); + $fgcol = imagecolorallocate($png, $color[0], $color[1], $color[2]); + } elseif (extension_loaded('imagick')) { + $imagick = true; + $bgcol = new imagickpixel('rgb(255,255,255'); + $fgcol = new imagickpixel('rgb('.$color[0].','.$color[1].','.$color[2].')'); + $png = new Imagick(); + $png->newImage($width, $height, 'none', 'png'); + $bar = new imagickdraw(); + $bar->setfillcolor($fgcol); + } else { + return false; + } + // print barcode elements + $y = 0; + // for each row + for ($r = 0; $r < $this->barcode_array['num_rows']; ++$r) { + $x = 0; + // for each column + for ($c = 0; $c < $this->barcode_array['num_cols']; ++$c) { + if ($this->barcode_array['bcode'][$r][$c] == 1) { + // draw a single barcode cell + if ($imagick) { + $bar->rectangle($x, $y, ($x + $w - 1), ($y + $h - 1)); + } else { + imagefilledrectangle($png, $x, $y, ($x + $w - 1), ($y + $h - 1), $fgcol); + } + } + $x += $w; + } + $y += $h; + } + // send headers + header('Content-Type: image/png'); + header('Cache-Control: public, must-revalidate, max-age=0'); // HTTP/1.1 + header('Pragma: public'); + header('Expires: Sat, 26 Jul 1997 05:00:00 GMT'); // Date in the past + header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); + if ($imagick) { + $png->drawimage($bar); + echo $png; + } else { + imagepng($png); + imagedestroy($png); + } + } + + public function setBarcode($code, $type) { + $mode = explode(',', $type); + $qrtype = strtoupper($mode[0]); + switch ($qrtype) { + case 'DATAMATRIX': { // DATAMATRIX (ISO/IEC 16022) + require_once(dirname(__FILE__).'/datamatrix.php'); + $qrcode = new Datamatrix($code); + $this->barcode_array = $qrcode->getBarcodeArray(); + $this->barcode_array['code'] = $code; + break; + } + case 'PDF417': { // PDF417 (ISO/IEC 15438:2006) + require_once(dirname(__FILE__).'/pdf417.php'); + if (!isset($mode[1]) OR ($mode[1] === '')) { + $aspectratio = 2; // default aspect ratio (width / height) + } else { + $aspectratio = floatval($mode[1]); + } + if (!isset($mode[2]) OR ($mode[2] === '')) { + $ecl = -1; // default error correction level (auto) + } else { + $ecl = intval($mode[2]); + } + // set macro block + $macro = array(); + if (isset($mode[3]) AND ($mode[3] !== '') AND isset($mode[4]) AND ($mode[4] !== '') AND isset($mode[5]) AND ($mode[5] !== '')) { + $macro['segment_total'] = intval($mode[3]); + $macro['segment_index'] = intval($mode[4]); + $macro['file_id'] = strtr($mode[5], "\xff", ','); + for ($i = 0; $i < 7; ++$i) { + $o = $i + 6; + if (isset($mode[$o]) AND ($mode[$o] !== '')) { + // add option + $macro['option_'.$i] = strtr($mode[$o], "\xff", ','); + } + } + } + $qrcode = new PDF417($code, $ecl, $aspectratio, $macro); + $this->barcode_array = $qrcode->getBarcodeArray(); + $this->barcode_array['code'] = $code; + break; + } + case 'QRCODE': { // QR-CODE + require_once(dirname(__FILE__).'/qrcode.php'); + if (!isset($mode[1]) OR (!in_array($mode[1],array('L','M','Q','H')))) { + $mode[1] = 'L'; // Ddefault: Low error correction + } + $qrcode = new QRcode($code, strtoupper($mode[1])); + $this->barcode_array = $qrcode->getBarcodeArray(); + $this->barcode_array['code'] = $code; + break; + } + case 'RAW': + case 'RAW2': { // RAW MODE + // remove spaces + $code = preg_replace('/[\s]*/si', '', $code); + if (strlen($code) < 3) { + break; + } + if ($qrtype == 'RAW') { + // comma-separated rows + $rows = explode(',', $code); + } else { // RAW2 + // rows enclosed in square parentheses + $code = substr($code, 1, -1); + $rows = explode('][', $code); + } + $this->barcode_array['num_rows'] = count($rows); + $this->barcode_array['num_cols'] = strlen($rows[0]); + $this->barcode_array['bcode'] = array(); + foreach ($rows as $r) { + $this->barcode_array['bcode'][] = str_split($r, 1); + } + $this->barcode_array['code'] = $code; + break; + } + case 'TEST': { // TEST MODE + $this->barcode_array['num_rows'] = 5; + $this->barcode_array['num_cols'] = 15; + $this->barcode_array['bcode'] = array( + array(1,1,1,0,1,1,1,0,1,1,1,0,1,1,1), + array(0,1,0,0,1,0,0,0,1,0,0,0,0,1,0), + array(0,1,0,0,1,1,0,0,1,1,1,0,0,1,0), + array(0,1,0,0,1,0,0,0,0,0,1,0,0,1,0), + array(0,1,0,0,1,1,1,0,1,1,1,0,0,1,0)); + $this->barcode_array['code'] = $code; + break; + } + default: { + $this->barcode_array = false; + } + } + } +} // end of class +?> \ No newline at end of file Deleted: XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/LICENSE.TXT =================================================================== --- XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/LICENSE.TXT 2012-08-08 22:45:02 UTC (rev 10045) +++ XoopsModules/modulepacks/basicmodulepack/trunk/Frameworks/tcpdf/LICENSE.TXT 2012-08-08 22:54:43 UTC (rev 10046) @@ -1,860 +0,0 @@ -********************************************************************** -* TCPDF LICENSE -********************************************************************** - - TCPDF is free software: you can redistribute it and/or modify it - under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation, either version 3 of the - License, or (at your option) any later version. Additionally, - YOU CAN'T REMOVE ANY TCPDF COPYRIGHT NOTICE OR LINK FROM THE - GENERATED PDF DOCUMENTS. - -********************************************************************** -********************************************************************** - - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. - -********************************************************************** -********************************************************************** - - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you ... [truncated message content] |