mirror of
https://github.com/Combodo/iTop.git
synced 2026-02-13 23:44:11 +01:00
Compare commits
23 Commits
class_extr
...
feature/po
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6a76531da6 | ||
|
|
f6e08d6c0c | ||
|
|
77cb080231 | ||
|
|
5ffd573428 | ||
|
|
6adf7d7bc5 | ||
|
|
8f2efa4115 | ||
|
|
43b73b425a | ||
|
|
bead496968 | ||
|
|
025c5edd15 | ||
|
|
769c1b5193 | ||
|
|
8419c11ae0 | ||
|
|
fa244cafb5 | ||
|
|
73328d6e99 | ||
|
|
6f513a0402 | ||
|
|
d63b3d7265 | ||
|
|
20a663d631 | ||
|
|
0248ac02a9 | ||
|
|
9866a10564 | ||
|
|
8126233553 | ||
|
|
253c61e241 | ||
|
|
664aa3949d | ||
|
|
20ae64706a | ||
|
|
245c1d0be5 |
14
app.php
Normal file
14
app.php
Normal file
@@ -0,0 +1,14 @@
|
||||
<?php
|
||||
|
||||
use Combodo\iTop\DI\ITopKernel;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
|
||||
require_once('approot.inc.php');
|
||||
require_once(APPROOT.'/application/application.inc.php');
|
||||
require_once(APPROOT.'/application/startup.inc.php');
|
||||
|
||||
$kernel = new ITopKernel('dev', true);
|
||||
$request = Request::createFromGlobals();
|
||||
$response = $kernel->handle($request);
|
||||
$response->send();
|
||||
$kernel->terminate($request, $response);
|
||||
@@ -6279,4 +6279,19 @@ JS
|
||||
return $iFlags;
|
||||
}
|
||||
|
||||
|
||||
public function __call($name, $args)
|
||||
{
|
||||
return $this->Get($name);
|
||||
}
|
||||
|
||||
public function __get($property)
|
||||
{
|
||||
return $this->Get($property);
|
||||
}
|
||||
|
||||
public function __set($property, $value): void
|
||||
{
|
||||
$this->Set($property, $value);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"type": "project",
|
||||
"license": "AGPL-3.0-only",
|
||||
"require": {
|
||||
"php": ">=7.4.0 <8.2.0",
|
||||
"php": ">=8.1.0 <8.2.0",
|
||||
"ext-ctype": "*",
|
||||
"ext-dom": "*",
|
||||
"ext-gd": "*",
|
||||
@@ -23,18 +23,21 @@
|
||||
"pear/archive_tar": "~1.4.14",
|
||||
"pelago/emogrifier": "^6.0.0",
|
||||
"scssphp/scssphp": "^1.10.3",
|
||||
"symfony/console": "5.4.*",
|
||||
"symfony/dotenv": "5.4.*",
|
||||
"symfony/framework-bundle": "5.4.*",
|
||||
"symfony/http-foundation": "5.4.*",
|
||||
"symfony/http-kernel": "5.4.*",
|
||||
"symfony/twig-bundle": "5.4.*",
|
||||
"symfony/yaml": "5.4.*",
|
||||
"symfony/console": "^6.3",
|
||||
"symfony/dotenv": "^6.3",
|
||||
"symfony/form": "^6.3",
|
||||
"symfony/framework-bundle": " ^6.3",
|
||||
"symfony/http-foundation": "^6.3",
|
||||
"symfony/http-kernel": "^6.3",
|
||||
"symfony/serializer": "^6.3",
|
||||
"symfony/twig-bundle": "^6.3",
|
||||
"symfony/validator": "^6.3",
|
||||
"symfony/yaml": "^6.3",
|
||||
"thenetworg/oauth2-azure": "^2.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"symfony/stopwatch": "5.4.*",
|
||||
"symfony/web-profiler-bundle": "5.4.*"
|
||||
"symfony/stopwatch": "^6.3",
|
||||
"symfony/web-profiler-bundle": "^6.3"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-libsodium": "Required to use the AttributeEncryptedString.",
|
||||
@@ -46,7 +49,7 @@
|
||||
},
|
||||
"config": {
|
||||
"platform": {
|
||||
"php": "7.4.0"
|
||||
"php": "8.1.0"
|
||||
},
|
||||
"vendor-dir": "lib",
|
||||
"preferred-install": {
|
||||
|
||||
2243
composer.lock
generated
2243
composer.lock
generated
File diff suppressed because it is too large
Load Diff
@@ -8584,7 +8584,7 @@ class AttributeBlob extends AttributeDefinition
|
||||
public function RecordAttChange(DBObject $oObject, $original, $value): void
|
||||
{
|
||||
// N°6502 Don't record history if only the download count has changed
|
||||
if ($original->EqualsExceptDownloadsCount($value)) {
|
||||
if ($value == null || $original->EqualsExceptDownloadsCount($value)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -105,6 +105,9 @@ class Config
|
||||
//for each conf entry, whether the non interpreted value can be kept in case is is written back to the disk.
|
||||
private $m_aCanOverrideSettings;
|
||||
|
||||
public function GetSettings(){
|
||||
return $this->m_aSettings;
|
||||
}
|
||||
/**
|
||||
* New way to store the settings !
|
||||
*
|
||||
@@ -2868,4 +2871,7 @@ class ConfigPlaceholdersResolver
|
||||
IssueLog::Error($sErrorMessage, self::class, array($sSourceName, $sKey, $sDefault, $sWholeMask));
|
||||
throw new ConfigException($sErrorMessage);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -509,4 +509,14 @@ class ExecutionKPI
|
||||
// PHP > 5.2.1 - this verb depends on a compilation option
|
||||
return 0;
|
||||
}
|
||||
|
||||
static public function getExecData()
|
||||
{
|
||||
return self::$m_aExecData;
|
||||
}
|
||||
|
||||
static public function getStats()
|
||||
{
|
||||
return self::$m_aStats;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ require_once('dbobjectiterator.php');
|
||||
* @license http://opensource.org/licenses/AGPL-3.0
|
||||
*/
|
||||
|
||||
class ormLinkSet implements iDBObjectSetIterator, Iterator, SeekableIterator
|
||||
class ormLinkSet implements iDBObjectSetIterator, Iterator, SeekableIterator, ArrayAccess
|
||||
{
|
||||
public const LINK_ALIAS = 'Link';
|
||||
public const REMOTE_ALIAS = 'Remote';
|
||||
@@ -886,4 +886,45 @@ class ormLinkSet implements iDBObjectSetIterator, Iterator, SeekableIterator
|
||||
{
|
||||
return $this->oOriginalSet;
|
||||
}
|
||||
|
||||
|
||||
// to allow usage of CollectionType with orm link set
|
||||
// Value needs to implement ArrayAccess
|
||||
|
||||
public function offsetExists($offset) : bool
|
||||
{
|
||||
$aOriginalObjects = array_flip($this->aOriginalObjects);
|
||||
return array_key_exists($offset, $aOriginalObjects);
|
||||
}
|
||||
|
||||
public function offsetGet($offset) : mixed
|
||||
{
|
||||
$aOriginalObjects = array_flip($this->aOriginalObjects);
|
||||
return MetaModel::GetObject($this->sClass, $aOriginalObjects[$offset]);
|
||||
}
|
||||
|
||||
public function offsetSet($offset, $value) : void
|
||||
{
|
||||
$aData = array_flip($this->aPreserved);
|
||||
if(array_key_exists($offset, $aData)){
|
||||
$this->ModifyItem($value);
|
||||
}
|
||||
else{
|
||||
$this->AddItem($value);
|
||||
}
|
||||
}
|
||||
|
||||
public function offsetUnset($offset) : void
|
||||
{
|
||||
$aData = array_flip($this->aPreserved);
|
||||
if(array_key_exists($offset, $aData)){
|
||||
$this->RemoveItem($aData[$offset]);
|
||||
}
|
||||
}
|
||||
|
||||
public function IsDeleted($value) : bool
|
||||
{
|
||||
return (array_key_exists($value->GetKey(), $this->aRemoved));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
114
css/DI/app.css
Normal file
114
css/DI/app.css
Normal file
@@ -0,0 +1,114 @@
|
||||
/* body */
|
||||
body{
|
||||
font-family: 'Montserrat', serif;
|
||||
padding-top: 64px;
|
||||
}
|
||||
|
||||
/* app icon dark */
|
||||
body[data-bs-theme="dark"] .app_icon{
|
||||
filter: invert(1);
|
||||
}
|
||||
|
||||
/* navbar actions */
|
||||
.navbar-actions button,.navbar-actions a{
|
||||
margin: 0 3px;
|
||||
}
|
||||
|
||||
/* dropdown */
|
||||
.dropdown_scroll_300{
|
||||
max-height: 300px;
|
||||
overflow-y: auto;
|
||||
overflow-x: clip;
|
||||
}
|
||||
|
||||
/* LAYOUT */
|
||||
|
||||
/* row */
|
||||
[data-block="row_container"] > div{
|
||||
display: flex;
|
||||
}
|
||||
|
||||
/* column */
|
||||
[data-block="column_container"]{
|
||||
padding: 10px;
|
||||
flex-grow: 1;
|
||||
width: 0;
|
||||
}
|
||||
|
||||
/* fieldset */
|
||||
[data-block="fieldset_container"]{
|
||||
flex-grow: 1;
|
||||
}
|
||||
[data-block="fieldset_container"] > legend{
|
||||
font-weight: bold;
|
||||
border-bottom: 2px solid #b7b7b7;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
[data-block="fieldset_container"] > div{
|
||||
border: #b7b7b7 dashed 1px;
|
||||
padding: 10px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
/* ATTRIBUTES */
|
||||
|
||||
/* attribute */
|
||||
[data-block="attribute_container"].loading{
|
||||
position: relative;
|
||||
}
|
||||
[data-block="attribute_container"].loading:after{
|
||||
content: 'loading...';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
background-color: #0d6efd11;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
/* FORM */
|
||||
|
||||
/* form */
|
||||
form{
|
||||
border-radius: 10px;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
/* label */
|
||||
form label.required:after{
|
||||
content: ' *';
|
||||
color: red;
|
||||
}
|
||||
form label.locked:after{
|
||||
content: "\f023";
|
||||
font-family: "Font Awesome 5 Free", serif;
|
||||
font-weight: 600;
|
||||
margin-left: 8px;
|
||||
color: #ffcc00;
|
||||
font-size: .7rem;
|
||||
}
|
||||
form label.dependent{
|
||||
color: #2757af;
|
||||
}
|
||||
|
||||
|
||||
/* overriding theme template */
|
||||
|
||||
.overriding_text_row{
|
||||
border: 1px solid #00aac1;
|
||||
padding: 15px;
|
||||
}
|
||||
|
||||
.overriding_text_label{
|
||||
color: #00aac1;
|
||||
}
|
||||
|
||||
.overriding_text_widget{
|
||||
border: 1px solid #00aac1;
|
||||
border-radius: 20px;
|
||||
outline: none;
|
||||
}
|
||||
@@ -29,51 +29,51 @@ class CASLogger implements LoggerInterface
|
||||
LogLevel::DEBUG => LogAPI::LEVEL_DEBUG,
|
||||
];
|
||||
|
||||
public function emergency($message, array $context = array())
|
||||
public function emergency($message, array $context = array()): void
|
||||
{
|
||||
CASLog::Error('EMERGENCY: '.$message, CASLog::CHANNEL_DEFAULT, $context);
|
||||
IssueLog::Error('EMERGENCY: '.$message, CASLog::CHANNEL_DEFAULT, $context);
|
||||
}
|
||||
|
||||
public function alert($message, array $context = array())
|
||||
public function alert($message, array $context = array()): void
|
||||
{
|
||||
CASLog::Error('ALERT: '.$message, CASLog::CHANNEL_DEFAULT, $context);
|
||||
IssueLog::Error('ALERT: '.$message, CASLog::CHANNEL_DEFAULT, $context);
|
||||
}
|
||||
|
||||
public function critical($message, array $context = array())
|
||||
public function critical($message, array $context = array()): void
|
||||
{
|
||||
CASLog::Error('CRITICAL: '.$message, CASLog::CHANNEL_DEFAULT, $context);
|
||||
IssueLog::Error('CRITICAL: '.$message, CASLog::CHANNEL_DEFAULT, $context);
|
||||
}
|
||||
|
||||
public function error($message, array $context = array())
|
||||
public function error($message, array $context = array()): void
|
||||
{
|
||||
CASLog::Error('ERROR: '.$message, CASLog::CHANNEL_DEFAULT, $context);
|
||||
IssueLog::Error('ERROR: '.$message, CASLog::CHANNEL_DEFAULT, $context);
|
||||
}
|
||||
|
||||
public function warning($message, array $context = array())
|
||||
public function warning($message, array $context = array()): void
|
||||
{
|
||||
CASLog::Warning('WARNING: '.$message, CASLog::CHANNEL_DEFAULT, $context);
|
||||
}
|
||||
|
||||
public function notice($message, array $context = array())
|
||||
public function notice($message, array $context = array()): void
|
||||
{
|
||||
CASLog::Info('NOTICE: '.$message, CASLog::CHANNEL_DEFAULT, $context);
|
||||
}
|
||||
|
||||
public function info($message, array $context = array())
|
||||
public function info($message, array $context = array()): void
|
||||
{
|
||||
CASLog::Info('INFO: '.$message, CASLog::CHANNEL_DEFAULT, $context);
|
||||
}
|
||||
|
||||
public function debug($message, array $context = array())
|
||||
public function debug($message, array $context = array()): void
|
||||
{
|
||||
CASLog::Debug('DEBUG: '.$message, CASLog::CHANNEL_DEFAULT, $context);
|
||||
}
|
||||
|
||||
public function log($level, $message, array $context = array())
|
||||
public function log($level, $message, array $context = array()): void
|
||||
{
|
||||
$sLevel = self::LEVEL_COMPAT[$level] ?? LogAPI::LEVEL_ERROR;
|
||||
CASLog::Log($sLevel, strtoupper($level).": $message", CASLog::CHANNEL_DEFAULT, $context);
|
||||
|
||||
@@ -52,6 +52,8 @@ services:
|
||||
$aCombodoPortalInstanceConf: '%combodo.portal.instance.conf%'
|
||||
$sCombodoPortalInstanceAbsoluteUrl: '%env(string:COMBODO_PORTAL_INSTANCE_ABSOLUTE_URL)%'
|
||||
|
||||
Symfony\Component\DependencyInjection\ContainerInterface: '@service_container'
|
||||
|
||||
# Makes classes in src/ available to be used as services
|
||||
# This creates a service per class whose id is the fully-qualified class name
|
||||
Combodo\iTop\Portal\:
|
||||
@@ -103,6 +105,9 @@ services:
|
||||
decorates: 'router'
|
||||
arguments: ['@Combodo\iTop\Portal\Routing\UrlGenerator.inner']
|
||||
|
||||
Combodo\iTop\Portal\Helper\UIExtensionsHelper:
|
||||
arguments: ['@service_container']
|
||||
|
||||
# Standard services
|
||||
combodo.current_contact.photo_url:
|
||||
public: true
|
||||
|
||||
@@ -118,4 +118,10 @@ abstract class AbstractController extends SymfonyAbstractController
|
||||
|
||||
return $aRouteDefaults['_controller'];
|
||||
}
|
||||
|
||||
|
||||
protected function get(string $sServiceName)
|
||||
{
|
||||
return $this->container->get($sServiceName);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,7 +43,7 @@ class Kernel extends BaseKernel
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getCacheDir()
|
||||
public function getCacheDir() : string
|
||||
{
|
||||
$cacheDir = $_ENV['PORTAL_ID'].'-'.$this->environment;
|
||||
|
||||
@@ -53,7 +53,7 @@ class Kernel extends BaseKernel
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getLogDir()
|
||||
public function getLogDir() : string
|
||||
{
|
||||
$logDir = $_ENV['PORTAL_ID'] . '-' . $this->environment;
|
||||
|
||||
@@ -63,7 +63,7 @@ class Kernel extends BaseKernel
|
||||
/**
|
||||
* @return \Generator|iterable|\Symfony\Component\HttpKernel\Bundle\BundleInterface[]
|
||||
*/
|
||||
public function registerBundles()
|
||||
public function registerBundles() : \Generator
|
||||
{
|
||||
$contents = require $this->getProjectDir().'/config/bundles.php';
|
||||
foreach ($contents as $class => $envs) {
|
||||
@@ -78,7 +78,7 @@ class Kernel extends BaseKernel
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
protected function configureContainer(ContainerConfigurator $container)
|
||||
protected function configureContainer(ContainerConfigurator $container) : void
|
||||
{
|
||||
$confDir = '../config';
|
||||
|
||||
@@ -96,7 +96,7 @@ class Kernel extends BaseKernel
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
protected function configureRoutes(RoutingConfigurator $routes)
|
||||
protected function configureRoutes(RoutingConfigurator $routes) : void
|
||||
{
|
||||
$confDir = '../config';
|
||||
|
||||
|
||||
@@ -48,7 +48,7 @@ class UrlGenerator implements RouterInterface
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function generate($name, $parameters = [], $referenceType = self::ABSOLUTE_PATH)
|
||||
public function generate($name, $parameters = [], $referenceType = self::ABSOLUTE_PATH) : string
|
||||
{
|
||||
$parameters = $this->getExtraParams($parameters);
|
||||
|
||||
@@ -66,7 +66,7 @@ class UrlGenerator implements RouterInterface
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function getContext()
|
||||
public function getContext() : RequestContext
|
||||
{
|
||||
return $this->router->getContext();
|
||||
}
|
||||
@@ -82,7 +82,7 @@ class UrlGenerator implements RouterInterface
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function match($pathinfo)
|
||||
public function match($pathinfo) : array
|
||||
{
|
||||
return $this->router->match($pathinfo);
|
||||
}
|
||||
|
||||
@@ -2,24 +2,6 @@
|
||||
|
||||
// autoload.php @generated by Composer
|
||||
|
||||
if (PHP_VERSION_ID < 50600) {
|
||||
if (!headers_sent()) {
|
||||
header('HTTP/1.1 500 Internal Server Error');
|
||||
}
|
||||
$err = 'Composer 2.3.0 dropped support for autoloading on PHP <5.6 and you are running '.PHP_VERSION.', please upgrade PHP or use Composer 2.2 LTS via "composer self-update --2.2". Aborting.'.PHP_EOL;
|
||||
if (!ini_get('display_errors')) {
|
||||
if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') {
|
||||
fwrite(STDERR, $err);
|
||||
} elseif (!headers_sent()) {
|
||||
echo $err;
|
||||
}
|
||||
}
|
||||
trigger_error(
|
||||
$err,
|
||||
E_USER_ERROR
|
||||
);
|
||||
}
|
||||
|
||||
require_once __DIR__ . '/composer/autoload_real.php';
|
||||
|
||||
return ComposerAutoloaderInitdf408f3f8ea034d298269cdf7647358b::getLoader();
|
||||
|
||||
@@ -42,9 +42,6 @@ namespace Composer\Autoload;
|
||||
*/
|
||||
class ClassLoader
|
||||
{
|
||||
/** @var \Closure(string):void */
|
||||
private static $includeFile;
|
||||
|
||||
/** @var ?string */
|
||||
private $vendorDir;
|
||||
|
||||
@@ -109,7 +106,6 @@ class ClassLoader
|
||||
public function __construct($vendorDir = null)
|
||||
{
|
||||
$this->vendorDir = $vendorDir;
|
||||
self::initializeIncludeClosure();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -153,7 +149,7 @@ class ClassLoader
|
||||
|
||||
/**
|
||||
* @return string[] Array of classname => path
|
||||
* @psalm-return array<string, string>
|
||||
* @psalm-var array<string, string>
|
||||
*/
|
||||
public function getClassMap()
|
||||
{
|
||||
@@ -429,8 +425,7 @@ class ClassLoader
|
||||
public function loadClass($class)
|
||||
{
|
||||
if ($file = $this->findFile($class)) {
|
||||
$includeFile = self::$includeFile;
|
||||
$includeFile($file);
|
||||
includeFile($file);
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -560,26 +555,18 @@ class ClassLoader
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
private static function initializeIncludeClosure()
|
||||
{
|
||||
if (self::$includeFile !== null) {
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* Scope isolated include.
|
||||
*
|
||||
* Prevents access to $this/self from included files.
|
||||
*
|
||||
* @param string $file
|
||||
* @return void
|
||||
*/
|
||||
self::$includeFile = \Closure::bind(static function($file) {
|
||||
include $file;
|
||||
}, null, null);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Scope isolated include.
|
||||
*
|
||||
* Prevents access to $this/self from included files.
|
||||
*
|
||||
* @param string $file
|
||||
* @return void
|
||||
* @private
|
||||
*/
|
||||
function includeFile($file)
|
||||
{
|
||||
include $file;
|
||||
}
|
||||
|
||||
@@ -21,14 +21,12 @@ use Composer\Semver\VersionParser;
|
||||
* See also https://getcomposer.org/doc/07-runtime.md#installed-versions
|
||||
*
|
||||
* To require its presence, you can require `composer-runtime-api ^2.0`
|
||||
*
|
||||
* @final
|
||||
*/
|
||||
class InstalledVersions
|
||||
{
|
||||
/**
|
||||
* @var mixed[]|null
|
||||
* @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}|array{}|null
|
||||
* @psalm-var array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}|array{}|null
|
||||
*/
|
||||
private static $installed;
|
||||
|
||||
@@ -39,7 +37,7 @@ class InstalledVersions
|
||||
|
||||
/**
|
||||
* @var array[]
|
||||
* @psalm-var array<string, array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}>
|
||||
* @psalm-var array<string, array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}>
|
||||
*/
|
||||
private static $installedByVendor = array();
|
||||
|
||||
@@ -98,7 +96,7 @@ class InstalledVersions
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (isset($installed['versions'][$packageName])) {
|
||||
return $includeDevRequirements || !isset($installed['versions'][$packageName]['dev_requirement']) || $installed['versions'][$packageName]['dev_requirement'] === false;
|
||||
return $includeDevRequirements || empty($installed['versions'][$packageName]['dev_requirement']);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -119,7 +117,7 @@ class InstalledVersions
|
||||
*/
|
||||
public static function satisfies(VersionParser $parser, $packageName, $constraint)
|
||||
{
|
||||
$constraint = $parser->parseConstraints((string) $constraint);
|
||||
$constraint = $parser->parseConstraints($constraint);
|
||||
$provided = $parser->parseConstraints(self::getVersionRanges($packageName));
|
||||
|
||||
return $provided->matches($constraint);
|
||||
@@ -243,7 +241,7 @@ class InstalledVersions
|
||||
|
||||
/**
|
||||
* @return array
|
||||
* @psalm-return array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}
|
||||
* @psalm-return array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}
|
||||
*/
|
||||
public static function getRootPackage()
|
||||
{
|
||||
@@ -257,7 +255,7 @@ class InstalledVersions
|
||||
*
|
||||
* @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect.
|
||||
* @return array[]
|
||||
* @psalm-return array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}
|
||||
* @psalm-return array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}
|
||||
*/
|
||||
public static function getRawData()
|
||||
{
|
||||
@@ -280,7 +278,7 @@ class InstalledVersions
|
||||
* Returns the raw data of all installed.php which are currently loaded for custom implementations
|
||||
*
|
||||
* @return array[]
|
||||
* @psalm-return list<array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}>
|
||||
* @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}>
|
||||
*/
|
||||
public static function getAllRawData()
|
||||
{
|
||||
@@ -303,7 +301,7 @@ class InstalledVersions
|
||||
* @param array[] $data A vendor/composer/installed.php data set
|
||||
* @return void
|
||||
*
|
||||
* @psalm-param array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $data
|
||||
* @psalm-param array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>} $data
|
||||
*/
|
||||
public static function reload($data)
|
||||
{
|
||||
@@ -313,7 +311,7 @@ class InstalledVersions
|
||||
|
||||
/**
|
||||
* @return array[]
|
||||
* @psalm-return list<array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}>
|
||||
* @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}>
|
||||
*/
|
||||
private static function getInstalled()
|
||||
{
|
||||
@@ -328,9 +326,7 @@ class InstalledVersions
|
||||
if (isset(self::$installedByVendor[$vendorDir])) {
|
||||
$installed[] = self::$installedByVendor[$vendorDir];
|
||||
} elseif (is_file($vendorDir.'/composer/installed.php')) {
|
||||
/** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */
|
||||
$required = require $vendorDir.'/composer/installed.php';
|
||||
$installed[] = self::$installedByVendor[$vendorDir] = $required;
|
||||
$installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
|
||||
if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
|
||||
self::$installed = $installed[count($installed) - 1];
|
||||
}
|
||||
@@ -342,17 +338,12 @@ class InstalledVersions
|
||||
// only require the installed.php file if this file is loaded from its dumped location,
|
||||
// and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
|
||||
if (substr(__DIR__, -8, 1) !== 'C') {
|
||||
/** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */
|
||||
$required = require __DIR__ . '/installed.php';
|
||||
self::$installed = $required;
|
||||
self::$installed = require __DIR__ . '/installed.php';
|
||||
} else {
|
||||
self::$installed = array();
|
||||
}
|
||||
}
|
||||
|
||||
if (self::$installed !== array()) {
|
||||
$installed[] = self::$installed;
|
||||
}
|
||||
$installed[] = self::$installed;
|
||||
|
||||
return $installed;
|
||||
}
|
||||
|
||||
@@ -2,66 +2,9 @@
|
||||
|
||||
// autoload_classmap.php @generated by Composer
|
||||
|
||||
$vendorDir = dirname(__DIR__);
|
||||
$vendorDir = dirname(dirname(__FILE__));
|
||||
$baseDir = dirname($vendorDir);
|
||||
|
||||
return array(
|
||||
'Combodo\\iTop\\Portal\\Brick\\AbstractBrick' => $baseDir . '/src/Brick/AbstractBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\AggregatePageBrick' => $baseDir . '/src/Brick/AggregatePageBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\BrickCollection' => $baseDir . '/src/Brick/BrickCollection.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\BrickNotFoundException' => $baseDir . '/src/Brick/BrickNotFoundException.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\BrowseBrick' => $baseDir . '/src/Brick/BrowseBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\CreateBrick' => $baseDir . '/src/Brick/CreateBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\FilterBrick' => $baseDir . '/src/Brick/FilterBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\ManageBrick' => $baseDir . '/src/Brick/ManageBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\PortalBrick' => $baseDir . '/src/Brick/PortalBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\PropertyNotFoundException' => $baseDir . '/src/Brick/PropertyNotFoundException.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\UserProfileBrick' => $baseDir . '/src/Brick/UserProfileBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\AbstractController' => $baseDir . '/src/Controller/AbstractController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\AggregatePageBrickController' => $baseDir . '/src/Controller/AggregatePageBrickController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\BrickController' => $baseDir . '/src/Controller/BrickController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\BrowseBrickController' => $baseDir . '/src/Controller/BrowseBrickController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\CreateBrickController' => $baseDir . '/src/Controller/CreateBrickController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\DefaultController' => $baseDir . '/src/Controller/DefaultController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\ManageBrickController' => $baseDir . '/src/Controller/ManageBrickController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\ObjectController' => $baseDir . '/src/Controller/ObjectController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\SessionMessageController' => $baseDir . '/src/Controller/SessionMessageController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\UserProfileBrickController' => $baseDir . '/src/Controller/UserProfileBrickController.php',
|
||||
'Combodo\\iTop\\Portal\\DependencyInjection\\SilexCompatBootstrap\\PortalXmlConfiguration\\AbstractConfiguration' => $baseDir . '/src/DependencyInjection/SilexCompatBootstrap/PortalXmlConfiguration/AbstractConfiguration.php',
|
||||
'Combodo\\iTop\\Portal\\DependencyInjection\\SilexCompatBootstrap\\PortalXmlConfiguration\\Basic' => $baseDir . '/src/DependencyInjection/SilexCompatBootstrap/PortalXmlConfiguration/Basic.php',
|
||||
'Combodo\\iTop\\Portal\\DependencyInjection\\SilexCompatBootstrap\\PortalXmlConfiguration\\Forms' => $baseDir . '/src/DependencyInjection/SilexCompatBootstrap/PortalXmlConfiguration/Forms.php',
|
||||
'Combodo\\iTop\\Portal\\DependencyInjection\\SilexCompatBootstrap\\PortalXmlConfiguration\\Lists' => $baseDir . '/src/DependencyInjection/SilexCompatBootstrap/PortalXmlConfiguration/Lists.php',
|
||||
'Combodo\\iTop\\Portal\\EventListener\\ApplicationContextSetPluginPropertyClass' => $baseDir . '/src/EventListener/ApplicationContextSetPluginPropertyClass.php',
|
||||
'Combodo\\iTop\\Portal\\EventListener\\ApplicationContextSetUrlMakerClass' => $baseDir . '/src/EventListener/ApplicationContextSetUrlMakerClass.php',
|
||||
'Combodo\\iTop\\Portal\\EventListener\\CssFromSassCompiler' => $baseDir . '/src/EventListener/CssFromSassCompiler.php',
|
||||
'Combodo\\iTop\\Portal\\EventListener\\ExceptionListener' => $baseDir . '/src/EventListener/ExceptionListener.php',
|
||||
'Combodo\\iTop\\Portal\\EventListener\\UserProvider' => $baseDir . '/src/EventListener/UserProvider.php',
|
||||
'Combodo\\iTop\\Portal\\Form\\ObjectFormManager' => $baseDir . '/src/Form/ObjectFormManager.php',
|
||||
'Combodo\\iTop\\Portal\\Form\\PasswordFormManager' => $baseDir . '/src/Form/PasswordFormManager.php',
|
||||
'Combodo\\iTop\\Portal\\Form\\PreferencesFormManager' => $baseDir . '/src/Form/PreferencesFormManager.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\ApplicationHelper' => $baseDir . '/src/Helper/ApplicationHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\BrickControllerHelper' => $baseDir . '/src/Helper/BrickControllerHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\BrowseBrickHelper' => $baseDir . '/src/Helper/BrowseBrickHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\ContextManipulatorHelper' => $baseDir . '/src/Helper/ContextManipulatorHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\LifecycleValidatorHelper' => $baseDir . '/src/Helper/LifecycleValidatorHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\NavigationRuleHelper' => $baseDir . '/src/Helper/NavigationRuleHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\ObjectFormHandlerHelper' => $baseDir . '/src/Helper/ObjectFormHandlerHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\RequestManipulatorHelper' => $baseDir . '/src/Helper/RequestManipulatorHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\ScopeValidatorHelper' => $baseDir . '/src/Helper/ScopeValidatorHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\SecurityHelper' => $baseDir . '/src/Helper/SecurityHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\SessionMessageHelper' => $baseDir . '/src/Helper/SessionMessageHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\UIExtensionsHelper' => $baseDir . '/src/Helper/UIExtensionsHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Kernel' => $baseDir . '/src/Kernel.php',
|
||||
'Combodo\\iTop\\Portal\\Routing\\ItopExtensionsExtraRoutes' => $baseDir . '/src/Routing/ItopExtensionsExtraRoutes.php',
|
||||
'Combodo\\iTop\\Portal\\Routing\\UrlGenerator' => $baseDir . '/src/Routing/UrlGenerator.php',
|
||||
'Combodo\\iTop\\Portal\\Twig\\AppExtension' => $baseDir . '/src/Twig/AppExtension.php',
|
||||
'Combodo\\iTop\\Portal\\Twig\\AppGlobal' => $baseDir . '/src/Twig/AppGlobal.php',
|
||||
'Combodo\\iTop\\Portal\\Twig\\AppVariable' => $baseDir . '/src/Twig/AppVariable.php',
|
||||
'Combodo\\iTop\\Portal\\Twig\\CurrentUserAccessor' => $baseDir . '/src/Twig/CurrentUserAccessor.php',
|
||||
'Combodo\\iTop\\Portal\\UrlMaker\\AbstractPortalUrlMaker' => $baseDir . '/src/UrlMaker/AbstractPortalUrlMaker.php',
|
||||
'Combodo\\iTop\\Portal\\VariableAccessor\\AbstractStringVariableAccessor' => $baseDir . '/src/VariableAccessor/AbstractStringVariableAccessor.php',
|
||||
'Combodo\\iTop\\Portal\\VariableAccessor\\AbstractVariableAccessor' => $baseDir . '/src/VariableAccessor/AbstractVariableAccessor.php',
|
||||
'Combodo\\iTop\\Portal\\VariableAccessor\\CombodoCurrentContactPhotoUrl' => $baseDir . '/src/VariableAccessor/CombodoCurrentContactPhotoUrl.php',
|
||||
'Combodo\\iTop\\Portal\\VariableAccessor\\CombodoPortalInstanceConf' => $baseDir . '/src/VariableAccessor/CombodoPortalInstanceConf.php',
|
||||
'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php',
|
||||
);
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
// autoload_namespaces.php @generated by Composer
|
||||
|
||||
$vendorDir = dirname(__DIR__);
|
||||
$vendorDir = dirname(dirname(__FILE__));
|
||||
$baseDir = dirname($vendorDir);
|
||||
|
||||
return array(
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
// autoload_psr4.php @generated by Composer
|
||||
|
||||
$vendorDir = dirname(__DIR__);
|
||||
$vendorDir = dirname(dirname(__FILE__));
|
||||
$baseDir = dirname($vendorDir);
|
||||
|
||||
return array(
|
||||
|
||||
@@ -23,13 +23,31 @@ class ComposerAutoloaderInitdf408f3f8ea034d298269cdf7647358b
|
||||
}
|
||||
|
||||
spl_autoload_register(array('ComposerAutoloaderInitdf408f3f8ea034d298269cdf7647358b', 'loadClassLoader'), true, true);
|
||||
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
|
||||
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
|
||||
spl_autoload_unregister(array('ComposerAutoloaderInitdf408f3f8ea034d298269cdf7647358b', 'loadClassLoader'));
|
||||
|
||||
require __DIR__ . '/autoload_static.php';
|
||||
call_user_func(\Composer\Autoload\ComposerStaticInitdf408f3f8ea034d298269cdf7647358b::getInitializer($loader));
|
||||
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
||||
if ($useStaticLoader) {
|
||||
require __DIR__ . '/autoload_static.php';
|
||||
|
||||
call_user_func(\Composer\Autoload\ComposerStaticInitdf408f3f8ea034d298269cdf7647358b::getInitializer($loader));
|
||||
} else {
|
||||
$map = require __DIR__ . '/autoload_namespaces.php';
|
||||
foreach ($map as $namespace => $path) {
|
||||
$loader->set($namespace, $path);
|
||||
}
|
||||
|
||||
$map = require __DIR__ . '/autoload_psr4.php';
|
||||
foreach ($map as $namespace => $path) {
|
||||
$loader->setPsr4($namespace, $path);
|
||||
}
|
||||
|
||||
$classMap = require __DIR__ . '/autoload_classmap.php';
|
||||
if ($classMap) {
|
||||
$loader->addClassMap($classMap);
|
||||
}
|
||||
}
|
||||
|
||||
$loader->setClassMapAuthoritative(true);
|
||||
$loader->register(true);
|
||||
|
||||
return $loader;
|
||||
|
||||
@@ -26,63 +26,6 @@ class ComposerStaticInitdf408f3f8ea034d298269cdf7647358b
|
||||
);
|
||||
|
||||
public static $classMap = array (
|
||||
'Combodo\\iTop\\Portal\\Brick\\AbstractBrick' => __DIR__ . '/../..' . '/src/Brick/AbstractBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\AggregatePageBrick' => __DIR__ . '/../..' . '/src/Brick/AggregatePageBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\BrickCollection' => __DIR__ . '/../..' . '/src/Brick/BrickCollection.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\BrickNotFoundException' => __DIR__ . '/../..' . '/src/Brick/BrickNotFoundException.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\BrowseBrick' => __DIR__ . '/../..' . '/src/Brick/BrowseBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\CreateBrick' => __DIR__ . '/../..' . '/src/Brick/CreateBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\FilterBrick' => __DIR__ . '/../..' . '/src/Brick/FilterBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\ManageBrick' => __DIR__ . '/../..' . '/src/Brick/ManageBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\PortalBrick' => __DIR__ . '/../..' . '/src/Brick/PortalBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\PropertyNotFoundException' => __DIR__ . '/../..' . '/src/Brick/PropertyNotFoundException.php',
|
||||
'Combodo\\iTop\\Portal\\Brick\\UserProfileBrick' => __DIR__ . '/../..' . '/src/Brick/UserProfileBrick.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\AbstractController' => __DIR__ . '/../..' . '/src/Controller/AbstractController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\AggregatePageBrickController' => __DIR__ . '/../..' . '/src/Controller/AggregatePageBrickController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\BrickController' => __DIR__ . '/../..' . '/src/Controller/BrickController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\BrowseBrickController' => __DIR__ . '/../..' . '/src/Controller/BrowseBrickController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\CreateBrickController' => __DIR__ . '/../..' . '/src/Controller/CreateBrickController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\DefaultController' => __DIR__ . '/../..' . '/src/Controller/DefaultController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\ManageBrickController' => __DIR__ . '/../..' . '/src/Controller/ManageBrickController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\ObjectController' => __DIR__ . '/../..' . '/src/Controller/ObjectController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\SessionMessageController' => __DIR__ . '/../..' . '/src/Controller/SessionMessageController.php',
|
||||
'Combodo\\iTop\\Portal\\Controller\\UserProfileBrickController' => __DIR__ . '/../..' . '/src/Controller/UserProfileBrickController.php',
|
||||
'Combodo\\iTop\\Portal\\DependencyInjection\\SilexCompatBootstrap\\PortalXmlConfiguration\\AbstractConfiguration' => __DIR__ . '/../..' . '/src/DependencyInjection/SilexCompatBootstrap/PortalXmlConfiguration/AbstractConfiguration.php',
|
||||
'Combodo\\iTop\\Portal\\DependencyInjection\\SilexCompatBootstrap\\PortalXmlConfiguration\\Basic' => __DIR__ . '/../..' . '/src/DependencyInjection/SilexCompatBootstrap/PortalXmlConfiguration/Basic.php',
|
||||
'Combodo\\iTop\\Portal\\DependencyInjection\\SilexCompatBootstrap\\PortalXmlConfiguration\\Forms' => __DIR__ . '/../..' . '/src/DependencyInjection/SilexCompatBootstrap/PortalXmlConfiguration/Forms.php',
|
||||
'Combodo\\iTop\\Portal\\DependencyInjection\\SilexCompatBootstrap\\PortalXmlConfiguration\\Lists' => __DIR__ . '/../..' . '/src/DependencyInjection/SilexCompatBootstrap/PortalXmlConfiguration/Lists.php',
|
||||
'Combodo\\iTop\\Portal\\EventListener\\ApplicationContextSetPluginPropertyClass' => __DIR__ . '/../..' . '/src/EventListener/ApplicationContextSetPluginPropertyClass.php',
|
||||
'Combodo\\iTop\\Portal\\EventListener\\ApplicationContextSetUrlMakerClass' => __DIR__ . '/../..' . '/src/EventListener/ApplicationContextSetUrlMakerClass.php',
|
||||
'Combodo\\iTop\\Portal\\EventListener\\CssFromSassCompiler' => __DIR__ . '/../..' . '/src/EventListener/CssFromSassCompiler.php',
|
||||
'Combodo\\iTop\\Portal\\EventListener\\ExceptionListener' => __DIR__ . '/../..' . '/src/EventListener/ExceptionListener.php',
|
||||
'Combodo\\iTop\\Portal\\EventListener\\UserProvider' => __DIR__ . '/../..' . '/src/EventListener/UserProvider.php',
|
||||
'Combodo\\iTop\\Portal\\Form\\ObjectFormManager' => __DIR__ . '/../..' . '/src/Form/ObjectFormManager.php',
|
||||
'Combodo\\iTop\\Portal\\Form\\PasswordFormManager' => __DIR__ . '/../..' . '/src/Form/PasswordFormManager.php',
|
||||
'Combodo\\iTop\\Portal\\Form\\PreferencesFormManager' => __DIR__ . '/../..' . '/src/Form/PreferencesFormManager.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\ApplicationHelper' => __DIR__ . '/../..' . '/src/Helper/ApplicationHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\BrickControllerHelper' => __DIR__ . '/../..' . '/src/Helper/BrickControllerHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\BrowseBrickHelper' => __DIR__ . '/../..' . '/src/Helper/BrowseBrickHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\ContextManipulatorHelper' => __DIR__ . '/../..' . '/src/Helper/ContextManipulatorHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\LifecycleValidatorHelper' => __DIR__ . '/../..' . '/src/Helper/LifecycleValidatorHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\NavigationRuleHelper' => __DIR__ . '/../..' . '/src/Helper/NavigationRuleHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\ObjectFormHandlerHelper' => __DIR__ . '/../..' . '/src/Helper/ObjectFormHandlerHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\RequestManipulatorHelper' => __DIR__ . '/../..' . '/src/Helper/RequestManipulatorHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\ScopeValidatorHelper' => __DIR__ . '/../..' . '/src/Helper/ScopeValidatorHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\SecurityHelper' => __DIR__ . '/../..' . '/src/Helper/SecurityHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\SessionMessageHelper' => __DIR__ . '/../..' . '/src/Helper/SessionMessageHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Helper\\UIExtensionsHelper' => __DIR__ . '/../..' . '/src/Helper/UIExtensionsHelper.php',
|
||||
'Combodo\\iTop\\Portal\\Kernel' => __DIR__ . '/../..' . '/src/Kernel.php',
|
||||
'Combodo\\iTop\\Portal\\Routing\\ItopExtensionsExtraRoutes' => __DIR__ . '/../..' . '/src/Routing/ItopExtensionsExtraRoutes.php',
|
||||
'Combodo\\iTop\\Portal\\Routing\\UrlGenerator' => __DIR__ . '/../..' . '/src/Routing/UrlGenerator.php',
|
||||
'Combodo\\iTop\\Portal\\Twig\\AppExtension' => __DIR__ . '/../..' . '/src/Twig/AppExtension.php',
|
||||
'Combodo\\iTop\\Portal\\Twig\\AppGlobal' => __DIR__ . '/../..' . '/src/Twig/AppGlobal.php',
|
||||
'Combodo\\iTop\\Portal\\Twig\\AppVariable' => __DIR__ . '/../..' . '/src/Twig/AppVariable.php',
|
||||
'Combodo\\iTop\\Portal\\Twig\\CurrentUserAccessor' => __DIR__ . '/../..' . '/src/Twig/CurrentUserAccessor.php',
|
||||
'Combodo\\iTop\\Portal\\UrlMaker\\AbstractPortalUrlMaker' => __DIR__ . '/../..' . '/src/UrlMaker/AbstractPortalUrlMaker.php',
|
||||
'Combodo\\iTop\\Portal\\VariableAccessor\\AbstractStringVariableAccessor' => __DIR__ . '/../..' . '/src/VariableAccessor/AbstractStringVariableAccessor.php',
|
||||
'Combodo\\iTop\\Portal\\VariableAccessor\\AbstractVariableAccessor' => __DIR__ . '/../..' . '/src/VariableAccessor/AbstractVariableAccessor.php',
|
||||
'Combodo\\iTop\\Portal\\VariableAccessor\\CombodoCurrentContactPhotoUrl' => __DIR__ . '/../..' . '/src/VariableAccessor/CombodoCurrentContactPhotoUrl.php',
|
||||
'Combodo\\iTop\\Portal\\VariableAccessor\\CombodoPortalInstanceConf' => __DIR__ . '/../..' . '/src/VariableAccessor/CombodoPortalInstanceConf.php',
|
||||
'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php',
|
||||
);
|
||||
|
||||
|
||||
@@ -1,22 +1,22 @@
|
||||
<?php return array(
|
||||
'root' => array(
|
||||
'name' => '__root__',
|
||||
'pretty_version' => 'dev-develop',
|
||||
'version' => 'dev-develop',
|
||||
'reference' => 'c9beba0ceadf11c644a8eb1b254efff9b17d804c',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../../',
|
||||
'aliases' => array(),
|
||||
'reference' => '025c5edd153a023e6b851f95196d94eac7c6b598',
|
||||
'name' => '__root__',
|
||||
'dev' => true,
|
||||
),
|
||||
'versions' => array(
|
||||
'__root__' => array(
|
||||
'pretty_version' => 'dev-develop',
|
||||
'version' => 'dev-develop',
|
||||
'reference' => 'c9beba0ceadf11c644a8eb1b254efff9b17d804c',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../../',
|
||||
'aliases' => array(),
|
||||
'reference' => '025c5edd153a023e6b851f95196d94eac7c6b598',
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
),
|
||||
|
||||
@@ -460,6 +460,9 @@
|
||||
<default_value>active</default_value>
|
||||
<is_null_allowed>false</is_null_allowed>
|
||||
<display_style>list</display_style>
|
||||
<dependencies>
|
||||
<attribute id="org_id"/>
|
||||
</dependencies>
|
||||
</field>
|
||||
<field id="org_id" xsi:type="AttributeExternalKey">
|
||||
<sql>org_id</sql>
|
||||
@@ -865,6 +868,7 @@
|
||||
<items>
|
||||
<item id="name">
|
||||
<rank>10</rank>
|
||||
<hide_if>org_id=3</hide_if>
|
||||
</item>
|
||||
<item id="first_name">
|
||||
<rank>20</rank>
|
||||
|
||||
BIN
images/DI/container.png
Normal file
BIN
images/DI/container.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 67 KiB |
BIN
images/DI/dynamics.gif
Normal file
BIN
images/DI/dynamics.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 105 KiB |
9
images/DI/flask-adaptive.svg
Normal file
9
images/DI/flask-adaptive.svg
Normal file
@@ -0,0 +1,9 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path id="flask"
|
||||
d="M288 0H160 128C110.3 0 96 14.3 96 32s14.3 32 32 32V196.8c0 11.8-3.3 23.5-9.5 33.5L10.3 406.2C3.6 417.2 0 429.7 0 442.6C0 480.9 31.1 512 69.4 512H378.6c38.3 0 69.4-31.1 69.4-69.4c0-12.8-3.6-25.4-10.3-36.4L329.5 230.4c-6.2-10.1-9.5-21.7-9.5-33.5V64c17.7 0 32-14.3 32-32s-14.3-32-32-32H288zM192 196.8V64h64V196.8c0 23.7 6.6 46.9 19 67.1L309.5 320h-171L173 263.9c12.4-20.2 19-43.4 19-67.1z"/>
|
||||
|
||||
<style>
|
||||
@media (prefers-color-scheme: dark) {
|
||||
#flask { fill: white }
|
||||
}
|
||||
</style>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 766 B |
1
images/DI/flask-solid.svg
Normal file
1
images/DI/flask-solid.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path d="M288 0H160 128C110.3 0 96 14.3 96 32s14.3 32 32 32V196.8c0 11.8-3.3 23.5-9.5 33.5L10.3 406.2C3.6 417.2 0 429.7 0 442.6C0 480.9 31.1 512 69.4 512H378.6c38.3 0 69.4-31.1 69.4-69.4c0-12.8-3.6-25.4-10.3-36.4L329.5 230.4c-6.2-10.1-9.5-21.7-9.5-33.5V64c17.7 0 32-14.3 32-32s-14.3-32-32-32H288zM192 196.8V64h64V196.8c0 23.7 6.6 46.9 19 67.1L309.5 320h-171L173 263.9c12.4-20.2 19-43.4 19-67.1z"/></svg>
|
||||
|
After Width: | Height: | Size: 633 B |
BIN
images/DI/reload.png
Normal file
BIN
images/DI/reload.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 58 KiB |
BIN
images/DI/widget.png
Normal file
BIN
images/DI/widget.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 12 KiB |
77
js/DI/app.js
Normal file
77
js/DI/app.js
Normal file
@@ -0,0 +1,77 @@
|
||||
/**
|
||||
* Application handling.
|
||||
*
|
||||
* @returns {{init: init, handleTooltips: handleTooltips}}
|
||||
* @constructor
|
||||
*/
|
||||
const App = function(){
|
||||
|
||||
// dom selectors
|
||||
const aSelectors = {
|
||||
darkModeButton: '#dark_mode'
|
||||
};
|
||||
|
||||
/**
|
||||
* initialization.
|
||||
*
|
||||
*/
|
||||
function init(){
|
||||
|
||||
// dark theme button
|
||||
$(aSelectors.darkModeButton).on('click', function(){
|
||||
$('body').attr('data-bs-theme', this.ariaPressed === 'true' ? 'dark' : 'light');
|
||||
});
|
||||
|
||||
// dark theme button state
|
||||
if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
|
||||
$('body').attr('data-bs-theme', 'dark');
|
||||
$(aSelectors.darkModeButton).attr('aria-pressed', 'true');
|
||||
$(aSelectors.darkModeButton).toggleClass('active', true);
|
||||
}
|
||||
|
||||
// handle tooltips
|
||||
handleTooltips(document);
|
||||
}
|
||||
|
||||
/**
|
||||
* Bootstrap tooltip initialization.
|
||||
*
|
||||
* @param oElement
|
||||
*/
|
||||
function handleTooltips(oElement){
|
||||
const tooltips = oElement.querySelectorAll("[data-bs-toggle='tooltip']");
|
||||
tooltips.forEach((el) => {
|
||||
new bootstrap.Tooltip(el);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* ckeditor save editors.
|
||||
*
|
||||
*/
|
||||
function saveCkEditors(){
|
||||
for(let instanceName in CKEDITOR.instances) {
|
||||
CKEDITOR.instances[instanceName].updateElement();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return {
|
||||
init,
|
||||
handleTooltips,
|
||||
saveCkEditors
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
288
js/DI/collection.js
Normal file
288
js/DI/collection.js
Normal file
@@ -0,0 +1,288 @@
|
||||
/**
|
||||
* Collections handling.
|
||||
*
|
||||
* @param oForm
|
||||
* @param objectFormUrl
|
||||
* @param objectSaveUrl
|
||||
* @returns {{handleElement: handleElement}}
|
||||
* @constructor
|
||||
*/
|
||||
const Collection = function(oForm, objectFormUrl, objectSaveUrl){
|
||||
|
||||
// dom selectors
|
||||
const aSelectors = {
|
||||
addItem: '.add_item_link',
|
||||
createItem: '.create_item_link',
|
||||
removeItem: '.btn-remove-link',
|
||||
dataAttributeContainer: '[data-block="attribute_container"]',
|
||||
dataObjectContainer: '[data-block="object_container"]',
|
||||
dataAttCode: '[data-att-code]',
|
||||
dataAttCodeSpecific: '[data-att-code="{0}"]',
|
||||
};
|
||||
|
||||
/**
|
||||
* Listen for add item buttons.
|
||||
*
|
||||
* @param oContainer
|
||||
*/
|
||||
function listenAddItem (oContainer) {
|
||||
oContainer.querySelectorAll(aSelectors.addItem).forEach(btn => {
|
||||
btn.addEventListener('click', addFormToCollection)
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Listen for create item buttons.
|
||||
*
|
||||
* @param oContainer
|
||||
*/
|
||||
function listenCreateItem (oContainer) {
|
||||
oContainer.querySelectorAll(aSelectors.createItem).forEach(btn => {
|
||||
btn.addEventListener('click', createObject)
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Listen for remove item buttons.
|
||||
*
|
||||
* @param oContainer
|
||||
*/
|
||||
function listenRemoveItem(oContainer){
|
||||
oContainer.querySelectorAll(aSelectors.removeItem).forEach(btn => {
|
||||
btn.addEventListener('click', removeItem);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Add form to the collection.
|
||||
*
|
||||
* @param e
|
||||
*/
|
||||
function addFormToCollection(e){
|
||||
|
||||
// retrieve attribute container
|
||||
const oAttributeContainer = e.currentTarget.closest(aSelectors.dataAttributeContainer);
|
||||
|
||||
// retrieve collection holder (replace ':' character otherwise the selector is invalid)
|
||||
const exp = e.currentTarget.dataset.collectionHolderClass.replaceAll(/:/g, '\\:');
|
||||
const collectionHolder = oAttributeContainer.querySelector('.' + exp);
|
||||
|
||||
// compute template
|
||||
const text = collectionHolder
|
||||
.dataset
|
||||
.prototype
|
||||
.replace(
|
||||
/__name__/g,
|
||||
collectionHolder.dataset.index
|
||||
);
|
||||
|
||||
// create item element
|
||||
const fragment = oToolkit.createElementFromHtml(text);
|
||||
collectionHolder.appendChild(fragment);
|
||||
|
||||
// form handling
|
||||
const item = collectionHolder.querySelector('tr:last-child');
|
||||
listenRemoveItem(item);
|
||||
oForm.handleElement(item);
|
||||
|
||||
// store new index
|
||||
collectionHolder.dataset.index++;
|
||||
|
||||
// hide no data row
|
||||
oAttributeContainer.querySelector('.no_data').style.display = 'none';
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an iTop object.
|
||||
*
|
||||
* @param e
|
||||
*/
|
||||
function createObject(e){
|
||||
|
||||
// retrieve attribute container
|
||||
const oAttributeContainer = e.currentTarget.closest(aSelectors.dataAttributeContainer);
|
||||
|
||||
// retrieve attribute field
|
||||
const oAttributeField = oAttributeContainer.querySelector(aSelectors.dataAttCode);
|
||||
const sAttributeId = oAttributeField.getAttribute('id');
|
||||
|
||||
// retrieve attribute object container
|
||||
const oObjectContainer = e.currentTarget.closest(aSelectors.dataObjectContainer);
|
||||
|
||||
// form attributes
|
||||
const sModalId = `${sAttributeId}_modal`;
|
||||
const sFormName = `${sAttributeId}_form`;
|
||||
|
||||
// crate a new modal
|
||||
const oModal = oToolkit.createFullScreenModal(sModalId, e.currentTarget.dataset.modalTitle);
|
||||
const oModalBody= oModal.querySelector('.modal-body');
|
||||
oModalBody.innerHTML = 'loading...';
|
||||
|
||||
// bootstrap modal
|
||||
const oBootstrapModal = new bootstrap.Modal(`#${sModalId}`);
|
||||
oModal.addEventListener('hidden.bs.modal', event => {
|
||||
// cleanup
|
||||
oBootstrapModal.dispose();
|
||||
event.currentTarget.remove();
|
||||
});
|
||||
oBootstrapModal.show();
|
||||
|
||||
// compute object form url
|
||||
const sUrl = objectFormUrl.replaceAll('object_class', e.currentTarget.dataset.objectClass);
|
||||
|
||||
// prepare request data
|
||||
const aLockedAttributes = {};
|
||||
if(!e.currentTarget.dataset.isIndirect) {
|
||||
aLockedAttributes[e.currentTarget.dataset.extKeyToMe] = oObjectContainer.dataset.objectId;
|
||||
}
|
||||
const aData = {
|
||||
locked_attributes: aLockedAttributes,
|
||||
att_code: oAttributeField.dataset.attCode,
|
||||
form_name: sFormName
|
||||
}
|
||||
|
||||
const sExtKeyToMe = e.currentTarget.dataset.extKeyToMe;
|
||||
|
||||
// fetch url
|
||||
fetch(sUrl, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Accept': 'application/json',
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
body: JSON.stringify(aData)
|
||||
})
|
||||
.then((response) => response.json())
|
||||
.then((data) => {
|
||||
|
||||
// load modal content
|
||||
oModalBody.innerHTML = data.template;
|
||||
|
||||
// listen
|
||||
oForm.handleElement(oModalBody);
|
||||
handleElement(oModalBody);
|
||||
oApp.handleTooltips(oModalBody);
|
||||
|
||||
listenSaveModalObject(oModal, oBootstrapModal, oModalBody, oObjectContainer, oAttributeContainer, oAttributeField.dataset.attCode, sExtKeyToMe, oAttributeContainer.dataset.objectClass, sModalId, sFormName, oAttributeField.getAttribute('name'));
|
||||
})
|
||||
.catch(function (error) {
|
||||
console.error(error);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
function listenSaveModalObject(oModal, oBootstrapModal, oModalBody, oObjectContainer, oAttributeContainer, sAttCode, sExtKeyToMe, sObjectClass, sModalId, sFormName, sVarName)
|
||||
{
|
||||
const oSave = oModal.querySelector('[data-action="save_modal_object"]');
|
||||
|
||||
oSave.addEventListener('click', function(e){
|
||||
|
||||
const oForm = document.querySelector('form[name="' + sFormName + '"]')
|
||||
|
||||
// set loading state
|
||||
oModalBody.innerHTML = 'Saving object...';
|
||||
|
||||
// save CK editors
|
||||
oApp.saveCkEditors();
|
||||
|
||||
// prepare form data
|
||||
const data = new URLSearchParams();
|
||||
for (const pair of new FormData(oForm)) {
|
||||
data.append(pair[0], pair[1]);
|
||||
}
|
||||
|
||||
// append useful extra data
|
||||
data.append('ext_key_to_me', sExtKeyToMe);
|
||||
data.append('object_class', sObjectClass);
|
||||
data.append('form_name', sFormName);
|
||||
|
||||
// compute object form url
|
||||
const url = objectSaveUrl.replaceAll('object_class', oForm.dataset.objectClass);
|
||||
|
||||
// fetch url
|
||||
fetch(url, {
|
||||
method: 'POST',
|
||||
body: data,
|
||||
})
|
||||
.then((response) => response.json())
|
||||
.then((data) => {
|
||||
|
||||
// on success
|
||||
if(data.succeeded){
|
||||
|
||||
// retrieve collection holder (replace ':' character otherwise the selector is invalid)
|
||||
const collectionHolder = oAttributeContainer.querySelector('tbody');
|
||||
|
||||
// extract form content
|
||||
const reg = new RegExp(/<form .*?>(.*)<\/form>/gs);
|
||||
const res = reg.exec(data.template);
|
||||
|
||||
// append new row
|
||||
const row = oToolkit.createElementFromHtml(res[1]);
|
||||
row.querySelectorAll(aSelectors.dataAttCode).forEach(function(e){
|
||||
e.setAttribute('id', `${oAttributeContainer.querySelector(aSelectors.dataAttCode).getAttribute('id')}_${collectionHolder.dataset.index}_${e.dataset.attCode}`);
|
||||
e.setAttribute('name', `${oAttributeContainer.querySelector(aSelectors.dataAttCode).getAttribute('name')}[${collectionHolder.dataset.index}][${e.dataset.attCode}]`);
|
||||
});
|
||||
|
||||
oObjectContainer.querySelector(`[data-att-code="${sAttCode}"] tbody`).appendChild(row);
|
||||
|
||||
// listen
|
||||
listenRemoveItem(row);
|
||||
|
||||
// hide modal
|
||||
oBootstrapModal.hide();
|
||||
|
||||
collectionHolder.dataset.index++;
|
||||
}
|
||||
else{
|
||||
console.error('Error while saving object');
|
||||
}
|
||||
|
||||
})
|
||||
.catch(function (error) {
|
||||
|
||||
console.error(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove an item.
|
||||
*
|
||||
* @param e
|
||||
*/
|
||||
function removeItem(e)
|
||||
{
|
||||
// retrieve attribute container
|
||||
const oAttributeContainer = e.currentTarget.closest(aSelectors.dataAttributeContainer);
|
||||
|
||||
// remove row
|
||||
e.currentTarget.closest('tr').remove();
|
||||
|
||||
// handle no data row visibility
|
||||
if(oAttributeContainer.querySelectorAll('tbody tr').length === 1) {
|
||||
oAttributeContainer.querySelector('.no_data').style.display = 'table-row';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle collection on the provided container element.
|
||||
*
|
||||
* @param oContainer
|
||||
*/
|
||||
function handleElement(oContainer)
|
||||
{
|
||||
listenAddItem(oContainer);
|
||||
listenCreateItem(oContainer);
|
||||
listenRemoveItem(oContainer);
|
||||
}
|
||||
|
||||
return {
|
||||
handleElement
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
135
js/DI/dynamic.js
Normal file
135
js/DI/dynamic.js
Normal file
@@ -0,0 +1,135 @@
|
||||
/**
|
||||
* Dynamics handling.
|
||||
*
|
||||
* @returns {{handleElement: handleElement}}
|
||||
* @constructor
|
||||
*/
|
||||
const Dynamic = function(){
|
||||
|
||||
const aSelectors = {
|
||||
dataHideWhen: '[data-hide-when]',
|
||||
dataDisableWhen: '[data-disable-when]',
|
||||
dataAttCode: '[data-att-code="{0}"]',
|
||||
dataAttributeContainer: '[data-block="attribute_container"]',
|
||||
dataAllBlocks: '[data-block]'
|
||||
};
|
||||
|
||||
/**
|
||||
* hideEmptyContainers.
|
||||
*
|
||||
* The purpose of this function is to hide empty containers.
|
||||
* Ex: FieldSetType with no children
|
||||
*
|
||||
*/
|
||||
function hideEmptyContainers(oElement){
|
||||
$('.combodo-field-set', oElement).each(function(){
|
||||
$(this).parent().toggle($(this).children().length !== 0);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* initDynamicsInvisible.
|
||||
*
|
||||
* @param oElement
|
||||
*/
|
||||
function initDynamicsInvisible(oElement){
|
||||
|
||||
// get all dynamic hide fields
|
||||
const aInvisibleFields = oElement.querySelectorAll(aSelectors.dataHideWhen);
|
||||
|
||||
// iterate throw fields...
|
||||
aInvisibleFields.forEach(function (oInvisibleField) {
|
||||
|
||||
// retrieve condition
|
||||
const aHideWhenCondition = JSON.parse(oInvisibleField.dataset.hideWhen);
|
||||
if(aHideWhenCondition === null){
|
||||
return;
|
||||
}
|
||||
|
||||
// retrieve condition data
|
||||
const oHideWhenElement = oElement.querySelector(String.format(aSelectors.dataAttCode, aHideWhenCondition.att_code));
|
||||
if(oHideWhenElement === null){
|
||||
return;
|
||||
}
|
||||
|
||||
// retrieve container
|
||||
const oContainer = oInvisibleField.closest(aSelectors.dataAllBlocks);
|
||||
|
||||
// initial hidden state
|
||||
oContainer.hidden = (oHideWhenElement.value === aHideWhenCondition.value);
|
||||
|
||||
// listen for changes
|
||||
oHideWhenElement.addEventListener('change', (e) => {
|
||||
oContainer.hidden = (e.target.value === aHideWhenCondition.value);
|
||||
oContainer.style.visibility = (e.target.value === aHideWhenCondition.value) ? 'hidden' : '';
|
||||
});
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* initDynamicsDisable.
|
||||
*
|
||||
* @param oElement
|
||||
*/
|
||||
function initDynamicsDisable(oElement){
|
||||
|
||||
// get all dynamic hide fields
|
||||
const aDisabledFields = oElement.querySelectorAll(aSelectors.dataDisableWhen);
|
||||
|
||||
// iterate throw fields...
|
||||
aDisabledFields.forEach(function (oDisabledField) {
|
||||
|
||||
// retrieve condition
|
||||
const aDisableWhenCondition = JSON.parse(oDisabledField.dataset.disableWhen);
|
||||
if(aDisableWhenCondition === null){
|
||||
return;
|
||||
}
|
||||
|
||||
// retrieve condition data
|
||||
const oDisableWhenElement = oElement.querySelector(`[data-att-code="${aDisableWhenCondition.att_code}"]`);
|
||||
if(oDisableWhenElement === null){
|
||||
return;
|
||||
}
|
||||
|
||||
// retrieve container
|
||||
const oContainer = oDisabledField.closest(aSelectors.dataAllBlocks);
|
||||
|
||||
// initial disabled state
|
||||
oContainer.disabled = (oDisableWhenElement.value === aDisableWhenCondition.value);
|
||||
|
||||
// listen for changes
|
||||
oDisableWhenElement.addEventListener('change', (e) => {
|
||||
oContainer.disabled = (e.target.value === aDisableWhenCondition.value);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* handleElement.
|
||||
*
|
||||
* @param element
|
||||
*/
|
||||
function handleElement(element){
|
||||
hideEmptyContainers(element);
|
||||
initDynamicsInvisible(element);
|
||||
initDynamicsDisable(element);
|
||||
}
|
||||
|
||||
return {
|
||||
handleElement,
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
106
js/DI/file_test.js
Normal file
106
js/DI/file_test.js
Normal file
@@ -0,0 +1,106 @@
|
||||
|
||||
const FileTest = function(sUrl){
|
||||
|
||||
|
||||
function init(){
|
||||
$('#create_task').on('click', function(e){
|
||||
createTask(e);
|
||||
});
|
||||
}
|
||||
|
||||
function createTask(e){
|
||||
|
||||
// form attributes
|
||||
const sModalId = `file_modal`;
|
||||
const sFormName = `file_form`;
|
||||
|
||||
// crate a new modal
|
||||
const oModal = oToolkit.createFullScreenModal(sModalId, 'Create task');
|
||||
const oModalBody= oModal.querySelector('.modal-body');
|
||||
oModalBody.innerHTML = 'loading...';
|
||||
|
||||
// bootstrap modal
|
||||
const oBootstrapModal = new bootstrap.Modal(`#${sModalId}`);
|
||||
oModal.addEventListener('hidden.bs.modal', event => {
|
||||
// cleanup
|
||||
oBootstrapModal.dispose();
|
||||
event.currentTarget.remove();
|
||||
});
|
||||
oBootstrapModal.show();
|
||||
|
||||
// fetch url
|
||||
fetch(sUrl, {
|
||||
method: 'POST',
|
||||
})
|
||||
.then((response) => response.json())
|
||||
.then((data) => {
|
||||
|
||||
// load modal content
|
||||
oModalBody.innerHTML = data.template;
|
||||
|
||||
listenSaveModalObject(oModal, oBootstrapModal);
|
||||
|
||||
})
|
||||
.catch(function (error) {
|
||||
console.error(error);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
function listenSaveModalObject(oModal, oBootstrapModal)
|
||||
{
|
||||
const oForm = oModal.querySelector('form');
|
||||
|
||||
oForm.addEventListener('submit', function(e){
|
||||
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
|
||||
console.log('save');
|
||||
|
||||
// // prepare form data
|
||||
// const data = new URLSearchParams();
|
||||
// for (const pair of new FormData(oForm)) {
|
||||
// data.append(pair[0], pair[1]);
|
||||
// }
|
||||
|
||||
// fetch url
|
||||
fetch(sUrl, {
|
||||
method: 'POST',
|
||||
body: new FormData(oForm)
|
||||
})
|
||||
.then((response) => response.json())
|
||||
.then((data) => {
|
||||
|
||||
// on success
|
||||
if(data.succeeded){
|
||||
|
||||
// hide modal
|
||||
oBootstrapModal.hide();
|
||||
|
||||
}
|
||||
else{
|
||||
console.error('Error while saving object');
|
||||
}
|
||||
|
||||
})
|
||||
.catch(function (error) {
|
||||
|
||||
console.error(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
return {
|
||||
init
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
244
js/DI/form.js
Normal file
244
js/DI/form.js
Normal file
@@ -0,0 +1,244 @@
|
||||
/**
|
||||
* Forms handling.
|
||||
*
|
||||
* @param oWidget
|
||||
* @param oDynamic
|
||||
* @returns {{handleElement: handleElement}}
|
||||
* @constructor
|
||||
*/
|
||||
const Form = function(oWidget, oDynamic){
|
||||
|
||||
const DEPENDS_ON_SEPARATOR = ' ';
|
||||
|
||||
const LOADING_MESSAGE = 'loading';
|
||||
|
||||
const aSelectors = {
|
||||
dataDependsOn: '[data-depends-on]',
|
||||
dataAttributeContainer: '[data-block="attribute_container"]',
|
||||
dataFieldsetContainer: '[data-block="fieldset_container"]',
|
||||
dataAttCodeSpecific: '[data-att-code="{0}"]'
|
||||
};
|
||||
|
||||
/**
|
||||
* updateForm.
|
||||
*
|
||||
* @param aData
|
||||
* @param sUrl
|
||||
* @param sMethod
|
||||
* @returns {Promise<string>}
|
||||
*/
|
||||
async function updateForm(aData, sUrl, sMethod){
|
||||
const req = await fetch(sUrl, {
|
||||
method: sMethod,
|
||||
body: aData,
|
||||
headers: {
|
||||
'Content-Type': 'application/x-www-form-urlencoded',
|
||||
'charset': 'utf-8'
|
||||
}
|
||||
});
|
||||
|
||||
return await req.text();
|
||||
}
|
||||
|
||||
/**
|
||||
* updateField.
|
||||
*
|
||||
* @param oEvent
|
||||
* @param oObjectContainer
|
||||
* @param oElement
|
||||
* @param aDependentAttCodes
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
async function updateField(oEvent, oObjectContainer, oElement, aDependentAttCodes){
|
||||
|
||||
const aDependenciesAttCodes = [];
|
||||
|
||||
/////////////////////////////////
|
||||
// I - CONSTRUCT DEPENDENCIES (The original event target but also other required dependencies)
|
||||
|
||||
// the value of the field change, sAttCodes needs to be updated
|
||||
aDependentAttCodes.forEach((sAttCode) => {
|
||||
|
||||
// field to update
|
||||
const oDependsOnElement = oElement.querySelector(String.format(aSelectors.dataAttCodeSpecific, sAttCode));
|
||||
|
||||
// retrieve field container
|
||||
const oContainer = oDependsOnElement.closest(aSelectors.dataAttributeContainer);
|
||||
|
||||
// set field container loading state
|
||||
oContainer.classList.add(LOADING_MESSAGE);
|
||||
|
||||
// retrieve dependency data
|
||||
const sDependsOn = oDependsOnElement.dataset.dependsOn;
|
||||
|
||||
// may have multiple dependencies
|
||||
let aDependsEls = sDependsOn.split(DEPENDS_ON_SEPARATOR);
|
||||
|
||||
aDependsEls.forEach((sAtt) => {
|
||||
if(!aDependenciesAttCodes.includes(sAtt)){
|
||||
aDependenciesAttCodes.push(sAtt);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
const aAllAttCodes = aDependentAttCodes.concat(aDependenciesAttCodes);
|
||||
|
||||
/////////////////////////////////
|
||||
// II - PREPARE RELOAD REQUEST
|
||||
|
||||
// prepare quest data
|
||||
let sRequestBody = '';
|
||||
let $bFirst = true;
|
||||
|
||||
// iterate throw dependencies...
|
||||
aAllAttCodes.forEach(function(sAtt) {
|
||||
|
||||
const oDependsOnElement = oElement.querySelector(String.format(aSelectors.dataAttCodeSpecific, sAtt));
|
||||
|
||||
if(!$bFirst){
|
||||
sRequestBody += '&';
|
||||
}
|
||||
sRequestBody += 'partial_object['+oDependsOnElement.dataset.attCode + ']=' + oDependsOnElement.value;
|
||||
$bFirst = false;
|
||||
});
|
||||
|
||||
sRequestBody += '&att_codes=' + aDependentAttCodes.join(',');
|
||||
sRequestBody += '&dependency_att_codes=' + aAllAttCodes.join(',');
|
||||
|
||||
/////////////////////////////////
|
||||
// III - UPDATE THE FORM
|
||||
|
||||
// update fom
|
||||
|
||||
const sReloadResponse = await updateForm(sRequestBody, oObjectContainer.dataset.reloadUrl, 'POST');
|
||||
|
||||
const oReloadedElement = oToolkit.parseTextToHtml(sReloadResponse);
|
||||
|
||||
let oPartial = oReloadedElement.getElementById('partial_object');
|
||||
|
||||
aDependentAttCodes.forEach((sAtt) => {
|
||||
|
||||
// dependent element
|
||||
const oDependentElement = oElement.querySelector(String.format(aSelectors.dataAttCodeSpecific, sAtt));
|
||||
const oContainer = oDependentElement.closest(aSelectors.dataAttributeContainer);
|
||||
const sId = oDependentElement.getAttribute('id');
|
||||
const sName = oDependentElement.getAttribute('name');
|
||||
|
||||
// new element
|
||||
const oNewElement = oPartial.querySelector(String.format(aSelectors.dataAttCodeSpecific, sAtt));
|
||||
const oNewContainer = oNewElement.closest(aSelectors.dataAttributeContainer);
|
||||
oNewElement.setAttribute('id', sId);
|
||||
oNewElement.setAttribute('name', sName);
|
||||
|
||||
// replace element
|
||||
oContainer.replaceWith(oNewContainer);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* initDependencies.
|
||||
*
|
||||
* @param oElement
|
||||
*/
|
||||
function initDependencies(oElement){
|
||||
|
||||
// compute dependencies map
|
||||
let aMapDependencies = {};
|
||||
|
||||
// get all field with dependencies
|
||||
const aDependentsFields = oElement.querySelectorAll(aSelectors.dataDependsOn);
|
||||
|
||||
// iterate throw dependent fields...
|
||||
aDependentsFields.forEach(function (oDependentField) {
|
||||
|
||||
// retrieve object container
|
||||
const oObjectContainer = oDependentField.closest('[data-block="object_container"]');
|
||||
|
||||
// retrieve dependency data
|
||||
const sDependsOn = oDependentField.dataset.dependsOn;
|
||||
|
||||
// may have multiple dependencies
|
||||
let aDependsEls = sDependsOn.split(DEPENDS_ON_SEPARATOR);
|
||||
|
||||
// iterate throw the dependencies...
|
||||
aDependsEls.forEach(function(sEl){
|
||||
|
||||
const sId = oObjectContainer.dataset.containerId;
|
||||
|
||||
if(!(sId in aMapDependencies)) {
|
||||
aMapDependencies[sId] = [];
|
||||
}
|
||||
|
||||
// add dependency att code to map
|
||||
if(!(sEl in aMapDependencies[sId])){
|
||||
aMapDependencies[sId][sEl] = [];
|
||||
}
|
||||
|
||||
if(!aMapDependencies[sId][sEl].includes(oDependentField.dataset.attCode)){
|
||||
aMapDependencies[sId][sEl].push(oDependentField.dataset.attCode);
|
||||
}
|
||||
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
// iterate throw dependencies map...
|
||||
for(let sContainerId in aMapDependencies) {
|
||||
|
||||
// retrieve object container
|
||||
let oObjectContainer = null;
|
||||
if(oElement.dataset !== undefined && oElement.dataset.containerId === sContainerId){
|
||||
oObjectContainer = oElement;
|
||||
}
|
||||
else{
|
||||
oObjectContainer = oElement.querySelector(`[data-container-id="${sContainerId}"]`);
|
||||
}
|
||||
|
||||
const aMapContainer = aMapDependencies[sContainerId];
|
||||
|
||||
// iterate throw dependencies map...
|
||||
for (let sAttCode in aMapContainer) {
|
||||
|
||||
// retrieve corresponding field
|
||||
const oDependsOnElement = oObjectContainer.querySelector(String.format(aSelectors.dataAttCodeSpecific, sAttCode));
|
||||
|
||||
// listen changes
|
||||
if (oDependsOnElement !== null) {
|
||||
oDependsOnElement.addEventListener('change', (event) => updateField(event, oObjectContainer, oElement, aMapContainer[sAttCode]));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* handleElement.
|
||||
*
|
||||
* @param element
|
||||
*/
|
||||
function handleElement(element){
|
||||
initDependencies(element);
|
||||
oWidget.handleElement(element);
|
||||
oDynamic.handleElement(element);
|
||||
}
|
||||
|
||||
return {
|
||||
handleElement,
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
87
js/DI/toolkit.js
Normal file
87
js/DI/toolkit.js
Normal file
@@ -0,0 +1,87 @@
|
||||
/**
|
||||
* Toolkit.
|
||||
*
|
||||
* @returns {{init: init, parseTextToHtml: (function(*): Document), createElementFromHtml: (function(*): DocumentFragment)}}
|
||||
* @constructor
|
||||
*/
|
||||
const Toolkit = function(){
|
||||
|
||||
function init(){
|
||||
installStringFormatFunction();
|
||||
}
|
||||
|
||||
/**
|
||||
* installStringFormatFunction.
|
||||
*
|
||||
* String formatter utility.
|
||||
*/
|
||||
function installStringFormatFunction(){
|
||||
if (!String.format) {
|
||||
String.format = function(format) {
|
||||
const args = Array.prototype.slice.call(arguments, 1);
|
||||
return format.replace(/{(\d+)}/g, function(match, number) {
|
||||
return typeof args[number] != 'undefined' ? args[number] : match;
|
||||
});
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* parseTextToHtml.
|
||||
*
|
||||
* @param sText
|
||||
* @returns {Document}
|
||||
*/
|
||||
function parseTextToHtml(sText){
|
||||
const oParser = new DOMParser();
|
||||
return oParser.parseFromString(sText, 'text/html');
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param html
|
||||
* @returns {DocumentFragment}
|
||||
*/
|
||||
function createElementFromHtml(html) {
|
||||
const t = document.createElement('template');
|
||||
t.innerHTML = html;
|
||||
return t.content;
|
||||
}
|
||||
|
||||
function createFullScreenModal(sId, sTitle){
|
||||
|
||||
// retrieve modal template
|
||||
const oModalTemplate = document.getElementById('full_screen_modal_template');
|
||||
|
||||
// clone template content
|
||||
const oModalFragment = oModalTemplate.content.cloneNode(true);
|
||||
|
||||
// append modal to container
|
||||
const oModalContainer = document.getElementById('modal_container');
|
||||
const oModal = oModalContainer.appendChild(oModalFragment.lastElementChild);
|
||||
oModal.setAttribute('id', sId);
|
||||
oModal.querySelector('.modal-title').textContent = sTitle;
|
||||
|
||||
return oModal;
|
||||
}
|
||||
|
||||
return {
|
||||
init,
|
||||
parseTextToHtml,
|
||||
createElementFromHtml,
|
||||
createFullScreenModal
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
56
js/DI/widget.js
Normal file
56
js/DI/widget.js
Normal file
@@ -0,0 +1,56 @@
|
||||
/**
|
||||
* Widgets handling.
|
||||
*
|
||||
* @returns {{handleElement: handleElement}}
|
||||
* @constructor
|
||||
*/
|
||||
const Widget = function(){
|
||||
|
||||
/**
|
||||
* initWidgets.
|
||||
*
|
||||
* @param oElement
|
||||
*/
|
||||
function initWidgets(oElement){
|
||||
|
||||
// get all widgets
|
||||
const aWidgetFields = oElement.querySelectorAll('[data-widget]');
|
||||
|
||||
// iterate throw widgets...
|
||||
aWidgetFields.forEach(function (widgetField) {
|
||||
|
||||
// initialize widget
|
||||
const sWidgetName = widgetField.dataset.widget;
|
||||
const oWidget = eval(`$(widgetField).${sWidgetName}()`);
|
||||
console.debug('Init widget: ' + sWidgetName);
|
||||
console.debug(oWidget);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* handleElement.
|
||||
*
|
||||
* @param element
|
||||
*/
|
||||
function handleElement(element){
|
||||
initWidgets(element);
|
||||
}
|
||||
|
||||
return {
|
||||
handleElement,
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
25
js/DI/widget/text_widget.js
Normal file
25
js/DI/widget/text_widget.js
Normal file
@@ -0,0 +1,25 @@
|
||||
/**
|
||||
* Example of jquery widget.
|
||||
*
|
||||
*/
|
||||
$.widget( "itop.text_widget",
|
||||
{
|
||||
// default options
|
||||
options:
|
||||
{
|
||||
},
|
||||
|
||||
// the constructor
|
||||
_create: function()
|
||||
{
|
||||
editor = CKEDITOR.replace(this.element.attr('id'), {
|
||||
language: 'fr',
|
||||
uiColor: '#9ec5fe88',
|
||||
toolbarStartupExpanded: true
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
33
lib/.gitignore
vendored
33
lib/.gitignore
vendored
@@ -1,33 +0,0 @@
|
||||
# Combodo's fork of TCPDF
|
||||
/combodo/tcpdf/examples
|
||||
/combodo/tcpdf/tools
|
||||
/combodo/tcpdf/fonts/**
|
||||
!/combodo/tcpdf/fonts/courier*
|
||||
!/combodo/tcpdf/fonts/dejavusans*
|
||||
!/combodo/tcpdf/fonts/droidsansfallback*
|
||||
!/combodo/tcpdf/fonts/helvetica*
|
||||
!/combodo/tcpdf/fonts/symbol.php
|
||||
!/combodo/tcpdf/fonts/times*
|
||||
!/combodo/tcpdf/fonts/zapfdingbats.php
|
||||
|
||||
# ArchiveTar
|
||||
/pear/archive_tar/docs
|
||||
/pear/archive_tar/scripts
|
||||
/pear/archive_tar/sync-php4
|
||||
|
||||
# Emogrifier
|
||||
/pelago/emogrifier/.github
|
||||
/pelago/emogrifier/tests
|
||||
|
||||
# SCSSPHP
|
||||
/scssphp/scssphp/example
|
||||
|
||||
# SwiftMailer
|
||||
/swiftmailer/swiftmailer/.github
|
||||
/swiftmailer/swiftmailer/doc
|
||||
/swiftmailer/swiftmailer/tests
|
||||
|
||||
# TWIG
|
||||
/twig/twig/doc
|
||||
/twig/twig/test
|
||||
/twig/twig/drupal_test.sh
|
||||
@@ -1,24 +0,0 @@
|
||||
# Allow only static resources files
|
||||
# - HTML not allowed as there could be some test pages calling server scripts or executing JS scripts
|
||||
# - PHP not allowed as they should not be publicly accessible
|
||||
|
||||
# Apache 2.4
|
||||
<ifModule mod_authz_core.c>
|
||||
Require all denied
|
||||
<FilesMatch ".+\.(css|scss|js|map|png|bmp|gif|jpe?g|svg|tiff|woff2?|ttf|eot1)$">
|
||||
Require all granted
|
||||
</FilesMatch>
|
||||
</ifModule>
|
||||
|
||||
# Apache 2.2
|
||||
<ifModule !mod_authz_core.c>
|
||||
deny from all
|
||||
Satisfy All
|
||||
<FilesMatch ".+\.(css|scss|js|map|png|bmp|gif|jpe?g|svg|tiff|woff2?|ttf|eot)$">
|
||||
Order Allow,Deny
|
||||
Allow from all
|
||||
</FilesMatch>
|
||||
</ifModule>
|
||||
|
||||
# Apache 2.2 and 2.4
|
||||
IndexIgnore *
|
||||
@@ -1,17 +0,0 @@
|
||||
codecov:
|
||||
strict_yaml_branch: master
|
||||
|
||||
coverage:
|
||||
round: up
|
||||
precision: 2
|
||||
status:
|
||||
project:
|
||||
default:
|
||||
target: "70%"
|
||||
informational: true
|
||||
patch: # temporarily disabled
|
||||
default:
|
||||
target: "70%"
|
||||
informational: true
|
||||
|
||||
comment: false
|
||||
7
lib/apereo/phpcas/.gitattributes
vendored
7
lib/apereo/phpcas/.gitattributes
vendored
@@ -1,7 +0,0 @@
|
||||
/docs/ export-ignore
|
||||
/test/ export-ignore
|
||||
/utils/ export-ignore
|
||||
/.buildpath export-ignore
|
||||
/.gitignore export-ignore
|
||||
/.project export-ignore
|
||||
/.travis.yml export-ignore
|
||||
7
lib/apereo/phpcas/.github/dependabot.yml
vendored
7
lib/apereo/phpcas/.github/dependabot.yml
vendored
@@ -1,7 +0,0 @@
|
||||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: composer
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: daily
|
||||
open-pull-requests-limit: 10
|
||||
43
lib/apereo/phpcas/.github/workflows/test.yml
vendored
43
lib/apereo/phpcas/.github/workflows/test.yml
vendored
@@ -1,43 +0,0 @@
|
||||
name: Test
|
||||
|
||||
on:
|
||||
- push
|
||||
- pull_request
|
||||
|
||||
jobs:
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
php-version:
|
||||
- php: '7.2'
|
||||
phpunit: '8'
|
||||
- php: '7.3'
|
||||
phpunit: latest
|
||||
- php: '7.4'
|
||||
phpunit: latest
|
||||
- php: '8.0'
|
||||
phpunit: latest
|
||||
- php: '8.1'
|
||||
phpunit: latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: php-actions/composer@v6
|
||||
with:
|
||||
php_version: "${{ matrix.php-version.php }}"
|
||||
- name: Run PHPUnit
|
||||
uses: php-actions/phpunit@v3
|
||||
with:
|
||||
version: "${{ matrix.php-version.phpunit }}"
|
||||
php_version: "${{ matrix.php-version.php }}"
|
||||
php_extensions: xdebug
|
||||
args: --verbose --coverage-clover=coverage.xml
|
||||
bootstrap: vendor/autoload.php
|
||||
env:
|
||||
XDEBUG_MODE: coverage
|
||||
- name: Report coverage
|
||||
uses: codecov/codecov-action@v1
|
||||
with:
|
||||
files: coverage.xml
|
||||
@@ -33,12 +33,12 @@
|
||||
"phpstan/phpstan" : "^1.5"
|
||||
},
|
||||
"autoload" : {
|
||||
"files": ["source/CAS.php"],
|
||||
"classmap" : [
|
||||
"source/"
|
||||
]
|
||||
},
|
||||
"autoload-dev" : {
|
||||
"files": ["source/CAS.php"],
|
||||
"psr-4" : {
|
||||
"PhpCas\\" : "test/CAS/"
|
||||
}
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" bootstrap="source/CAS.php" convertNoticesToExceptions="false" colors="true" stderr="true" backupGlobals="true" xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd">
|
||||
<coverage includeUncoveredFiles="false">
|
||||
<include>
|
||||
<directory>source/</directory>
|
||||
</include>
|
||||
</coverage>
|
||||
<testsuites>
|
||||
<testsuite name="phpCAS Tests">
|
||||
<directory>test/CAS/Tests/</directory>
|
||||
</testsuite>
|
||||
</testsuites>
|
||||
</phpunit>
|
||||
@@ -57,7 +57,7 @@ if (!isset($_SERVER['REQUEST_URI']) && isset($_SERVER['SCRIPT_NAME']) && isset($
|
||||
/**
|
||||
* phpCAS version. accessible for the user by phpCAS::getVersion().
|
||||
*/
|
||||
define('PHPCAS_VERSION', '1.6.0');
|
||||
define('PHPCAS_VERSION', '1.6.1');
|
||||
|
||||
/**
|
||||
* @addtogroup public
|
||||
|
||||
@@ -973,11 +973,6 @@ class CAS_Client
|
||||
session_start();
|
||||
phpCAS :: trace("Starting a new session " . session_id());
|
||||
}
|
||||
// init phpCAS session array
|
||||
if (!isset($_SESSION[static::PHPCAS_SESSION_PREFIX])
|
||||
|| !is_array($_SESSION[static::PHPCAS_SESSION_PREFIX])) {
|
||||
$_SESSION[static::PHPCAS_SESSION_PREFIX] = array();
|
||||
}
|
||||
}
|
||||
|
||||
// Only for debug purposes
|
||||
@@ -1198,9 +1193,21 @@ class CAS_Client
|
||||
{
|
||||
$this->validateSession($key);
|
||||
|
||||
$this->ensureSessionArray();
|
||||
$_SESSION[static::PHPCAS_SESSION_PREFIX][$key] = $value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Ensure that the session array is initialized before writing to it.
|
||||
*/
|
||||
protected function ensureSessionArray() {
|
||||
// init phpCAS session array
|
||||
if (!isset($_SESSION[static::PHPCAS_SESSION_PREFIX])
|
||||
|| !is_array($_SESSION[static::PHPCAS_SESSION_PREFIX])) {
|
||||
$_SESSION[static::PHPCAS_SESSION_PREFIX] = array();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove a session value with the given key.
|
||||
*
|
||||
|
||||
@@ -0,0 +1,152 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Licensed to Jasig under one or more contributor license
|
||||
* agreements. See the NOTICE file distributed with this work for
|
||||
* additional information regarding copyright ownership.
|
||||
*
|
||||
* Jasig licenses this file to you under the Apache License,
|
||||
* Version 2.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at:
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
* PHP Version 7
|
||||
*
|
||||
* @file CAS/ServiceBaseUrl/AllowedListDiscovery.php
|
||||
* @category Authentication
|
||||
* @package PhpCAS
|
||||
* @author Henry Pan <git@phy25.com>
|
||||
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* Class that gets the service base URL of the PHP server by HTTP header
|
||||
* discovery and allowlist check. This is used to generate service URL
|
||||
* and PGT callback URL.
|
||||
*
|
||||
* @class CAS_ServiceBaseUrl_AllowedListDiscovery
|
||||
* @category Authentication
|
||||
* @package PhpCAS
|
||||
* @author Henry Pan <git@phy25.com>
|
||||
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||
*/
|
||||
|
||||
class CAS_ServiceBaseUrl_AllowedListDiscovery
|
||||
extends CAS_ServiceBaseUrl_Base
|
||||
{
|
||||
private $_list = array();
|
||||
|
||||
public function __construct($list) {
|
||||
if (is_array($list)) {
|
||||
if (count($list) === 0) {
|
||||
throw new CAS_InvalidArgumentException('$list should not be empty');
|
||||
}
|
||||
foreach ($list as $value) {
|
||||
$this->allow($value);
|
||||
}
|
||||
} else {
|
||||
throw new CAS_TypeMismatchException($list, '$list', 'array');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a base URL to the allowed list.
|
||||
*
|
||||
* @param $url protocol, host name and port to add to the allowed list
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function allow($url)
|
||||
{
|
||||
$this->_list[] = $this->removeStandardPort($url);
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the server name is allowed by configuration.
|
||||
*
|
||||
* @param $name server name to check
|
||||
*
|
||||
* @return bool whether the allowed list contains the server name
|
||||
*/
|
||||
protected function isAllowed($name)
|
||||
{
|
||||
return in_array($name, $this->_list);
|
||||
}
|
||||
|
||||
/**
|
||||
* Discover the server name through HTTP headers.
|
||||
*
|
||||
* We read:
|
||||
* - HTTP header X-Forwarded-Host
|
||||
* - HTTP header X-Forwarded-Server and X-Forwarded-Port
|
||||
* - HTTP header Host and SERVER_PORT
|
||||
* - PHP SERVER_NAME (which can change based on the HTTP server used)
|
||||
*
|
||||
* The standard port will be omitted (80 for HTTP, 443 for HTTPS).
|
||||
*
|
||||
* @return string the discovered, unsanitized server protocol, hostname and port
|
||||
*/
|
||||
protected function discover()
|
||||
{
|
||||
$isHttps = $this->isHttps();
|
||||
$protocol = $isHttps ? 'https' : 'http';
|
||||
$protocol .= '://';
|
||||
if (!empty($_SERVER['HTTP_X_FORWARDED_HOST'])) {
|
||||
// explode the host list separated by comma and use the first host
|
||||
$hosts = explode(',', $_SERVER['HTTP_X_FORWARDED_HOST']);
|
||||
// see rfc7239#5.3 and rfc7230#2.7.1: port is in HTTP_X_FORWARDED_HOST if non default
|
||||
return $protocol . $hosts[0];
|
||||
} else if (!empty($_SERVER['HTTP_X_FORWARDED_SERVER'])) {
|
||||
$server_url = $_SERVER['HTTP_X_FORWARDED_SERVER'];
|
||||
} else {
|
||||
if (empty($_SERVER['SERVER_NAME'])) {
|
||||
$server_url = $_SERVER['HTTP_HOST'];
|
||||
} else {
|
||||
$server_url = $_SERVER['SERVER_NAME'];
|
||||
}
|
||||
}
|
||||
if (!strpos($server_url, ':')) {
|
||||
if (empty($_SERVER['HTTP_X_FORWARDED_PORT'])) {
|
||||
$server_port = $_SERVER['SERVER_PORT'];
|
||||
} else {
|
||||
$ports = explode(',', $_SERVER['HTTP_X_FORWARDED_PORT']);
|
||||
$server_port = $ports[0];
|
||||
}
|
||||
|
||||
$server_url .= ':';
|
||||
$server_url .= $server_port;
|
||||
}
|
||||
return $protocol . $server_url;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get PHP server base URL.
|
||||
*
|
||||
* @return string the server protocol, hostname and port
|
||||
*/
|
||||
public function get()
|
||||
{
|
||||
phpCAS::traceBegin();
|
||||
$result = $this->removeStandardPort($this->discover());
|
||||
phpCAS::trace("Discovered server base URL: " . $result);
|
||||
if ($this->isAllowed($result)) {
|
||||
phpCAS::trace("Server base URL is allowed");
|
||||
phpCAS::traceEnd(true);
|
||||
} else {
|
||||
$result = $this->_list[0];
|
||||
phpCAS::trace("Server base URL is not allowed, using default: " . $result);
|
||||
phpCAS::traceEnd(false);
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
98
lib/apereo/phpcas/source/CAS/ServiceBaseUrl/Base.php
Normal file
98
lib/apereo/phpcas/source/CAS/ServiceBaseUrl/Base.php
Normal file
@@ -0,0 +1,98 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Licensed to Jasig under one or more contributor license
|
||||
* agreements. See the NOTICE file distributed with this work for
|
||||
* additional information regarding copyright ownership.
|
||||
*
|
||||
* Jasig licenses this file to you under the Apache License,
|
||||
* Version 2.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at:
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
* PHP Version 7
|
||||
*
|
||||
* @file CAS/ServiceBaseUrl/Base.php
|
||||
* @category Authentication
|
||||
* @package PhpCAS
|
||||
* @author Henry Pan <git@phy25.com>
|
||||
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||
*/
|
||||
|
||||
/**
|
||||
* Base class of CAS/ServiceBaseUrl that implements isHTTPS method.
|
||||
*
|
||||
* @class CAS_ServiceBaseUrl_Base
|
||||
* @category Authentication
|
||||
* @package PhpCAS
|
||||
* @author Henry Pan <git@phy25.com>
|
||||
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||
*/
|
||||
abstract class CAS_ServiceBaseUrl_Base
|
||||
implements CAS_ServiceBaseUrl_Interface
|
||||
{
|
||||
|
||||
/**
|
||||
* Get PHP server name.
|
||||
*
|
||||
* @return string the server hostname and port of the server
|
||||
*/
|
||||
abstract public function get();
|
||||
|
||||
/**
|
||||
* Check whether HTTPS is used.
|
||||
*
|
||||
* This is used to construct the protocol in the URL.
|
||||
*
|
||||
* @return bool true if HTTPS is used
|
||||
*/
|
||||
public function isHttps() {
|
||||
if (!empty($_SERVER['HTTP_X_FORWARDED_PROTO'])) {
|
||||
return ($_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https');
|
||||
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_PROTOCOL'])) {
|
||||
return ($_SERVER['HTTP_X_FORWARDED_PROTOCOL'] === 'https');
|
||||
} elseif ( isset($_SERVER['HTTPS'])
|
||||
&& !empty($_SERVER['HTTPS'])
|
||||
&& strcasecmp($_SERVER['HTTPS'], 'off') !== 0
|
||||
) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove standard HTTP and HTTPS port for discovery and allowlist input.
|
||||
*
|
||||
* @param $url URL as https://domain:port without trailing slash
|
||||
* @return standardized URL, or the original URL
|
||||
* @throws CAS_InvalidArgumentException if the URL does not include the protocol
|
||||
*/
|
||||
protected function removeStandardPort($url) {
|
||||
if (strpos($url, "://") === false) {
|
||||
throw new CAS_InvalidArgumentException(
|
||||
"Configured base URL should include the protocol string: " . $url);
|
||||
}
|
||||
|
||||
$url = rtrim($url, '/');
|
||||
|
||||
if (strpos($url, "https://") === 0 && substr_compare($url, ':443', -4) === 0) {
|
||||
return substr($url, 0, -4);
|
||||
}
|
||||
|
||||
if (strpos($url, "http://") === 0 && substr_compare($url, ':80', -3) === 0) {
|
||||
return substr($url, 0, -3);
|
||||
}
|
||||
|
||||
return $url;
|
||||
}
|
||||
|
||||
}
|
||||
61
lib/apereo/phpcas/source/CAS/ServiceBaseUrl/Interface.php
Normal file
61
lib/apereo/phpcas/source/CAS/ServiceBaseUrl/Interface.php
Normal file
@@ -0,0 +1,61 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Licensed to Jasig under one or more contributor license
|
||||
* agreements. See the NOTICE file distributed with this work for
|
||||
* additional information regarding copyright ownership.
|
||||
*
|
||||
* Jasig licenses this file to you under the Apache License,
|
||||
* Version 2.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at:
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
* PHP Version 7
|
||||
*
|
||||
* @file CAS/ServerHostname/Interface.php
|
||||
* @category Authentication
|
||||
* @package PhpCAS
|
||||
* @author Henry Pan <git@phy25.com>
|
||||
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||
*/
|
||||
|
||||
/**
|
||||
* An interface for classes that gets the server name of the PHP server.
|
||||
* This is used to generate service URL and PGT callback URL.
|
||||
*
|
||||
* @class CAS_ServiceBaseUrl_Interface
|
||||
* @category Authentication
|
||||
* @package PhpCAS
|
||||
* @author Henry Pan <git@phy25.com>
|
||||
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||
*/
|
||||
interface CAS_ServiceBaseUrl_Interface
|
||||
{
|
||||
|
||||
/**
|
||||
* Get PHP HTTP protocol and server name.
|
||||
*
|
||||
* @return string protocol, server hostname, and optionally port,
|
||||
* without trailing slash (https://localhost:8443)
|
||||
*/
|
||||
public function get();
|
||||
|
||||
/**
|
||||
* Check whether HTTPS is used.
|
||||
*
|
||||
* This is used to construct the protocol in the URL.
|
||||
*
|
||||
* @return bool true if HTTPS is used
|
||||
*/
|
||||
public function isHttps();
|
||||
|
||||
}
|
||||
69
lib/apereo/phpcas/source/CAS/ServiceBaseUrl/Static.php
Normal file
69
lib/apereo/phpcas/source/CAS/ServiceBaseUrl/Static.php
Normal file
@@ -0,0 +1,69 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Licensed to Jasig under one or more contributor license
|
||||
* agreements. See the NOTICE file distributed with this work for
|
||||
* additional information regarding copyright ownership.
|
||||
*
|
||||
* Jasig licenses this file to you under the Apache License,
|
||||
* Version 2.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at:
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
* PHP Version 7
|
||||
*
|
||||
* @file CAS/ServiceBaseUrl/Static.php
|
||||
* @category Authentication
|
||||
* @package PhpCAS
|
||||
* @author Henry Pan <git@phy25.com>
|
||||
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* Class that gets the server name of the PHP server by statically set
|
||||
* hostname and port. This is used to generate service URL and PGT
|
||||
* callback URL.
|
||||
*
|
||||
* @class CAS_ServiceBaseUrl_Static
|
||||
* @category Authentication
|
||||
* @package PhpCAS
|
||||
* @author Henry Pan <git@phy25.com>
|
||||
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||
*/
|
||||
|
||||
class CAS_ServiceBaseUrl_Static
|
||||
extends CAS_ServiceBaseUrl_Base
|
||||
{
|
||||
private $_name = null;
|
||||
|
||||
public function __construct($name) {
|
||||
if (is_string($name)) {
|
||||
$this->_name = $this->removeStandardPort($name);
|
||||
} else {
|
||||
throw new CAS_TypeMismatchException($name, '$name', 'string');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the server name through static config.
|
||||
*
|
||||
* @return string the server hostname and port of the server configured
|
||||
*/
|
||||
public function get()
|
||||
{
|
||||
phpCAS::traceBegin();
|
||||
phpCAS::trace("Returning static server name: " . $this->_name);
|
||||
phpCAS::traceEnd(true);
|
||||
return $this->_name;
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,24 @@
|
||||
|
||||
// autoload.php @generated by Composer
|
||||
|
||||
if (PHP_VERSION_ID < 50600) {
|
||||
if (!headers_sent()) {
|
||||
header('HTTP/1.1 500 Internal Server Error');
|
||||
}
|
||||
$err = 'Composer 2.3.0 dropped support for autoloading on PHP <5.6 and you are running '.PHP_VERSION.', please upgrade PHP or use Composer 2.2 LTS via "composer self-update --2.2". Aborting.'.PHP_EOL;
|
||||
if (!ini_get('display_errors')) {
|
||||
if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') {
|
||||
fwrite(STDERR, $err);
|
||||
} elseif (!headers_sent()) {
|
||||
echo $err;
|
||||
}
|
||||
}
|
||||
trigger_error(
|
||||
$err,
|
||||
E_USER_ERROR
|
||||
);
|
||||
}
|
||||
|
||||
require_once __DIR__ . '/composer/autoload_real.php';
|
||||
|
||||
return ComposerAutoloaderInit7f81b4a2a468a061c306af5e447a9a9f::getLoader();
|
||||
return ComposerAutoloaderInit1f6902bb5e16183d06d6f3022e08a03d::getLoader();
|
||||
|
||||
@@ -4,16 +4,15 @@
|
||||
/**
|
||||
* Proxy PHP file generated by Composer
|
||||
*
|
||||
* This file includes the referenced bin path (../nikic/php-parser/bin/php-parse)
|
||||
* using a stream wrapper to prevent the shebang from being output on PHP<8
|
||||
* This file includes the referenced bin path (../nikic/php-parser/bin/php-parse) using ob_start to remove the shebang if present
|
||||
* to prevent the shebang from being output on PHP<8
|
||||
*
|
||||
* @generated
|
||||
*/
|
||||
|
||||
namespace Composer;
|
||||
|
||||
$GLOBALS['_composer_bin_dir'] = __DIR__;
|
||||
$GLOBALS['_composer_autoload_path'] = __DIR__ . '/..'.'/autoload.php';
|
||||
$binPath = __DIR__ . "/" . '../nikic/php-parser/bin/php-parse';
|
||||
|
||||
if (PHP_VERSION_ID < 80000) {
|
||||
if (!class_exists('Composer\BinProxyWrapper')) {
|
||||
@@ -24,17 +23,18 @@ if (PHP_VERSION_ID < 80000) {
|
||||
{
|
||||
private $handle;
|
||||
private $position;
|
||||
private $realpath;
|
||||
|
||||
public function stream_open($path, $mode, $options, &$opened_path)
|
||||
{
|
||||
// get rid of phpvfscomposer:// prefix for __FILE__ & __DIR__ resolution
|
||||
$opened_path = substr($path, 17);
|
||||
$this->realpath = realpath($opened_path) ?: $opened_path;
|
||||
$opened_path = $this->realpath;
|
||||
$this->handle = fopen($this->realpath, $mode);
|
||||
// get rid of composer-bin-proxy:// prefix for __FILE__ & __DIR__ resolution
|
||||
$opened_path = substr($path, 21);
|
||||
$opened_path = realpath($opened_path) ?: $opened_path;
|
||||
$this->handle = fopen($opened_path, $mode);
|
||||
$this->position = 0;
|
||||
|
||||
// remove all traces of this stream wrapper once it has been used
|
||||
stream_wrapper_unregister('composer-bin-proxy');
|
||||
|
||||
return (bool) $this->handle;
|
||||
}
|
||||
|
||||
@@ -66,16 +66,6 @@ if (PHP_VERSION_ID < 80000) {
|
||||
return $operation ? flock($this->handle, $operation) : true;
|
||||
}
|
||||
|
||||
public function stream_seek($offset, $whence)
|
||||
{
|
||||
if (0 === fseek($this->handle, $offset, $whence)) {
|
||||
$this->position = ftell($this->handle);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public function stream_tell()
|
||||
{
|
||||
return $this->position;
|
||||
@@ -88,33 +78,20 @@ if (PHP_VERSION_ID < 80000) {
|
||||
|
||||
public function stream_stat()
|
||||
{
|
||||
return array();
|
||||
return fstat($this->handle);
|
||||
}
|
||||
|
||||
public function stream_set_option($option, $arg1, $arg2)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function url_stat($path, $flags)
|
||||
{
|
||||
$path = substr($path, 17);
|
||||
if (file_exists($path)) {
|
||||
return stat($path);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (
|
||||
(function_exists('stream_get_wrappers') && in_array('phpvfscomposer', stream_get_wrappers(), true))
|
||||
|| (function_exists('stream_wrapper_register') && stream_wrapper_register('phpvfscomposer', 'Composer\BinProxyWrapper'))
|
||||
) {
|
||||
include("phpvfscomposer://" . __DIR__ . '/..'.'/nikic/php-parser/bin/php-parse');
|
||||
if (function_exists('stream_wrapper_register') && stream_wrapper_register('composer-bin-proxy', 'Composer\BinProxyWrapper')) {
|
||||
include("composer-bin-proxy://" . $binPath);
|
||||
exit(0);
|
||||
}
|
||||
}
|
||||
|
||||
include __DIR__ . '/..'.'/nikic/php-parser/bin/php-parse';
|
||||
include $binPath;
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
@ECHO OFF
|
||||
setlocal DISABLEDELAYEDEXPANSION
|
||||
SET BIN_TARGET=%~dp0/php-parse
|
||||
SET COMPOSER_RUNTIME_BIN_DIR=%~dp0
|
||||
SET BIN_TARGET=%~dp0/../nikic/php-parser/bin/php-parse
|
||||
php "%BIN_TARGET%" %*
|
||||
|
||||
53
lib/combodo/tcpdf/examples/barcodes/example_1d_html.php
Normal file
53
lib/combodo/tcpdf/examples/barcodes/example_1d_html.php
Normal file
@@ -0,0 +1,53 @@
|
||||
<?php
|
||||
//============================================================+
|
||||
// File name : example_1d_html.php
|
||||
// Version : 1.0.000
|
||||
// Begin : 2011-07-21
|
||||
// Last Update : 2013-03-19
|
||||
// Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com
|
||||
// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html)
|
||||
// -------------------------------------------------------------------
|
||||
// Copyright (C) 2009-2013 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 : Example for tcpdf_barcodes_1d.php class
|
||||
//
|
||||
//============================================================+
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Example for tcpdf_barcodes_1d.php class
|
||||
* @package com.tecnick.tcpdf
|
||||
* @author Nicola Asuni
|
||||
* @version 1.0.000
|
||||
*/
|
||||
|
||||
// include 1D barcode class (search for installation path)
|
||||
require_once(dirname(__FILE__).'/tcpdf_barcodes_1d_include.php');
|
||||
|
||||
// set the barcode content and type
|
||||
$barcodeobj = new TCPDFBarcode('http://www.tcpdf.org', 'C128');
|
||||
|
||||
// output the barcode as HTML object
|
||||
echo $barcodeobj->getBarcodeHTML(2, 30, 'black');
|
||||
|
||||
//============================================================+
|
||||
// END OF FILE
|
||||
//============================================================+
|
||||
53
lib/combodo/tcpdf/examples/barcodes/example_1d_png.php
Normal file
53
lib/combodo/tcpdf/examples/barcodes/example_1d_png.php
Normal file
@@ -0,0 +1,53 @@
|
||||
<?php
|
||||
//============================================================+
|
||||
// File name : example_1d_png.php
|
||||
// Version : 1.0.000
|
||||
// Begin : 2011-07-21
|
||||
// Last Update : 2013-03-19
|
||||
// Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com
|
||||
// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html)
|
||||
// -------------------------------------------------------------------
|
||||
// Copyright (C) 2009-2013 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 : Example for tcpdf_barcodes_1d.php class
|
||||
//
|
||||
//============================================================+
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Example for tcpdf_barcodes_1d.php class
|
||||
* @package com.tecnick.tcpdf
|
||||
* @author Nicola Asuni
|
||||
* @version 1.0.000
|
||||
*/
|
||||
|
||||
// include 1D barcode class (search for installation path)
|
||||
require_once(dirname(__FILE__).'/tcpdf_barcodes_1d_include.php');
|
||||
|
||||
// set the barcode content and type
|
||||
$barcodeobj = new TCPDFBarcode('http://www.tcpdf.org', 'C128');
|
||||
|
||||
// output the barcode as PNG image
|
||||
$barcodeobj->getBarcodePNG(2, 30, array(0,0,0));
|
||||
|
||||
//============================================================+
|
||||
// END OF FILE
|
||||
//============================================================+
|
||||
53
lib/combodo/tcpdf/examples/barcodes/example_1d_svg.php
Normal file
53
lib/combodo/tcpdf/examples/barcodes/example_1d_svg.php
Normal file
@@ -0,0 +1,53 @@
|
||||
<?php
|
||||
//============================================================+
|
||||
// File name : example_1d_svg.php
|
||||
// Version : 1.0.000
|
||||
// Begin : 2011-07-21
|
||||
// Last Update : 2013-03-19
|
||||
// Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com
|
||||
// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html)
|
||||
// -------------------------------------------------------------------
|
||||
// Copyright (C) 2009-2013 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 : Example for tcpdf_barcodes_1d.php class
|
||||
//
|
||||
//============================================================+
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Example for tcpdf_barcodes_1d.php class
|
||||
* @package com.tecnick.tcpdf
|
||||
* @author Nicola Asuni
|
||||
* @version 1.0.000
|
||||
*/
|
||||
|
||||
// include 1D barcode class (search for installation path)
|
||||
require_once(dirname(__FILE__).'/tcpdf_barcodes_1d_include.php');
|
||||
|
||||
// set the barcode content and type
|
||||
$barcodeobj = new TCPDFBarcode('http://www.tcpdf.org', 'C128');
|
||||
|
||||
// output the barcode as SVG image
|
||||
$barcodeobj->getBarcodeSVG(2, 30, 'black');
|
||||
|
||||
//============================================================+
|
||||
// END OF FILE
|
||||
//============================================================+
|
||||
53
lib/combodo/tcpdf/examples/barcodes/example_1d_svgi.php
Normal file
53
lib/combodo/tcpdf/examples/barcodes/example_1d_svgi.php
Normal file
@@ -0,0 +1,53 @@
|
||||
<?php
|
||||
//============================================================+
|
||||
// File name : example_1d_svgi.php
|
||||
// Version : 1.0.000
|
||||
// Begin : 2011-07-21
|
||||
// Last Update : 2013-03-19
|
||||
// Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com
|
||||
// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html)
|
||||
// -------------------------------------------------------------------
|
||||
// Copyright (C) 2009-2013 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 : Example for tcpdf_barcodes_1d.php class
|
||||
//
|
||||
//============================================================+
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Example for tcpdf_barcodes_1d.php class
|
||||
* @package com.tecnick.tcpdf
|
||||
* @author Nicola Asuni
|
||||
* @version 1.0.000
|
||||
*/
|
||||
|
||||
// include 1D barcode class (search for installation path)
|
||||
require_once(dirname(__FILE__).'/tcpdf_barcodes_1d_include.php');
|
||||
|
||||
// set the barcode content and type
|
||||
$barcodeobj = new TCPDFBarcode('http://www.tcpdf.org', 'C128');
|
||||
|
||||
// output the barcode as SVG inline code
|
||||
echo $barcodeobj->getBarcodeSVGcode(2, 40, 'black');
|
||||
|
||||
//============================================================+
|
||||
// END OF FILE
|
||||
//============================================================+
|
||||
@@ -0,0 +1,53 @@
|
||||
<?php
|
||||
//============================================================+
|
||||
// File name : example_2d_html.php
|
||||
// Version : 1.0.000
|
||||
// Begin : 2011-07-21
|
||||
// Last Update : 2013-03-19
|
||||
// Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com
|
||||
// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html)
|
||||
// -------------------------------------------------------------------
|
||||
// Copyright (C) 2009-2013 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 : Example for tcpdf_barcodes_2d.php class
|
||||
//
|
||||
//============================================================+
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Example for tcpdf_barcodes_2d.php class
|
||||
* @package com.tecnick.tcpdf
|
||||
* @author Nicola Asuni
|
||||
* @version 1.0.009
|
||||
*/
|
||||
|
||||
// include 2D barcode class (search for installation path)
|
||||
require_once(dirname(__FILE__).'/tcpdf_barcodes_2d_include.php');
|
||||
|
||||
// set the barcode content and type
|
||||
$barcodeobj = new TCPDF2DBarcode('http://www.tcpdf.org', 'DATAMATRIX');
|
||||
|
||||
// output the barcode as HTML object
|
||||
echo $barcodeobj->getBarcodeHTML(6, 6, 'black');
|
||||
|
||||
//============================================================+
|
||||
// END OF FILE
|
||||
//============================================================+
|
||||
@@ -0,0 +1,53 @@
|
||||
<?php
|
||||
//============================================================+
|
||||
// File name : example_2d_png.php
|
||||
// Version : 1.0.000
|
||||
// Begin : 2011-07-21
|
||||
// Last Update : 2013-03-19
|
||||
// Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com
|
||||
// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html)
|
||||
// -------------------------------------------------------------------
|
||||
// Copyright (C) 2009-2013 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 : Example for tcpdf_barcodes_2d.php class
|
||||
//
|
||||
//============================================================+
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Example for tcpdf_barcodes_2d.php class
|
||||
* @package com.tecnick.tcpdf
|
||||
* @author Nicola Asuni
|
||||
* @version 1.0.009
|
||||
*/
|
||||
|
||||
// include 2D barcode class (search for installation path)
|
||||
require_once(dirname(__FILE__).'/tcpdf_barcodes_2d_include.php');
|
||||
|
||||
// set the barcode content and type
|
||||
$barcodeobj = new TCPDF2DBarcode('http://www.tcpdf.org', 'DATAMATRIX');
|
||||
|
||||
// output the barcode as PNG image
|
||||
$barcodeobj->getBarcodePNG(6, 6, array(0,0,0));
|
||||
|
||||
//============================================================+
|
||||
// END OF FILE
|
||||
//============================================================+
|
||||
@@ -0,0 +1,53 @@
|
||||
<?php
|
||||
//============================================================+
|
||||
// File name : example_2d_svg.php
|
||||
// Version : 1.0.000
|
||||
// Begin : 2011-07-21
|
||||
// Last Update : 2013-03-19
|
||||
// Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com
|
||||
// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html)
|
||||
// -------------------------------------------------------------------
|
||||
// Copyright (C) 2009-2013 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 : Example for tcpdf_barcodes_2d.php class
|
||||
//
|
||||
//============================================================+
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Example for tcpdf_barcodes_2d.php class
|
||||
* @package com.tecnick.tcpdf
|
||||
* @author Nicola Asuni
|
||||
* @version 1.0.009
|
||||
*/
|
||||
|
||||
// include 2D barcode class (search for installation path)
|
||||
require_once(dirname(__FILE__).'/tcpdf_barcodes_2d_include.php');
|
||||
|
||||
// set the barcode content and type
|
||||
$barcodeobj = new TCPDF2DBarcode('http://www.tcpdf.org', 'DATAMATRIX');
|
||||
|
||||
// output the barcode as SVG image
|
||||
$barcodeobj->getBarcodeSVG(6, 6, 'black');
|
||||
|
||||
//============================================================+
|
||||
// END OF FILE
|
||||
//============================================================+
|
||||
@@ -0,0 +1,53 @@
|
||||
<?php
|
||||
//============================================================+
|
||||
// File name : example_2d_svgi.php
|
||||
// Version : 1.0.000
|
||||
// Begin : 2011-07-21
|
||||
// Last Update : 2013-03-19
|
||||
// Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com
|
||||
// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html)
|
||||
// -------------------------------------------------------------------
|
||||
// Copyright (C) 2009-2013 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 : Example for tcpdf_barcodes_2d.php class
|
||||
//
|
||||
//============================================================+
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Example for tcpdf_barcodes_2d.php class
|
||||
* @package com.tecnick.tcpdf
|
||||
* @author Nicola Asuni
|
||||
* @version 1.0.009
|
||||
*/
|
||||
|
||||
// include 2D barcode class (search for installation path)
|
||||
require_once(dirname(__FILE__).'/tcpdf_barcodes_2d_include.php');
|
||||
|
||||
// set the barcode content and type
|
||||
$barcodeobj = new TCPDF2DBarcode('http://www.tcpdf.org', 'DATAMATRIX');
|
||||
|
||||
// output the barcode as SVG inline code
|
||||
echo $barcodeobj->getBarcodeSVGcode(6, 6, 'black');
|
||||
|
||||
//============================================================+
|
||||
// END OF FILE
|
||||
//============================================================+
|
||||
@@ -0,0 +1,53 @@
|
||||
<?php
|
||||
//============================================================+
|
||||
// File name : example_2d_html.php
|
||||
// Version : 1.0.000
|
||||
// Begin : 2011-07-21
|
||||
// Last Update : 2013-03-19
|
||||
// Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com
|
||||
// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html)
|
||||
// -------------------------------------------------------------------
|
||||
// Copyright (C) 2009-2013 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 : Example for tcpdf_barcodes_2d.php class
|
||||
//
|
||||
//============================================================+
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Example for tcpdf_barcodes_2d.php class
|
||||
* @package com.tecnick.tcpdf
|
||||
* @author Nicola Asuni
|
||||
* @version 1.0.009
|
||||
*/
|
||||
|
||||
// include 2D barcode class (search for installation path)
|
||||
require_once(dirname(__FILE__).'/tcpdf_barcodes_2d_include.php');
|
||||
|
||||
// set the barcode content and type
|
||||
$barcodeobj = new TCPDF2DBarcode('http://www.tcpdf.org', 'PDF417');
|
||||
|
||||
// output the barcode as HTML object
|
||||
echo $barcodeobj->getBarcodeHTML(4, 4, 'black');
|
||||
|
||||
//============================================================+
|
||||
// END OF FILE
|
||||
//============================================================+
|
||||
@@ -0,0 +1,53 @@
|
||||
<?php
|
||||
//============================================================+
|
||||
// File name : example_2d_png.php
|
||||
// Version : 1.0.000
|
||||
// Begin : 2011-07-21
|
||||
// Last Update : 2013-03-19
|
||||
// Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com
|
||||
// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html)
|
||||
// -------------------------------------------------------------------
|
||||
// Copyright (C) 2009-2013 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 : Example for tcpdf_barcodes_2d.php class
|
||||
//
|
||||
//============================================================+
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Example for tcpdf_barcodes_2d.php class
|
||||
* @package com.tecnick.tcpdf
|
||||
* @author Nicola Asuni
|
||||
* @version 1.0.009
|
||||
*/
|
||||
|
||||
// include 2D barcode class (search for installation path)
|
||||
require_once(dirname(__FILE__).'/tcpdf_barcodes_2d_include.php');
|
||||
|
||||
// set the barcode content and type
|
||||
$barcodeobj = new TCPDF2DBarcode('http://www.tcpdf.org', 'PDF417');
|
||||
|
||||
// output the barcode as PNG image
|
||||
$barcodeobj->getBarcodePNG(4, 4, array(0,0,0));
|
||||
|
||||
//============================================================+
|
||||
// END OF FILE
|
||||
//============================================================+
|
||||
@@ -0,0 +1,53 @@
|
||||
<?php
|
||||
//============================================================+
|
||||
// File name : example_2d_svg.php
|
||||
// Version : 1.0.000
|
||||
// Begin : 2011-07-21
|
||||
// Last Update : 2013-03-19
|
||||
// Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com
|
||||
// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html)
|
||||
// -------------------------------------------------------------------
|
||||
// Copyright (C) 2009-2013 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 : Example for tcpdf_barcodes_2d.php class
|
||||
//
|
||||
//============================================================+
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Example for tcpdf_barcodes_2d.php class
|
||||
* @package com.tecnick.tcpdf
|
||||
* @author Nicola Asuni
|
||||
* @version 1.0.009
|
||||
*/
|
||||
|
||||
// include 2D barcode class (search for installation path)
|
||||
require_once(dirname(__FILE__).'/tcpdf_barcodes_2d_include.php');
|
||||
|
||||
// set the barcode content and type
|
||||
$barcodeobj = new TCPDF2DBarcode('http://www.tcpdf.org', 'PDF417');
|
||||
|
||||
// output the barcode as SVG image
|
||||
$barcodeobj->getBarcodeSVG(4, 4, 'black');
|
||||
|
||||
//============================================================+
|
||||
// END OF FILE
|
||||
//============================================================+
|
||||
@@ -0,0 +1,53 @@
|
||||
<?php
|
||||
//============================================================+
|
||||
// File name : example_2d_svgi.php
|
||||
// Version : 1.0.000
|
||||
// Begin : 2011-07-21
|
||||
// Last Update : 2013-03-19
|
||||
// Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com
|
||||
// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html)
|
||||
// -------------------------------------------------------------------
|
||||
// Copyright (C) 2009-2013 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 : Example for tcpdf_barcodes_2d.php class
|
||||
//
|
||||
//============================================================+
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Example for tcpdf_barcodes_2d.php class
|
||||
* @package com.tecnick.tcpdf
|
||||
* @author Nicola Asuni
|
||||
* @version 1.0.009
|
||||
*/
|
||||
|
||||
// include 2D barcode class (search for installation path)
|
||||
require_once(dirname(__FILE__).'/tcpdf_barcodes_2d_include.php');
|
||||
|
||||
// set the barcode content and type
|
||||
$barcodeobj = new TCPDF2DBarcode('http://www.tcpdf.org', 'PDF417');
|
||||
|
||||
// output the barcode as SVG inline code
|
||||
echo $barcodeobj->getBarcodeSVGcode(4, 4, 'black');
|
||||
|
||||
//============================================================+
|
||||
// END OF FILE
|
||||
//============================================================+
|
||||
@@ -0,0 +1,53 @@
|
||||
<?php
|
||||
//============================================================+
|
||||
// File name : example_2d_html.php
|
||||
// Version : 1.0.000
|
||||
// Begin : 2011-07-21
|
||||
// Last Update : 2013-03-19
|
||||
// Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com
|
||||
// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html)
|
||||
// -------------------------------------------------------------------
|
||||
// Copyright (C) 2009-2013 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 : Example for tcpdf_barcodes_2d.php class
|
||||
//
|
||||
//============================================================+
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Example for tcpdf_barcodes_2d.php class
|
||||
* @package com.tecnick.tcpdf
|
||||
* @author Nicola Asuni
|
||||
* @version 1.0.009
|
||||
*/
|
||||
|
||||
// include 2D barcode class (search for installation path)
|
||||
require_once(dirname(__FILE__).'/tcpdf_barcodes_2d_include.php');
|
||||
|
||||
// set the barcode content and type
|
||||
$barcodeobj = new TCPDF2DBarcode('http://www.tcpdf.org', 'QRCODE,H');
|
||||
|
||||
// output the barcode as HTML object
|
||||
echo $barcodeobj->getBarcodeHTML(6, 6, 'black');
|
||||
|
||||
//============================================================+
|
||||
// END OF FILE
|
||||
//============================================================+
|
||||
@@ -0,0 +1,53 @@
|
||||
<?php
|
||||
//============================================================+
|
||||
// File name : example_2d_png.php
|
||||
// Version : 1.0.000
|
||||
// Begin : 2011-07-21
|
||||
// Last Update : 2013-03-19
|
||||
// Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com
|
||||
// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html)
|
||||
// -------------------------------------------------------------------
|
||||
// Copyright (C) 2009-2013 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 : Example for tcpdf_barcodes_2d.php class
|
||||
//
|
||||
//============================================================+
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Example for tcpdf_barcodes_2d.php class
|
||||
* @package com.tecnick.tcpdf
|
||||
* @author Nicola Asuni
|
||||
* @version 1.0.009
|
||||
*/
|
||||
|
||||
// include 2D barcode class (search for installation path)
|
||||
require_once(dirname(__FILE__).'/tcpdf_barcodes_2d_include.php');
|
||||
|
||||
// set the barcode content and type
|
||||
$barcodeobj = new TCPDF2DBarcode('http://www.tcpdf.org', 'QRCODE,H');
|
||||
|
||||
// output the barcode as PNG image
|
||||
$barcodeobj->getBarcodePNG(6, 6, array(0,0,0));
|
||||
|
||||
//============================================================+
|
||||
// END OF FILE
|
||||
//============================================================+
|
||||
@@ -0,0 +1,53 @@
|
||||
<?php
|
||||
//============================================================+
|
||||
// File name : example_2d_svg.php
|
||||
// Version : 1.0.000
|
||||
// Begin : 2011-07-21
|
||||
// Last Update : 2013-03-19
|
||||
// Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com
|
||||
// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html)
|
||||
// -------------------------------------------------------------------
|
||||
// Copyright (C) 2009-2013 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 : Example for tcpdf_barcodes_2d.php class
|
||||
//
|
||||
//============================================================+
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Example for tcpdf_barcodes_2d.php class
|
||||
* @package com.tecnick.tcpdf
|
||||
* @author Nicola Asuni
|
||||
* @version 1.0.009
|
||||
*/
|
||||
|
||||
// include 2D barcode class (search for installation path)
|
||||
require_once(dirname(__FILE__).'/tcpdf_barcodes_2d_include.php');
|
||||
|
||||
// set the barcode content and type
|
||||
$barcodeobj = new TCPDF2DBarcode('http://www.tcpdf.org', 'QRCODE,H');
|
||||
|
||||
// output the barcode as SVG image
|
||||
$barcodeobj->getBarcodeSVG(6, 6, 'black');
|
||||
|
||||
//============================================================+
|
||||
// END OF FILE
|
||||
//============================================================+
|
||||
@@ -0,0 +1,53 @@
|
||||
<?php
|
||||
//============================================================+
|
||||
// File name : example_2d_svgi.php
|
||||
// Version : 1.0.000
|
||||
// Begin : 2011-07-21
|
||||
// Last Update : 2013-03-19
|
||||
// Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com
|
||||
// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html)
|
||||
// -------------------------------------------------------------------
|
||||
// Copyright (C) 2009-2013 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 : Example for tcpdf_barcodes_2d.php class
|
||||
//
|
||||
//============================================================+
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Example for tcpdf_barcodes_2d.php class
|
||||
* @package com.tecnick.tcpdf
|
||||
* @author Nicola Asuni
|
||||
* @version 1.0.009
|
||||
*/
|
||||
|
||||
// include 2D barcode class (search for installation path)
|
||||
require_once(dirname(__FILE__).'/tcpdf_barcodes_2d_include.php');
|
||||
|
||||
// set the barcode content and type
|
||||
$barcodeobj = new TCPDF2DBarcode('http://www.tcpdf.org', 'QRCODE,H');
|
||||
|
||||
// output the barcode as SVG inline code
|
||||
echo $barcodeobj->getBarcodeSVGcode(6, 6, 'black');
|
||||
|
||||
//============================================================+
|
||||
// END OF FILE
|
||||
//============================================================+
|
||||
@@ -0,0 +1,46 @@
|
||||
<?php
|
||||
//============================================================+
|
||||
// File name : tcpdf_barcodes_1d_include.php
|
||||
// Begin : 2013-05-19
|
||||
// Last Update : 2013-05-19
|
||||
//
|
||||
// Description : Search and include the TCPDF Barcode 1D class.
|
||||
//
|
||||
// Author: Nicola Asuni
|
||||
//
|
||||
// (c) Copyright:
|
||||
// Nicola Asuni
|
||||
// Tecnick.com LTD
|
||||
// www.tecnick.com
|
||||
// info@tecnick.com
|
||||
//============================================================+
|
||||
|
||||
/**
|
||||
* Search and include the TCPDF Barcode 1D class.
|
||||
* @package com.tecnick.tcpdf
|
||||
* @abstract TCPDF - Include the main class.
|
||||
* @author Nicola Asuni
|
||||
* @since 2013-05-19
|
||||
*/
|
||||
|
||||
// Include the TCPDF 1D barcode class (search the class on the following directories).
|
||||
$tcpdf_barcodes_1d_include_dirs = array(
|
||||
realpath(dirname(__FILE__) . '/../../tcpdf_barcodes_1d.php'),// True source file
|
||||
realpath('../../tcpdf_barcodes_1d.php'),// Relative from $PWD
|
||||
'/usr/share/php/tcpdf/tcpdf_barcodes_1d.php',
|
||||
'/usr/share/tcpdf/tcpdf_barcodes_1d.php',
|
||||
'/usr/share/php-tcpdf/tcpdf_barcodes_1d.php',
|
||||
'/var/www/tcpdf/tcpdf_barcodes_1d.php',
|
||||
'/var/www/html/tcpdf/tcpdf_barcodes_1d.php',
|
||||
'/usr/local/apache2/htdocs/tcpdf/tcpdf_barcodes_1d.php'
|
||||
);
|
||||
foreach ($tcpdf_barcodes_1d_include_dirs as $tcpdf_barcodes_1d_include_path) {
|
||||
if (@file_exists($tcpdf_barcodes_1d_include_path)) {
|
||||
require_once($tcpdf_barcodes_1d_include_path);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
//============================================================+
|
||||
// END OF FILE
|
||||
//============================================================+
|
||||
@@ -0,0 +1,46 @@
|
||||
<?php
|
||||
//============================================================+
|
||||
// File name : tcpdf_barcodes_2d_include.php
|
||||
// Begin : 2013-05-19
|
||||
// Last Update : 2013-05-19
|
||||
//
|
||||
// Description : Search and include the TCPDF Barcode 1D class.
|
||||
//
|
||||
// Author: Nicola Asuni
|
||||
//
|
||||
// (c) Copyright:
|
||||
// Nicola Asuni
|
||||
// Tecnick.com LTD
|
||||
// www.tecnick.com
|
||||
// info@tecnick.com
|
||||
//============================================================+
|
||||
|
||||
/**
|
||||
* Search and include the TCPDF Barcode 2D class.
|
||||
* @package com.tecnick.tcpdf
|
||||
* @abstract TCPDF - Include the main class.
|
||||
* @author Nicola Asuni
|
||||
* @since 2013-05-19
|
||||
*/
|
||||
|
||||
// Include the TCPDF 2D barcode class (search the class on the following directories).
|
||||
$tcpdf_barcodes_2d_include_dirs = array(
|
||||
realpath(dirname(__FILE__) . '/../../tcpdf_barcodes_2d.php'),// True source file
|
||||
realpath('../../tcpdf_barcodes_2d.php'),// Relative from $PWD
|
||||
'/usr/share/php/tcpdf/tcpdf_barcodes_2d.php',
|
||||
'/usr/share/tcpdf/tcpdf_barcodes_2d.php',
|
||||
'/usr/share/php-tcpdf/tcpdf_barcodes_2d.php',
|
||||
'/var/www/tcpdf/tcpdf_barcodes_2d.php',
|
||||
'/var/www/html/tcpdf/tcpdf_barcodes_2d.php',
|
||||
'/usr/local/apache2/htdocs/tcpdf/tcpdf_barcodes_2d.php'
|
||||
);
|
||||
foreach ($tcpdf_barcodes_2d_include_dirs as $tcpdf_barcodes_2d_include_path) {
|
||||
if (@file_exists($tcpdf_barcodes_2d_include_path)) {
|
||||
require_once($tcpdf_barcodes_2d_include_path);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
//============================================================+
|
||||
// END OF FILE
|
||||
//============================================================+
|
||||
222
lib/combodo/tcpdf/examples/config/tcpdf_config_alt.php
Normal file
222
lib/combodo/tcpdf/examples/config/tcpdf_config_alt.php
Normal file
@@ -0,0 +1,222 @@
|
||||
<?php
|
||||
//============================================================+
|
||||
// File name : tcpdf_config.php
|
||||
// Begin : 2004-06-11
|
||||
// Last Update : 2013-05-16
|
||||
//
|
||||
// Description : Example of alternative configuration file for TCPDF.
|
||||
// Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com
|
||||
// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html)
|
||||
// -------------------------------------------------------------------
|
||||
// Copyright (C) 2004-2013 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.
|
||||
//============================================================+
|
||||
|
||||
/**
|
||||
* Example of alternative configuration file for TCPDF.
|
||||
* @author Nicola Asuni
|
||||
* @package com.tecnick.tcpdf
|
||||
* @version 4.9.005
|
||||
* @since 2004-10-27
|
||||
*/
|
||||
|
||||
/**
|
||||
* Define the following constant to ignore the default configuration file.
|
||||
*/
|
||||
define ('K_TCPDF_EXTERNAL_CONFIG', true);
|
||||
|
||||
/**
|
||||
* Installation path (/var/www/tcpdf/).
|
||||
* By default it is automatically calculated but you can also set it as a fixed string to improve performances.
|
||||
*/
|
||||
//define ('K_PATH_MAIN', '');
|
||||
|
||||
/**
|
||||
* URL path to tcpdf installation folder (http://localhost/tcpdf/).
|
||||
* By default it is automatically set but you can also set it as a fixed string to improve performances.
|
||||
*/
|
||||
//define ('K_PATH_URL', '');
|
||||
|
||||
/**
|
||||
* Path for PDF fonts.
|
||||
* By default it is automatically set but you can also set it as a fixed string to improve performances.
|
||||
*/
|
||||
//define ('K_PATH_FONTS', K_PATH_MAIN.'fonts/');
|
||||
|
||||
/**
|
||||
* Default images directory.
|
||||
* By default it is automatically set but you can also set it as a fixed string to improve performances.
|
||||
*/
|
||||
define ('K_PATH_IMAGES', dirname(__FILE__).'/../images/');
|
||||
|
||||
/**
|
||||
* Deafult image logo used be the default Header() method.
|
||||
* Please set here your own logo or an empty string to disable it.
|
||||
*/
|
||||
define ('PDF_HEADER_LOGO', 'tcpdf_logo.jpg');
|
||||
|
||||
/**
|
||||
* Header logo image width in user units.
|
||||
*/
|
||||
define ('PDF_HEADER_LOGO_WIDTH', 30);
|
||||
|
||||
/**
|
||||
* Cache directory for temporary files (full path).
|
||||
*/
|
||||
define ('K_PATH_CACHE', sys_get_temp_dir().'/');
|
||||
|
||||
/**
|
||||
* Generic name for a blank image.
|
||||
*/
|
||||
define ('K_BLANK_IMAGE', '_blank.png');
|
||||
|
||||
/**
|
||||
* Page format.
|
||||
*/
|
||||
define ('PDF_PAGE_FORMAT', 'A4');
|
||||
|
||||
/**
|
||||
* Page orientation (P=portrait, L=landscape).
|
||||
*/
|
||||
define ('PDF_PAGE_ORIENTATION', 'P');
|
||||
|
||||
/**
|
||||
* Document creator.
|
||||
*/
|
||||
define ('PDF_CREATOR', 'TCPDF');
|
||||
|
||||
/**
|
||||
* Document author.
|
||||
*/
|
||||
define ('PDF_AUTHOR', 'TCPDF');
|
||||
|
||||
/**
|
||||
* Header title.
|
||||
*/
|
||||
define ('PDF_HEADER_TITLE', 'TCPDF Example');
|
||||
|
||||
/**
|
||||
* Header description string.
|
||||
*/
|
||||
define ('PDF_HEADER_STRING', "by Nicola Asuni - Tecnick.com\nwww.tcpdf.org");
|
||||
|
||||
/**
|
||||
* Document unit of measure [pt=point, mm=millimeter, cm=centimeter, in=inch].
|
||||
*/
|
||||
define ('PDF_UNIT', 'mm');
|
||||
|
||||
/**
|
||||
* Header margin.
|
||||
*/
|
||||
define ('PDF_MARGIN_HEADER', 5);
|
||||
|
||||
/**
|
||||
* Footer margin.
|
||||
*/
|
||||
define ('PDF_MARGIN_FOOTER', 10);
|
||||
|
||||
/**
|
||||
* Top margin.
|
||||
*/
|
||||
define ('PDF_MARGIN_TOP', 27);
|
||||
|
||||
/**
|
||||
* Bottom margin.
|
||||
*/
|
||||
define ('PDF_MARGIN_BOTTOM', 25);
|
||||
|
||||
/**
|
||||
* Left margin.
|
||||
*/
|
||||
define ('PDF_MARGIN_LEFT', 15);
|
||||
|
||||
/**
|
||||
* Right margin.
|
||||
*/
|
||||
define ('PDF_MARGIN_RIGHT', 15);
|
||||
|
||||
/**
|
||||
* Default main font name.
|
||||
*/
|
||||
define ('PDF_FONT_NAME_MAIN', 'helvetica');
|
||||
|
||||
/**
|
||||
* Default main font size.
|
||||
*/
|
||||
define ('PDF_FONT_SIZE_MAIN', 10);
|
||||
|
||||
/**
|
||||
* Default data font name.
|
||||
*/
|
||||
define ('PDF_FONT_NAME_DATA', 'helvetica');
|
||||
|
||||
/**
|
||||
* Default data font size.
|
||||
*/
|
||||
define ('PDF_FONT_SIZE_DATA', 8);
|
||||
|
||||
/**
|
||||
* Default monospaced font name.
|
||||
*/
|
||||
define ('PDF_FONT_MONOSPACED', 'courier');
|
||||
|
||||
/**
|
||||
* Ratio used to adjust the conversion of pixels to user units.
|
||||
*/
|
||||
define ('PDF_IMAGE_SCALE_RATIO', 1.25);
|
||||
|
||||
/**
|
||||
* Magnification factor for titles.
|
||||
*/
|
||||
define('HEAD_MAGNIFICATION', 1.1);
|
||||
|
||||
/**
|
||||
* Height of cell respect font height.
|
||||
*/
|
||||
define('K_CELL_HEIGHT_RATIO', 1.25);
|
||||
|
||||
/**
|
||||
* Title magnification respect main font size.
|
||||
*/
|
||||
define('K_TITLE_MAGNIFICATION', 1.3);
|
||||
|
||||
/**
|
||||
* Reduction factor for small font.
|
||||
*/
|
||||
define('K_SMALL_RATIO', 2/3);
|
||||
|
||||
/**
|
||||
* Set to true to enable the special procedure used to avoid the overlappind of symbols on Thai language.
|
||||
*/
|
||||
define('K_THAI_TOPCHARS', true);
|
||||
|
||||
/**
|
||||
* If true allows to call TCPDF methods using HTML syntax
|
||||
* IMPORTANT: For security reason, disable this feature if you are printing user HTML content.
|
||||
*/
|
||||
define('K_TCPDF_CALLS_IN_HTML', true);
|
||||
|
||||
/**
|
||||
* If true and PHP version is greater than 5, then the Error() method throw new exception instead of terminating the execution.
|
||||
*/
|
||||
define('K_TCPDF_THROW_EXCEPTION_ERROR', false);
|
||||
|
||||
//============================================================+
|
||||
// END OF FILE
|
||||
//============================================================+
|
||||
40
lib/combodo/tcpdf/examples/data/cert/tcpdf.crt
Normal file
40
lib/combodo/tcpdf/examples/data/cert/tcpdf.crt
Normal file
@@ -0,0 +1,40 @@
|
||||
Bag Attributes
|
||||
localKeyID: 7B AB 1B 7A BE 4C 85 C0 1A A6 DC 59 3F 79 48 C3 93 38 68 9C
|
||||
subject=/CN=TCPDF DEMO/O=TCPDF/OU=DEMO/emailAddress=you@example.com/C=IT
|
||||
issuer=/CN=TCPDF DEMO/O=TCPDF/OU=DEMO/emailAddress=you@example.com/C=IT
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIC1TCCAj6gAwIBAgIKkehOL/XGkB5cjjANBgkqhkiG9w0BAQUFADBhMRMwEQYD
|
||||
VQQDEwpUQ1BERiBERU1PMQ4wDAYDVQQKEwVUQ1BERjENMAsGA1UECxMEREVNTzEe
|
||||
MBwGCSqGSIb3DQEJARYPeW91QGV4YW1wbGUuY29tMQswCQYDVQQGEwJJVDAeFw0w
|
||||
OTA4MjExMjU0NDhaFw0xNDA4MjExMjU0NDhaMGExEzARBgNVBAMTClRDUERGIERF
|
||||
TU8xDjAMBgNVBAoTBVRDUERGMQ0wCwYDVQQLEwRERU1PMR4wHAYJKoZIhvcNAQkB
|
||||
Fg95b3VAZXhhbXBsZS5jb20xCzAJBgNVBAYTAklUMIGfMA0GCSqGSIb3DQEBAQUA
|
||||
A4GNADCBiQKBgQDAqIL0uGKmTR98Lxx2vEEE1OGKkMXFo0JViitALe7Onhxxqx0H
|
||||
XMUDKF5mvEVu1rcvh7/oAnAfrCuEpL/up3u1mQCgBE7WXBnFFE/AE3jCksh9OkS0
|
||||
Z0Xj9woN5bzxRDsGoPiOu/4xzk5qSEXt8jf2Ep90QuNkqLIRT4swAzpDbwIDAQAB
|
||||
o4GTMIGQMDcGA1UdEgQwMC6gEQYDVQQDDApUQ1BERiBERU1PoAwGA1UECgwFVENQ
|
||||
REagCwYDVQQLDARERU1PMDcGA1UdEQQwMC6gEQYDVQQDDApUQ1BERiBERU1PoAwG
|
||||
A1UECgwFVENQREagCwYDVQQLDARERU1PMA8GCSqGSIb3LwEBCgQCBQAwCwYDVR0P
|
||||
BAQDAgSQMA0GCSqGSIb3DQEBBQUAA4GBAEhTQfqX3ZNdHmpTLDbIj22RHXii2roE
|
||||
OavCbu9WsHoWpva0qSd+yIoD594VHvYAd29sfzDfiN+7W0aiZfDhq5jpaSQMVlN8
|
||||
RGYMupbHY/+a9Gz1wqxnR84mlTtIkZVRYAhsfPwy6M1BEjdMqfdh9h40JIdkdjtb
|
||||
8faTCfXPePWQ
|
||||
-----END CERTIFICATE-----
|
||||
Bag Attributes
|
||||
localKeyID: 7B AB 1B 7A BE 4C 85 C0 1A A6 DC 59 3F 79 48 C3 93 38 68 9C
|
||||
Key Attributes: <No Attributes>
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIICXQIBAAKBgQDAqIL0uGKmTR98Lxx2vEEE1OGKkMXFo0JViitALe7Onhxxqx0H
|
||||
XMUDKF5mvEVu1rcvh7/oAnAfrCuEpL/up3u1mQCgBE7WXBnFFE/AE3jCksh9OkS0
|
||||
Z0Xj9woN5bzxRDsGoPiOu/4xzk5qSEXt8jf2Ep90QuNkqLIRT4swAzpDbwIDAQAB
|
||||
AoGAXc+wNMmz/5Z+RlIKYia44klmqbplEx+0JULqXI4BQsrqvs67i+I4bJkznoL+
|
||||
rEIRYSuQ3sCRKFsFtckjTGpxadnxkB+uwGKc6pZChv99BFX6HFR4hgBlT/BBRAQA
|
||||
hMDlM2JIRr4S4SMVXR7MHwGMUf9mUeanGLR3ZWtU3aXJrIECQQD7OaYUVYNEEnM9
|
||||
uXyjm22CuHyqyEf5gb13sK0uQty67547yJTMUQZd/sQc9KGwhzBbhrob2LO2jAhh
|
||||
S+f+NSRnAkEAxFHm3fMI5RgXmswxlGm4QW07a/Ueo7ZJG6xjTkFXluJhd+XHswRD
|
||||
dQIO3zG9nGjNUoeMrPhXhPvKqFc2F9RDuQJAQBEGin74N77gxqfr4ik79y8nE8J5
|
||||
oGZ2s/RJZdfFRKLg3mwbjjNHhWb4Ck5UgZkoOt8TzRApXG8/n9hktE5HFwJBALur
|
||||
M5AueO1Pl5kB489lNJ9OxUQRYUXMxpxuscuoCQwSwmv0O2+0/qtG2WKhUQnI4aYo
|
||||
L+FV0YwtivBb1jj3T/kCQQDIWOxq8eRowdaMzvJpRUHFgMcf1AVZExKyrugwYOWd
|
||||
KNsDxC4KaQOsPt8iT/Ulo4g/MJC0HolCOhWibKmR9Ayl
|
||||
-----END RSA PRIVATE KEY-----
|
||||
BIN
lib/combodo/tcpdf/examples/data/cert/tcpdf.fdf
Normal file
BIN
lib/combodo/tcpdf/examples/data/cert/tcpdf.fdf
Normal file
Binary file not shown.
BIN
lib/combodo/tcpdf/examples/data/cert/tcpdf.p12
Normal file
BIN
lib/combodo/tcpdf/examples/data/cert/tcpdf.p12
Normal file
Binary file not shown.
19
lib/combodo/tcpdf/examples/data/chapter_demo_1.txt
Normal file
19
lib/combodo/tcpdf/examples/data/chapter_demo_1.txt
Normal file
@@ -0,0 +1,19 @@
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. In sed imperdiet lectus. Phasellus quis velit velit, non condimentum quam. Sed neque urna, ultrices ac volutpat vel, laoreet vitae augue. Sed vel velit erat. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Cras eget velit nulla, eu sagittis elit. Nunc ac arcu est, in lobortis tellus. Praesent condimentum rhoncus sodales. In hac habitasse platea dictumst. Proin porta eros pharetra enim tincidunt dignissim nec vel dolor. Cras sapien elit, ornare ac dignissim eu, ultricies ac eros. Maecenas augue magna, ultrices a congue in, mollis eu nulla. Nunc venenatis massa at est eleifend faucibus. Vivamus sed risus lectus, nec interdum nunc.
|
||||
|
||||
Fusce et felis vitae diam lobortis sollicitudin. Aenean tincidunt accumsan nisi, id vehicula quam laoreet elementum. Phasellus egestas interdum erat, et viverra ipsum ultricies ac. Praesent sagittis augue at augue volutpat eleifend. Cras nec orci neque. Mauris bibendum posuere blandit. Donec feugiat mollis dui sit amet pellentesque. Sed a enim justo. Donec tincidunt, nisl eget elementum aliquam, odio ipsum ultrices quam, eu porttitor ligula urna at lorem. Donec varius, eros et convallis laoreet, ligula tellus consequat felis, ut ornare metus tellus sodales velit. Duis sed diam ante. Ut rutrum malesuada massa, vitae consectetur ipsum rhoncus sed. Suspendisse potenti. Pellentesque a congue massa.
|
||||
|
||||
Integer non sem eget neque mattis accumsan. Maecenas eu nisl mauris, sit amet interdum ipsum. In pharetra erat vel lectus venenatis elementum. Nulla non elit ligula, sit amet mollis urna. Morbi ut gravida est. Mauris tincidunt sem et turpis molestie malesuada. Curabitur vel nulla risus, sed mollis erat. Suspendisse vehicula accumsan purus nec varius. Donec fermentum lorem id felis sodales dictum. Quisque et dolor ipsum. Nam luctus consectetur dui vitae fermentum. Curabitur sodales consequat augue, id ultricies augue tempor ac. Aliquam ac magna id ipsum vehicula bibendum. Sed elementum congue tristique. Phasellus vel lorem eu lectus porta sodales. Etiam neque tortor, sagittis id pharetra quis, laoreet vel arcu.
|
||||
|
||||
Cras quam mi, ornare laoreet laoreet vel, vehicula at lacus. Maecenas a lacus accumsan augue convallis sagittis sed quis odio. Morbi sit amet turpis diam, dictum convallis urna. Cras eget interdum augue. Cras eu nisi sit amet dolor faucibus porttitor. Suspendisse potenti. Nunc vitae dolor risus, at cursus libero. Suspendisse bibendum tellus non nibh hendrerit tristique. Mauris eget orci elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam porta libero non ante laoreet semper. Proin volutpat sodales mi, ac fermentum erat sagittis in. Vivamus at viverra felis. Ut pretium facilisis ante et pharetra.
|
||||
|
||||
Nulla facilisi. Cras varius quam eget libero aliquam vitae tincidunt leo rutrum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Pellentesque a nisl massa, quis pretium urna. Proin vel porttitor tortor. Cras rhoncus congue velit in bibendum. Donec pharetra semper augue id lacinia. Quisque magna quam, hendrerit eu aliquam et, pellentesque ut tellus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Maecenas nulla quam, rutrum eu feugiat at, elementum eu libero. Maecenas ullamcorper leo et turpis rutrum ac laoreet eros faucibus. Phasellus condimentum lorem quis neque imperdiet quis molestie enim iaculis. Phasellus risus est, vestibulum ut convallis ultrices, dignissim nec erat. Etiam congue lobortis laoreet. Nulla ut neque sed velit dapibus semper. Quisque nec dolor id nibh eleifend iaculis. Vivamus vitae fermentum odio. Etiam malesuada quam in nulla aliquam sed convallis dui feugiat.
|
||||
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. In sed imperdiet lectus. Phasellus quis velit velit, non condimentum quam. Sed neque urna, ultrices ac volutpat vel, laoreet vitae augue. Sed vel velit erat. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Cras eget velit nulla, eu sagittis elit. Nunc ac arcu est, in lobortis tellus. Praesent condimentum rhoncus sodales. In hac habitasse platea dictumst. Proin porta eros pharetra enim tincidunt dignissim nec vel dolor. Cras sapien elit, ornare ac dignissim eu, ultricies ac eros. Maecenas augue magna, ultrices a congue in, mollis eu nulla. Nunc venenatis massa at est eleifend faucibus. Vivamus sed risus lectus, nec interdum nunc.
|
||||
|
||||
Fusce et felis vitae diam lobortis sollicitudin. Aenean tincidunt accumsan nisi, id vehicula quam laoreet elementum. Phasellus egestas interdum erat, et viverra ipsum ultricies ac. Praesent sagittis augue at augue volutpat eleifend. Cras nec orci neque. Mauris bibendum posuere blandit. Donec feugiat mollis dui sit amet pellentesque. Sed a enim justo. Donec tincidunt, nisl eget elementum aliquam, odio ipsum ultrices quam, eu porttitor ligula urna at lorem. Donec varius, eros et convallis laoreet, ligula tellus consequat felis, ut ornare metus tellus sodales velit. Duis sed diam ante. Ut rutrum malesuada massa, vitae consectetur ipsum rhoncus sed. Suspendisse potenti. Pellentesque a congue massa.
|
||||
|
||||
Integer non sem eget neque mattis accumsan. Maecenas eu nisl mauris, sit amet interdum ipsum. In pharetra erat vel lectus venenatis elementum. Nulla non elit ligula, sit amet mollis urna. Morbi ut gravida est. Mauris tincidunt sem et turpis molestie malesuada. Curabitur vel nulla risus, sed mollis erat. Suspendisse vehicula accumsan purus nec varius. Donec fermentum lorem id felis sodales dictum. Quisque et dolor ipsum. Nam luctus consectetur dui vitae fermentum. Curabitur sodales consequat augue, id ultricies augue tempor ac. Aliquam ac magna id ipsum vehicula bibendum. Sed elementum congue tristique. Phasellus vel lorem eu lectus porta sodales. Etiam neque tortor, sagittis id pharetra quis, laoreet vel arcu.
|
||||
|
||||
Cras quam mi, ornare laoreet laoreet vel, vehicula at lacus. Maecenas a lacus accumsan augue convallis sagittis sed quis odio. Morbi sit amet turpis diam, dictum convallis urna. Cras eget interdum augue. Cras eu nisi sit amet dolor faucibus porttitor. Suspendisse potenti. Nunc vitae dolor risus, at cursus libero. Suspendisse bibendum tellus non nibh hendrerit tristique. Mauris eget orci elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam porta libero non ante laoreet semper. Proin volutpat sodales mi, ac fermentum erat sagittis in. Vivamus at viverra felis. Ut pretium facilisis ante et pharetra.
|
||||
|
||||
Nulla facilisi. Cras varius quam eget libero aliquam vitae tincidunt leo rutrum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Pellentesque a nisl massa, quis pretium urna. Proin vel porttitor tortor. Cras rhoncus congue velit in bibendum. Donec pharetra semper augue id lacinia. Quisque magna quam, hendrerit eu aliquam et, pellentesque ut tellus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Maecenas nulla quam, rutrum eu feugiat at, elementum eu libero. Maecenas ullamcorper leo et turpis rutrum ac laoreet eros faucibus. Phasellus condimentum lorem quis neque imperdiet quis molestie enim iaculis. Phasellus risus est, vestibulum ut convallis ultrices, dignissim nec erat. Etiam congue lobortis laoreet. Nulla ut neque sed velit dapibus semper. Quisque nec dolor id nibh eleifend iaculis. Vivamus vitae fermentum odio. Etiam malesuada quam in nulla aliquam sed convallis dui feugiat.
|
||||
23
lib/combodo/tcpdf/examples/data/chapter_demo_2.txt
Normal file
23
lib/combodo/tcpdf/examples/data/chapter_demo_2.txt
Normal file
@@ -0,0 +1,23 @@
|
||||
<p><strong>Lorem ipsum</strong> dolor sit amet, consectetur adipiscing elit. In sed imperdiet lectus. Phasellus quis velit velit, non condimentum quam. Sed neque urna, ultrices ac volutpat vel, laoreet vitae augue. Sed vel velit erat. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Cras eget velit nulla, eu sagittis elit. Nunc ac arcu est, in lobortis tellus. Praesent condimentum rhoncus sodales. In hac habitasse platea dictumst. Proin porta eros pharetra enim tincidunt dignissim nec vel dolor. Cras sapien elit, ornare ac dignissim eu, ultricies ac eros. Maecenas augue magna, ultrices a congue in, mollis eu nulla. Nunc venenatis massa at est eleifend faucibus. Vivamus sed risus lectus, nec interdum nunc.</p>
|
||||
|
||||
<img src="images/image_demo.jpg" width="54mm" height="80mm" />
|
||||
|
||||
<p style="background-color:yellow;"><i>Fusce et felis vitae diam lobortis sollicitudin. Aenean tincidunt accumsan nisi, id vehicula quam laoreet elementum. Phasellus egestas interdum erat, et viverra ipsum ultricies ac. Praesent sagittis augue at augue volutpat eleifend. Cras nec orci neque. Mauris bibendum posuere blandit. Donec feugiat mollis dui sit amet pellentesque. Sed a enim justo. Donec tincidunt, nisl eget elementum aliquam, odio ipsum ultrices quam, eu porttitor ligula urna at lorem. Donec varius, eros et convallis laoreet, ligula tellus consequat felis, ut ornare metus tellus sodales velit. Duis sed diam ante. Ut rutrum malesuada massa, vitae consectetur ipsum rhoncus sed. Suspendisse potenti. Pellentesque a congue massa.</i></p>
|
||||
|
||||
<p>Integer non sem eget neque mattis accumsan. Maecenas eu nisl mauris, sit amet interdum ipsum. In pharetra erat vel lectus venenatis elementum. Nulla non elit ligula, sit amet mollis urna. Morbi ut gravida est. Mauris tincidunt sem et turpis molestie malesuada. Curabitur vel nulla risus, sed mollis erat. Suspendisse vehicula accumsan purus nec varius. Donec fermentum lorem id felis sodales dictum. Quisque et dolor ipsum. Nam luctus consectetur dui vitae fermentum. Curabitur sodales consequat augue, id ultricies augue tempor ac. Aliquam ac magna id ipsum vehicula bibendum. Sed elementum congue tristique. Phasellus vel lorem eu lectus porta sodales. Etiam neque tortor, sagittis id pharetra quis, laoreet vel arcu.</p>
|
||||
|
||||
<p style="color:navy;">Cras quam mi, ornare laoreet laoreet vel, vehicula at lacus. Maecenas a lacus accumsan augue convallis sagittis sed quis odio. Morbi sit amet turpis diam, dictum convallis urna. Cras eget interdum augue. Cras eu nisi sit amet dolor faucibus porttitor. Suspendisse potenti. Nunc vitae dolor risus, at cursus libero. Suspendisse bibendum tellus non nibh hendrerit tristique. Mauris eget orci elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam porta libero non ante laoreet semper. Proin volutpat sodales mi, ac fermentum erat sagittis in. Vivamus at viverra felis. Ut pretium facilisis ante et pharetra.</p>
|
||||
|
||||
<p>Nulla facilisi. Cras varius quam eget libero aliquam vitae tincidunt leo rutrum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Pellentesque a nisl massa, quis pretium urna. Proin vel porttitor tortor. Cras rhoncus congue velit in bibendum. Donec pharetra semper augue id lacinia. Quisque magna quam, hendrerit eu aliquam et, pellentesque ut tellus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Maecenas nulla quam, rutrum eu feugiat at, elementum eu libero. Maecenas ullamcorper leo et turpis rutrum ac laoreet eros faucibus. Phasellus condimentum lorem quis neque imperdiet quis molestie enim iaculis. Phasellus risus est, vestibulum ut convallis ultrices, dignissim nec erat. Etiam congue lobortis laoreet. Nulla ut neque sed velit dapibus semper. Quisque nec dolor id nibh eleifend iaculis. Vivamus vitae fermentum odio. Etiam malesuada quam in nulla aliquam sed convallis dui feugiat.</p>
|
||||
|
||||
<p><strong>Lorem ipsum</strong> dolor sit amet, consectetur adipiscing elit. In sed imperdiet lectus. Phasellus quis velit velit, non condimentum quam. Sed neque urna, ultrices ac volutpat vel, laoreet vitae augue. Sed vel velit erat. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Cras eget velit nulla, eu sagittis elit. Nunc ac arcu est, in lobortis tellus. Praesent condimentum rhoncus sodales. In hac habitasse platea dictumst. Proin porta eros pharetra enim tincidunt dignissim nec vel dolor. Cras sapien elit, ornare ac dignissim eu, ultricies ac eros. Maecenas augue magna, ultrices a congue in, mollis eu nulla. Nunc venenatis massa at est eleifend faucibus. Vivamus sed risus lectus, nec interdum nunc.</p>
|
||||
|
||||
<img src="images/image_demo.jpg" width="54mm" height="80mm" />
|
||||
|
||||
<p style="background-color:yellow;"><i>Fusce et felis vitae diam lobortis sollicitudin. Aenean tincidunt accumsan nisi, id vehicula quam laoreet elementum. Phasellus egestas interdum erat, et viverra ipsum ultricies ac. Praesent sagittis augue at augue volutpat eleifend. Cras nec orci neque. Mauris bibendum posuere blandit. Donec feugiat mollis dui sit amet pellentesque. Sed a enim justo. Donec tincidunt, nisl eget elementum aliquam, odio ipsum ultrices quam, eu porttitor ligula urna at lorem. Donec varius, eros et convallis laoreet, ligula tellus consequat felis, ut ornare metus tellus sodales velit. Duis sed diam ante. Ut rutrum malesuada massa, vitae consectetur ipsum rhoncus sed. Suspendisse potenti. Pellentesque a congue massa.</i></p>
|
||||
|
||||
<p>Integer non sem eget neque mattis accumsan. Maecenas eu nisl mauris, sit amet interdum ipsum. In pharetra erat vel lectus venenatis elementum. Nulla non elit ligula, sit amet mollis urna. Morbi ut gravida est. Mauris tincidunt sem et turpis molestie malesuada. Curabitur vel nulla risus, sed mollis erat. Suspendisse vehicula accumsan purus nec varius. Donec fermentum lorem id felis sodales dictum. Quisque et dolor ipsum. Nam luctus consectetur dui vitae fermentum. Curabitur sodales consequat augue, id ultricies augue tempor ac. Aliquam ac magna id ipsum vehicula bibendum. Sed elementum congue tristique. Phasellus vel lorem eu lectus porta sodales. Etiam neque tortor, sagittis id pharetra quis, laoreet vel arcu.</p>
|
||||
|
||||
<p style="color:navy;">Cras quam mi, ornare laoreet laoreet vel, vehicula at lacus. Maecenas a lacus accumsan augue convallis sagittis sed quis odio. Morbi sit amet turpis diam, dictum convallis urna. Cras eget interdum augue. Cras eu nisi sit amet dolor faucibus porttitor. Suspendisse potenti. Nunc vitae dolor risus, at cursus libero. Suspendisse bibendum tellus non nibh hendrerit tristique. Mauris eget orci elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam porta libero non ante laoreet semper. Proin volutpat sodales mi, ac fermentum erat sagittis in. Vivamus at viverra felis. Ut pretium facilisis ante et pharetra.</p>
|
||||
|
||||
<p>Nulla facilisi. Cras varius quam eget libero aliquam vitae tincidunt leo rutrum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Pellentesque a nisl massa, quis pretium urna. Proin vel porttitor tortor. Cras rhoncus congue velit in bibendum. Donec pharetra semper augue id lacinia. Quisque magna quam, hendrerit eu aliquam et, pellentesque ut tellus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Maecenas nulla quam, rutrum eu feugiat at, elementum eu libero. Maecenas ullamcorper leo et turpis rutrum ac laoreet eros faucibus. Phasellus condimentum lorem quis neque imperdiet quis molestie enim iaculis. Phasellus risus est, vestibulum ut convallis ultrices, dignissim nec erat. Etiam congue lobortis laoreet. Nulla ut neque sed velit dapibus semper. Quisque nec dolor id nibh eleifend iaculis. Vivamus vitae fermentum odio. Etiam malesuada quam in nulla aliquam sed convallis dui feugiat.</p>
|
||||
15
lib/combodo/tcpdf/examples/data/table_data_demo.txt
Normal file
15
lib/combodo/tcpdf/examples/data/table_data_demo.txt
Normal file
@@ -0,0 +1,15 @@
|
||||
Austria;Vienna;83859;8075
|
||||
Belgium;Brussels;30518;10192
|
||||
Denmark;Copenhagen;43094;5295
|
||||
Finland;Helsinki;304529;5147
|
||||
France;Paris;543965;58728
|
||||
Germany;Berlin;357022;82057
|
||||
Greece;Athens;131625;10511
|
||||
Ireland;Dublin;70723;3694
|
||||
Italy;Roma;301316;57563
|
||||
Luxembourg;Luxembourg;2586;424
|
||||
Netherlands;Amsterdam;41526;15654
|
||||
Portugal;Lisbon;91906;9957
|
||||
Spain;Madrid;504790;39348
|
||||
Sweden;Stockholm;410934;8839
|
||||
United Kingdom;London;243820;58862
|
||||
128
lib/combodo/tcpdf/examples/data/utf8test.txt
Normal file
128
lib/combodo/tcpdf/examples/data/utf8test.txt
Normal file
@@ -0,0 +1,128 @@
|
||||
Sentences that contain all letters commonly used in a language
|
||||
--------------------------------------------------------------
|
||||
|
||||
This file is UTF-8 encoded.
|
||||
|
||||
Czech (cz)
|
||||
---------
|
||||
|
||||
Příšerně žluťoučký kůň úpěl ďábelské ódy.
|
||||
Hleď, toť přízračný kůň v mátožné póze šíleně úpí.
|
||||
Zvlášť zákeřný učeň s ďolíčky běží podél zóny úlů.
|
||||
Loď čeří kýlem tůň obzvlášť v Grónské úžině.
|
||||
Ó, náhlý déšť již zvířil prach a čilá laň teď běží s houfcem gazel k úkrytům.
|
||||
|
||||
Danish (da)
|
||||
---------
|
||||
|
||||
Quizdeltagerne spiste jordbær med fløde, mens cirkusklovnen
|
||||
Wolther spillede på xylofon.
|
||||
(= Quiz contestants were eating strawbery with cream while Wolther
|
||||
the circus clown played on xylophone.)
|
||||
|
||||
German (de)
|
||||
-----------
|
||||
|
||||
Falsches Üben von Xylophonmusik quält jeden größeren Zwerg
|
||||
(= Wrongful practicing of xylophone music tortures every larger dwarf)
|
||||
|
||||
Zwölf Boxkämpfer jagten Eva quer über den Sylter Deich
|
||||
(= Twelve boxing fighters hunted Eva across the dike of Sylt)
|
||||
|
||||
Heizölrückstoßabdämpfung
|
||||
(= fuel oil recoil absorber)
|
||||
(jqvwxy missing, but all non-ASCII letters in one word)
|
||||
|
||||
English (en)
|
||||
------------
|
||||
|
||||
The quick brown fox jumps over the lazy dog
|
||||
|
||||
Spanish (es)
|
||||
------------
|
||||
|
||||
El pingüino Wenceslao hizo kilómetros bajo exhaustiva lluvia y
|
||||
frío, añoraba a su querido cachorro.
|
||||
(Contains every letter and every accent, but not every combination
|
||||
of vowel + acute.)
|
||||
|
||||
French (fr)
|
||||
-----------
|
||||
|
||||
Portez ce vieux whisky au juge blond qui fume sur son île intérieure, à
|
||||
côté de l'alcôve ovoïde, où les bûches se consument dans l'âtre, ce
|
||||
qui lui permet de penser à la cænogenèse de l'être dont il est question
|
||||
dans la cause ambiguë entendue à Moÿ, dans un capharnaüm qui,
|
||||
pense-t-il, diminue çà et là la qualité de son œuvre.
|
||||
|
||||
l'île exiguë
|
||||
Où l'obèse jury mûr
|
||||
Fête l'haï volapük,
|
||||
Âne ex aéquo au whist,
|
||||
Ôtez ce vœu déçu.
|
||||
|
||||
Le cœur déçu mais l'âme plutôt naïve, Louÿs rêva de crapaüter en
|
||||
canoë au delà des îles, près du mälström où brûlent les novæ.
|
||||
|
||||
Irish Gaelic (ga)
|
||||
-----------------
|
||||
|
||||
D'fhuascail Íosa, Úrmhac na hÓighe Beannaithe, pór Éava agus Ádhaimh
|
||||
|
||||
Hungarian (hu)
|
||||
--------------
|
||||
|
||||
Árvíztűrő tükörfúrógép
|
||||
(= flood-proof mirror-drilling machine, only all non-ASCII letters)
|
||||
|
||||
Icelandic (is)
|
||||
--------------
|
||||
|
||||
Kæmi ný öxi hér ykist þjófum nú bæði víl og ádrepa
|
||||
|
||||
Sævör grét áðan því úlpan var ónýt
|
||||
(some ASCII letters missing)
|
||||
|
||||
Greek (el)
|
||||
-------------
|
||||
|
||||
Γαζέες καὶ μυρτιὲς δὲν θὰ βρῶ πιὰ στὸ χρυσαφὶ ξέφωτο
|
||||
(= No more shall I see acacias or myrtles in the golden clearing)
|
||||
|
||||
Ξεσκεπάζω τὴν ψυχοφθόρα βδελυγμία
|
||||
(= I uncover the soul-destroying abhorrence)
|
||||
|
||||
Hebrew (iw)
|
||||
-----------
|
||||
|
||||
? דג סקרן שט בים מאוכזב ולפתע מצא לו חברה איך הקליטה
|
||||
|
||||
Polish (pl)
|
||||
-----------
|
||||
|
||||
Pchnąć w tę łódź jeża lub osiem skrzyń fig
|
||||
(= To push a hedgehog or eight bins of figs in this boat)
|
||||
|
||||
Zażółć gęślą jaźń
|
||||
|
||||
Russian (ru)
|
||||
------------
|
||||
|
||||
В чащах юга жил бы цитрус? Да, но фальшивый экземпляр!
|
||||
(= Would a citrus live in the bushes of south? Yes, but only a fake one!)
|
||||
|
||||
Thai (th)
|
||||
---------
|
||||
|
||||
[--------------------------|------------------------]
|
||||
๏ เป็นมนุษย์สุดประเสริฐเลิศคุณค่า กว่าบรรดาฝูงสัตว์เดรัจฉาน
|
||||
จงฝ่าฟันพัฒนาวิชาการ อย่าล้างผลาญฤๅเข่นฆ่าบีฑาใคร
|
||||
ไม่ถือโทษโกรธแช่งซัดฮึดฮัดด่า หัดอภัยเหมือนกีฬาอัชฌาสัย
|
||||
ปฏิบัติประพฤติกฎกำหนดใจ พูดจาให้จ๊ะๆ จ๋าๆ น่าฟังเอย ฯ
|
||||
|
||||
[The copyright for the Thai example is owned by The Computer
|
||||
Association of Thailand under the Royal Patronage of His Majesty the
|
||||
King.]
|
||||
|
||||
Please let me know if you find others! Special thanks to the people
|
||||
from all over the world who contributed these sentences.
|
||||
106
lib/combodo/tcpdf/examples/example_001.php
Normal file
106
lib/combodo/tcpdf/examples/example_001.php
Normal file
@@ -0,0 +1,106 @@
|
||||
<?php
|
||||
//============================================================+
|
||||
// File name : example_001.php
|
||||
// Begin : 2008-03-04
|
||||
// Last Update : 2013-05-14
|
||||
//
|
||||
// Description : Example 001 for TCPDF class
|
||||
// Default Header and Footer
|
||||
//
|
||||
// Author: Nicola Asuni
|
||||
//
|
||||
// (c) Copyright:
|
||||
// Nicola Asuni
|
||||
// Tecnick.com LTD
|
||||
// www.tecnick.com
|
||||
// info@tecnick.com
|
||||
//============================================================+
|
||||
|
||||
/**
|
||||
* Creates an example PDF TEST document using TCPDF
|
||||
* @package com.tecnick.tcpdf
|
||||
* @abstract TCPDF - Example: Default Header and Footer
|
||||
* @author Nicola Asuni
|
||||
* @since 2008-03-04
|
||||
*/
|
||||
|
||||
// Include the main TCPDF library (search for installation path).
|
||||
require_once('tcpdf_include.php');
|
||||
|
||||
// create new PDF document
|
||||
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
|
||||
|
||||
// set document information
|
||||
$pdf->setCreator(PDF_CREATOR);
|
||||
$pdf->setAuthor('Nicola Asuni');
|
||||
$pdf->setTitle('TCPDF Example 001');
|
||||
$pdf->setSubject('TCPDF Tutorial');
|
||||
$pdf->setKeywords('TCPDF, PDF, example, test, guide');
|
||||
|
||||
// set default header data
|
||||
$pdf->setHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 001', PDF_HEADER_STRING, array(0,64,255), array(0,64,128));
|
||||
$pdf->setFooterData(array(0,64,0), array(0,64,128));
|
||||
|
||||
// set header and footer fonts
|
||||
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
|
||||
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
|
||||
|
||||
// set default monospaced font
|
||||
$pdf->setDefaultMonospacedFont(PDF_FONT_MONOSPACED);
|
||||
|
||||
// set margins
|
||||
$pdf->setMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
|
||||
$pdf->setHeaderMargin(PDF_MARGIN_HEADER);
|
||||
$pdf->setFooterMargin(PDF_MARGIN_FOOTER);
|
||||
|
||||
// set auto page breaks
|
||||
$pdf->setAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
|
||||
|
||||
// set image scale factor
|
||||
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
|
||||
|
||||
// set some language-dependent strings (optional)
|
||||
if (@file_exists(dirname(__FILE__).'/lang/eng.php')) {
|
||||
require_once(dirname(__FILE__).'/lang/eng.php');
|
||||
$pdf->setLanguageArray($l);
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------
|
||||
|
||||
// set default font subsetting mode
|
||||
$pdf->setFontSubsetting(true);
|
||||
|
||||
// Set font
|
||||
// dejavusans is a UTF-8 Unicode font, if you only need to
|
||||
// print standard ASCII chars, you can use core fonts like
|
||||
// helvetica or times to reduce file size.
|
||||
$pdf->setFont('dejavusans', '', 14, '', true);
|
||||
|
||||
// Add a page
|
||||
// This method has several options, check the source code documentation for more information.
|
||||
$pdf->AddPage();
|
||||
|
||||
// set text shadow effect
|
||||
$pdf->setTextShadow(array('enabled'=>true, 'depth_w'=>0.2, 'depth_h'=>0.2, 'color'=>array(196,196,196), 'opacity'=>1, 'blend_mode'=>'Normal'));
|
||||
|
||||
// Set some content to print
|
||||
$html = <<<EOD
|
||||
<h1>Welcome to <a href="http://www.tcpdf.org" style="text-decoration:none;background-color:#CC0000;color:black;"> <span style="color:black;">TC</span><span style="color:white;">PDF</span> </a>!</h1>
|
||||
<i>This is the first example of TCPDF library.</i>
|
||||
<p>This text is printed using the <i>writeHTMLCell()</i> method but you can also use: <i>Multicell(), writeHTML(), Write(), Cell() and Text()</i>.</p>
|
||||
<p>Please check the source code documentation and other examples for further information.</p>
|
||||
<p style="color:#CC0000;">TO IMPROVE AND EXPAND TCPDF I NEED YOUR SUPPORT, PLEASE <a href="http://sourceforge.net/donate/index.php?group_id=128076">MAKE A DONATION!</a></p>
|
||||
EOD;
|
||||
|
||||
// Print text using writeHTMLCell()
|
||||
$pdf->writeHTMLCell(0, 0, '', '', $html, 0, 1, 0, true, '', true);
|
||||
|
||||
// ---------------------------------------------------------
|
||||
|
||||
// Close and output PDF document
|
||||
// This method has several options, check the source code documentation for more information.
|
||||
$pdf->Output('example_001.pdf', 'I');
|
||||
|
||||
//============================================================+
|
||||
// END OF FILE
|
||||
//============================================================+
|
||||
87
lib/combodo/tcpdf/examples/example_002.php
Normal file
87
lib/combodo/tcpdf/examples/example_002.php
Normal file
@@ -0,0 +1,87 @@
|
||||
<?php
|
||||
//============================================================+
|
||||
// File name : example_002.php
|
||||
// Begin : 2008-03-04
|
||||
// Last Update : 2013-05-14
|
||||
//
|
||||
// Description : Example 002 for TCPDF class
|
||||
// Removing Header and Footer
|
||||
//
|
||||
// Author: Nicola Asuni
|
||||
//
|
||||
// (c) Copyright:
|
||||
// Nicola Asuni
|
||||
// Tecnick.com LTD
|
||||
// www.tecnick.com
|
||||
// info@tecnick.com
|
||||
//============================================================+
|
||||
|
||||
/**
|
||||
* Creates an example PDF TEST document using TCPDF
|
||||
* @package com.tecnick.tcpdf
|
||||
* @abstract TCPDF - Example: Removing Header and Footer
|
||||
* @author Nicola Asuni
|
||||
* @since 2008-03-04
|
||||
*/
|
||||
|
||||
// Include the main TCPDF library (search for installation path).
|
||||
require_once('tcpdf_include.php');
|
||||
|
||||
// create new PDF document
|
||||
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
|
||||
|
||||
// set document information
|
||||
$pdf->setCreator(PDF_CREATOR);
|
||||
$pdf->setAuthor('Nicola Asuni');
|
||||
$pdf->setTitle('TCPDF Example 002');
|
||||
$pdf->setSubject('TCPDF Tutorial');
|
||||
$pdf->setKeywords('TCPDF, PDF, example, test, guide');
|
||||
|
||||
// remove default header/footer
|
||||
$pdf->setPrintHeader(false);
|
||||
$pdf->setPrintFooter(false);
|
||||
|
||||
// set default monospaced font
|
||||
$pdf->setDefaultMonospacedFont(PDF_FONT_MONOSPACED);
|
||||
|
||||
// set margins
|
||||
$pdf->setMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
|
||||
|
||||
// set auto page breaks
|
||||
$pdf->setAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
|
||||
|
||||
// set image scale factor
|
||||
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
|
||||
|
||||
// set some language-dependent strings (optional)
|
||||
if (@file_exists(dirname(__FILE__).'/lang/eng.php')) {
|
||||
require_once(dirname(__FILE__).'/lang/eng.php');
|
||||
$pdf->setLanguageArray($l);
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------
|
||||
|
||||
// set font
|
||||
$pdf->setFont('times', 'BI', 20);
|
||||
|
||||
// add a page
|
||||
$pdf->AddPage();
|
||||
|
||||
// set some text to print
|
||||
$txt = <<<EOD
|
||||
TCPDF Example 002
|
||||
|
||||
Default page header and footer are disabled using setPrintHeader() and setPrintFooter() methods.
|
||||
EOD;
|
||||
|
||||
// print a block of text using Write()
|
||||
$pdf->Write(0, $txt, '', 0, 'C', true, 0, false, false, 0);
|
||||
|
||||
// ---------------------------------------------------------
|
||||
|
||||
//Close and output PDF document
|
||||
$pdf->Output('example_002.pdf', 'I');
|
||||
|
||||
//============================================================+
|
||||
// END OF FILE
|
||||
//============================================================+
|
||||
118
lib/combodo/tcpdf/examples/example_003.php
Normal file
118
lib/combodo/tcpdf/examples/example_003.php
Normal file
@@ -0,0 +1,118 @@
|
||||
<?php
|
||||
//============================================================+
|
||||
// File name : example_003.php
|
||||
// Begin : 2008-03-04
|
||||
// Last Update : 2013-05-14
|
||||
//
|
||||
// Description : Example 003 for TCPDF class
|
||||
// Custom Header and Footer
|
||||
//
|
||||
// Author: Nicola Asuni
|
||||
//
|
||||
// (c) Copyright:
|
||||
// Nicola Asuni
|
||||
// Tecnick.com LTD
|
||||
// www.tecnick.com
|
||||
// info@tecnick.com
|
||||
//============================================================+
|
||||
|
||||
/**
|
||||
* Creates an example PDF TEST document using TCPDF
|
||||
* @package com.tecnick.tcpdf
|
||||
* @abstract TCPDF - Example: Custom Header and Footer
|
||||
* @author Nicola Asuni
|
||||
* @since 2008-03-04
|
||||
*/
|
||||
|
||||
// Include the main TCPDF library (search for installation path).
|
||||
require_once('tcpdf_include.php');
|
||||
|
||||
|
||||
// Extend the TCPDF class to create custom Header and Footer
|
||||
class MYPDF extends TCPDF {
|
||||
|
||||
//Page header
|
||||
public function Header() {
|
||||
// Logo
|
||||
$image_file = K_PATH_IMAGES.'logo_example.jpg';
|
||||
$this->Image($image_file, 10, 10, 15, '', 'JPG', '', 'T', false, 300, '', false, false, 0, false, false, false);
|
||||
// Set font
|
||||
$this->setFont('helvetica', 'B', 20);
|
||||
// Title
|
||||
$this->Cell(0, 15, '<< TCPDF Example 003 >>', 0, false, 'C', 0, '', 0, false, 'M', 'M');
|
||||
}
|
||||
|
||||
// Page footer
|
||||
public function Footer() {
|
||||
// Position at 15 mm from bottom
|
||||
$this->setY(-15);
|
||||
// Set font
|
||||
$this->setFont('helvetica', 'I', 8);
|
||||
// Page number
|
||||
$this->Cell(0, 10, 'Page '.$this->getAliasNumPage().'/'.$this->getAliasNbPages(), 0, false, 'C', 0, '', 0, false, 'T', 'M');
|
||||
}
|
||||
}
|
||||
|
||||
// create new PDF document
|
||||
$pdf = new MYPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
|
||||
|
||||
// set document information
|
||||
$pdf->setCreator(PDF_CREATOR);
|
||||
$pdf->setAuthor('Nicola Asuni');
|
||||
$pdf->setTitle('TCPDF Example 003');
|
||||
$pdf->setSubject('TCPDF Tutorial');
|
||||
$pdf->setKeywords('TCPDF, PDF, example, test, guide');
|
||||
|
||||
// set default header data
|
||||
$pdf->setHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE, PDF_HEADER_STRING);
|
||||
|
||||
// set header and footer fonts
|
||||
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
|
||||
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
|
||||
|
||||
// set default monospaced font
|
||||
$pdf->setDefaultMonospacedFont(PDF_FONT_MONOSPACED);
|
||||
|
||||
// set margins
|
||||
$pdf->setMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
|
||||
$pdf->setHeaderMargin(PDF_MARGIN_HEADER);
|
||||
$pdf->setFooterMargin(PDF_MARGIN_FOOTER);
|
||||
|
||||
// set auto page breaks
|
||||
$pdf->setAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
|
||||
|
||||
// set image scale factor
|
||||
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
|
||||
|
||||
// set some language-dependent strings (optional)
|
||||
if (@file_exists(dirname(__FILE__).'/lang/eng.php')) {
|
||||
require_once(dirname(__FILE__).'/lang/eng.php');
|
||||
$pdf->setLanguageArray($l);
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------
|
||||
|
||||
// set font
|
||||
$pdf->setFont('times', 'BI', 12);
|
||||
|
||||
// add a page
|
||||
$pdf->AddPage();
|
||||
|
||||
// set some text to print
|
||||
$txt = <<<EOD
|
||||
TCPDF Example 003
|
||||
|
||||
Custom page header and footer are defined by extending the TCPDF class and overriding the Header() and Footer() methods.
|
||||
EOD;
|
||||
|
||||
// print a block of text using Write()
|
||||
$pdf->Write(0, $txt, '', 0, 'C', true, 0, false, false, 0);
|
||||
|
||||
// ---------------------------------------------------------
|
||||
|
||||
//Close and output PDF document
|
||||
$pdf->Output('example_003.pdf', 'I');
|
||||
|
||||
//============================================================+
|
||||
// END OF FILE
|
||||
//============================================================+
|
||||
121
lib/combodo/tcpdf/examples/example_004.php
Normal file
121
lib/combodo/tcpdf/examples/example_004.php
Normal file
@@ -0,0 +1,121 @@
|
||||
<?php
|
||||
//============================================================+
|
||||
// File name : example_004.php
|
||||
// Begin : 2008-03-04
|
||||
// Last Update : 2013-05-14
|
||||
//
|
||||
// Description : Example 004 for TCPDF class
|
||||
// Cell stretching
|
||||
//
|
||||
// Author: Nicola Asuni
|
||||
//
|
||||
// (c) Copyright:
|
||||
// Nicola Asuni
|
||||
// Tecnick.com LTD
|
||||
// www.tecnick.com
|
||||
// info@tecnick.com
|
||||
//============================================================+
|
||||
|
||||
/**
|
||||
* Creates an example PDF TEST document using TCPDF
|
||||
* @package com.tecnick.tcpdf
|
||||
* @abstract TCPDF - Example: Cell stretching
|
||||
* @author Nicola Asuni
|
||||
* @since 2008-03-04
|
||||
*/
|
||||
|
||||
// Include the main TCPDF library (search for installation path).
|
||||
require_once('tcpdf_include.php');
|
||||
|
||||
// create new PDF document
|
||||
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
|
||||
|
||||
// set document information
|
||||
$pdf->setCreator(PDF_CREATOR);
|
||||
$pdf->setAuthor('Nicola Asuni');
|
||||
$pdf->setTitle('TCPDF Example 004');
|
||||
$pdf->setSubject('TCPDF Tutorial');
|
||||
$pdf->setKeywords('TCPDF, PDF, example, test, guide');
|
||||
|
||||
// set default header data
|
||||
$pdf->setHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 004', PDF_HEADER_STRING);
|
||||
|
||||
// set header and footer fonts
|
||||
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
|
||||
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
|
||||
|
||||
// set default monospaced font
|
||||
$pdf->setDefaultMonospacedFont(PDF_FONT_MONOSPACED);
|
||||
|
||||
// set margins
|
||||
$pdf->setMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
|
||||
$pdf->setHeaderMargin(PDF_MARGIN_HEADER);
|
||||
$pdf->setFooterMargin(PDF_MARGIN_FOOTER);
|
||||
|
||||
// set auto page breaks
|
||||
$pdf->setAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
|
||||
|
||||
// set image scale factor
|
||||
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
|
||||
|
||||
// set some language-dependent strings (optional)
|
||||
if (@file_exists(dirname(__FILE__).'/lang/eng.php')) {
|
||||
require_once(dirname(__FILE__).'/lang/eng.php');
|
||||
$pdf->setLanguageArray($l);
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------
|
||||
|
||||
// set font
|
||||
$pdf->setFont('times', '', 11);
|
||||
|
||||
// add a page
|
||||
$pdf->AddPage();
|
||||
|
||||
//Cell($w, $h=0, $txt='', $border=0, $ln=0, $align='', $fill=0, $link='', $stretch=0, $ignore_min_height=false, $calign='T', $valign='M')
|
||||
|
||||
// test Cell stretching
|
||||
$pdf->Cell(0, 0, 'TEST CELL STRETCH: no stretch', 1, 1, 'C', 0, '', 0);
|
||||
$pdf->Cell(0, 0, 'TEST CELL STRETCH: scaling', 1, 1, 'C', 0, '', 1);
|
||||
$pdf->Cell(0, 0, 'TEST CELL STRETCH: force scaling', 1, 1, 'C', 0, '', 2);
|
||||
$pdf->Cell(0, 0, 'TEST CELL STRETCH: spacing', 1, 1, 'C', 0, '', 3);
|
||||
$pdf->Cell(0, 0, 'TEST CELL STRETCH: force spacing', 1, 1, 'C', 0, '', 4);
|
||||
|
||||
$pdf->Ln(5);
|
||||
|
||||
$pdf->Cell(45, 0, 'TEST CELL STRETCH: scaling', 1, 1, 'C', 0, '', 1);
|
||||
$pdf->Cell(45, 0, 'TEST CELL STRETCH: force scaling', 1, 1, 'C', 0, '', 2);
|
||||
$pdf->Cell(45, 0, 'TEST CELL STRETCH: spacing', 1, 1, 'C', 0, '', 3);
|
||||
$pdf->Cell(45, 0, 'TEST CELL STRETCH: force spacing', 1, 1, 'C', 0, '', 4);
|
||||
|
||||
$pdf->AddPage();
|
||||
|
||||
// example using general stretching and spacing
|
||||
|
||||
for ($stretching = 90; $stretching <= 110; $stretching += 10) {
|
||||
for ($spacing = -0.254; $spacing <= 0.254; $spacing += 0.254) {
|
||||
|
||||
// set general stretching (scaling) value
|
||||
$pdf->setFontStretching($stretching);
|
||||
|
||||
// set general spacing value
|
||||
$pdf->setFontSpacing($spacing);
|
||||
|
||||
$pdf->Cell(0, 0, 'Stretching '.$stretching.'%, Spacing '.sprintf('%+.3F', $spacing).'mm, no stretch', 1, 1, 'C', 0, '', 0);
|
||||
$pdf->Cell(0, 0, 'Stretching '.$stretching.'%, Spacing '.sprintf('%+.3F', $spacing).'mm, scaling', 1, 1, 'C', 0, '', 1);
|
||||
$pdf->Cell(0, 0, 'Stretching '.$stretching.'%, Spacing '.sprintf('%+.3F', $spacing).'mm, force scaling', 1, 1, 'C', 0, '', 2);
|
||||
$pdf->Cell(0, 0, 'Stretching '.$stretching.'%, Spacing '.sprintf('%+.3F', $spacing).'mm, spacing', 1, 1, 'C', 0, '', 3);
|
||||
$pdf->Cell(0, 0, 'Stretching '.$stretching.'%, Spacing '.sprintf('%+.3F', $spacing).'mm, force spacing', 1, 1, 'C', 0, '', 4);
|
||||
|
||||
$pdf->Ln(2);
|
||||
}
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------
|
||||
|
||||
//Close and output PDF document
|
||||
$pdf->Output('example_004.pdf', 'I');
|
||||
|
||||
//============================================================+
|
||||
// END OF FILE
|
||||
//============================================================+
|
||||
158
lib/combodo/tcpdf/examples/example_005.php
Normal file
158
lib/combodo/tcpdf/examples/example_005.php
Normal file
@@ -0,0 +1,158 @@
|
||||
<?php
|
||||
//============================================================+
|
||||
// File name : example_005.php
|
||||
// Begin : 2008-03-04
|
||||
// Last Update : 2013-05-14
|
||||
//
|
||||
// Description : Example 005 for TCPDF class
|
||||
// Multicell
|
||||
//
|
||||
// Author: Nicola Asuni
|
||||
//
|
||||
// (c) Copyright:
|
||||
// Nicola Asuni
|
||||
// Tecnick.com LTD
|
||||
// www.tecnick.com
|
||||
// info@tecnick.com
|
||||
//============================================================+
|
||||
|
||||
/**
|
||||
* Creates an example PDF TEST document using TCPDF
|
||||
* @package com.tecnick.tcpdf
|
||||
* @abstract TCPDF - Example: Multicell
|
||||
* @author Nicola Asuni
|
||||
* @since 2008-03-04
|
||||
*/
|
||||
|
||||
// Include the main TCPDF library (search for installation path).
|
||||
require_once('tcpdf_include.php');
|
||||
|
||||
// create new PDF document
|
||||
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
|
||||
|
||||
// set document information
|
||||
$pdf->setCreator(PDF_CREATOR);
|
||||
$pdf->setAuthor('Nicola Asuni');
|
||||
$pdf->setTitle('TCPDF Example 005');
|
||||
$pdf->setSubject('TCPDF Tutorial');
|
||||
$pdf->setKeywords('TCPDF, PDF, example, test, guide');
|
||||
|
||||
// set default header data
|
||||
$pdf->setHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 005', PDF_HEADER_STRING);
|
||||
|
||||
// set header and footer fonts
|
||||
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
|
||||
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
|
||||
|
||||
// set default monospaced font
|
||||
$pdf->setDefaultMonospacedFont(PDF_FONT_MONOSPACED);
|
||||
|
||||
// set margins
|
||||
$pdf->setMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
|
||||
$pdf->setHeaderMargin(PDF_MARGIN_HEADER);
|
||||
$pdf->setFooterMargin(PDF_MARGIN_FOOTER);
|
||||
|
||||
// set auto page breaks
|
||||
$pdf->setAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
|
||||
|
||||
// set image scale factor
|
||||
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
|
||||
|
||||
// set some language-dependent strings (optional)
|
||||
if (@file_exists(dirname(__FILE__).'/lang/eng.php')) {
|
||||
require_once(dirname(__FILE__).'/lang/eng.php');
|
||||
$pdf->setLanguageArray($l);
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------
|
||||
|
||||
// set font
|
||||
$pdf->setFont('times', '', 10);
|
||||
|
||||
// add a page
|
||||
$pdf->AddPage();
|
||||
|
||||
// set cell padding
|
||||
$pdf->setCellPaddings(1, 1, 1, 1);
|
||||
|
||||
// set cell margins
|
||||
$pdf->setCellMargins(1, 1, 1, 1);
|
||||
|
||||
// set color for background
|
||||
$pdf->setFillColor(255, 255, 127);
|
||||
|
||||
// MultiCell($w, $h, $txt, $border=0, $align='J', $fill=0, $ln=1, $x='', $y='', $reseth=true, $stretch=0, $ishtml=false, $autopadding=true, $maxh=0)
|
||||
|
||||
// set some text for example
|
||||
$txt = 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.';
|
||||
|
||||
// Multicell test
|
||||
$pdf->MultiCell(55, 5, '[LEFT] '.$txt, 1, 'L', 1, 0, '', '', true);
|
||||
$pdf->MultiCell(55, 5, '[RIGHT] '.$txt, 1, 'R', 0, 1, '', '', true);
|
||||
$pdf->MultiCell(55, 5, '[CENTER] '.$txt, 1, 'C', 0, 0, '', '', true);
|
||||
$pdf->MultiCell(55, 5, '[JUSTIFY] '.$txt."\n", 1, 'J', 1, 2, '' ,'', true);
|
||||
$pdf->MultiCell(55, 5, '[DEFAULT] '.$txt, 1, '', 0, 1, '', '', true);
|
||||
|
||||
$pdf->Ln(4);
|
||||
|
||||
// set color for background
|
||||
$pdf->setFillColor(220, 255, 220);
|
||||
|
||||
// Vertical alignment
|
||||
$pdf->MultiCell(55, 40, '[VERTICAL ALIGNMENT - TOP] '.$txt, 1, 'J', 1, 0, '', '', true, 0, false, true, 40, 'T');
|
||||
$pdf->MultiCell(55, 40, '[VERTICAL ALIGNMENT - MIDDLE] '.$txt, 1, 'J', 1, 0, '', '', true, 0, false, true, 40, 'M');
|
||||
$pdf->MultiCell(55, 40, '[VERTICAL ALIGNMENT - BOTTOM] '.$txt, 1, 'J', 1, 1, '', '', true, 0, false, true, 40, 'B');
|
||||
|
||||
$pdf->Ln(4);
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
// set color for background
|
||||
$pdf->setFillColor(215, 235, 255);
|
||||
|
||||
// set some text for example
|
||||
$txt = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. In sed imperdiet lectus. Phasellus quis velit velit, non condimentum quam. Sed neque urna, ultrices ac volutpat vel, laoreet vitae augue. Sed vel velit erat. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Cras eget velit nulla, eu sagittis elit. Nunc ac arcu est, in lobortis tellus. Praesent condimentum rhoncus sodales. In hac habitasse platea dictumst. Proin porta eros pharetra enim tincidunt dignissim nec vel dolor. Cras sapien elit, ornare ac dignissim eu, ultricies ac eros. Maecenas augue magna, ultrices a congue in, mollis eu nulla. Nunc venenatis massa at est eleifend faucibus. Vivamus sed risus lectus, nec interdum nunc.
|
||||
|
||||
Fusce et felis vitae diam lobortis sollicitudin. Aenean tincidunt accumsan nisi, id vehicula quam laoreet elementum. Phasellus egestas interdum erat, et viverra ipsum ultricies ac. Praesent sagittis augue at augue volutpat eleifend. Cras nec orci neque. Mauris bibendum posuere blandit. Donec feugiat mollis dui sit amet pellentesque. Sed a enim justo. Donec tincidunt, nisl eget elementum aliquam, odio ipsum ultrices quam, eu porttitor ligula urna at lorem. Donec varius, eros et convallis laoreet, ligula tellus consequat felis, ut ornare metus tellus sodales velit. Duis sed diam ante. Ut rutrum malesuada massa, vitae consectetur ipsum rhoncus sed. Suspendisse potenti. Pellentesque a congue massa.';
|
||||
|
||||
// print a blox of text using multicell()
|
||||
$pdf->MultiCell(80, 5, $txt."\n", 1, 'J', 1, 1, '' ,'', true);
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
// AUTO-FITTING
|
||||
|
||||
// set color for background
|
||||
$pdf->setFillColor(255, 235, 235);
|
||||
|
||||
// Fit text on cell by reducing font size
|
||||
$pdf->MultiCell(55, 60, '[FIT CELL] '.$txt."\n", 1, 'J', 1, 1, 125, 145, true, 0, false, true, 60, 'M', true);
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
// CUSTOM PADDING
|
||||
|
||||
// set color for background
|
||||
$pdf->setFillColor(255, 255, 215);
|
||||
|
||||
// set font
|
||||
$pdf->setFont('helvetica', '', 8);
|
||||
|
||||
// set cell padding
|
||||
$pdf->setCellPaddings(2, 4, 6, 8);
|
||||
|
||||
$txt = "CUSTOM PADDING:\nLeft=2, Top=4, Right=6, Bottom=8\nLorem ipsum dolor sit amet, consectetur adipiscing elit. In sed imperdiet lectus. Phasellus quis velit velit, non condimentum quam. Sed neque urna, ultrices ac volutpat vel, laoreet vitae augue.\n";
|
||||
|
||||
$pdf->MultiCell(55, 5, $txt, 1, 'J', 1, 2, 125, 210, true);
|
||||
|
||||
// move pointer to last page
|
||||
$pdf->lastPage();
|
||||
|
||||
// ---------------------------------------------------------
|
||||
|
||||
//Close and output PDF document
|
||||
$pdf->Output('example_005.pdf', 'I');
|
||||
|
||||
//============================================================+
|
||||
// END OF FILE
|
||||
//============================================================+
|
||||
330
lib/combodo/tcpdf/examples/example_006.php
Normal file
330
lib/combodo/tcpdf/examples/example_006.php
Normal file
@@ -0,0 +1,330 @@
|
||||
<?php
|
||||
//============================================================+
|
||||
// File name : example_006.php
|
||||
// Begin : 2008-03-04
|
||||
// Last Update : 2013-05-14
|
||||
//
|
||||
// Description : Example 006 for TCPDF class
|
||||
// WriteHTML and RTL support
|
||||
//
|
||||
// Author: Nicola Asuni
|
||||
//
|
||||
// (c) Copyright:
|
||||
// Nicola Asuni
|
||||
// Tecnick.com LTD
|
||||
// www.tecnick.com
|
||||
// info@tecnick.com
|
||||
//============================================================+
|
||||
|
||||
/**
|
||||
* Creates an example PDF TEST document using TCPDF
|
||||
* @package com.tecnick.tcpdf
|
||||
* @abstract TCPDF - Example: WriteHTML and RTL support
|
||||
* @author Nicola Asuni
|
||||
* @since 2008-03-04
|
||||
*/
|
||||
|
||||
// Include the main TCPDF library (search for installation path).
|
||||
require_once('tcpdf_include.php');
|
||||
|
||||
// create new PDF document
|
||||
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
|
||||
|
||||
// set document information
|
||||
$pdf->setCreator(PDF_CREATOR);
|
||||
$pdf->setAuthor('Nicola Asuni');
|
||||
$pdf->setTitle('TCPDF Example 006');
|
||||
$pdf->setSubject('TCPDF Tutorial');
|
||||
$pdf->setKeywords('TCPDF, PDF, example, test, guide');
|
||||
|
||||
// set default header data
|
||||
$pdf->setHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 006', PDF_HEADER_STRING);
|
||||
|
||||
// set header and footer fonts
|
||||
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
|
||||
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
|
||||
|
||||
// set default monospaced font
|
||||
$pdf->setDefaultMonospacedFont(PDF_FONT_MONOSPACED);
|
||||
|
||||
// set margins
|
||||
$pdf->setMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
|
||||
$pdf->setHeaderMargin(PDF_MARGIN_HEADER);
|
||||
$pdf->setFooterMargin(PDF_MARGIN_FOOTER);
|
||||
|
||||
// set auto page breaks
|
||||
$pdf->setAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
|
||||
|
||||
// set image scale factor
|
||||
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
|
||||
|
||||
// set some language-dependent strings (optional)
|
||||
if (@file_exists(dirname(__FILE__).'/lang/eng.php')) {
|
||||
require_once(dirname(__FILE__).'/lang/eng.php');
|
||||
$pdf->setLanguageArray($l);
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------
|
||||
|
||||
// set font
|
||||
$pdf->setFont('dejavusans', '', 10);
|
||||
|
||||
// add a page
|
||||
$pdf->AddPage();
|
||||
|
||||
// writeHTML($html, $ln=true, $fill=false, $reseth=false, $cell=false, $align='')
|
||||
// writeHTMLCell($w, $h, $x, $y, $html='', $border=0, $ln=0, $fill=0, $reseth=true, $align='', $autopadding=true)
|
||||
|
||||
// create some HTML content
|
||||
$html = '<h1>HTML Example</h1>
|
||||
Some special characters: < € € € & è è © > \\slash \\\\double-slash \\\\\\triple-slash
|
||||
<h2>List</h2>
|
||||
List example:
|
||||
<ol>
|
||||
<li><img src="images/logo_example.png" alt="test alt attribute" width="30" height="30" border="0" /> test image</li>
|
||||
<li><b>bold text</b></li>
|
||||
<li><i>italic text</i></li>
|
||||
<li><u>underlined text</u></li>
|
||||
<li><b>b<i>bi<u>biu</u>bi</i>b</b></li>
|
||||
<li><a href="http://www.tecnick.com" dir="ltr">link to http://www.tecnick.com</a></li>
|
||||
<li>Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.<br />Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt.</li>
|
||||
<li>SUBLIST
|
||||
<ol>
|
||||
<li>row one
|
||||
<ul>
|
||||
<li>sublist</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>row two</li>
|
||||
</ol>
|
||||
</li>
|
||||
<li><b>T</b>E<i>S</i><u>T</u> <del>line through</del></li>
|
||||
<li><font size="+3">font + 3</font></li>
|
||||
<li><small>small text</small> normal <small>small text</small> normal <sub>subscript</sub> normal <sup>superscript</sup> normal</li>
|
||||
</ol>
|
||||
<dl>
|
||||
<dt>Coffee</dt>
|
||||
<dd>Black hot drink</dd>
|
||||
<dt>Milk</dt>
|
||||
<dd>White cold drink</dd>
|
||||
</dl>
|
||||
<div style="text-align:center">IMAGES<br />
|
||||
<img src="images/logo_example.png" alt="test alt attribute" width="100" height="100" border="0" /><img src="images/tcpdf_box.svg" alt="test alt attribute" width="100" height="100" border="0" /><img src="images/logo_example.jpg" alt="test alt attribute" width="100" height="100" border="0" />
|
||||
</div>';
|
||||
|
||||
// output the HTML content
|
||||
$pdf->writeHTML($html, true, false, true, false, '');
|
||||
|
||||
|
||||
// output some RTL HTML content
|
||||
$html = '<div style="text-align:center">The words “<span dir="rtl">מזל [mazel] טוב [tov]</span>” mean “Congratulations!”</div>';
|
||||
$pdf->writeHTML($html, true, false, true, false, '');
|
||||
|
||||
// test some inline CSS
|
||||
$html = '<p>This is just an example of html code to demonstrate some supported CSS inline styles.
|
||||
<span style="font-weight: bold;">bold text</span>
|
||||
<span style="text-decoration: line-through;">line-trough</span>
|
||||
<span style="text-decoration: underline line-through;">underline and line-trough</span>
|
||||
<span style="color: rgb(0, 128, 64);">color</span>
|
||||
<span style="background-color: rgb(255, 0, 0); color: rgb(255, 255, 255);">background color</span>
|
||||
<span style="font-weight: bold;">bold</span>
|
||||
<span style="font-size: xx-small;">xx-small</span>
|
||||
<span style="font-size: x-small;">x-small</span>
|
||||
<span style="font-size: small;">small</span>
|
||||
<span style="font-size: medium;">medium</span>
|
||||
<span style="font-size: large;">large</span>
|
||||
<span style="font-size: x-large;">x-large</span>
|
||||
<span style="font-size: xx-large;">xx-large</span>
|
||||
</p>';
|
||||
|
||||
$pdf->writeHTML($html, true, false, true, false, '');
|
||||
|
||||
// reset pointer to the last page
|
||||
$pdf->lastPage();
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
// Print a table
|
||||
|
||||
// add a page
|
||||
$pdf->AddPage();
|
||||
|
||||
// create some HTML content
|
||||
$subtable = '<table border="1" cellspacing="6" cellpadding="4"><tr><td>a</td><td>b</td></tr><tr><td>c</td><td>d</td></tr></table>';
|
||||
|
||||
$html = '<h2>HTML TABLE:</h2>
|
||||
<table border="1" cellspacing="3" cellpadding="4">
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th align="right">RIGHT align</th>
|
||||
<th align="left">LEFT align</th>
|
||||
<th>4A</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>1</td>
|
||||
<td bgcolor="#cccccc" align="center" colspan="2">A1 ex<i>amp</i>le <a href="http://www.tcpdf.org">link</a> column span. One two tree four five six seven eight nine ten.<br />line after br<br /><small>small text</small> normal <sub>subscript</sub> normal <sup>superscript</sup> normal bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla<ol><li>first<ol><li>sublist</li><li>sublist</li></ol></li><li>second</li></ol><small color="#FF0000" bgcolor="#FFFF00">small small small small small small small small small small small small small small small small small small small small</small></td>
|
||||
<td>4B</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>'.$subtable.'</td>
|
||||
<td bgcolor="#0000FF" color="yellow" align="center">A2 € € € & è è<br/>A2 € € € & è è</td>
|
||||
<td bgcolor="#FFFF00" align="left"><font color="#FF0000">Red</font> Yellow BG</td>
|
||||
<td>4C</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>1A</td>
|
||||
<td rowspan="2" colspan="2" bgcolor="#FFFFCC">2AA<br />2AB<br />2AC</td>
|
||||
<td bgcolor="#FF0000">4D</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>1B</td>
|
||||
<td>4E</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>1C</td>
|
||||
<td>2C</td>
|
||||
<td>3C</td>
|
||||
<td>4F</td>
|
||||
</tr>
|
||||
</table>';
|
||||
|
||||
// output the HTML content
|
||||
$pdf->writeHTML($html, true, false, true, false, '');
|
||||
|
||||
// Print some HTML Cells
|
||||
|
||||
$html = '<span color="red">red</span> <span color="green">green</span> <span color="blue">blue</span><br /><span color="red">red</span> <span color="green">green</span> <span color="blue">blue</span>';
|
||||
|
||||
$pdf->setFillColor(255,255,0);
|
||||
|
||||
$pdf->writeHTMLCell(0, 0, '', '', $html, 'LRTB', 1, 0, true, 'L', true);
|
||||
$pdf->writeHTMLCell(0, 0, '', '', $html, 'LRTB', 1, 1, true, 'C', true);
|
||||
$pdf->writeHTMLCell(0, 0, '', '', $html, 'LRTB', 1, 0, true, 'R', true);
|
||||
|
||||
// reset pointer to the last page
|
||||
$pdf->lastPage();
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
// Print a table
|
||||
|
||||
// add a page
|
||||
$pdf->AddPage();
|
||||
|
||||
// create some HTML content
|
||||
$html = '<h1>Image alignments on HTML table</h1>
|
||||
<table cellpadding="1" cellspacing="1" border="1" style="text-align:center;">
|
||||
<tr><td><img src="images/logo_example.png" border="0" height="41" width="41" /></td></tr>
|
||||
<tr style="text-align:left;"><td><img src="images/logo_example.png" border="0" height="41" width="41" align="top" /></td></tr>
|
||||
<tr style="text-align:center;"><td><img src="images/logo_example.png" border="0" height="41" width="41" align="middle" /></td></tr>
|
||||
<tr style="text-align:right;"><td><img src="images/logo_example.png" border="0" height="41" width="41" align="bottom" /></td></tr>
|
||||
<tr><td style="text-align:left;"><img src="images/logo_example.png" border="0" height="41" width="41" align="top" /></td></tr>
|
||||
<tr><td style="text-align:center;"><img src="images/logo_example.png" border="0" height="41" width="41" align="middle" /></td></tr>
|
||||
<tr><td style="text-align:right;"><img src="images/logo_example.png" border="0" height="41" width="41" align="bottom" /></td></tr>
|
||||
</table>';
|
||||
|
||||
// output the HTML content
|
||||
$pdf->writeHTML($html, true, false, true, false, '');
|
||||
|
||||
// reset pointer to the last page
|
||||
$pdf->lastPage();
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
// Print all HTML colors
|
||||
|
||||
// add a page
|
||||
$pdf->AddPage();
|
||||
|
||||
$textcolors = '<h1>HTML Text Colors</h1>';
|
||||
$bgcolors = '<hr /><h1>HTML Background Colors</h1>';
|
||||
|
||||
foreach(TCPDF_COLORS::$webcolor as $k => $v) {
|
||||
$textcolors .= '<span color="#'.$v.'">'.$v.'</span> ';
|
||||
$bgcolors .= '<span bgcolor="#'.$v.'" color="#333333">'.$v.'</span> ';
|
||||
}
|
||||
|
||||
// output the HTML content
|
||||
$pdf->writeHTML($textcolors, true, false, true, false, '');
|
||||
$pdf->writeHTML($bgcolors, true, false, true, false, '');
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
// Test word-wrap
|
||||
|
||||
// create some HTML content
|
||||
$html = '<hr />
|
||||
<h1>Various tests</h1>
|
||||
<a href="#2">link to page 2</a><br />
|
||||
<font face="courier"><b>thisisaverylongword</b></font> <font face="helvetica"><i>thisisanotherverylongword</i></font> <font face="times"><b>thisisaverylongword</b></font> thisisanotherverylongword <font face="times">thisisaverylongword</font> <font face="courier"><b>thisisaverylongword</b></font> <font face="helvetica"><i>thisisanotherverylongword</i></font> <font face="times"><b>thisisaverylongword</b></font> thisisanotherverylongword <font face="times">thisisaverylongword</font> <font face="courier"><b>thisisaverylongword</b></font> <font face="helvetica"><i>thisisanotherverylongword</i></font> <font face="times"><b>thisisaverylongword</b></font> thisisanotherverylongword <font face="times">thisisaverylongword</font> <font face="courier"><b>thisisaverylongword</b></font> <font face="helvetica"><i>thisisanotherverylongword</i></font> <font face="times"><b>thisisaverylongword</b></font> thisisanotherverylongword <font face="times">thisisaverylongword</font> <font face="courier"><b>thisisaverylongword</b></font> <font face="helvetica"><i>thisisanotherverylongword</i></font> <font face="times"><b>thisisaverylongword</b></font> thisisanotherverylongword <font face="times">thisisaverylongword</font>';
|
||||
|
||||
// output the HTML content
|
||||
$pdf->writeHTML($html, true, false, true, false, '');
|
||||
|
||||
// Test fonts nesting
|
||||
$html1 = 'Default <font face="courier">Courier <font face="helvetica">Helvetica <font face="times">Times <font face="dejavusans">dejavusans </font>Times </font>Helvetica </font>Courier </font>Default';
|
||||
$html2 = '<small>small text</small> normal <small>small text</small> normal <sub>subscript</sub> normal <sup>superscript</sup> normal';
|
||||
$html3 = '<font size="10" color="#ff7f50">The</font> <font size="10" color="#6495ed">quick</font> <font size="14" color="#dc143c">brown</font> <font size="18" color="#008000">fox</font> <font size="22"><a href="http://www.tcpdf.org">jumps</a></font> <font size="22" color="#a0522d">over</font> <font size="18" color="#da70d6">the</font> <font size="14" color="#9400d3">lazy</font> <font size="10" color="#4169el">dog</font>.';
|
||||
|
||||
$html = $html1.'<br />'.$html2.'<br />'.$html3.'<br />'.$html3.'<br />'.$html2;
|
||||
|
||||
// output the HTML content
|
||||
$pdf->writeHTML($html, true, false, true, false, '');
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
// test pre tag
|
||||
|
||||
// add a page
|
||||
$pdf->AddPage();
|
||||
|
||||
$html = <<<EOF
|
||||
<div style="background-color:#880000;color:white;">
|
||||
Hello World!<br />
|
||||
Hello
|
||||
</div>
|
||||
<pre style="background-color:#336699;color:white;">
|
||||
int main() {
|
||||
printf("HelloWorld");
|
||||
return 0;
|
||||
}
|
||||
</pre>
|
||||
<tt>Monospace font</tt>, normal font, <tt>monospace font</tt>, normal font.
|
||||
<br />
|
||||
<div style="background-color:#880000;color:white;">DIV LEVEL 1<div style="background-color:#008800;color:white;">DIV LEVEL 2</div>DIV LEVEL 1</div>
|
||||
<br />
|
||||
<span style="background-color:#880000;color:white;">SPAN LEVEL 1 <span style="background-color:#008800;color:white;">SPAN LEVEL 2</span> SPAN LEVEL 1</span>
|
||||
EOF;
|
||||
|
||||
// output the HTML content
|
||||
$pdf->writeHTML($html, true, false, true, false, '');
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
// test custom bullet points for list
|
||||
|
||||
// add a page
|
||||
$pdf->AddPage();
|
||||
|
||||
$html = <<<EOF
|
||||
<h1>Test custom bullet image for list items</h1>
|
||||
<ul style="font-size:14pt;list-style-type:img|png|4|4|images/logo_example.png">
|
||||
<li>test custom bullet image</li>
|
||||
<li>test custom bullet image</li>
|
||||
<li>test custom bullet image</li>
|
||||
<li>test custom bullet image</li>
|
||||
<ul>
|
||||
EOF;
|
||||
|
||||
// output the HTML content
|
||||
$pdf->writeHTML($html, true, false, true, false, '');
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
// reset pointer to the last page
|
||||
$pdf->lastPage();
|
||||
|
||||
// ---------------------------------------------------------
|
||||
|
||||
//Close and output PDF document
|
||||
$pdf->Output('example_006.pdf', 'I');
|
||||
|
||||
//============================================================+
|
||||
// END OF FILE
|
||||
//============================================================+
|
||||
113
lib/combodo/tcpdf/examples/example_007.php
Normal file
113
lib/combodo/tcpdf/examples/example_007.php
Normal file
@@ -0,0 +1,113 @@
|
||||
<?php
|
||||
//============================================================+
|
||||
// File name : example_007.php
|
||||
// Begin : 2008-03-04
|
||||
// Last Update : 2013-05-14
|
||||
//
|
||||
// Description : Example 007 for TCPDF class
|
||||
// Two independent columns with WriteHTMLCell()
|
||||
//
|
||||
// Author: Nicola Asuni
|
||||
//
|
||||
// (c) Copyright:
|
||||
// Nicola Asuni
|
||||
// Tecnick.com LTD
|
||||
// www.tecnick.com
|
||||
// info@tecnick.com
|
||||
//============================================================+
|
||||
|
||||
/**
|
||||
* Creates an example PDF TEST document using TCPDF
|
||||
* @package com.tecnick.tcpdf
|
||||
* @abstract TCPDF - Example: Two independent columns with WriteHTMLCell()
|
||||
* @author Nicola Asuni
|
||||
* @since 2008-03-04
|
||||
*/
|
||||
|
||||
// Include the main TCPDF library (search for installation path).
|
||||
require_once('tcpdf_include.php');
|
||||
|
||||
// create new PDF document
|
||||
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
|
||||
|
||||
// set document information
|
||||
$pdf->setCreator(PDF_CREATOR);
|
||||
$pdf->setAuthor('Nicola Asuni');
|
||||
$pdf->setTitle('TCPDF Example 007');
|
||||
$pdf->setSubject('TCPDF Tutorial');
|
||||
$pdf->setKeywords('TCPDF, PDF, example, test, guide');
|
||||
|
||||
// set default header data
|
||||
$pdf->setHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 007', PDF_HEADER_STRING);
|
||||
|
||||
// set header and footer fonts
|
||||
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
|
||||
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
|
||||
|
||||
// set default monospaced font
|
||||
$pdf->setDefaultMonospacedFont(PDF_FONT_MONOSPACED);
|
||||
|
||||
// set margins
|
||||
$pdf->setMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
|
||||
$pdf->setHeaderMargin(PDF_MARGIN_HEADER);
|
||||
$pdf->setFooterMargin(PDF_MARGIN_FOOTER);
|
||||
|
||||
// set auto page breaks
|
||||
$pdf->setAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
|
||||
|
||||
// set image scale factor
|
||||
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
|
||||
|
||||
// set some language-dependent strings (optional)
|
||||
if (@file_exists(dirname(__FILE__).'/lang/eng.php')) {
|
||||
require_once(dirname(__FILE__).'/lang/eng.php');
|
||||
$pdf->setLanguageArray($l);
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------
|
||||
|
||||
// set font
|
||||
$pdf->setFont('times', '', 12);
|
||||
|
||||
// add a page
|
||||
$pdf->AddPage();
|
||||
|
||||
// create columns content
|
||||
$left_column = '<b>LEFT COLUMN</b> left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column';
|
||||
|
||||
$right_column = '<b>RIGHT COLUMN</b> right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column';
|
||||
|
||||
// writeHTMLCell($w, $h, $x, $y, $html='', $border=0, $ln=0, $fill=0, $reseth=true, $align='', $autopadding=true)
|
||||
|
||||
// get current vertical position
|
||||
$y = $pdf->getY();
|
||||
|
||||
// set color for background
|
||||
$pdf->setFillColor(255, 255, 200);
|
||||
|
||||
// set color for text
|
||||
$pdf->setTextColor(0, 63, 127);
|
||||
|
||||
// write the first column
|
||||
$pdf->writeHTMLCell(80, '', '', $y, $left_column, 1, 0, 1, true, 'J', true);
|
||||
|
||||
// set color for background
|
||||
$pdf->setFillColor(215, 235, 255);
|
||||
|
||||
// set color for text
|
||||
$pdf->setTextColor(127, 31, 0);
|
||||
|
||||
// write the second column
|
||||
$pdf->writeHTMLCell(80, '', '', '', $right_column, 1, 1, 1, true, 'J', true);
|
||||
|
||||
// reset pointer to the last page
|
||||
$pdf->lastPage();
|
||||
|
||||
// ---------------------------------------------------------
|
||||
|
||||
//Close and output PDF document
|
||||
$pdf->Output('example_007.pdf', 'I');
|
||||
|
||||
//============================================================+
|
||||
// END OF FILE
|
||||
//============================================================+
|
||||
97
lib/combodo/tcpdf/examples/example_008.php
Normal file
97
lib/combodo/tcpdf/examples/example_008.php
Normal file
@@ -0,0 +1,97 @@
|
||||
<?php
|
||||
//============================================================+
|
||||
// File name : example_008.php
|
||||
// Begin : 2008-03-04
|
||||
// Last Update : 2013-05-14
|
||||
//
|
||||
// Description : Example 008 for TCPDF class
|
||||
// Include external UTF-8 text file
|
||||
//
|
||||
// Author: Nicola Asuni
|
||||
//
|
||||
// (c) Copyright:
|
||||
// Nicola Asuni
|
||||
// Tecnick.com LTD
|
||||
// www.tecnick.com
|
||||
// info@tecnick.com
|
||||
//============================================================+
|
||||
|
||||
/**
|
||||
* Creates an example PDF TEST document using TCPDF
|
||||
* @package com.tecnick.tcpdf
|
||||
* @abstract TCPDF - Example: Include external UTF-8 text file
|
||||
* @author Nicola Asuni
|
||||
* @since 2008-03-04
|
||||
*/
|
||||
|
||||
// Include the main TCPDF library (search for installation path).
|
||||
require_once('tcpdf_include.php');
|
||||
|
||||
// create new PDF document
|
||||
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
|
||||
|
||||
// set document information
|
||||
$pdf->setCreator(PDF_CREATOR);
|
||||
$pdf->setAuthor('Nicola Asuni');
|
||||
$pdf->setTitle('TCPDF Example 008');
|
||||
$pdf->setSubject('TCPDF Tutorial');
|
||||
$pdf->setKeywords('TCPDF, PDF, example, test, guide');
|
||||
|
||||
// set default header data
|
||||
$pdf->setHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 008', PDF_HEADER_STRING);
|
||||
|
||||
// set header and footer fonts
|
||||
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
|
||||
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
|
||||
|
||||
// set default monospaced font
|
||||
$pdf->setDefaultMonospacedFont(PDF_FONT_MONOSPACED);
|
||||
|
||||
// set margins
|
||||
$pdf->setMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
|
||||
$pdf->setHeaderMargin(PDF_MARGIN_HEADER);
|
||||
$pdf->setFooterMargin(PDF_MARGIN_FOOTER);
|
||||
|
||||
// set auto page breaks
|
||||
$pdf->setAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
|
||||
|
||||
// set image scale factor
|
||||
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
|
||||
|
||||
// set some language-dependent strings (optional)
|
||||
if (@file_exists(dirname(__FILE__).'/lang/eng.php')) {
|
||||
require_once(dirname(__FILE__).'/lang/eng.php');
|
||||
$pdf->setLanguageArray($l);
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------
|
||||
|
||||
// set default font subsetting mode
|
||||
$pdf->setFontSubsetting(true);
|
||||
|
||||
// set font
|
||||
$pdf->setFont('freeserif', '', 12);
|
||||
|
||||
// add a page
|
||||
$pdf->AddPage();
|
||||
|
||||
// get esternal file content
|
||||
$utf8text = file_get_contents('data/utf8test.txt', false);
|
||||
|
||||
// set color for text
|
||||
$pdf->setTextColor(0, 63, 127);
|
||||
|
||||
//Write($h, $txt, $link='', $fill=0, $align='', $ln=false, $stretch=0, $firstline=false, $firstblock=false, $maxh=0)
|
||||
|
||||
// write the text
|
||||
$pdf->Write(5, $utf8text, '', 0, '', false, 0, false, false, 0);
|
||||
|
||||
|
||||
// ---------------------------------------------------------
|
||||
|
||||
//Close and output PDF document
|
||||
$pdf->Output('example_008.pdf', 'I');
|
||||
|
||||
//============================================================+
|
||||
// END OF FILE
|
||||
//============================================================+
|
||||
146
lib/combodo/tcpdf/examples/example_009.php
Normal file
146
lib/combodo/tcpdf/examples/example_009.php
Normal file
@@ -0,0 +1,146 @@
|
||||
<?php
|
||||
//============================================================+
|
||||
// File name : example_009.php
|
||||
// Begin : 2008-03-04
|
||||
// Last Update : 2013-05-14
|
||||
//
|
||||
// Description : Example 009 for TCPDF class
|
||||
// Test Image
|
||||
//
|
||||
// Author: Nicola Asuni
|
||||
//
|
||||
// (c) Copyright:
|
||||
// Nicola Asuni
|
||||
// Tecnick.com LTD
|
||||
// www.tecnick.com
|
||||
// info@tecnick.com
|
||||
//============================================================+
|
||||
|
||||
/**
|
||||
* Creates an example PDF TEST document using TCPDF
|
||||
* @package com.tecnick.tcpdf
|
||||
* @abstract TCPDF - Example: Test Image
|
||||
* @author Nicola Asuni
|
||||
* @since 2008-03-04
|
||||
*/
|
||||
|
||||
// Include the main TCPDF library (search for installation path).
|
||||
require_once('tcpdf_include.php');
|
||||
|
||||
// create new PDF document
|
||||
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
|
||||
|
||||
// set document information
|
||||
$pdf->setCreator(PDF_CREATOR);
|
||||
$pdf->setAuthor('Nicola Asuni');
|
||||
$pdf->setTitle('TCPDF Example 009');
|
||||
$pdf->setSubject('TCPDF Tutorial');
|
||||
$pdf->setKeywords('TCPDF, PDF, example, test, guide');
|
||||
|
||||
// set default header data
|
||||
$pdf->setHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 009', PDF_HEADER_STRING);
|
||||
|
||||
// set header and footer fonts
|
||||
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
|
||||
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
|
||||
|
||||
// set default monospaced font
|
||||
$pdf->setDefaultMonospacedFont(PDF_FONT_MONOSPACED);
|
||||
|
||||
// set margins
|
||||
$pdf->setMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
|
||||
$pdf->setHeaderMargin(PDF_MARGIN_HEADER);
|
||||
$pdf->setFooterMargin(PDF_MARGIN_FOOTER);
|
||||
|
||||
// set auto page breaks
|
||||
$pdf->setAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
|
||||
|
||||
// set image scale factor
|
||||
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
|
||||
|
||||
// set some language-dependent strings (optional)
|
||||
if (@file_exists(dirname(__FILE__).'/lang/eng.php')) {
|
||||
require_once(dirname(__FILE__).'/lang/eng.php');
|
||||
$pdf->setLanguageArray($l);
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
// add a page
|
||||
$pdf->AddPage();
|
||||
|
||||
// set JPEG quality
|
||||
$pdf->setJPEGQuality(75);
|
||||
|
||||
// Image method signature:
|
||||
// Image($file, $x='', $y='', $w=0, $h=0, $type='', $link='', $align='', $resize=false, $dpi=300, $palign='', $ismask=false, $imgmask=false, $border=0, $fitbox=false, $hidden=false, $fitonpage=false)
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
// Example of Image from data stream ('PHP rules')
|
||||
$imgdata = base64_decode('iVBORw0KGgoAAAANSUhEUgAAABwAAAASCAMAAAB/2U7WAAAABlBMVEUAAAD///+l2Z/dAAAASUlEQVR4XqWQUQoAIAxC2/0vXZDrEX4IJTRkb7lobNUStXsB0jIXIAMSsQnWlsV+wULF4Avk9fLq2r8a5HSE35Q3eO2XP1A1wQkZSgETvDtKdQAAAABJRU5ErkJggg==');
|
||||
|
||||
// The '@' character is used to indicate that follows an image data stream and not an image file name
|
||||
$pdf->Image('@'.$imgdata);
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
// Image example with resizing
|
||||
$pdf->Image('images/image_demo.jpg', 15, 140, 75, 113, 'JPG', 'http://www.tcpdf.org', '', true, 150, '', false, false, 1, false, false, false);
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
// test fitbox with all alignment combinations
|
||||
|
||||
$horizontal_alignments = array('L', 'C', 'R');
|
||||
$vertical_alignments = array('T', 'M', 'B');
|
||||
|
||||
$x = 15;
|
||||
$y = 35;
|
||||
$w = 30;
|
||||
$h = 30;
|
||||
// test all combinations of alignments
|
||||
for ($i = 0; $i < 3; ++$i) {
|
||||
$fitbox = $horizontal_alignments[$i].' ';
|
||||
$x = 15;
|
||||
for ($j = 0; $j < 3; ++$j) {
|
||||
$fitbox[1] = $vertical_alignments[$j];
|
||||
$pdf->Rect($x, $y, $w, $h, 'F', array(), array(128,255,128));
|
||||
$pdf->Image('images/image_demo.jpg', $x, $y, $w, $h, 'JPG', '', '', false, 300, '', false, false, 0, $fitbox, false, false);
|
||||
$x += 32; // new column
|
||||
}
|
||||
$y += 32; // new row
|
||||
}
|
||||
|
||||
$x = 115;
|
||||
$y = 35;
|
||||
$w = 25;
|
||||
$h = 50;
|
||||
for ($i = 0; $i < 3; ++$i) {
|
||||
$fitbox = $horizontal_alignments[$i].' ';
|
||||
$x = 115;
|
||||
for ($j = 0; $j < 3; ++$j) {
|
||||
$fitbox[1] = $vertical_alignments[$j];
|
||||
$pdf->Rect($x, $y, $w, $h, 'F', array(), array(128,255,255));
|
||||
$pdf->Image('images/image_demo.jpg', $x, $y, $w, $h, 'JPG', '', '', false, 300, '', false, false, 0, $fitbox, false, false);
|
||||
$x += 27; // new column
|
||||
}
|
||||
$y += 52; // new row
|
||||
}
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
// Stretching, position and alignment example
|
||||
|
||||
$pdf->setXY(110, 200);
|
||||
$pdf->Image('images/image_demo.jpg', '', '', 40, 40, '', '', 'T', false, 300, '', false, false, 1, false, false, false);
|
||||
$pdf->Image('images/image_demo.jpg', '', '', 40, 40, '', '', '', false, 300, '', false, false, 1, false, false, false);
|
||||
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
//Close and output PDF document
|
||||
$pdf->Output('example_009.pdf', 'I');
|
||||
|
||||
//============================================================+
|
||||
// END OF FILE
|
||||
//============================================================+
|
||||
150
lib/combodo/tcpdf/examples/example_010.php
Normal file
150
lib/combodo/tcpdf/examples/example_010.php
Normal file
@@ -0,0 +1,150 @@
|
||||
<?php
|
||||
//============================================================+
|
||||
// File name : example_010.php
|
||||
// Begin : 2008-03-04
|
||||
// Last Update : 2013-05-14
|
||||
//
|
||||
// Description : Example 010 for TCPDF class
|
||||
// Text on multiple columns
|
||||
//
|
||||
// Author: Nicola Asuni
|
||||
//
|
||||
// (c) Copyright:
|
||||
// Nicola Asuni
|
||||
// Tecnick.com LTD
|
||||
// www.tecnick.com
|
||||
// info@tecnick.com
|
||||
//============================================================+
|
||||
|
||||
/**
|
||||
* Creates an example PDF TEST document using TCPDF
|
||||
* @package com.tecnick.tcpdf
|
||||
* @abstract TCPDF - Example: Text on multiple columns
|
||||
* @author Nicola Asuni
|
||||
* @since 2008-03-04
|
||||
*/
|
||||
|
||||
// Include the main TCPDF library (search for installation path).
|
||||
require_once('tcpdf_include.php');
|
||||
|
||||
|
||||
/**
|
||||
* Extend TCPDF to work with multiple columns
|
||||
*/
|
||||
class MC_TCPDF extends TCPDF {
|
||||
|
||||
/**
|
||||
* Print chapter
|
||||
* @param int $num chapter number
|
||||
* @param string $title chapter title
|
||||
* @param string $file name of the file containing the chapter body
|
||||
* @param boolean $mode if true the chapter body is in HTML, otherwise in simple text.
|
||||
* @public
|
||||
*/
|
||||
public function PrintChapter($num, $title, $file, $mode=false) {
|
||||
// add a new page
|
||||
$this->AddPage();
|
||||
// disable existing columns
|
||||
$this->resetColumns();
|
||||
// print chapter title
|
||||
$this->ChapterTitle($num, $title);
|
||||
// set columns
|
||||
$this->setEqualColumns(3, 57);
|
||||
// print chapter body
|
||||
$this->ChapterBody($file, $mode);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set chapter title
|
||||
* @param int $num chapter number
|
||||
* @param string $title chapter title
|
||||
* @public
|
||||
*/
|
||||
public function ChapterTitle($num, $title) {
|
||||
$this->setFont('helvetica', '', 14);
|
||||
$this->setFillColor(200, 220, 255);
|
||||
$this->Cell(180, 6, 'Chapter '.$num.' : '.$title, 0, 1, '', 1);
|
||||
$this->Ln(4);
|
||||
}
|
||||
|
||||
/**
|
||||
* Print chapter body
|
||||
* @param string $file name of the file containing the chapter body
|
||||
* @param boolean $mode if true the chapter body is in HTML, otherwise in simple text.
|
||||
* @public
|
||||
*/
|
||||
public function ChapterBody($file, $mode=false) {
|
||||
$this->selectColumn();
|
||||
// get esternal file content
|
||||
$content = file_get_contents($file, false);
|
||||
// set font
|
||||
$this->setFont('times', '', 9);
|
||||
$this->setTextColor(50, 50, 50);
|
||||
// print content
|
||||
if ($mode) {
|
||||
// ------ HTML MODE ------
|
||||
$this->writeHTML($content, true, false, true, false, 'J');
|
||||
} else {
|
||||
// ------ TEXT MODE ------
|
||||
$this->Write(0, $content, '', 0, 'J', true, 0, false, true, 0);
|
||||
}
|
||||
$this->Ln();
|
||||
}
|
||||
} // end of extended class
|
||||
|
||||
// ---------------------------------------------------------
|
||||
// EXAMPLE
|
||||
// ---------------------------------------------------------
|
||||
// create new PDF document
|
||||
$pdf = new MC_TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
|
||||
|
||||
// set document information
|
||||
$pdf->setCreator(PDF_CREATOR);
|
||||
$pdf->setAuthor('Nicola Asuni');
|
||||
$pdf->setTitle('TCPDF Example 010');
|
||||
$pdf->setSubject('TCPDF Tutorial');
|
||||
$pdf->setKeywords('TCPDF, PDF, example, test, guide');
|
||||
|
||||
// set default header data
|
||||
$pdf->setHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 010', PDF_HEADER_STRING);
|
||||
|
||||
// set header and footer fonts
|
||||
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
|
||||
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
|
||||
|
||||
// set default monospaced font
|
||||
$pdf->setDefaultMonospacedFont(PDF_FONT_MONOSPACED);
|
||||
|
||||
// set margins
|
||||
$pdf->setMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
|
||||
$pdf->setHeaderMargin(PDF_MARGIN_HEADER);
|
||||
$pdf->setFooterMargin(PDF_MARGIN_FOOTER);
|
||||
|
||||
// set auto page breaks
|
||||
$pdf->setAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
|
||||
|
||||
// set image scale factor
|
||||
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
|
||||
|
||||
// set some language-dependent strings (optional)
|
||||
if (@file_exists(dirname(__FILE__).'/lang/eng.php')) {
|
||||
require_once(dirname(__FILE__).'/lang/eng.php');
|
||||
$pdf->setLanguageArray($l);
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------
|
||||
|
||||
// print TEXT
|
||||
$pdf->PrintChapter(1, 'LOREM IPSUM [TEXT]', 'data/chapter_demo_1.txt', false);
|
||||
|
||||
// print HTML
|
||||
$pdf->PrintChapter(2, 'LOREM IPSUM [HTML]', 'data/chapter_demo_2.txt', true);
|
||||
|
||||
// ---------------------------------------------------------
|
||||
|
||||
//Close and output PDF document
|
||||
$pdf->Output('example_010.pdf', 'I');
|
||||
|
||||
//============================================================+
|
||||
// END OF FILE
|
||||
//============================================================+
|
||||
138
lib/combodo/tcpdf/examples/example_011.php
Normal file
138
lib/combodo/tcpdf/examples/example_011.php
Normal file
@@ -0,0 +1,138 @@
|
||||
<?php
|
||||
//============================================================+
|
||||
// File name : example_011.php
|
||||
// Begin : 2008-03-04
|
||||
// Last Update : 2013-05-14
|
||||
//
|
||||
// Description : Example 011 for TCPDF class
|
||||
// Colored Table (very simple table)
|
||||
//
|
||||
// Author: Nicola Asuni
|
||||
//
|
||||
// (c) Copyright:
|
||||
// Nicola Asuni
|
||||
// Tecnick.com LTD
|
||||
// www.tecnick.com
|
||||
// info@tecnick.com
|
||||
//============================================================+
|
||||
|
||||
/**
|
||||
* Creates an example PDF TEST document using TCPDF
|
||||
* @package com.tecnick.tcpdf
|
||||
* @abstract TCPDF - Example: Colored Table
|
||||
* @author Nicola Asuni
|
||||
* @since 2008-03-04
|
||||
*/
|
||||
|
||||
// Include the main TCPDF library (search for installation path).
|
||||
require_once('tcpdf_include.php');
|
||||
|
||||
// extend TCPF with custom functions
|
||||
class MYPDF extends TCPDF {
|
||||
|
||||
// Load table data from file
|
||||
public function LoadData($file) {
|
||||
// Read file lines
|
||||
$lines = file($file);
|
||||
$data = array();
|
||||
foreach($lines as $line) {
|
||||
$data[] = explode(';', chop($line));
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
// Colored table
|
||||
public function ColoredTable($header,$data) {
|
||||
// Colors, line width and bold font
|
||||
$this->setFillColor(255, 0, 0);
|
||||
$this->setTextColor(255);
|
||||
$this->setDrawColor(128, 0, 0);
|
||||
$this->setLineWidth(0.3);
|
||||
$this->setFont('', 'B');
|
||||
// Header
|
||||
$w = array(40, 35, 40, 45);
|
||||
$num_headers = count($header);
|
||||
for($i = 0; $i < $num_headers; ++$i) {
|
||||
$this->Cell($w[$i], 7, $header[$i], 1, 0, 'C', 1);
|
||||
}
|
||||
$this->Ln();
|
||||
// Color and font restoration
|
||||
$this->setFillColor(224, 235, 255);
|
||||
$this->setTextColor(0);
|
||||
$this->setFont('');
|
||||
// Data
|
||||
$fill = 0;
|
||||
foreach($data as $row) {
|
||||
$this->Cell($w[0], 6, $row[0], 'LR', 0, 'L', $fill);
|
||||
$this->Cell($w[1], 6, $row[1], 'LR', 0, 'L', $fill);
|
||||
$this->Cell($w[2], 6, number_format($row[2]), 'LR', 0, 'R', $fill);
|
||||
$this->Cell($w[3], 6, number_format($row[3]), 'LR', 0, 'R', $fill);
|
||||
$this->Ln();
|
||||
$fill=!$fill;
|
||||
}
|
||||
$this->Cell(array_sum($w), 0, '', 'T');
|
||||
}
|
||||
}
|
||||
|
||||
// create new PDF document
|
||||
$pdf = new MYPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
|
||||
|
||||
// set document information
|
||||
$pdf->setCreator(PDF_CREATOR);
|
||||
$pdf->setAuthor('Nicola Asuni');
|
||||
$pdf->setTitle('TCPDF Example 011');
|
||||
$pdf->setSubject('TCPDF Tutorial');
|
||||
$pdf->setKeywords('TCPDF, PDF, example, test, guide');
|
||||
|
||||
// set default header data
|
||||
$pdf->setHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 011', PDF_HEADER_STRING);
|
||||
|
||||
// set header and footer fonts
|
||||
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
|
||||
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
|
||||
|
||||
// set default monospaced font
|
||||
$pdf->setDefaultMonospacedFont(PDF_FONT_MONOSPACED);
|
||||
|
||||
// set margins
|
||||
$pdf->setMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
|
||||
$pdf->setHeaderMargin(PDF_MARGIN_HEADER);
|
||||
$pdf->setFooterMargin(PDF_MARGIN_FOOTER);
|
||||
|
||||
// set auto page breaks
|
||||
$pdf->setAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
|
||||
|
||||
// set image scale factor
|
||||
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
|
||||
|
||||
// set some language-dependent strings (optional)
|
||||
if (@file_exists(dirname(__FILE__).'/lang/eng.php')) {
|
||||
require_once(dirname(__FILE__).'/lang/eng.php');
|
||||
$pdf->setLanguageArray($l);
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------
|
||||
|
||||
// set font
|
||||
$pdf->setFont('helvetica', '', 12);
|
||||
|
||||
// add a page
|
||||
$pdf->AddPage();
|
||||
|
||||
// column titles
|
||||
$header = array('Country', 'Capital', 'Area (sq km)', 'Pop. (thousands)');
|
||||
|
||||
// data loading
|
||||
$data = $pdf->LoadData('data/table_data_demo.txt');
|
||||
|
||||
// print colored table
|
||||
$pdf->ColoredTable($header, $data);
|
||||
|
||||
// ---------------------------------------------------------
|
||||
|
||||
// close and output PDF document
|
||||
$pdf->Output('example_011.pdf', 'I');
|
||||
|
||||
//============================================================+
|
||||
// END OF FILE
|
||||
//============================================================+
|
||||
BIN
lib/combodo/tcpdf/examples/example_012.pdf
Normal file
BIN
lib/combodo/tcpdf/examples/example_012.pdf
Normal file
Binary file not shown.
205
lib/combodo/tcpdf/examples/example_012.php
Normal file
205
lib/combodo/tcpdf/examples/example_012.php
Normal file
@@ -0,0 +1,205 @@
|
||||
<?php
|
||||
//============================================================+
|
||||
// File name : example_012.php
|
||||
// Begin : 2008-03-04
|
||||
// Last Update : 2013-05-14
|
||||
//
|
||||
// Description : Example 012 for TCPDF class
|
||||
// Graphic Functions
|
||||
//
|
||||
// Author: Nicola Asuni
|
||||
//
|
||||
// (c) Copyright:
|
||||
// Nicola Asuni
|
||||
// Tecnick.com LTD
|
||||
// www.tecnick.com
|
||||
// info@tecnick.com
|
||||
//============================================================+
|
||||
|
||||
/**
|
||||
* Creates an example PDF TEST document using TCPDF
|
||||
* @package com.tecnick.tcpdf
|
||||
* @abstract TCPDF - Example: Graphic Functions
|
||||
* @author Nicola Asuni
|
||||
* @since 2008-03-04
|
||||
*/
|
||||
|
||||
// Include the main TCPDF library (search for installation path).
|
||||
require_once('tcpdf_include.php');
|
||||
|
||||
// create new PDF document
|
||||
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
|
||||
|
||||
// set document information
|
||||
$pdf->setCreator(PDF_CREATOR);
|
||||
$pdf->setAuthor('Nicola Asuni');
|
||||
$pdf->setTitle('TCPDF Example 012');
|
||||
$pdf->setSubject('TCPDF Tutorial');
|
||||
$pdf->setKeywords('TCPDF, PDF, example, test, guide');
|
||||
|
||||
// disable header and footer
|
||||
$pdf->setPrintHeader(false);
|
||||
$pdf->setPrintFooter(false);
|
||||
|
||||
// set default monospaced font
|
||||
$pdf->setDefaultMonospacedFont(PDF_FONT_MONOSPACED);
|
||||
|
||||
// set margins
|
||||
$pdf->setMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
|
||||
|
||||
// set auto page breaks
|
||||
$pdf->setAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
|
||||
|
||||
// set image scale factor
|
||||
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
|
||||
|
||||
// set some language-dependent strings (optional)
|
||||
if (@file_exists(dirname(__FILE__).'/lang/eng.php')) {
|
||||
require_once(dirname(__FILE__).'/lang/eng.php');
|
||||
$pdf->setLanguageArray($l);
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------
|
||||
|
||||
// set font
|
||||
$pdf->setFont('helvetica', '', 10);
|
||||
|
||||
// add a page
|
||||
$pdf->AddPage();
|
||||
|
||||
$style = array('width' => 0.5, 'cap' => 'butt', 'join' => 'miter', 'dash' => '10,20,5,10', 'phase' => 10, 'color' => array(255, 0, 0));
|
||||
$style2 = array('width' => 0.5, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(255, 0, 0));
|
||||
$style3 = array('width' => 1, 'cap' => 'round', 'join' => 'round', 'dash' => '2,10', 'color' => array(255, 0, 0));
|
||||
$style4 = array('L' => 0,
|
||||
'T' => array('width' => 0.25, 'cap' => 'butt', 'join' => 'miter', 'dash' => '20,10', 'phase' => 10, 'color' => array(100, 100, 255)),
|
||||
'R' => array('width' => 0.50, 'cap' => 'round', 'join' => 'miter', 'dash' => 0, 'color' => array(50, 50, 127)),
|
||||
'B' => array('width' => 0.75, 'cap' => 'square', 'join' => 'miter', 'dash' => '30,10,5,10'));
|
||||
$style5 = array('width' => 0.25, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(0, 64, 128));
|
||||
$style6 = array('width' => 0.5, 'cap' => 'butt', 'join' => 'miter', 'dash' => '10,10', 'color' => array(0, 128, 0));
|
||||
$style7 = array('width' => 0.5, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(255, 128, 0));
|
||||
|
||||
// Line
|
||||
$pdf->Text(5, 4, 'Line examples');
|
||||
$pdf->Line(5, 10, 80, 30, $style);
|
||||
$pdf->Line(5, 10, 5, 30, $style2);
|
||||
$pdf->Line(5, 10, 80, 10, $style3);
|
||||
|
||||
// Rect
|
||||
$pdf->Text(100, 4, 'Rectangle examples');
|
||||
$pdf->Rect(100, 10, 40, 20, 'DF', $style4, array(220, 220, 200));
|
||||
$pdf->Rect(145, 10, 40, 20, 'D', array('all' => $style3));
|
||||
|
||||
// Curve
|
||||
$pdf->Text(5, 34, 'Curve examples');
|
||||
$pdf->Curve(5, 40, 30, 55, 70, 45, 60, 75, '', $style6);
|
||||
$pdf->Curve(80, 40, 70, 75, 150, 45, 100, 75, 'F', $style6);
|
||||
$pdf->Curve(140, 40, 150, 55, 180, 45, 200, 75, 'DF', $style6, array(200, 220, 200));
|
||||
|
||||
// Circle and ellipse
|
||||
$pdf->Text(5, 79, 'Circle and ellipse examples');
|
||||
$pdf->setLineStyle($style5);
|
||||
$pdf->Circle(25,105,20);
|
||||
$pdf->Circle(25,105,10, 90, 180, '', $style6);
|
||||
$pdf->Circle(25,105,10, 270, 360, 'F');
|
||||
$pdf->Circle(25,105,10, 270, 360, 'C', $style6);
|
||||
|
||||
$pdf->setLineStyle($style5);
|
||||
$pdf->Ellipse(100,103,40,20);
|
||||
$pdf->Ellipse(100,105,20,10, 0, 90, 180, '', $style6);
|
||||
$pdf->Ellipse(100,105,20,10, 0, 270, 360, 'DF', $style6);
|
||||
|
||||
$pdf->setLineStyle($style5);
|
||||
$pdf->Ellipse(175,103,30,15,45);
|
||||
$pdf->Ellipse(175,105,15,7.50, 45, 90, 180, '', $style6);
|
||||
$pdf->Ellipse(175,105,15,7.50, 45, 270, 360, 'F', $style6, array(220, 200, 200));
|
||||
|
||||
// Polygon
|
||||
$pdf->Text(5, 129, 'Polygon examples');
|
||||
$pdf->setLineStyle(array('width' => 0.5, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(0, 0, 0)));
|
||||
$pdf->Polygon(array(5,135,45,135,15,165));
|
||||
$pdf->Polygon(array(60,135,80,135,80,155,70,165,50,155), 'DF', array($style6, $style7, $style7, 0, $style6), array(220, 200, 200));
|
||||
$pdf->Polygon(array(120,135,140,135,150,155,110,155), 'D', array($style6, 0, $style7, $style6));
|
||||
$pdf->Polygon(array(160,135,190,155,170,155,200,160,160,165), 'DF', array('all' => $style6), array(220, 220, 220));
|
||||
|
||||
// Polygonal Line
|
||||
$pdf->setLineStyle(array('width' => 0.5, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(0, 0, 164)));
|
||||
$pdf->PolyLine(array(80,165,90,160,100,165,110,160,120,165,130,160,140,165), 'D', array(), array());
|
||||
|
||||
// Regular polygon
|
||||
$pdf->Text(5, 169, 'Regular polygon examples');
|
||||
$pdf->setLineStyle($style5);
|
||||
$pdf->RegularPolygon(20, 190, 15, 6, 0, 1, 'F');
|
||||
$pdf->RegularPolygon(55, 190, 15, 6);
|
||||
$pdf->RegularPolygon(55, 190, 10, 6, 45, false, 'DF', array($style6, 0, $style7, 0, $style7, $style7));
|
||||
$pdf->RegularPolygon(90, 190, 15, 3, 0, true, 'DF', array('all' => $style5), array(200, 220, 200), 'F', array(255, 200, 200));
|
||||
$pdf->RegularPolygon(125, 190, 15, 4, 30, true, '', array('all' => $style5), array(), '', $style6);
|
||||
$pdf->RegularPolygon(160, 190, 15, 10);
|
||||
|
||||
// Star polygon
|
||||
$pdf->Text(5, 209, 'Star polygon examples');
|
||||
$pdf->setLineStyle($style5);
|
||||
$pdf->StarPolygon(20, 230, 15, 20, 3, 0, 1, 'F');
|
||||
$pdf->StarPolygon(55, 230, 15, 12, 5);
|
||||
$pdf->StarPolygon(55, 230, 7, 12, 5, 45, false, 'DF', array('all' => $style7), array(220, 220, 200), 'F', array(255, 200, 200));
|
||||
$pdf->StarPolygon(90, 230, 15, 20, 6, 0, true, 'DF', array('all' => $style5), array(220, 220, 200), 'F', array(255, 200, 200));
|
||||
$pdf->StarPolygon(125, 230, 15, 5, 2, 30, true, '', array('all' => $style5), array(), '', $style6);
|
||||
$pdf->StarPolygon(160, 230, 15, 10, 3);
|
||||
$pdf->StarPolygon(160, 230, 7, 50, 26);
|
||||
|
||||
// Rounded rectangle
|
||||
$pdf->Text(5, 249, 'Rounded rectangle examples');
|
||||
$pdf->setLineStyle(array('width' => 0.5, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(0, 0, 0)));
|
||||
$pdf->RoundedRect(5, 255, 40, 30, 3.50, '1111', 'DF');
|
||||
$pdf->RoundedRect(50, 255, 40, 30, 6.50, '1000');
|
||||
$pdf->RoundedRect(95, 255, 40, 30, 10.0, '1111', '', $style6);
|
||||
$pdf->RoundedRect(140, 255, 40, 30, 8.0, '0101', 'DF', $style6, array(200, 200, 200));
|
||||
|
||||
// Arrows
|
||||
$pdf->Text(185, 249, 'Arrows');
|
||||
$pdf->setLineStyle($style5);
|
||||
$pdf->setFillColor(255, 0, 0);
|
||||
$pdf->Arrow(200, 280, 185, 266, 0, 5, 15);
|
||||
$pdf->Arrow(200, 280, 190, 263, 1, 5, 15);
|
||||
$pdf->Arrow(200, 280, 195, 261, 2, 5, 15);
|
||||
$pdf->Arrow(200, 280, 200, 260, 3, 5, 15);
|
||||
|
||||
// - . - . - . - . - . - . - . - . - . - . - . - . - . - . -
|
||||
|
||||
// ellipse
|
||||
|
||||
// add a page
|
||||
$pdf->AddPage();
|
||||
|
||||
$pdf->Cell(0, 0, 'Arc of Ellipse');
|
||||
|
||||
// center of ellipse
|
||||
$xc=100;
|
||||
$yc=100;
|
||||
|
||||
// X Y axis
|
||||
$pdf->setDrawColor(200, 200, 200);
|
||||
$pdf->Line($xc-50, $yc, $xc+50, $yc);
|
||||
$pdf->Line($xc, $yc-50, $xc, $yc+50);
|
||||
|
||||
// ellipse axis
|
||||
$pdf->setDrawColor(200, 220, 255);
|
||||
$pdf->Line($xc-50, $yc-50, $xc+50, $yc+50);
|
||||
$pdf->Line($xc-50, $yc+50, $xc+50, $yc-50);
|
||||
|
||||
// ellipse
|
||||
$pdf->setDrawColor(200, 255, 200);
|
||||
$pdf->Ellipse($xc, $yc, 30, 15, 45, 0, 360, 'D', array(), array(), 2);
|
||||
|
||||
// ellipse arc
|
||||
$pdf->setDrawColor(255, 0, 0);
|
||||
$pdf->Ellipse($xc, $yc, 30, 15, 45, 45, 90, 'D', array(), array(), 2);
|
||||
|
||||
|
||||
// ---------------------------------------------------------
|
||||
|
||||
//Close and output PDF document
|
||||
$pdf->Output('example_012.pdf', 'I');
|
||||
|
||||
//============================================================+
|
||||
// END OF FILE
|
||||
//============================================================+
|
||||
229
lib/combodo/tcpdf/examples/example_013.php
Normal file
229
lib/combodo/tcpdf/examples/example_013.php
Normal file
@@ -0,0 +1,229 @@
|
||||
<?php
|
||||
//============================================================+
|
||||
// File name : example_013.php
|
||||
// Begin : 2008-03-04
|
||||
// Last Update : 2013-05-14
|
||||
//
|
||||
// Description : Example 013 for TCPDF class
|
||||
// Graphic Transformations
|
||||
//
|
||||
// Author: Nicola Asuni
|
||||
//
|
||||
// (c) Copyright:
|
||||
// Nicola Asuni
|
||||
// Tecnick.com LTD
|
||||
// www.tecnick.com
|
||||
// info@tecnick.com
|
||||
//============================================================+
|
||||
|
||||
/**
|
||||
* Creates an example PDF TEST document using TCPDF
|
||||
* @package com.tecnick.tcpdf
|
||||
* @abstract TCPDF - Example: Graphic Transformations
|
||||
* @author Nicola Asuni
|
||||
* @since 2008-03-04
|
||||
*/
|
||||
|
||||
// Include the main TCPDF library (search for installation path).
|
||||
require_once('tcpdf_include.php');
|
||||
|
||||
// create new PDF document
|
||||
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
|
||||
|
||||
// set document information
|
||||
$pdf->setCreator(PDF_CREATOR);
|
||||
$pdf->setAuthor('Nicola Asuni');
|
||||
$pdf->setTitle('TCPDF Example 013');
|
||||
$pdf->setSubject('TCPDF Tutorial');
|
||||
$pdf->setKeywords('TCPDF, PDF, example, test, guide');
|
||||
|
||||
// set default header data
|
||||
$pdf->setHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 013', PDF_HEADER_STRING);
|
||||
|
||||
// set header and footer fonts
|
||||
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
|
||||
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
|
||||
|
||||
// set default monospaced font
|
||||
$pdf->setDefaultMonospacedFont(PDF_FONT_MONOSPACED);
|
||||
|
||||
// set margins
|
||||
$pdf->setMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
|
||||
$pdf->setHeaderMargin(PDF_MARGIN_HEADER);
|
||||
$pdf->setFooterMargin(PDF_MARGIN_FOOTER);
|
||||
|
||||
// set auto page breaks
|
||||
$pdf->setAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
|
||||
|
||||
// set image scale factor
|
||||
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
|
||||
|
||||
// set some language-dependent strings (optional)
|
||||
if (@file_exists(dirname(__FILE__).'/lang/eng.php')) {
|
||||
require_once(dirname(__FILE__).'/lang/eng.php');
|
||||
$pdf->setLanguageArray($l);
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------
|
||||
|
||||
// set font
|
||||
$pdf->setFont('helvetica', 'B', 20);
|
||||
|
||||
// add a page
|
||||
$pdf->AddPage();
|
||||
|
||||
$pdf->Write(0, 'Graphic Transformations', '', 0, 'C', 1, 0, false, false, 0);
|
||||
|
||||
// set font
|
||||
$pdf->setFont('helvetica', '', 10);
|
||||
|
||||
// --- Scaling ---------------------------------------------
|
||||
$pdf->setDrawColor(200);
|
||||
$pdf->setTextColor(200);
|
||||
$pdf->Rect(50, 70, 40, 10, 'D');
|
||||
$pdf->Text(50, 66, 'Scale');
|
||||
$pdf->setDrawColor(0);
|
||||
$pdf->setTextColor(0);
|
||||
// Start Transformation
|
||||
$pdf->StartTransform();
|
||||
// Scale by 150% centered by (50,80) which is the lower left corner of the rectangle
|
||||
$pdf->ScaleXY(150, 50, 80);
|
||||
$pdf->Rect(50, 70, 40, 10, 'D');
|
||||
$pdf->Text(50, 66, 'Scale');
|
||||
// Stop Transformation
|
||||
$pdf->StopTransform();
|
||||
|
||||
// --- Translation -----------------------------------------
|
||||
$pdf->setDrawColor(200);
|
||||
$pdf->setTextColor(200);
|
||||
$pdf->Rect(125, 70, 40, 10, 'D');
|
||||
$pdf->Text(125, 66, 'Translate');
|
||||
$pdf->setDrawColor(0);
|
||||
$pdf->setTextColor(0);
|
||||
// Start Transformation
|
||||
$pdf->StartTransform();
|
||||
// Translate 7 to the right, 5 to the bottom
|
||||
$pdf->Translate(7, 5);
|
||||
$pdf->Rect(125, 70, 40, 10, 'D');
|
||||
$pdf->Text(125, 66, 'Translate');
|
||||
// Stop Transformation
|
||||
$pdf->StopTransform();
|
||||
|
||||
// --- Rotation --------------------------------------------
|
||||
$pdf->setDrawColor(200);
|
||||
$pdf->setTextColor(200);
|
||||
$pdf->Rect(70, 100, 40, 10, 'D');
|
||||
$pdf->Text(70, 96, 'Rotate');
|
||||
$pdf->setDrawColor(0);
|
||||
$pdf->setTextColor(0);
|
||||
// Start Transformation
|
||||
$pdf->StartTransform();
|
||||
// Rotate 20 degrees counter-clockwise centered by (70,110) which is the lower left corner of the rectangle
|
||||
$pdf->Rotate(20, 70, 110);
|
||||
$pdf->Rect(70, 100, 40, 10, 'D');
|
||||
$pdf->Text(70, 96, 'Rotate');
|
||||
// Stop Transformation
|
||||
$pdf->StopTransform();
|
||||
|
||||
// --- Skewing ---------------------------------------------
|
||||
$pdf->setDrawColor(200);
|
||||
$pdf->setTextColor(200);
|
||||
$pdf->Rect(125, 100, 40, 10, 'D');
|
||||
$pdf->Text(125, 96, 'Skew');
|
||||
$pdf->setDrawColor(0);
|
||||
$pdf->setTextColor(0);
|
||||
// Start Transformation
|
||||
$pdf->StartTransform();
|
||||
// skew 30 degrees along the x-axis centered by (125,110) which is the lower left corner of the rectangle
|
||||
$pdf->SkewX(30, 125, 110);
|
||||
$pdf->Rect(125, 100, 40, 10, 'D');
|
||||
$pdf->Text(125, 96, 'Skew');
|
||||
// Stop Transformation
|
||||
$pdf->StopTransform();
|
||||
|
||||
// --- Mirroring horizontally ------------------------------
|
||||
$pdf->setDrawColor(200);
|
||||
$pdf->setTextColor(200);
|
||||
$pdf->Rect(70, 130, 40, 10, 'D');
|
||||
$pdf->Text(70, 126, 'MirrorH');
|
||||
$pdf->setDrawColor(0);
|
||||
$pdf->setTextColor(0);
|
||||
// Start Transformation
|
||||
$pdf->StartTransform();
|
||||
// mirror horizontally with axis of reflection at x-position 70 (left side of the rectangle)
|
||||
$pdf->MirrorH(70);
|
||||
$pdf->Rect(70, 130, 40, 10, 'D');
|
||||
$pdf->Text(70, 126, 'MirrorH');
|
||||
// Stop Transformation
|
||||
$pdf->StopTransform();
|
||||
|
||||
// --- Mirroring vertically --------------------------------
|
||||
$pdf->setDrawColor(200);
|
||||
$pdf->setTextColor(200);
|
||||
$pdf->Rect(125, 130, 40, 10, 'D');
|
||||
$pdf->Text(125, 126, 'MirrorV');
|
||||
$pdf->setDrawColor(0);
|
||||
$pdf->setTextColor(0);
|
||||
// Start Transformation
|
||||
$pdf->StartTransform();
|
||||
// mirror vertically with axis of reflection at y-position 140 (bottom side of the rectangle)
|
||||
$pdf->MirrorV(140);
|
||||
$pdf->Rect(125, 130, 40, 10, 'D');
|
||||
$pdf->Text(125, 126, 'MirrorV');
|
||||
// Stop Transformation
|
||||
$pdf->StopTransform();
|
||||
|
||||
// --- Point reflection ------------------------------------
|
||||
$pdf->setDrawColor(200);
|
||||
$pdf->setTextColor(200);
|
||||
$pdf->Rect(70, 160, 40, 10, 'D');
|
||||
$pdf->Text(70, 156, 'MirrorP');
|
||||
$pdf->setDrawColor(0);
|
||||
$pdf->setTextColor(0);
|
||||
// Start Transformation
|
||||
$pdf->StartTransform();
|
||||
// point reflection at the lower left point of rectangle
|
||||
$pdf->MirrorP(70,170);
|
||||
$pdf->Rect(70, 160, 40, 10, 'D');
|
||||
$pdf->Text(70, 156, 'MirrorP');
|
||||
// Stop Transformation
|
||||
$pdf->StopTransform();
|
||||
|
||||
// --- Mirroring against a straigth line described by a point (120, 120) and an angle -20°
|
||||
$angle=-20;
|
||||
$px=120;
|
||||
$py=170;
|
||||
|
||||
// just for visualisation: the straight line to mirror against
|
||||
|
||||
$pdf->setDrawColor(200);
|
||||
$pdf->Line($px-1,$py-1,$px+1,$py+1);
|
||||
$pdf->Line($px-1,$py+1,$px+1,$py-1);
|
||||
$pdf->StartTransform();
|
||||
$pdf->Rotate($angle, $px, $py);
|
||||
$pdf->Line($px-5, $py, $px+60, $py);
|
||||
$pdf->StopTransform();
|
||||
|
||||
$pdf->setDrawColor(200);
|
||||
$pdf->setTextColor(200);
|
||||
$pdf->Rect(125, 160, 40, 10, 'D');
|
||||
$pdf->Text(125, 156, 'MirrorL');
|
||||
$pdf->setDrawColor(0);
|
||||
$pdf->setTextColor(0);
|
||||
//Start Transformation
|
||||
$pdf->StartTransform();
|
||||
//mirror against the straight line
|
||||
$pdf->MirrorL($angle, $px, $py);
|
||||
$pdf->Rect(125, 160, 40, 10, 'D');
|
||||
$pdf->Text(125, 156, 'MirrorL');
|
||||
//Stop Transformation
|
||||
$pdf->StopTransform();
|
||||
|
||||
// ---------------------------------------------------------
|
||||
|
||||
//Close and output PDF document
|
||||
$pdf->Output('example_013.pdf', 'I');
|
||||
|
||||
//============================================================+
|
||||
// END OF FILE
|
||||
//============================================================+
|
||||
194
lib/combodo/tcpdf/examples/example_014.php
Normal file
194
lib/combodo/tcpdf/examples/example_014.php
Normal file
@@ -0,0 +1,194 @@
|
||||
<?php
|
||||
//============================================================+
|
||||
// File name : example_014.php
|
||||
// Begin : 2008-03-04
|
||||
// Last Update : 2013-05-14
|
||||
//
|
||||
// Description : Example 014 for TCPDF class
|
||||
// Javascript Form and user rights (only works on Adobe Acrobat)
|
||||
//
|
||||
// Author: Nicola Asuni
|
||||
//
|
||||
// (c) Copyright:
|
||||
// Nicola Asuni
|
||||
// Tecnick.com LTD
|
||||
// www.tecnick.com
|
||||
// info@tecnick.com
|
||||
//============================================================+
|
||||
|
||||
/**
|
||||
* Creates an example PDF TEST document using TCPDF
|
||||
* @package com.tecnick.tcpdf
|
||||
* @abstract TCPDF - Example: Javascript Form and user rights (only works on Adobe Acrobat)
|
||||
* @author Nicola Asuni
|
||||
* @since 2008-03-04
|
||||
*/
|
||||
|
||||
|
||||
// Include the main TCPDF library (search for installation path).
|
||||
require_once('tcpdf_include.php');
|
||||
|
||||
// create new PDF document
|
||||
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
|
||||
|
||||
// set document information
|
||||
$pdf->setCreator(PDF_CREATOR);
|
||||
$pdf->setAuthor('Nicola Asuni');
|
||||
$pdf->setTitle('TCPDF Example 014');
|
||||
$pdf->setSubject('TCPDF Tutorial');
|
||||
$pdf->setKeywords('TCPDF, PDF, example, test, guide');
|
||||
|
||||
// set default header data
|
||||
$pdf->setHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 014', PDF_HEADER_STRING);
|
||||
|
||||
// set header and footer fonts
|
||||
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
|
||||
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
|
||||
|
||||
// set default monospaced font
|
||||
$pdf->setDefaultMonospacedFont(PDF_FONT_MONOSPACED);
|
||||
|
||||
// set margins
|
||||
$pdf->setMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
|
||||
$pdf->setHeaderMargin(PDF_MARGIN_HEADER);
|
||||
$pdf->setFooterMargin(PDF_MARGIN_FOOTER);
|
||||
|
||||
// set auto page breaks
|
||||
$pdf->setAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
|
||||
|
||||
// set image scale factor
|
||||
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
|
||||
|
||||
// set some language-dependent strings (optional)
|
||||
if (@file_exists(dirname(__FILE__).'/lang/eng.php')) {
|
||||
require_once(dirname(__FILE__).'/lang/eng.php');
|
||||
$pdf->setLanguageArray($l);
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------
|
||||
|
||||
// IMPORTANT: disable font subsetting to allow users editing the document
|
||||
$pdf->setFontSubsetting(false);
|
||||
|
||||
// set font
|
||||
$pdf->setFont('helvetica', '', 10, '', false);
|
||||
|
||||
// add a page
|
||||
$pdf->AddPage();
|
||||
|
||||
/*
|
||||
It is possible to create text fields, combo boxes, check boxes and buttons.
|
||||
Fields are created at the current position and are given a name.
|
||||
This name allows to manipulate them via JavaScript in order to perform some validation for instance.
|
||||
*/
|
||||
|
||||
// set default form properties
|
||||
$pdf->setFormDefaultProp(array('lineWidth'=>1, 'borderStyle'=>'solid', 'fillColor'=>array(255, 255, 200), 'strokeColor'=>array(255, 128, 128)));
|
||||
|
||||
$pdf->setFont('helvetica', 'BI', 18);
|
||||
$pdf->Cell(0, 5, 'Example of Form', 0, 1, 'C');
|
||||
$pdf->Ln(10);
|
||||
|
||||
$pdf->setFont('helvetica', '', 12);
|
||||
|
||||
// First name
|
||||
$pdf->Cell(35, 5, 'First name:');
|
||||
$pdf->TextField('firstname', 50, 5);
|
||||
$pdf->Ln(6);
|
||||
|
||||
// Last name
|
||||
$pdf->Cell(35, 5, 'Last name:');
|
||||
$pdf->TextField('lastname', 50, 5);
|
||||
$pdf->Ln(6);
|
||||
|
||||
// Gender
|
||||
$pdf->Cell(35, 5, 'Gender:');
|
||||
$pdf->ComboBox('gender', 30, 5, array(array('', '-'), array('M', 'Male'), array('F', 'Female')));
|
||||
$pdf->Ln(6);
|
||||
|
||||
// Drink
|
||||
$pdf->Cell(35, 5, 'Drink:');
|
||||
//$pdf->RadioButton('drink', 5, array('readonly' => 'true'), array(), 'Water');
|
||||
$pdf->RadioButton('drink', 5, array(), array(), 'Water');
|
||||
$pdf->Cell(35, 5, 'Water');
|
||||
$pdf->Ln(6);
|
||||
$pdf->Cell(35, 5, '');
|
||||
$pdf->RadioButton('drink', 5, array(), array(), 'Beer', true);
|
||||
$pdf->Cell(35, 5, 'Beer');
|
||||
$pdf->Ln(6);
|
||||
$pdf->Cell(35, 5, '');
|
||||
$pdf->RadioButton('drink', 5, array(), array(), 'Wine');
|
||||
$pdf->Cell(35, 5, 'Wine');
|
||||
$pdf->Ln(6);
|
||||
$pdf->Cell(35, 5, '');
|
||||
$pdf->RadioButton('drink', 5, array(), array(), 'Milk');
|
||||
$pdf->Cell(35, 5, 'Milk');
|
||||
$pdf->Ln(10);
|
||||
|
||||
// Newsletter
|
||||
$pdf->Cell(35, 5, 'Newsletter:');
|
||||
$pdf->CheckBox('newsletter', 5, true, array(), array(), 'OK');
|
||||
|
||||
$pdf->Ln(10);
|
||||
// Address
|
||||
$pdf->Cell(35, 5, 'Address:');
|
||||
$pdf->TextField('address', 60, 18, array('multiline'=>true, 'lineWidth'=>0, 'borderStyle'=>'none'), array('v'=>'Lorem ipsum dolor sit amet, consectetur adipiscing elit.', 'dv'=>'Lorem ipsum dolor sit amet, consectetur adipiscing elit.'));
|
||||
$pdf->Ln(19);
|
||||
|
||||
// Listbox
|
||||
$pdf->Cell(35, 5, 'List:');
|
||||
$pdf->ListBox('listbox', 60, 15, array('', 'item1', 'item2', 'item3', 'item4', 'item5', 'item6', 'item7'), array('multipleSelection'=>'true'));
|
||||
$pdf->Ln(20);
|
||||
|
||||
// E-mail
|
||||
$pdf->Cell(35, 5, 'E-mail:');
|
||||
$pdf->TextField('email', 50, 5);
|
||||
$pdf->Ln(6);
|
||||
|
||||
// Date of the day
|
||||
$pdf->Cell(35, 5, 'Date:');
|
||||
$pdf->TextField('date', 30, 5, array(), array('v'=>date('Y-m-d'), 'dv'=>date('Y-m-d')));
|
||||
$pdf->Ln(10);
|
||||
|
||||
$pdf->setX(50);
|
||||
|
||||
// Button to validate and print
|
||||
$pdf->Button('print', 30, 10, 'Print', 'Print()', array('lineWidth'=>2, 'borderStyle'=>'beveled', 'fillColor'=>array(128, 196, 255), 'strokeColor'=>array(64, 64, 64)));
|
||||
|
||||
// Reset Button
|
||||
$pdf->Button('reset', 30, 10, 'Reset', array('S'=>'ResetForm'), array('lineWidth'=>2, 'borderStyle'=>'beveled', 'fillColor'=>array(128, 196, 255), 'strokeColor'=>array(64, 64, 64)));
|
||||
|
||||
// Submit Button
|
||||
$pdf->Button('submit', 30, 10, 'Submit', array('S'=>'SubmitForm', 'F'=>'http://localhost/printvars.php', 'Flags'=>array('ExportFormat')), array('lineWidth'=>2, 'borderStyle'=>'beveled', 'fillColor'=>array(128, 196, 255), 'strokeColor'=>array(64, 64, 64)));
|
||||
|
||||
// Form validation functions
|
||||
$js = <<<EOD
|
||||
function CheckField(name,message) {
|
||||
var f = getField(name);
|
||||
if(f.value == '') {
|
||||
app.alert(message);
|
||||
f.setFocus();
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
function Print() {
|
||||
if(!CheckField('firstname','First name is mandatory')) {return;}
|
||||
if(!CheckField('lastname','Last name is mandatory')) {return;}
|
||||
if(!CheckField('gender','Gender is mandatory')) {return;}
|
||||
if(!CheckField('address','Address is mandatory')) {return;}
|
||||
print();
|
||||
}
|
||||
EOD;
|
||||
|
||||
// Add Javascript code
|
||||
$pdf->IncludeJS($js);
|
||||
|
||||
// ---------------------------------------------------------
|
||||
|
||||
//Close and output PDF document
|
||||
$pdf->Output('example_014.pdf', 'D');
|
||||
|
||||
//============================================================+
|
||||
// END OF FILE
|
||||
//============================================================+
|
||||
161
lib/combodo/tcpdf/examples/example_015.php
Normal file
161
lib/combodo/tcpdf/examples/example_015.php
Normal file
@@ -0,0 +1,161 @@
|
||||
<?php
|
||||
//============================================================+
|
||||
// File name : example_015.php
|
||||
// Begin : 2008-03-04
|
||||
// Last Update : 2013-05-14
|
||||
//
|
||||
// Description : Example 015 for TCPDF class
|
||||
// Bookmarks (Table of Content)
|
||||
// and Named Destinations.
|
||||
//
|
||||
// Author: Nicola Asuni
|
||||
//
|
||||
// (c) Copyright:
|
||||
// Nicola Asuni
|
||||
// Tecnick.com LTD
|
||||
// www.tecnick.com
|
||||
// info@tecnick.com
|
||||
//============================================================+
|
||||
|
||||
/**
|
||||
* Creates an example PDF TEST document using TCPDF
|
||||
* @package com.tecnick.tcpdf
|
||||
* @abstract TCPDF - Example: Bookmarks (Table of Content)
|
||||
* @author Nicola Asuni
|
||||
* @since 2008-03-04
|
||||
*/
|
||||
|
||||
// Include the main TCPDF library (search for installation path).
|
||||
require_once('tcpdf_include.php');
|
||||
|
||||
// create new PDF document
|
||||
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
|
||||
|
||||
// set document information
|
||||
$pdf->setCreator(PDF_CREATOR);
|
||||
$pdf->setAuthor('Nicola Asuni');
|
||||
$pdf->setTitle('TCPDF Example 015');
|
||||
$pdf->setSubject('TCPDF Tutorial');
|
||||
$pdf->setKeywords('TCPDF, PDF, example, test, guide');
|
||||
|
||||
// set default header data
|
||||
$pdf->setHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 015', PDF_HEADER_STRING);
|
||||
|
||||
// set header and footer fonts
|
||||
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
|
||||
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
|
||||
|
||||
// set default monospaced font
|
||||
$pdf->setDefaultMonospacedFont(PDF_FONT_MONOSPACED);
|
||||
|
||||
// set margins
|
||||
$pdf->setMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
|
||||
$pdf->setHeaderMargin(PDF_MARGIN_HEADER);
|
||||
$pdf->setFooterMargin(PDF_MARGIN_FOOTER);
|
||||
|
||||
// set auto page breaks
|
||||
$pdf->setAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
|
||||
|
||||
// set image scale factor
|
||||
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
|
||||
|
||||
// set some language-dependent strings (optional)
|
||||
if (@file_exists(dirname(__FILE__).'/lang/eng.php')) {
|
||||
require_once(dirname(__FILE__).'/lang/eng.php');
|
||||
$pdf->setLanguageArray($l);
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------
|
||||
|
||||
// Bookmark($txt, $level=0, $y=-1, $page='', $style='', $color=array(0,0,0))
|
||||
|
||||
// set font
|
||||
$pdf->setFont('times', 'B', 20);
|
||||
|
||||
// add a page
|
||||
$pdf->AddPage();
|
||||
|
||||
// set a bookmark for the current position
|
||||
$pdf->Bookmark('Chapter 1', 0, 0, '', 'B', array(0,64,128));
|
||||
|
||||
// print a line using Cell()
|
||||
$pdf->Cell(0, 10, 'Chapter 1', 0, 1, 'L');
|
||||
|
||||
$pdf->setFont('times', 'I', 14);
|
||||
$pdf->Write(0, 'You can set PDF Bookmarks using the Bookmark() method.
|
||||
You can set PDF Named Destinations using the setDestination() method.');
|
||||
|
||||
$pdf->setFont('times', 'B', 20);
|
||||
|
||||
// add other pages and bookmarks
|
||||
|
||||
$pdf->AddPage();
|
||||
$pdf->Bookmark('Paragraph 1.1', 1, 0, '', '', array(0,0,0));
|
||||
$pdf->Cell(0, 10, 'Paragraph 1.1', 0, 1, 'L');
|
||||
|
||||
$pdf->AddPage();
|
||||
$pdf->Bookmark('Paragraph 1.2', 1, 0, '', '', array(0,0,0));
|
||||
$pdf->Cell(0, 10, 'Paragraph 1.2', 0, 1, 'L');
|
||||
|
||||
$pdf->AddPage();
|
||||
$pdf->Bookmark('Sub-Paragraph 1.2.1', 2, 0, '', 'I', array(0,0,0));
|
||||
$pdf->Cell(0, 10, 'Sub-Paragraph 1.2.1', 0, 1, 'L');
|
||||
|
||||
$pdf->AddPage();
|
||||
$pdf->Bookmark('Paragraph 1.3', 1, 0, '', '', array(0,0,0));
|
||||
$pdf->Cell(0, 10, 'Paragraph 1.3', 0, 1, 'L');
|
||||
|
||||
$pdf->AddPage();
|
||||
// add a named destination so you can open this document at this page using the link: "example_015.pdf#chapter2"
|
||||
$pdf->setDestination('chapter2', 0, '');
|
||||
// add a bookmark that points to a named destination
|
||||
$pdf->Bookmark('Chapter 2', 0, 0, '', 'BI', array(128,0,0), -1, '#chapter2');
|
||||
$pdf->Cell(0, 10, 'Chapter 2', 0, 1, 'L');
|
||||
$pdf->setFont('times', 'I', 14);
|
||||
$pdf->Write(0, 'Once saved, you can open this document at this page using the link: "example_015.pdf#chapter2".');
|
||||
|
||||
$pdf->AddPage();
|
||||
$pdf->setDestination('chapter3', 0, '');
|
||||
$pdf->setFont('times', 'B', 20);
|
||||
$pdf->Bookmark('Chapter 3', 0, 0, '', 'B', array(0,64,128));
|
||||
$pdf->Cell(0, 10, 'Chapter 3', 0, 1, 'L');
|
||||
|
||||
$pdf->AddPage();
|
||||
$pdf->setDestination('chapter4', 0, '');
|
||||
$pdf->setFont('times', 'B', 20);
|
||||
$pdf->Bookmark('Chapter 4', 0, 0, '', 'B', array(0,64,128));
|
||||
$pdf->Cell(0, 10, 'Chapter 4', 0, 1, 'L');
|
||||
|
||||
$pdf->AddPage();
|
||||
$pdf->Bookmark('Chapter 5', 0, 0, '', 'B', array(0,128,0));
|
||||
$pdf->Cell(0, 10, 'Chapter 5', 0, 1, 'L');
|
||||
$txt = 'Example of File Attachment.
|
||||
Double click on the icon to open the attached file.';
|
||||
$pdf->setFont('helvetica', '', 10);
|
||||
$pdf->Write(0, $txt, '', 0, 'L', true, 0, false, false, 0);
|
||||
|
||||
// attach an external file TXT file
|
||||
$pdf->Annotation(20, 50, 5, 5, 'TXT file', array('Subtype'=>'FileAttachment', 'Name' => 'PushPin', 'FS' => 'data/utf8test.txt'));
|
||||
|
||||
// attach an external file
|
||||
$pdf->Annotation(50, 50, 5, 5, 'PDF file', array('Subtype'=>'FileAttachment', 'Name' => 'PushPin', 'FS' => 'example_012.pdf'));
|
||||
|
||||
// add a bookmark that points to an embedded file
|
||||
// NOTE: prefix the file name with the * character for generic file and with % character for PDF file
|
||||
$pdf->Bookmark('TXT file', 0, 0, '', 'B', array(128,0,255), -1, '*utf8test.txt');
|
||||
|
||||
// add a bookmark that points to an embedded file
|
||||
// NOTE: prefix the file name with the * character for generic file and with % character for PDF file
|
||||
$pdf->Bookmark('PDF file', 0, 0, '', 'B', array(128,0,255), -1, '%example_012.pdf');
|
||||
|
||||
// add a bookmark that points to an external URL
|
||||
$pdf->Bookmark('External URL', 0, 0, '', 'B', array(0,0,255), -1, 'http://www.tcpdf.org');
|
||||
|
||||
// ---------------------------------------------------------
|
||||
|
||||
//Close and output PDF document
|
||||
$pdf->Output('example_015.pdf', 'D');
|
||||
|
||||
//============================================================+
|
||||
// END OF FILE
|
||||
//============================================================+
|
||||
134
lib/combodo/tcpdf/examples/example_016.php
Normal file
134
lib/combodo/tcpdf/examples/example_016.php
Normal file
@@ -0,0 +1,134 @@
|
||||
<?php
|
||||
//============================================================+
|
||||
// File name : example_016.php
|
||||
// Begin : 2008-03-04
|
||||
// Last Update : 2013-05-14
|
||||
//
|
||||
// Description : Example 016 for TCPDF class
|
||||
// Document Encryption / Security
|
||||
//
|
||||
// Author: Nicola Asuni
|
||||
//
|
||||
// (c) Copyright:
|
||||
// Nicola Asuni
|
||||
// Tecnick.com LTD
|
||||
// www.tecnick.com
|
||||
// info@tecnick.com
|
||||
//============================================================+
|
||||
|
||||
/**
|
||||
* Creates an example PDF TEST document using TCPDF
|
||||
* @package com.tecnick.tcpdf
|
||||
* @abstract TCPDF - Example: Document Encryption / Security
|
||||
* @author Nicola Asuni
|
||||
* @since 2008-03-04
|
||||
*/
|
||||
|
||||
// Include the main TCPDF library (search for installation path).
|
||||
require_once('tcpdf_include.php');
|
||||
|
||||
// create new PDF document
|
||||
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
|
||||
|
||||
|
||||
// *** Set PDF protection (encryption) *********************
|
||||
|
||||
/*
|
||||
The permission array is composed of values taken from the following ones (specify the ones you want to block):
|
||||
- print : Print the document;
|
||||
- modify : Modify the contents of the document by operations other than those controlled by 'fill-forms', 'extract' and 'assemble';
|
||||
- copy : Copy or otherwise extract text and graphics from the document;
|
||||
- annot-forms : Add or modify text annotations, fill in interactive form fields, and, if 'modify' is also set, create or modify interactive form fields (including signature fields);
|
||||
- fill-forms : Fill in existing interactive form fields (including signature fields), even if 'annot-forms' is not specified;
|
||||
- extract : Extract text and graphics (in support of accessibility to users with disabilities or for other purposes);
|
||||
- assemble : Assemble the document (insert, rotate, or delete pages and create bookmarks or thumbnail images), even if 'modify' is not set;
|
||||
- print-high : Print the document to a representation from which a faithful digital copy of the PDF content could be generated. When this is not set, printing is limited to a low-level representation of the appearance, possibly of degraded quality.
|
||||
- owner : (inverted logic - only for public-key) when set permits change of encryption and enables all other permissions.
|
||||
|
||||
If you don't set any password, the document will open as usual.
|
||||
If you set a user password, the PDF viewer will ask for it before displaying the document.
|
||||
The master (owner) password, if different from the user one, can be used to get full document access.
|
||||
|
||||
Possible encryption modes are:
|
||||
0 = RSA 40 bit
|
||||
1 = RSA 128 bit
|
||||
2 = AES 128 bit
|
||||
3 = AES 256 bit
|
||||
|
||||
NOTES:
|
||||
- To create self-signed signature: openssl req -x509 -nodes -days 365000 -newkey rsa:1024 -keyout tcpdf.crt -out tcpdf.crt
|
||||
- To export crt to p12: openssl pkcs12 -export -in tcpdf.crt -out tcpdf.p12
|
||||
- To convert pfx certificate to pem: openssl pkcs12 -in tcpdf.pfx -out tcpdf.crt -nodes
|
||||
|
||||
*/
|
||||
|
||||
$pdf->setProtection(array('print', 'copy'), '', null, 0, null);
|
||||
|
||||
// Example with public-key
|
||||
// To open the document you need to install the private key (tcpdf.p12) on the Acrobat Reader. The password is: 1234
|
||||
//$pdf->setProtection($permissions=array('print', 'copy'), $user_pass='', $owner_pass=null, $mode=1, $pubkeys=array(array('c' => 'file://../config/cert/tcpdf.crt', 'p' => array('print'))));
|
||||
|
||||
// *********************************************************
|
||||
|
||||
|
||||
// set document information
|
||||
$pdf->setCreator(PDF_CREATOR);
|
||||
$pdf->setAuthor('Nicola Asuni');
|
||||
$pdf->setTitle('TCPDF Example 016');
|
||||
$pdf->setSubject('TCPDF Tutorial');
|
||||
$pdf->setKeywords('TCPDF, PDF, example, test, guide');
|
||||
|
||||
// set default header data
|
||||
$pdf->setHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 016', PDF_HEADER_STRING);
|
||||
|
||||
// set header and footer fonts
|
||||
$pdf->setHeaderFont(Array('helvetica', '', PDF_FONT_SIZE_MAIN));
|
||||
$pdf->setFooterFont(Array('helvetica', '', PDF_FONT_SIZE_DATA));
|
||||
|
||||
// set default monospaced font
|
||||
$pdf->setDefaultMonospacedFont(PDF_FONT_MONOSPACED);
|
||||
|
||||
// set margins
|
||||
$pdf->setMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
|
||||
$pdf->setHeaderMargin(PDF_MARGIN_HEADER);
|
||||
$pdf->setFooterMargin(PDF_MARGIN_FOOTER);
|
||||
|
||||
// set auto page breaks
|
||||
$pdf->setAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
|
||||
|
||||
// set image scale factor
|
||||
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
|
||||
|
||||
// set some language-dependent strings (optional)
|
||||
if (@file_exists(dirname(__FILE__).'/lang/eng.php')) {
|
||||
require_once(dirname(__FILE__).'/lang/eng.php');
|
||||
$pdf->setLanguageArray($l);
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------
|
||||
|
||||
// set font
|
||||
$pdf->setFont('times', '', 16);
|
||||
|
||||
// add a page
|
||||
$pdf->AddPage();
|
||||
|
||||
// set some text to print
|
||||
$txt = <<<EOD
|
||||
Encryption Example
|
||||
|
||||
Consult the source code documentation for the SetProtection() method.
|
||||
EOD;
|
||||
|
||||
// print a block of text using Write()
|
||||
$pdf->Write(0, $txt, '', 0, 'L', true, 0, false, false, 0);
|
||||
|
||||
|
||||
// ---------------------------------------------------------
|
||||
|
||||
//Close and output PDF document
|
||||
$pdf->Output('example_016.pdf', 'D');
|
||||
|
||||
//============================================================+
|
||||
// END OF FILE
|
||||
//============================================================+
|
||||
117
lib/combodo/tcpdf/examples/example_017.php
Normal file
117
lib/combodo/tcpdf/examples/example_017.php
Normal file
@@ -0,0 +1,117 @@
|
||||
<?php
|
||||
//============================================================+
|
||||
// File name : example_017.php
|
||||
// Begin : 2008-03-04
|
||||
// Last Update : 2013-05-14
|
||||
//
|
||||
// Description : Example 017 for TCPDF class
|
||||
// Two independent columns with MultiCell
|
||||
//
|
||||
// Author: Nicola Asuni
|
||||
//
|
||||
// (c) Copyright:
|
||||
// Nicola Asuni
|
||||
// Tecnick.com LTD
|
||||
// www.tecnick.com
|
||||
// info@tecnick.com
|
||||
//============================================================+
|
||||
|
||||
/**
|
||||
* Creates an example PDF TEST document using TCPDF
|
||||
* @package com.tecnick.tcpdf
|
||||
* @abstract TCPDF - Example: Two independent columns with MultiCell
|
||||
* @author Nicola Asuni
|
||||
* @since 2008-03-04
|
||||
*/
|
||||
|
||||
// Include the main TCPDF library (search for installation path).
|
||||
require_once('tcpdf_include.php');
|
||||
|
||||
// create new PDF document
|
||||
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
|
||||
|
||||
// set document information
|
||||
$pdf->setCreator(PDF_CREATOR);
|
||||
$pdf->setAuthor('Nicola Asuni');
|
||||
$pdf->setTitle('TCPDF Example 017');
|
||||
$pdf->setSubject('TCPDF Tutorial');
|
||||
$pdf->setKeywords('TCPDF, PDF, example, test, guide');
|
||||
|
||||
// set default header data
|
||||
$pdf->setHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 017', PDF_HEADER_STRING);
|
||||
|
||||
// set header and footer fonts
|
||||
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
|
||||
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
|
||||
|
||||
// set default monospaced font
|
||||
$pdf->setDefaultMonospacedFont(PDF_FONT_MONOSPACED);
|
||||
|
||||
// set margins
|
||||
$pdf->setMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
|
||||
$pdf->setHeaderMargin(PDF_MARGIN_HEADER);
|
||||
$pdf->setFooterMargin(PDF_MARGIN_FOOTER);
|
||||
|
||||
// set auto page breaks
|
||||
$pdf->setAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
|
||||
|
||||
// set image scale factor
|
||||
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
|
||||
|
||||
// set some language-dependent strings (optional)
|
||||
if (@file_exists(dirname(__FILE__).'/lang/eng.php')) {
|
||||
require_once(dirname(__FILE__).'/lang/eng.php');
|
||||
$pdf->setLanguageArray($l);
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------
|
||||
|
||||
// set font
|
||||
$pdf->setFont('helvetica', '', 20);
|
||||
|
||||
// add a page
|
||||
$pdf->AddPage();
|
||||
|
||||
$pdf->Write(0, 'Example of independent Multicell() columns', '', 0, 'L', true, 0, false, false, 0);
|
||||
|
||||
$pdf->Ln(5);
|
||||
|
||||
$pdf->setFont('times', '', 12);
|
||||
|
||||
// create columns content
|
||||
// create columns content
|
||||
$left_column = '[LEFT COLUMN] left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column left column'."\n";
|
||||
|
||||
$right_column = '[RIGHT COLUMN] right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column right column'."\n";
|
||||
|
||||
// MultiCell($w, $h, $txt, $border=0, $align='J', $fill=0, $ln=1, $x='', $y='', $reseth=true, $stretch=0, $ishtml=false, $autopadding=true, $maxh=0)
|
||||
|
||||
// set color for background
|
||||
$pdf->setFillColor(255, 255, 200);
|
||||
|
||||
// set color for text
|
||||
$pdf->setTextColor(0, 63, 127);
|
||||
|
||||
// write the first column
|
||||
$pdf->MultiCell(80, 0, $left_column, 1, 'J', 1, 0, '', '', true, 0, false, true, 0);
|
||||
|
||||
// set color for background
|
||||
$pdf->setFillColor(215, 235, 255);
|
||||
|
||||
// set color for text
|
||||
$pdf->setTextColor(127, 31, 0);
|
||||
|
||||
// write the second column
|
||||
$pdf->MultiCell(80, 0, $right_column, 1, 'J', 1, 1, '', '', true, 0, false, true, 0);
|
||||
|
||||
// reset pointer to the last page
|
||||
$pdf->lastPage();
|
||||
|
||||
// ---------------------------------------------------------
|
||||
|
||||
//Close and output PDF document
|
||||
$pdf->Output('example_017.pdf', 'I');
|
||||
|
||||
//============================================================+
|
||||
// END OF FILE
|
||||
//============================================================+
|
||||
128
lib/combodo/tcpdf/examples/example_018.php
Normal file
128
lib/combodo/tcpdf/examples/example_018.php
Normal file
@@ -0,0 +1,128 @@
|
||||
<?php
|
||||
//============================================================+
|
||||
// File name : example_018.php
|
||||
// Begin : 2008-03-06
|
||||
// Last Update : 2013-05-14
|
||||
//
|
||||
// Description : Example 018 for TCPDF class
|
||||
// RTL document with Persian language
|
||||
//
|
||||
// Author: Nicola Asuni
|
||||
//
|
||||
// (c) Copyright:
|
||||
// Nicola Asuni
|
||||
// Tecnick.com LTD
|
||||
// www.tecnick.com
|
||||
// info@tecnick.com
|
||||
//============================================================+
|
||||
|
||||
/**
|
||||
* Creates an example PDF TEST document using TCPDF
|
||||
* @package com.tecnick.tcpdf
|
||||
* @abstract TCPDF - Example: RTL document with Persian language
|
||||
* @author Nicola Asuni
|
||||
* @since 2008-03-06
|
||||
*/
|
||||
|
||||
// Include the main TCPDF library (search for installation path).
|
||||
require_once('tcpdf_include.php');
|
||||
|
||||
// create new PDF document
|
||||
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
|
||||
|
||||
// set document information
|
||||
$pdf->setCreator(PDF_CREATOR);
|
||||
$pdf->setAuthor('Nicola Asuni');
|
||||
$pdf->setTitle('TCPDF Example 018');
|
||||
$pdf->setSubject('TCPDF Tutorial');
|
||||
$pdf->setKeywords('TCPDF, PDF, example, test, guide');
|
||||
|
||||
// set default header data
|
||||
$pdf->setHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 018', PDF_HEADER_STRING);
|
||||
|
||||
// set header and footer fonts
|
||||
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
|
||||
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
|
||||
|
||||
// set default monospaced font
|
||||
$pdf->setDefaultMonospacedFont(PDF_FONT_MONOSPACED);
|
||||
|
||||
// set margins
|
||||
$pdf->setMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
|
||||
$pdf->setHeaderMargin(PDF_MARGIN_HEADER);
|
||||
$pdf->setFooterMargin(PDF_MARGIN_FOOTER);
|
||||
|
||||
// set auto page breaks
|
||||
$pdf->setAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
|
||||
|
||||
// set image scale factor
|
||||
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
|
||||
|
||||
// set some language dependent data:
|
||||
$lg = Array();
|
||||
$lg['a_meta_charset'] = 'UTF-8';
|
||||
$lg['a_meta_dir'] = 'rtl';
|
||||
$lg['a_meta_language'] = 'fa';
|
||||
$lg['w_page'] = 'page';
|
||||
|
||||
// set some language-dependent strings (optional)
|
||||
$pdf->setLanguageArray($lg);
|
||||
|
||||
// ---------------------------------------------------------
|
||||
|
||||
// set font
|
||||
$pdf->setFont('dejavusans', '', 12);
|
||||
|
||||
// add a page
|
||||
$pdf->AddPage();
|
||||
|
||||
// Persian and English content
|
||||
$htmlpersian = '<span color="#660000">Persian example:</span><br />سلام بالاخره مشکل PDF فارسی به طور کامل حل شد. اینم یک نمونش.<br />مشکل حرف \"ژ\" در بعضی کلمات مانند کلمه ویژه نیز بر طرف شد.<br />نگارش حروف لام و الف پشت سر هم نیز تصحیح شد.<br />با تشکر از "Asuni Nicola" و محمد علی گل کار برای پشتیبانی زبان فارسی.';
|
||||
$pdf->WriteHTML($htmlpersian, true, 0, true, 0);
|
||||
|
||||
// set LTR direction for english translation
|
||||
$pdf->setRTL(false);
|
||||
|
||||
$pdf->setFontSize(10);
|
||||
|
||||
// print newline
|
||||
$pdf->Ln();
|
||||
|
||||
// Persian and English content
|
||||
$htmlpersiantranslation = '<span color="#0000ff">Hi, At last Problem of Persian PDF Solved completely. This is a example for it.<br />Problem of "jeh" letter in some word like "ویژه" (=special) fix too.<br />The joining of laa and alf letter fix now.<br />Special thanks to "Nicola Asuni" and "Mohamad Ali Golkar" for Persian support.</span>';
|
||||
$pdf->WriteHTML($htmlpersiantranslation, true, 0, true, 0);
|
||||
|
||||
// Restore RTL direction
|
||||
$pdf->setRTL(true);
|
||||
|
||||
// set font
|
||||
$pdf->setFont('aefurat', '', 18);
|
||||
|
||||
// print newline
|
||||
$pdf->Ln();
|
||||
|
||||
// Arabic and English content
|
||||
$pdf->Cell(0, 12, 'بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ',0,1,'C');
|
||||
$htmlcontent = 'تمَّ بِحمد الله حلّ مشكلة الكتابة باللغة العربية في ملفات الـ<span color="#FF0000">PDF</span> مع دعم الكتابة <span color="#0000FF">من اليمين إلى اليسار</span> و<span color="#009900">الحركَات</span> .<br />تم الحل بواسطة <span color="#993399">صالح المطرفي و Asuni Nicola</span> . ';
|
||||
$pdf->WriteHTML($htmlcontent, true, 0, true, 0);
|
||||
|
||||
// set LTR direction for english translation
|
||||
$pdf->setRTL(false);
|
||||
|
||||
// print newline
|
||||
$pdf->Ln();
|
||||
|
||||
$pdf->setFont('aealarabiya', '', 18);
|
||||
|
||||
// Arabic and English content
|
||||
$htmlcontent2 = '<span color="#0000ff">This is Arabic "العربية" Example With TCPDF.</span>';
|
||||
$pdf->WriteHTML($htmlcontent2, true, 0, true, 0);
|
||||
|
||||
// ---------------------------------------------------------
|
||||
|
||||
//Close and output PDF document
|
||||
$pdf->Output('example_018.pdf', 'I');
|
||||
|
||||
//============================================================+
|
||||
// END OF FILE
|
||||
//============================================================+
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user