Dodanie wstępnie przekształconych pluginów WordPress: Questions (do tworzenia ankiet) oraz DK PDF (do tworzenia plików pdf z ankietami). Przetłumaczenie obydwu pluginów na język polski. Usunięcie niepotrzebnych – nadmiarowych funkcji.
This commit is contained in:
parent
61daa1e440
commit
a232b1549f
BIN
dk-pdf.1.9.zip
Normal file
BIN
dk-pdf.1.9.zip
Normal file
Binary file not shown.
32
dk-pdf/assets/css/admin.css
Executable file
32
dk-pdf/assets/css/admin.css
Executable file
@ -0,0 +1,32 @@
|
||||
.dkpdf-item {
|
||||
text-align: center;
|
||||
width:89%;
|
||||
padding:5%;
|
||||
float:left;
|
||||
border:solid 1px #CCC;
|
||||
margin-right:0;
|
||||
margin-top:2.5%;
|
||||
background:#FFF;
|
||||
}
|
||||
|
||||
.dkpdf-item h3 { font-size:180%;}
|
||||
.dkpdf-item p { font-size:130%;}
|
||||
|
||||
#editor {
|
||||
height:300px;
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 996px) {
|
||||
|
||||
.dkpdf-item {
|
||||
width:29%;
|
||||
padding:5%;
|
||||
margin-right:5%;
|
||||
margin-top:2.5%;
|
||||
}
|
||||
|
||||
#editor {
|
||||
height:400px;
|
||||
}
|
||||
|
||||
}
|
25
dk-pdf/assets/css/frontend.css
Executable file
25
dk-pdf/assets/css/frontend.css
Executable file
@ -0,0 +1,25 @@
|
||||
.dkpdf-button-container {
|
||||
width:100%;
|
||||
float:left;
|
||||
padding-top: 20px;
|
||||
padding-bottom: 40px;
|
||||
}
|
||||
|
||||
a.dkpdf-button {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
a.dkpdf-button:link, a.dkpdf-button:visited {
|
||||
|
||||
}
|
||||
|
||||
a.dkpdf-button:hover {
|
||||
|
||||
}
|
||||
|
||||
a.dkpdf-button span.dkpdf-button-icon {
|
||||
font-size:140%;
|
||||
margin-right:5px;
|
||||
}
|
||||
|
||||
.dkpdf-content {}
|
22
dk-pdf/assets/js/admin.js
Executable file
22
dk-pdf/assets/js/admin.js
Executable file
@ -0,0 +1,22 @@
|
||||
jQuery(window).load(function(){
|
||||
|
||||
if( jQuery('#dkpdf_pdf_custom_css').length ) {
|
||||
|
||||
// ref: http://jsfiddle.net/deepumohanp/tGF6y/
|
||||
|
||||
var textarea = jQuery('#dkpdf_pdf_custom_css');
|
||||
jQuery('#dkpdf_pdf_custom_css').hide();
|
||||
|
||||
var editor = ace.edit("editor");
|
||||
editor.setTheme("ace/theme/twilight");
|
||||
editor.getSession().setMode("ace/mode/css");
|
||||
|
||||
editor.getSession().on('change', function () {
|
||||
textarea.val(editor.getSession().getValue());
|
||||
});
|
||||
|
||||
textarea.val(editor.getSession().getValue());
|
||||
|
||||
}
|
||||
|
||||
});
|
3
dk-pdf/assets/js/frontend.js
Executable file
3
dk-pdf/assets/js/frontend.js
Executable file
@ -0,0 +1,3 @@
|
||||
jQuery(document).ready(function($) {
|
||||
|
||||
});
|
103
dk-pdf/assets/js/settings-admin.js
Executable file
103
dk-pdf/assets/js/settings-admin.js
Executable file
@ -0,0 +1,103 @@
|
||||
jQuery(document).ready(function($) {
|
||||
|
||||
/***** Colour picker *****/
|
||||
$('.colorpicker').hide();
|
||||
$('.colorpicker').each( function() {
|
||||
if( jQuery().farbtastic ) {
|
||||
$(this).farbtastic( $(this).closest('.color-picker').find('.color') );
|
||||
}
|
||||
});
|
||||
|
||||
$('.color').click(function() {
|
||||
$(this).closest('.color-picker').find('.colorpicker').fadeIn();
|
||||
});
|
||||
|
||||
$(document).mousedown(function() {
|
||||
$('.colorpicker').each(function() {
|
||||
var display = $(this).css('display');
|
||||
if ( display == 'block' )
|
||||
$(this).fadeOut();
|
||||
});
|
||||
});
|
||||
|
||||
/***** Uploading images *****/
|
||||
|
||||
var file_frame;
|
||||
|
||||
jQuery.fn.uploadMediaFile = function( button, preview_media ) {
|
||||
var button_id = button.attr('id');
|
||||
var field_id = button_id.replace( '_button', '' );
|
||||
var preview_id = button_id.replace( '_button', '_preview' );
|
||||
|
||||
// If the media frame already exists, reopen it.
|
||||
if ( file_frame ) {
|
||||
file_frame.open();
|
||||
return;
|
||||
}
|
||||
|
||||
// Create the media frame.
|
||||
file_frame = wp.media.frames.file_frame = wp.media({
|
||||
title: jQuery( this ).data( 'uploader_title' ),
|
||||
button: {
|
||||
text: jQuery( this ).data( 'uploader_button_text' ),
|
||||
},
|
||||
multiple: false
|
||||
});
|
||||
|
||||
// When an image is selected, run a callback.
|
||||
file_frame.on( 'select', function() {
|
||||
attachment = file_frame.state().get('selection').first().toJSON();
|
||||
jQuery("#"+field_id).val(attachment.id);
|
||||
if( preview_media ) {
|
||||
jQuery("#"+preview_id).attr('src',attachment.sizes.thumbnail.url);
|
||||
}
|
||||
});
|
||||
|
||||
// Finally, open the modal
|
||||
file_frame.open();
|
||||
}
|
||||
|
||||
jQuery('.image_upload_button').click(function() {
|
||||
jQuery.fn.uploadMediaFile( jQuery(this), true );
|
||||
});
|
||||
|
||||
jQuery('.image_delete_button').click(function() {
|
||||
jQuery(this).closest('td').find( '.image_data_field' ).val( '' );
|
||||
jQuery( '.image_preview' ).remove();
|
||||
return false;
|
||||
});
|
||||
|
||||
|
||||
/***** Navigation for settings page *****/
|
||||
|
||||
// Make sure each heading has a unique ID.
|
||||
jQuery( 'ul#settings-sections.subsubsub' ).find( 'a' ).each( function ( i ) {
|
||||
var id_value = jQuery( this ).attr( 'href' ).replace( '#', '' );
|
||||
jQuery( 'h3:contains("' + jQuery( this ).text() + '")' ).attr( 'id', id_value ).addClass( 'section-heading' );
|
||||
});
|
||||
|
||||
// Create nav links for settings page
|
||||
jQuery( '#plugin_settings .subsubsub a.tab' ).click( function ( e ) {
|
||||
// Move the "current" CSS class.
|
||||
jQuery( this ).parents( '.subsubsub' ).find( '.current' ).removeClass( 'current' );
|
||||
jQuery( this ).addClass( 'current' );
|
||||
|
||||
// If "All" is clicked, show all.
|
||||
if ( jQuery( this ).hasClass( 'all' ) ) {
|
||||
jQuery( '#plugin_settings h3, #plugin_settings form p, #plugin_settings table.form-table, p.submit' ).show();
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
// If the link is a tab, show only the specified tab.
|
||||
var toShow = jQuery( this ).attr( 'href' );
|
||||
|
||||
// Remove the first occurance of # from the selected string (will be added manually below).
|
||||
toShow = toShow.replace( '#', '', toShow );
|
||||
|
||||
jQuery( '#plugin_settings h3, #plugin_settings form > p:not(".submit"), #plugin_settings table' ).hide();
|
||||
jQuery( 'h3#' + toShow ).show().nextUntil( 'h3.section-heading', 'p, table, table p' ).show();
|
||||
|
||||
return false;
|
||||
});
|
||||
});
|
11
dk-pdf/assets/js/src-min/ace.js
Executable file
11
dk-pdf/assets/js/src-min/ace.js
Executable file
File diff suppressed because one or more lines are too long
1
dk-pdf/assets/js/src-min/mode-css.js
Executable file
1
dk-pdf/assets/js/src-min/mode-css.js
Executable file
File diff suppressed because one or more lines are too long
1
dk-pdf/assets/js/src-min/theme-twilight.js
Executable file
1
dk-pdf/assets/js/src-min/theme-twilight.js
Executable file
@ -0,0 +1 @@
|
||||
define("ace/theme/twilight",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!0,t.cssClass="ace-twilight",t.cssText=".ace-twilight .ace_gutter {background: #232323;color: #E2E2E2}.ace-twilight .ace_print-margin {width: 1px;background: #232323}.ace-twilight {background-color: #141414;color: #F8F8F8}.ace-twilight .ace_cursor {color: #A7A7A7}.ace-twilight .ace_marker-layer .ace_selection {background: rgba(221, 240, 255, 0.20)}.ace-twilight.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #141414;}.ace-twilight .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-twilight .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgba(255, 255, 255, 0.25)}.ace-twilight .ace_marker-layer .ace_active-line {background: rgba(255, 255, 255, 0.031)}.ace-twilight .ace_gutter-active-line {background-color: rgba(255, 255, 255, 0.031)}.ace-twilight .ace_marker-layer .ace_selected-word {border: 1px solid rgba(221, 240, 255, 0.20)}.ace-twilight .ace_invisible {color: rgba(255, 255, 255, 0.25)}.ace-twilight .ace_keyword,.ace-twilight .ace_meta {color: #CDA869}.ace-twilight .ace_constant,.ace-twilight .ace_constant.ace_character,.ace-twilight .ace_constant.ace_character.ace_escape,.ace-twilight .ace_constant.ace_other,.ace-twilight .ace_heading,.ace-twilight .ace_markup.ace_heading,.ace-twilight .ace_support.ace_constant {color: #CF6A4C}.ace-twilight .ace_invalid.ace_illegal {color: #F8F8F8;background-color: rgba(86, 45, 86, 0.75)}.ace-twilight .ace_invalid.ace_deprecated {text-decoration: underline;font-style: italic;color: #D2A8A1}.ace-twilight .ace_support {color: #9B859D}.ace-twilight .ace_fold {background-color: #AC885B;border-color: #F8F8F8}.ace-twilight .ace_support.ace_function {color: #DAD085}.ace-twilight .ace_list,.ace-twilight .ace_markup.ace_list,.ace-twilight .ace_storage {color: #F9EE98}.ace-twilight .ace_entity.ace_name.ace_function,.ace-twilight .ace_meta.ace_tag,.ace-twilight .ace_variable {color: #AC885B}.ace-twilight .ace_string {color: #8F9D6A}.ace-twilight .ace_string.ace_regexp {color: #E9C062}.ace-twilight .ace_comment {font-style: italic;color: #5F5A60}.ace-twilight .ace_variable {color: #7587A6}.ace-twilight .ace_xml-pe {color: #494949}.ace-twilight .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWMQERFpYLC1tf0PAAgOAnPnhxyiAAAAAElFTkSuQmCC) right repeat-y}";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)})
|
1
dk-pdf/assets/js/src-min/worker-css.js
Executable file
1
dk-pdf/assets/js/src-min/worker-css.js
Executable file
File diff suppressed because one or more lines are too long
102
dk-pdf/dk-pdf.php
Executable file
102
dk-pdf/dk-pdf.php
Executable file
@ -0,0 +1,102 @@
|
||||
<?php
|
||||
/*
|
||||
* Plugin Name: DK PDF
|
||||
* Version: 1.9
|
||||
* Plugin URI: http://wp.dinamiko.com/demos/dkpdf
|
||||
* Description: Create PDF documents from your WordPress pages
|
||||
* Author: Emili Castells
|
||||
* Author URI: http://www.dinamiko.com
|
||||
* Requires at least: 3.9
|
||||
* Tested up to: 4.7.2
|
||||
*
|
||||
* Text Domain: dkpdf
|
||||
* Domain Path: /languages/
|
||||
*/
|
||||
|
||||
if ( ! defined( 'ABSPATH' ) ) exit;
|
||||
|
||||
if ( ! class_exists( 'DKPDF' ) ) {
|
||||
|
||||
final class DKPDF {
|
||||
|
||||
private static $instance;
|
||||
|
||||
public static function instance() {
|
||||
|
||||
if ( ! isset( self::$instance ) && ! ( self::$instance instanceof DKPDF ) ) {
|
||||
|
||||
self::$instance = new DKPDF;
|
||||
|
||||
self::$instance->setup_constants();
|
||||
|
||||
add_action( 'plugins_loaded', array( self::$instance, 'dkpdf_load_textdomain' ) );
|
||||
|
||||
self::$instance->includes();
|
||||
|
||||
}
|
||||
|
||||
return self::$instance;
|
||||
|
||||
}
|
||||
|
||||
public function dkpdf_load_textdomain() {
|
||||
|
||||
load_plugin_textdomain( 'dkpdf', false, dirname( plugin_basename( __FILE__ ) ) . '/languages' );
|
||||
|
||||
}
|
||||
|
||||
private function setup_constants() {
|
||||
|
||||
if ( ! defined( 'DKPDF_VERSION' ) ) { define( 'DKPDF_VERSION', '1.9' ); }
|
||||
if ( ! defined( 'DKPDF_PLUGIN_DIR' ) ) { define( 'DKPDF_PLUGIN_DIR', plugin_dir_path( __FILE__ ) ); }
|
||||
if ( ! defined( 'DKPDF_PLUGIN_URL' ) ) { define( 'DKPDFPLUGIN_URL', plugin_dir_url( __FILE__ ) ); }
|
||||
if ( ! defined( 'DKPDF_PLUGIN_FILE' ) ) { define( 'DKPDF_PLUGIN_FILE', __FILE__ ); }
|
||||
|
||||
}
|
||||
|
||||
private function includes() {
|
||||
|
||||
// settings / metaboxes
|
||||
if ( is_admin() ) {
|
||||
|
||||
require_once DKPDF_PLUGIN_DIR . 'includes/class-dkpdf-settings.php';
|
||||
$settings = new DKPDF_Settings( $this );
|
||||
|
||||
require_once DKPDF_PLUGIN_DIR . 'includes/class-dkpdf-admin-api.php';
|
||||
$this->admin = new DKPDF_Admin_API();
|
||||
|
||||
require_once DKPDF_PLUGIN_DIR . 'includes/dkpdf-metaboxes.php';
|
||||
|
||||
}
|
||||
|
||||
// load css / js
|
||||
require_once DKPDF_PLUGIN_DIR . 'includes/dkpdf-load-js-css.php';
|
||||
|
||||
// functions
|
||||
require_once DKPDF_PLUGIN_DIR . 'includes/dkpdf-functions.php';
|
||||
|
||||
// shortcodes
|
||||
require_once DKPDF_PLUGIN_DIR . 'includes/class-dkpdf-template-loader.php';
|
||||
require_once DKPDF_PLUGIN_DIR . 'includes/dkpdf-shortcodes.php';
|
||||
|
||||
}
|
||||
|
||||
public function __clone() {
|
||||
_doing_it_wrong( __FUNCTION__, __( 'Cheatin’ huh?', 'dkpdf' ), DKPDF_VERSION );
|
||||
}
|
||||
|
||||
public function __wakeup() {
|
||||
_doing_it_wrong( __FUNCTION__, __( 'Cheatin’ huh?', 'dkpdf' ), DKPDF_VERSION );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function DKPDF() {
|
||||
|
||||
return DKPDF::instance();
|
||||
|
||||
}
|
||||
|
||||
DKPDF();
|
320
dk-pdf/includes/class-dkpdf-admin-api.php
Executable file
320
dk-pdf/includes/class-dkpdf-admin-api.php
Executable file
@ -0,0 +1,320 @@
|
||||
<?php
|
||||
|
||||
if ( ! defined( 'ABSPATH' ) ) exit;
|
||||
|
||||
class DKPDF_Admin_API {
|
||||
|
||||
/**
|
||||
* Constructor function
|
||||
*/
|
||||
public function __construct () {
|
||||
add_action( 'save_post', array( $this, 'save_meta_boxes' ), 10, 1 );
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate HTML for displaying fields
|
||||
* @param array $field Field data
|
||||
* @param boolean $echo Whether to echo the field HTML or return it
|
||||
* @return void
|
||||
*/
|
||||
public function display_field ( $data = array(), $post = false, $echo = true ) {
|
||||
|
||||
// Get field info
|
||||
if ( isset( $data['field'] ) ) {
|
||||
$field = $data['field'];
|
||||
} else {
|
||||
$field = $data;
|
||||
}
|
||||
|
||||
// Check for prefix on option name
|
||||
$option_name = '';
|
||||
if ( isset( $data['prefix'] ) ) {
|
||||
$option_name = $data['prefix'];
|
||||
}
|
||||
|
||||
// Get saved data
|
||||
$data = '';
|
||||
if ( $post ) {
|
||||
|
||||
// Get saved field data
|
||||
$option_name .= $field['id'];
|
||||
$option = get_post_meta( $post->ID, $field['id'], true );
|
||||
|
||||
// Get data to display in field
|
||||
if ( isset( $option ) ) {
|
||||
$data = $option;
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
// Get saved option
|
||||
$option_name .= $field['id'];
|
||||
$option = get_option( $option_name );
|
||||
|
||||
// Get data to display in field
|
||||
if ( isset( $option ) ) {
|
||||
$data = $option;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Show default data if no option saved and default is supplied
|
||||
if ( $data === false && isset( $field['default'] ) ) {
|
||||
$data = $field['default'];
|
||||
} elseif ( $data === false ) {
|
||||
$data = '';
|
||||
}
|
||||
|
||||
$html = '';
|
||||
|
||||
switch( $field['type'] ) {
|
||||
|
||||
case 'text':
|
||||
case 'url':
|
||||
case 'email':
|
||||
$html .= '<input id="' . esc_attr( $field['id'] ) . '" type="text" name="' . esc_attr( $option_name ) . '" placeholder="' . esc_attr( $field['placeholder'] ) . '" value="' . esc_attr( $data ) . '" />' . "\n";
|
||||
break;
|
||||
|
||||
case 'password':
|
||||
case 'number':
|
||||
case 'hidden':
|
||||
$min = '';
|
||||
if ( isset( $field['min'] ) ) {
|
||||
$min = ' min="' . esc_attr( $field['min'] ) . '"';
|
||||
}
|
||||
|
||||
$max = '';
|
||||
if ( isset( $field['max'] ) ) {
|
||||
$max = ' max="' . esc_attr( $field['max'] ) . '"';
|
||||
}
|
||||
$html .= '<input id="' . esc_attr( $field['id'] ) . '" type="' . esc_attr( $field['type'] ) . '" name="' . esc_attr( $option_name ) . '" placeholder="' . esc_attr( $field['placeholder'] ) . '" value="' . esc_attr( $data ) . '"' . $min . '' . $max . '/>' . "\n";
|
||||
break;
|
||||
|
||||
case 'text_secret':
|
||||
$html .= '<input id="' . esc_attr( $field['id'] ) . '" type="text" name="' . esc_attr( $option_name ) . '" placeholder="' . esc_attr( $field['placeholder'] ) . '" value="" />' . "\n";
|
||||
break;
|
||||
|
||||
case 'textarea_code':
|
||||
$html .= '<div id="' . 'editor' . '">'. $data .'</div>'. "\n";
|
||||
$html .= '<textarea id="' . esc_attr( $option_name ) . '" rows="5" cols="50" name="' . esc_attr( $option_name ) . '" placeholder="' . esc_attr( $field['placeholder'] ) . '">' . $data . '</textarea>'. "\n";
|
||||
break;
|
||||
|
||||
case 'textarea':
|
||||
$html .= '<textarea id="' . esc_attr( $field['id'] ) . '" rows="5" cols="50" name="' . esc_attr( $option_name ) . '" placeholder="' . esc_attr( $field['placeholder'] ) . '">' . $data . '</textarea><br/>'. "\n";
|
||||
break;
|
||||
|
||||
case 'checkbox':
|
||||
$checked = '';
|
||||
if ( $data && 'on' == $data ) {
|
||||
$checked = 'checked="checked"';
|
||||
}
|
||||
$html .= '<input id="' . esc_attr( $field['id'] ) . '" type="' . esc_attr( $field['type'] ) . '" name="' . esc_attr( $option_name ) . '" ' . $checked . '/>' . "\n";
|
||||
break;
|
||||
|
||||
case 'checkbox_multi':
|
||||
foreach ( $field['options'] as $k => $v ) {
|
||||
$checked = false;
|
||||
if ( $data == false ) { $data = array(); }
|
||||
if ( in_array( $k, $data ) ) {
|
||||
$checked = true;
|
||||
}
|
||||
$html .= '<label for="' . esc_attr( $field['id'] . '_' . $k ) . '" class="checkbox_multi"><input type="checkbox" ' . checked( $checked, true, false ) . ' name="' . esc_attr( $option_name ) . '[]" value="' . esc_attr( $k ) . '" id="' . esc_attr( $field['id'] . '_' . $k ) . '" /> ' . $v . '</label> ';
|
||||
}
|
||||
break;
|
||||
|
||||
case 'radio':
|
||||
foreach ( $field['options'] as $k => $v ) {
|
||||
$checked = false;
|
||||
if ( $k == $data ) {
|
||||
$checked = true;
|
||||
}
|
||||
$html .= '<label for="' . esc_attr( $field['id'] . '_' . $k ) . '"><input type="radio" ' . checked( $checked, true, false ) . ' name="' . esc_attr( $option_name ) . '" value="' . esc_attr( $k ) . '" id="' . esc_attr( $field['id'] . '_' . $k ) . '" /> ' . $v . '</label> ';
|
||||
}
|
||||
break;
|
||||
|
||||
case 'select':
|
||||
$html .= '<select name="' . esc_attr( $option_name ) . '" id="' . esc_attr( $field['id'] ) . '">';
|
||||
foreach ( $field['options'] as $k => $v ) {
|
||||
$selected = false;
|
||||
if ( $k == $data ) {
|
||||
$selected = true;
|
||||
}
|
||||
$html .= '<option ' . selected( $selected, true, false ) . ' value="' . esc_attr( $k ) . '">' . $v . '</option>';
|
||||
}
|
||||
$html .= '</select> ';
|
||||
break;
|
||||
|
||||
case 'select_multi':
|
||||
$html .= '<select name="' . esc_attr( $option_name ) . '[]" id="' . esc_attr( $field['id'] ) . '" multiple="multiple">';
|
||||
foreach ( $field['options'] as $k => $v ) {
|
||||
$selected = false;
|
||||
if ( in_array( $k, $data ) ) {
|
||||
$selected = true;
|
||||
}
|
||||
$html .= '<option ' . selected( $selected, true, false ) . ' value="' . esc_attr( $k ) . '">' . $v . '</option>';
|
||||
}
|
||||
$html .= '</select> ';
|
||||
break;
|
||||
|
||||
case 'image':
|
||||
$image_thumb = '';
|
||||
if ( $data ) {
|
||||
$image_thumb = wp_get_attachment_thumb_url( $data );
|
||||
}
|
||||
$html .= '<img id="' . $option_name . '_preview" class="image_preview" src="' . $image_thumb . '" /><br/>' . "\n";
|
||||
$html .= '<input id="' . $option_name . '_button" type="button" data-uploader_title="' . __( 'Upload an image' , 'wordpress-plugin-template' ) . '" data-uploader_button_text="' . __( 'Use image' , 'wordpress-plugin-template' ) . '" class="image_upload_button button" value="'. __( 'Upload new image' , 'wordpress-plugin-template' ) . '" />' . "\n";
|
||||
$html .= '<input id="' . $option_name . '_delete" type="button" class="image_delete_button button" value="'. __( 'Remove image' , 'wordpress-plugin-template' ) . '" />' . "\n";
|
||||
$html .= '<input id="' . $option_name . '" class="image_data_field" type="hidden" name="' . $option_name . '" value="' . $data . '"/><br/>' . "\n";
|
||||
break;
|
||||
|
||||
case 'color':
|
||||
?><div class="color-picker" style="position:relative;">
|
||||
<input type="text" name="<?php esc_attr_e( $option_name ); ?>" class="color" value="<?php esc_attr_e( $data ); ?>" />
|
||||
<div style="position:absolute;background:#FFF;z-index:99;border-radius:100%;" class="colorpicker"></div>
|
||||
</div>
|
||||
<?php
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
switch( $field['type'] ) {
|
||||
|
||||
case 'checkbox_multi':
|
||||
case 'radio':
|
||||
case 'select_multi':
|
||||
$html .= '<br/><span class="description">' . $field['description'] . '</span>';
|
||||
break;
|
||||
|
||||
default:
|
||||
if ( ! $post ) {
|
||||
$html .= '<label for="' . esc_attr( $field['id'] ) . '">' . "\n";
|
||||
}
|
||||
|
||||
$html .= '<span class="description">' . $field['description'] . '</span>' . "\n";
|
||||
|
||||
if ( ! $post ) {
|
||||
$html .= '</label>' . "\n";
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if ( ! $echo ) {
|
||||
return $html;
|
||||
}
|
||||
|
||||
echo $html;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate form field
|
||||
* @param string $data Submitted value
|
||||
* @param string $type Type of field to validate
|
||||
* @return string Validated value
|
||||
*/
|
||||
public function validate_field ( $data = '', $type = 'text' ) {
|
||||
|
||||
switch( $type ) {
|
||||
case 'text': $data = esc_attr( $data ); break;
|
||||
case 'url': $data = esc_url( $data ); break;
|
||||
case 'email': $data = is_email( $data ); break;
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add meta box to the dashboard
|
||||
* @param string $id Unique ID for metabox
|
||||
* @param string $title Display title of metabox
|
||||
* @param array $post_types Post types to which this metabox applies
|
||||
* @param string $context Context in which to display this metabox ('advanced' or 'side')
|
||||
* @param string $priority Priority of this metabox ('default', 'low' or 'high')
|
||||
* @param array $callback_args Any axtra arguments that will be passed to the display function for this metabox
|
||||
* @return void
|
||||
*/
|
||||
public function add_meta_box ( $id = '', $title = '', $post_types = array(), $context = 'advanced', $priority = 'default', $callback_args = null ) {
|
||||
|
||||
// Get post type(s)
|
||||
if ( ! is_array( $post_types ) ) {
|
||||
$post_types = array( $post_types );
|
||||
}
|
||||
|
||||
// Generate each metabox
|
||||
foreach ( $post_types as $post_type ) {
|
||||
add_meta_box( $id, $title, array( $this, 'meta_box_content' ), $post_type, $context, $priority, $callback_args );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Display metabox content
|
||||
* @param object $post Post object
|
||||
* @param array $args Arguments unique to this metabox
|
||||
* @return void
|
||||
*/
|
||||
public function meta_box_content ( $post, $args ) {
|
||||
|
||||
$fields = apply_filters( $post->post_type . '_custom_fields', array(), $post->post_type );
|
||||
|
||||
if ( ! is_array( $fields ) || 0 == count( $fields ) ) return;
|
||||
|
||||
echo '<div class="custom-field-panel">' . "\n";
|
||||
|
||||
foreach ( $fields as $field ) {
|
||||
|
||||
if ( ! isset( $field['metabox'] ) ) continue;
|
||||
|
||||
if ( ! is_array( $field['metabox'] ) ) {
|
||||
$field['metabox'] = array( $field['metabox'] );
|
||||
}
|
||||
|
||||
if ( in_array( $args['id'], $field['metabox'] ) ) {
|
||||
$this->display_meta_box_field( $field, $post );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
echo '</div>' . "\n";
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Dispay field in metabox
|
||||
* @param array $field Field data
|
||||
* @param object $post Post object
|
||||
* @return void
|
||||
*/
|
||||
public function display_meta_box_field ( $field = array(), $post ) {
|
||||
|
||||
if ( ! is_array( $field ) || 0 == count( $field ) ) return;
|
||||
|
||||
$field = '<p class="form-field"><label for="' . $field['id'] . '">' . $field['label'] . '</label>' . $this->display_field( $field, $post, false ) . '</p>' . "\n";
|
||||
|
||||
echo $field;
|
||||
}
|
||||
|
||||
/**
|
||||
* Save metabox fields
|
||||
* @param integer $post_id Post ID
|
||||
* @return void
|
||||
*/
|
||||
public function save_meta_boxes ( $post_id = 0 ) {
|
||||
|
||||
if ( ! $post_id ) return;
|
||||
|
||||
$post_type = get_post_type( $post_id );
|
||||
|
||||
$fields = apply_filters( $post_type . '_custom_fields', array(), $post_type );
|
||||
|
||||
if ( ! is_array( $fields ) || 0 == count( $fields ) ) return;
|
||||
|
||||
foreach ( $fields as $field ) {
|
||||
if ( isset( $_REQUEST[ $field['id'] ] ) ) {
|
||||
update_post_meta( $post_id, $field['id'], $this->validate_field( $_REQUEST[ $field['id'] ], $field['type'] ) );
|
||||
} else {
|
||||
update_post_meta( $post_id, $field['id'], '' );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
486
dk-pdf/includes/class-dkpdf-settings.php
Executable file
486
dk-pdf/includes/class-dkpdf-settings.php
Executable file
@ -0,0 +1,486 @@
|
||||
<?php
|
||||
|
||||
if ( ! defined( 'ABSPATH' ) ) exit;
|
||||
|
||||
class DKPDF_Settings {
|
||||
|
||||
private static $_instance = null;
|
||||
public $parent = null;
|
||||
public $_token;
|
||||
public $base = '';
|
||||
public $settings = array();
|
||||
|
||||
public function __construct ( $parent ) {
|
||||
|
||||
$this->parent = $parent;
|
||||
|
||||
$this->base = 'dkpdf_';
|
||||
|
||||
// Initialise settings
|
||||
add_action( 'init', array( $this, 'init_settings' ), 11 );
|
||||
|
||||
// Register plugin settings
|
||||
add_action( 'admin_init' , array( $this, 'register_settings' ) );
|
||||
|
||||
// Add settings page to menu
|
||||
add_action( 'admin_menu' , array( $this, 'add_menu_item' ) );
|
||||
|
||||
// Add settings link to plugins page
|
||||
add_filter( 'plugin_action_links_' . plugin_basename( DKPDF_PLUGIN_FILE ) , array( $this, 'add_settings_link' ) );
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialise settings
|
||||
* @return void
|
||||
*/
|
||||
public function init_settings () {
|
||||
$this->settings = $this->settings_fields();
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds DK PDF admin menu
|
||||
* @return void
|
||||
*/
|
||||
public function add_menu_item () {
|
||||
|
||||
// main menu
|
||||
$page = add_menu_page( 'DK PDF', 'DK PDF', 'manage_options', 'dkpdf' . '_settings', array( $this, 'settings_page' ) );
|
||||
|
||||
// Addons submenu
|
||||
add_submenu_page( 'dkpdf' . '_settings', 'Addons', 'Addons', 'manage_options', 'dkpdf-addons', array( $this, 'dkpdf_addons_screen' ));
|
||||
|
||||
// support
|
||||
add_submenu_page( 'dkpdf' . '_settings', 'Support', 'Support', 'manage_options', 'dkpdf-support', array( $this, 'dkpdf_support_screen' ));
|
||||
|
||||
// settings assets
|
||||
add_action( 'admin_print_styles-' . $page, array( $this, 'settings_assets' ) );
|
||||
|
||||
}
|
||||
|
||||
public function dkpdf_support_screen() { ?>
|
||||
|
||||
<div class="wrap">
|
||||
<h2 style="float:left;width:100%;">DK PDF Support</h2>
|
||||
|
||||
<div class="dkpdf-item">
|
||||
<h3>Documentation</h3>
|
||||
<p>Everything you need to know for getting DK PDF up and running.</p>
|
||||
<p><a href="http://wp.dinamiko.com/demos/dkpdf/documentation/" target="_blank">Go to Documentation</a></p>
|
||||
</div>
|
||||
|
||||
<div class="dkpdf-item">
|
||||
<h3>Support</h3>
|
||||
<p>Having trouble? don't worry, create a ticket in the support forum.</p>
|
||||
<p><a href="https://wordpress.org/support/plugin/dk-pdf" target="_blank">Go to Support</a></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php do_action( 'dkpdf_after_support' );?>
|
||||
|
||||
<?php }
|
||||
|
||||
/*
|
||||
public function dkpdf_addons_screen() { ?>
|
||||
|
||||
<div class="wrap">
|
||||
<h2>DK PDF Addons</h2>
|
||||
|
||||
<div class="dkpdf-item">
|
||||
<h3>DK PDF Generator</h3>
|
||||
<p>Allows creating PDF documents with your selected WordPress content, also allows adding a Cover and a Table of contents.</p>
|
||||
<p><a href="http://codecanyon.net/item/dk-pdf-generator/13530581" target="_blank">Go to DK PDF Generator</a></p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<?php }
|
||||
*/
|
||||
|
||||
/**
|
||||
* Load settings JS & CSS
|
||||
* @return void
|
||||
*/
|
||||
public function settings_assets () {
|
||||
|
||||
// We're including the farbtastic script & styles here because they're needed for the colour picker
|
||||
// If you're not including a colour picker field then you can leave these calls out as well as the farbtastic dependency for the dkpdf-admin-js script below
|
||||
wp_enqueue_style( 'farbtastic' );
|
||||
wp_enqueue_script( 'farbtastic' );
|
||||
|
||||
// We're including the WP media scripts here because they're needed for the image upload field
|
||||
// If you're not including an image upload then you can leave this function call out
|
||||
wp_enqueue_media();
|
||||
|
||||
|
||||
wp_register_script( 'dkpdf' . '-settings-js', plugins_url( 'dk-pdf/assets/js/settings-admin.js' ), array( 'farbtastic', 'jquery' ), '1.0.0' );
|
||||
wp_enqueue_script( 'dkpdf' . '-settings-js' );
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Add settings link to plugin list table
|
||||
* @param array $links Existing links
|
||||
* @return array Modified links
|
||||
*/
|
||||
public function add_settings_link ( $links ) {
|
||||
$settings_link = '<a href="admin.php?page=' . 'dkpdf' . '_settings">' . __( 'Settings', 'dkpdf' ) . '</a>';
|
||||
array_push( $links, $settings_link );
|
||||
return $links;
|
||||
}
|
||||
|
||||
/**
|
||||
* Build settings fields
|
||||
* @return array Fields to be displayed on settings page
|
||||
*/
|
||||
private function settings_fields () {
|
||||
|
||||
$post_types_arr = dkpdf_get_post_types();
|
||||
|
||||
// pdf button settings
|
||||
$settings['pdfbtn'] = array(
|
||||
'title' => __( 'PDF Button', 'dkpdf' ),
|
||||
'description' => '',
|
||||
'fields' => array(
|
||||
array(
|
||||
'id' => 'pdfbutton_text',
|
||||
'label' => __( 'Button text' , 'dkpdf' ),
|
||||
'description' => '',
|
||||
'type' => 'text',
|
||||
'default' => 'PDF Button',
|
||||
'placeholder' => ''
|
||||
),
|
||||
array(
|
||||
'id' => 'pdfbutton_post_types',
|
||||
'label' => __( 'Post types to apply:', 'dkpdf' ),
|
||||
'description' => '',
|
||||
'type' => 'checkbox_multi',
|
||||
'options' => $post_types_arr,
|
||||
'default' => array()
|
||||
),
|
||||
array(
|
||||
'id' => 'pdfbutton_action',
|
||||
'label' => __( 'Action', 'dkpdf' ),
|
||||
'description' => '',
|
||||
'type' => 'radio',
|
||||
'options' => array( 'open' => 'Open PDF in new Window', 'download' => 'Download PDF directly' ),
|
||||
'default' => 'open'
|
||||
),
|
||||
array(
|
||||
'id' => 'pdfbutton_position',
|
||||
'label' => __( 'Position', 'dkpdf' ),
|
||||
'description' => '',
|
||||
'type' => 'radio',
|
||||
'options' => array( 'shortcode' => 'Use shortcode', 'before' => 'Before content', 'after' => 'After content' ),
|
||||
'default' => 'before'
|
||||
),
|
||||
array(
|
||||
'id' => 'pdfbutton_align',
|
||||
'label' => __( 'Align', 'dkpdf' ),
|
||||
'description' => '',
|
||||
'type' => 'radio',
|
||||
'options' => array( 'left' => 'Left', 'center' => 'Center', 'right' => 'Right' ),
|
||||
'default' => 'right'
|
||||
),
|
||||
)
|
||||
);
|
||||
|
||||
|
||||
// pdf setup
|
||||
$settings['dkpdf_setup'] = array(
|
||||
'title' => __( 'PDF Setup', 'dkpdfg' ),
|
||||
'description' => '',
|
||||
'fields' => array(
|
||||
array(
|
||||
'id' => 'page_orientation',
|
||||
'label' => __( 'Page orientation', 'dkpdfg' ),
|
||||
'description' => '',
|
||||
'type' => 'radio',
|
||||
'options' => array( 'vertical' => 'Vertical', 'horizontal' => 'Horizontal' ),
|
||||
'default' => 'vertical'
|
||||
),
|
||||
array(
|
||||
'id' => 'font_size',
|
||||
'label' => __( 'Font size', 'dkpdfg' ),
|
||||
'description' => 'In points (pt)',
|
||||
'type' => 'number',
|
||||
'default' => '12',
|
||||
'placeholder' => '12'
|
||||
),
|
||||
array(
|
||||
'id' => 'margin_left',
|
||||
'label' => __( 'Margin left', 'dkpdfg' ),
|
||||
'description' => 'In points (pt)',
|
||||
'type' => 'number',
|
||||
'default' => '15',
|
||||
'placeholder' => '15'
|
||||
),
|
||||
array(
|
||||
'id' => 'margin_right',
|
||||
'label' => __( 'Margin right', 'dkpdfg' ),
|
||||
'description' => 'In points (pt)',
|
||||
'type' => 'number',
|
||||
'default' => '15',
|
||||
'placeholder' => '15'
|
||||
),
|
||||
array(
|
||||
'id' => 'margin_top',
|
||||
'label' => __( 'Margin top', 'dkpdfg' ),
|
||||
'description' => 'In points (pt)',
|
||||
'type' => 'number',
|
||||
'default' => '50',
|
||||
'placeholder' => '50'
|
||||
),
|
||||
array(
|
||||
'id' => 'margin_bottom',
|
||||
'label' => __( 'Margin bottom', 'dkpdfg' ),
|
||||
'description' => 'In points (pt)',
|
||||
'type' => 'number',
|
||||
'default' => '30',
|
||||
'placeholder' => '30'
|
||||
),
|
||||
array(
|
||||
'id' => 'margin_header',
|
||||
'label' => __( 'Margin header', 'dkpdfg' ),
|
||||
'description' => 'In points (pt)',
|
||||
'type' => 'number',
|
||||
'default' => '15',
|
||||
'placeholder' => '15'
|
||||
),
|
||||
|
||||
)
|
||||
);
|
||||
|
||||
// header & footer settings
|
||||
$settings['pdf_header_footer'] = array(
|
||||
'title' => __( 'PDF Header & Footer', 'dkpdf' ),
|
||||
'description' => '',
|
||||
'fields' => array(
|
||||
array(
|
||||
'id' => 'pdf_header_image',
|
||||
'label' => __( 'Header logo' , 'dkpdf' ),
|
||||
'description' => '',
|
||||
'type' => 'image',
|
||||
'default' => '',
|
||||
'placeholder' => ''
|
||||
),
|
||||
array(
|
||||
'id' => 'pdf_header_show_title',
|
||||
'label' => __( 'Header show title', 'dkpdf' ),
|
||||
'description' => '',
|
||||
'type' => 'checkbox',
|
||||
'default' => ''
|
||||
),
|
||||
array(
|
||||
'id' => 'pdf_header_show_pagination',
|
||||
'label' => __( 'Header show pagination', 'dkpdf' ),
|
||||
'description' => '',
|
||||
'type' => 'checkbox',
|
||||
'default' => ''
|
||||
),
|
||||
array(
|
||||
'id' => 'pdf_footer_text',
|
||||
'label' => __( 'Footer text' , 'dkpdf' ),
|
||||
'description' => __( 'HTML tags: a, br, em, strong, hr, p, h1 to h4', 'dkpdf' ),
|
||||
'type' => 'textarea',
|
||||
'default' => '',
|
||||
'placeholder' => ''
|
||||
),
|
||||
array(
|
||||
'id' => 'pdf_footer_show_title',
|
||||
'label' => __( 'Footer show title', 'dkpdf' ),
|
||||
'description' => '',
|
||||
'type' => 'checkbox',
|
||||
'default' => ''
|
||||
),
|
||||
array(
|
||||
'id' => 'pdf_footer_show_pagination',
|
||||
'label' => __( 'Footer show pagination', 'dkpdf' ),
|
||||
'description' => '',
|
||||
'type' => 'checkbox',
|
||||
'default' => ''
|
||||
),
|
||||
|
||||
)
|
||||
);
|
||||
|
||||
// style settings
|
||||
$settings['pdf_css'] = array(
|
||||
'title' => __( 'PDF CSS', 'dkpdf' ),
|
||||
'description' => '',
|
||||
'fields' => array(
|
||||
array(
|
||||
'id' => 'pdf_custom_css',
|
||||
'label' => __( 'PDF Custom CSS' , 'dkpdf' ),
|
||||
'description' => __( '', 'dkpdf' ),
|
||||
'type' => 'textarea_code',
|
||||
'default' => '',
|
||||
'placeholder' => ''
|
||||
),
|
||||
array(
|
||||
'id' => 'print_wp_head',
|
||||
'label' => __( 'Use your enqueued theme and plugin CSS', 'dkpdf' ),
|
||||
'description' => __( 'Adds wp_head() in PDF head', 'dkpdf' ),
|
||||
'type' => 'checkbox',
|
||||
'default' => ''
|
||||
),
|
||||
)
|
||||
);
|
||||
|
||||
$settings = apply_filters( 'dkpdf' . '_settings_fields', $settings );
|
||||
|
||||
return $settings;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Register plugin settings
|
||||
* @return void
|
||||
*/
|
||||
public function register_settings () {
|
||||
if ( is_array( $this->settings ) ) {
|
||||
|
||||
// Check posted/selected tab
|
||||
$current_section = '';
|
||||
if ( isset( $_POST['tab'] ) && $_POST['tab'] ) {
|
||||
$current_section = $_POST['tab'];
|
||||
} else {
|
||||
if ( isset( $_GET['tab'] ) && $_GET['tab'] ) {
|
||||
$current_section = $_GET['tab'];
|
||||
}
|
||||
}
|
||||
|
||||
foreach ( $this->settings as $section => $data ) {
|
||||
|
||||
if ( $current_section && $current_section != $section ) continue;
|
||||
|
||||
// Add section to page
|
||||
add_settings_section( $section, $data['title'], array( $this, 'settings_section' ), 'dkpdf' . '_settings' );
|
||||
|
||||
foreach ( $data['fields'] as $field ) {
|
||||
|
||||
// Validation callback for field
|
||||
$validation = '';
|
||||
if ( isset( $field['callback'] ) ) {
|
||||
$validation = $field['callback'];
|
||||
}
|
||||
|
||||
// Register field
|
||||
$option_name = $this->base . $field['id'];
|
||||
register_setting( 'dkpdf' . '_settings', $option_name, $validation );
|
||||
|
||||
// Add field to page
|
||||
add_settings_field( $field['id'], $field['label'], array( $this->parent->admin, 'display_field' ), 'dkpdf' . '_settings', $section, array( 'field' => $field, 'prefix' => $this->base ) );
|
||||
}
|
||||
|
||||
if ( ! $current_section ) break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function settings_section ( $section ) {
|
||||
$html = '<p> ' . $this->settings[ $section['id'] ]['description'] . '</p>' . "\n";
|
||||
echo $html;
|
||||
}
|
||||
|
||||
/**
|
||||
* Load settings page content
|
||||
* @return void
|
||||
*/
|
||||
public function settings_page () {
|
||||
|
||||
if( isset( $_GET['settings-updated']) ) { ?>
|
||||
<div id="message" class="updated">
|
||||
<p><?php _e('Settings saved.', 'dkpdf');?></p>
|
||||
</div>
|
||||
<?php }
|
||||
|
||||
// Build page HTML
|
||||
$html = '<div class="wrap" id="' . 'dkpdf' . '_settings">' . "\n";
|
||||
$html .= '<h2>' . __( 'DK PDF Settings' , 'dkpdf' ) . '</h2>' . "\n";
|
||||
|
||||
$tab = '';
|
||||
if ( isset( $_GET['tab'] ) && $_GET['tab'] ) {
|
||||
$tab .= $_GET['tab'];
|
||||
}
|
||||
|
||||
// Show page tabs
|
||||
if ( is_array( $this->settings ) && 1 < count( $this->settings ) ) {
|
||||
|
||||
$html .= '<h2 class="nav-tab-wrapper">' . "\n";
|
||||
|
||||
$c = 0;
|
||||
foreach ( $this->settings as $section => $data ) {
|
||||
|
||||
// Set tab class
|
||||
$class = 'nav-tab';
|
||||
if ( ! isset( $_GET['tab'] ) ) {
|
||||
if ( 0 == $c ) {
|
||||
$class .= ' nav-tab-active';
|
||||
}
|
||||
} else {
|
||||
if ( isset( $_GET['tab'] ) && $section == $_GET['tab'] ) {
|
||||
$class .= ' nav-tab-active';
|
||||
}
|
||||
}
|
||||
|
||||
// Set tab link
|
||||
$tab_link = add_query_arg( array( 'tab' => $section ) );
|
||||
if ( isset( $_GET['settings-updated'] ) ) {
|
||||
$tab_link = remove_query_arg( 'settings-updated', $tab_link );
|
||||
}
|
||||
|
||||
// Output tab
|
||||
$html .= '<a href="' . $tab_link . '" class="' . esc_attr( $class ) . '">' . esc_html( $data['title'] ) . '</a>' . "\n";
|
||||
|
||||
++$c;
|
||||
}
|
||||
|
||||
$html .= '</h2>' . "\n";
|
||||
}
|
||||
|
||||
$html .= '<form method="post" action="options.php" enctype="multipart/form-data">' . "\n";
|
||||
|
||||
// Get settings fields
|
||||
ob_start();
|
||||
settings_fields( 'dkpdf' . '_settings' );
|
||||
do_settings_sections( 'dkpdf' . '_settings' );
|
||||
$html .= ob_get_clean();
|
||||
|
||||
$html .= '<p class="submit">' . "\n";
|
||||
$html .= '<input type="hidden" name="tab" value="' . esc_attr( $tab ) . '" />' . "\n";
|
||||
$html .= '<input name="Submit" type="submit" class="button-primary" value="' . esc_attr( __( 'Save Settings' , 'dkpdf' ) ) . '" />' . "\n";
|
||||
$html .= '</p>' . "\n";
|
||||
$html .= '</form>' . "\n";
|
||||
|
||||
$html .= '</div>' . "\n";
|
||||
|
||||
echo $html;
|
||||
}
|
||||
|
||||
/**
|
||||
* Main DKPDF_Settings Instance
|
||||
*/
|
||||
public static function instance ( $parent ) {
|
||||
if ( is_null( self::$_instance ) ) {
|
||||
self::$_instance = new self( $parent );
|
||||
}
|
||||
return self::$_instance;
|
||||
} // End instance()
|
||||
|
||||
/**
|
||||
* Cloning is forbidden.
|
||||
*/
|
||||
public function __clone () {
|
||||
_doing_it_wrong( __FUNCTION__, __( 'Cheatin’ huh?' ), $this->parent->_version );
|
||||
} // End __clone()
|
||||
|
||||
/**
|
||||
* Unserializing instances of this class is forbidden.
|
||||
*/
|
||||
public function __wakeup () {
|
||||
_doing_it_wrong( __FUNCTION__, __( 'Cheatin’ huh?' ), $this->parent->_version );
|
||||
} // End __wakeup()
|
||||
|
||||
}
|
108
dk-pdf/includes/class-dkpdf-template-loader.php
Executable file
108
dk-pdf/includes/class-dkpdf-template-loader.php
Executable file
@ -0,0 +1,108 @@
|
||||
<?php
|
||||
|
||||
if ( ! class_exists( 'DKPDF_Template_Loader' ) ) {
|
||||
|
||||
class DKPDF_Template_Loader {
|
||||
|
||||
protected $filter_prefix = 'dkpdf';
|
||||
protected $theme_template_directory = 'dkpdf';
|
||||
protected $plugin_directory = DKPDF_PLUGIN_DIR;
|
||||
protected $plugin_template_directory = 'templates';
|
||||
|
||||
public function get_template_part( $slug, $name = null, $load = true ) {
|
||||
|
||||
// Execute code for this part
|
||||
do_action( 'get_template_part_' . $slug, $slug, $name );
|
||||
|
||||
$templates = $this->get_template_file_names( $slug, $name );
|
||||
|
||||
return $this->locate_template( $templates, $load, false );
|
||||
|
||||
}
|
||||
|
||||
protected function get_template_file_names( $slug, $name ) {
|
||||
|
||||
$templates = array();
|
||||
|
||||
if ( isset( $name ) ) {
|
||||
|
||||
$templates[] = $slug . '-' . $name . '.php';
|
||||
|
||||
}
|
||||
|
||||
$templates[] = $slug . '.php';
|
||||
|
||||
return apply_filters( $this->filter_prefix . '_get_template_part', $templates, $slug, $name );
|
||||
|
||||
}
|
||||
|
||||
public function locate_template( $template_names, $load = false, $require_once = true ) {
|
||||
|
||||
// No file found yet
|
||||
$located = false;
|
||||
|
||||
// Remove empty entries
|
||||
$template_names = array_filter( (array) $template_names );
|
||||
$template_paths = $this->get_template_paths();
|
||||
|
||||
// Try to find a template file
|
||||
foreach ( $template_names as $template_name ) {
|
||||
|
||||
// Trim off any slashes from the template name
|
||||
$template_name = ltrim( $template_name, '/' );
|
||||
|
||||
// Try locating this template file by looping through the template paths
|
||||
foreach ( $template_paths as $template_path ) {
|
||||
|
||||
if ( file_exists( $template_path . $template_name ) ) {
|
||||
|
||||
$located = $template_path . $template_name;
|
||||
break 2;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if ( $load && $located ) {
|
||||
|
||||
load_template( $located, $require_once );
|
||||
|
||||
}
|
||||
|
||||
return $located;
|
||||
|
||||
}
|
||||
|
||||
protected function get_template_paths() {
|
||||
|
||||
$theme_directory = trailingslashit( $this->theme_template_directory );
|
||||
|
||||
$file_paths = array(
|
||||
10 => trailingslashit( get_template_directory() ) . $theme_directory,
|
||||
100 => $this->get_templates_dir(),
|
||||
);
|
||||
|
||||
// Only add this conditionally, so non-child themes don't redundantly check active theme twice.
|
||||
if ( is_child_theme() ) {
|
||||
|
||||
$file_paths[1] = trailingslashit( get_stylesheet_directory() ) . $theme_directory;
|
||||
|
||||
}
|
||||
|
||||
$file_paths = apply_filters( $this->filter_prefix . '_template_paths', $file_paths );
|
||||
|
||||
// sort the file paths based on priority
|
||||
ksort( $file_paths, SORT_NUMERIC );
|
||||
|
||||
return array_map( 'trailingslashit', $file_paths );
|
||||
|
||||
}
|
||||
|
||||
protected function get_templates_dir() {
|
||||
|
||||
return trailingslashit( $this->plugin_directory ) . $this->plugin_template_directory;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
478
dk-pdf/includes/dkpdf-functions.php
Executable file
478
dk-pdf/includes/dkpdf-functions.php
Executable file
@ -0,0 +1,478 @@
|
||||
<?php
|
||||
|
||||
if ( ! defined( 'ABSPATH' ) ) exit;
|
||||
|
||||
/**
|
||||
* displays pdf button
|
||||
*/
|
||||
function dkpdf_display_pdf_button( $content ) {
|
||||
|
||||
// if is generated pdf don't show pdf button
|
||||
$pdf = get_query_var( 'pdf' );
|
||||
|
||||
if( apply_filters( 'dkpdf_hide_button_isset', isset( $_POST['dkpdfg_action_create'] ) ) ) {
|
||||
|
||||
if ( $pdf || apply_filters( 'dkpdf_hide_button_equal', $_POST['dkpdfg_action_create'] == 'dkpdfg_action_create' ) ) {
|
||||
|
||||
remove_shortcode('dkpdf-button');
|
||||
$content = str_replace( "[dkpdf-button]", "", $content );
|
||||
|
||||
return $content;
|
||||
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
if ( $pdf ) {
|
||||
|
||||
remove_shortcode('dkpdf-button');
|
||||
$content = str_replace( "[dkpdf-button]", "", $content );
|
||||
|
||||
return $content;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
global $post;
|
||||
$post_type = get_post_type( $post->ID );
|
||||
|
||||
$option_post_types = sanitize_option( 'dkpdf_pdfbutton_post_types', get_option( 'dkpdf_pdfbutton_post_types', array() ) );
|
||||
|
||||
// TODO button checkboxes?
|
||||
if ( is_archive() || is_front_page() || is_home() ) { return $content; }
|
||||
|
||||
// return content if not checked
|
||||
if( $option_post_types ) {
|
||||
|
||||
if ( ! in_array( get_post_type( $post ), $option_post_types ) ) {
|
||||
|
||||
return $content;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if( $option_post_types ) {
|
||||
|
||||
if ( in_array( get_post_type( $post ), $option_post_types ) ) {
|
||||
|
||||
$c = $content;
|
||||
|
||||
$pdfbutton_position = sanitize_option( 'dkpdf_pdfbutton_position', get_option( 'dkpdf_pdfbutton_position', 'before' ) );
|
||||
|
||||
$template = new DKPDF_Template_Loader;
|
||||
|
||||
if( $pdfbutton_position ) {
|
||||
|
||||
if ( $pdfbutton_position == 'shortcode' ) {
|
||||
return $c;
|
||||
}
|
||||
|
||||
if( $pdfbutton_position == 'before' ) {
|
||||
|
||||
ob_start();
|
||||
|
||||
$content = $template->get_template_part( 'dkpdf-button' );
|
||||
|
||||
return ob_get_clean() . $c;
|
||||
|
||||
|
||||
} else if ( $pdfbutton_position == 'after' ) {
|
||||
|
||||
ob_start();
|
||||
|
||||
$content = $template->get_template_part( 'dkpdf-button' );
|
||||
|
||||
return $c . ob_get_clean();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
return $content;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
add_filter( 'the_content', 'dkpdf_display_pdf_button' );
|
||||
|
||||
/**
|
||||
* output the pdf
|
||||
*/
|
||||
function dkpdf_output_pdf( $query ) {
|
||||
|
||||
$pdf = sanitize_text_field( get_query_var( 'pdf' ) );
|
||||
|
||||
if( $pdf ) {
|
||||
|
||||
include('mpdf60/mpdf.php');
|
||||
|
||||
// page orientation
|
||||
$dkpdf_page_orientation = get_option( 'dkpdf_page_orientation', '' );
|
||||
|
||||
if ( $dkpdf_page_orientation == 'horizontal') {
|
||||
|
||||
$format = apply_filters( 'dkpdf_pdf_format', 'A4' ).'-L';
|
||||
|
||||
} else {
|
||||
|
||||
$format = apply_filters( 'dkpdf_pdf_format', 'A4' );
|
||||
|
||||
}
|
||||
|
||||
// font size
|
||||
$dkpdf_font_size = get_option( 'dkpdf_font_size', '12' );
|
||||
$dkpdf_font_family = '';
|
||||
|
||||
// margins
|
||||
$dkpdf_margin_left = get_option( 'dkpdf_margin_left', '15' );
|
||||
$dkpdf_margin_right = get_option( 'dkpdf_margin_right', '15' );
|
||||
$dkpdf_margin_top = get_option( 'dkpdf_margin_top', '50' );
|
||||
$dkpdf_margin_bottom = get_option( 'dkpdf_margin_bottom', '30' );
|
||||
$dkpdf_margin_header = get_option( 'dkpdf_margin_header', '15' );
|
||||
|
||||
// creating and setting the pdf
|
||||
$mpdf = new mPDF('utf-8', $format, $dkpdf_font_size, $dkpdf_font_family,
|
||||
$dkpdf_margin_left, $dkpdf_margin_right, $dkpdf_margin_top, $dkpdf_margin_bottom, $dkpdf_margin_header
|
||||
);
|
||||
|
||||
/*
|
||||
// make chinese characters work in the pdf
|
||||
$mpdf->useAdobeCJK = true;
|
||||
$mpdf->autoScriptToLang = true;
|
||||
$mpdf->autoLangToFont = true;
|
||||
*/
|
||||
|
||||
// header
|
||||
$pdf_header_html = dkpdf_get_template( 'dkpdf-header' );
|
||||
$mpdf->SetHTMLHeader( $pdf_header_html );
|
||||
|
||||
// footer
|
||||
$pdf_footer_html = dkpdf_get_template( 'dkpdf-footer' );
|
||||
$mpdf->SetHTMLFooter( $pdf_footer_html );
|
||||
|
||||
$mpdf->WriteHTML( apply_filters( 'dkpdf_before_content', '' ) );
|
||||
$mpdf->WriteHTML( dkpdf_get_template( 'dkpdf-index' ) );
|
||||
$mpdf->WriteHTML( apply_filters( 'dkpdf_after_content', '' ) );
|
||||
|
||||
// action to do (open or download)
|
||||
$pdfbutton_action = sanitize_option( 'dkpdf_pdfbutton_action', get_option( 'dkpdf_pdfbutton_action', 'open' ) );
|
||||
|
||||
if( $pdfbutton_action == 'open') {
|
||||
|
||||
global $post;
|
||||
$mpdf->Output( get_the_title( $post->ID ).'.pdf', 'I' );
|
||||
|
||||
} else {
|
||||
|
||||
global $post;
|
||||
$mpdf->Output( get_the_title( $post->ID ).'.pdf', 'D' );
|
||||
|
||||
}
|
||||
|
||||
exit;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
add_action( 'wp', 'dkpdf_output_pdf' );
|
||||
|
||||
/**
|
||||
* returs a template
|
||||
* @param string template name
|
||||
*/
|
||||
function dkpdf_get_template( $template_name ) {
|
||||
|
||||
$template = new DKPDF_Template_Loader;
|
||||
|
||||
ob_start();
|
||||
$template->get_template_part( $template_name );
|
||||
return ob_get_clean();
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* returns an array of active post, page, attachment and custom post types
|
||||
* @return array
|
||||
*/
|
||||
function dkpdf_get_post_types() {
|
||||
|
||||
$args = array(
|
||||
'public' => true,
|
||||
'_builtin' => false
|
||||
);
|
||||
|
||||
$post_types = get_post_types( $args );
|
||||
$post_arr = array( 'post' => 'post', 'page' => 'page', 'attachment' => 'attachment' );
|
||||
|
||||
foreach ( $post_types as $post_type ) {
|
||||
|
||||
$arr = array( $post_type => $post_type );
|
||||
$post_arr += $arr;
|
||||
|
||||
}
|
||||
|
||||
$post_arr = apply_filters( 'dkpdf' . '_posts_arr', $post_arr );
|
||||
|
||||
return $post_arr;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* set query_vars
|
||||
*/
|
||||
function dkpdf_set_query_vars( $query_vars ) {
|
||||
|
||||
$query_vars[] = 'pdf';
|
||||
|
||||
return $query_vars;
|
||||
|
||||
}
|
||||
|
||||
add_filter( 'query_vars', 'dkpdf_set_query_vars' );
|
||||
|
||||
/**
|
||||
* sanitizes dkpdf options
|
||||
*/
|
||||
function dkpdf_sanitize_options() {
|
||||
|
||||
add_filter( 'pre_update_option_dkpdf_pdfbutton_text', 'dkpdf_update_field_dkpdf_pdfbutton_text', 10, 2 );
|
||||
add_filter( 'pre_update_option_dkpdf_pdfbutton_post_types', 'dkpdf_update_field_dkpdf_pdfbutton_post_types', 10, 2 );
|
||||
add_filter( 'pre_update_option_dkpdf_pdfbutton_action', 'dkpdf_update_field_dkpdf_pdfbutton_action', 10, 2 );
|
||||
add_filter( 'pre_update_option_dkpdf_pdfbutton_position', 'dkpdf_update_field_dkpdf_pdfbutton_position', 10, 2 );
|
||||
add_filter( 'pre_update_option_dkpdf_pdfbutton_align', 'dkpdf_update_field_dkpdf_pdfbutton_align', 10, 2 );
|
||||
add_filter( 'pre_update_option_dkpdf_page_orientation', 'dkpdf_update_field_dkpdf_page_orientation', 10, 2 );
|
||||
add_filter( 'pre_update_option_dkpdf_font_size', 'dkpdf_update_field_dkpdf_font_size', 10, 2 );
|
||||
add_filter( 'pre_update_option_dkpdf_margin_left', 'dkpdf_update_field_dkpdf_margin_left', 10, 2 );
|
||||
add_filter( 'pre_update_option_dkpdf_margin_right', 'dkpdf_update_field_dkpdf_margin_right', 10, 2 );
|
||||
add_filter( 'pre_update_option_dkpdf_margin_top', 'dkpdf_update_field_dkpdf_margin_top', 10, 2 );
|
||||
add_filter( 'pre_update_option_dkpdf_margin_bottom', 'dkpdf_update_field_dkpdf_margin_bottom', 10, 2 );
|
||||
add_filter( 'pre_update_option_dkpdf_margin_header', 'dkpdf_update_field_dkpdf_margin_header', 10, 2 );
|
||||
add_filter( 'pre_update_option_dkpdf_pdf_header_image', 'dkpdf_update_field_dkpdf_pdf_header_image', 10, 2 );
|
||||
add_filter( 'pre_update_option_dkpdf_pdf_header_show_title', 'dkpdf_update_field_dkpdf_pdf_header_show_title', 10, 2 );
|
||||
add_filter( 'pre_update_option_dkpdf_pdf_header_show_pagination', 'dkpdf_update_field_dkpdf_pdf_header_show_pagination', 10, 2 );
|
||||
add_filter( 'pre_update_option_dkpdf_pdf_footer_text', 'dkpdf_update_field_dkpdf_pdf_footer_text', 10, 2 );
|
||||
add_filter( 'pre_update_option_dkpdf_pdf_footer_show_title', 'dkpdf_update_field_dkpdf_pdf_footer_show_title', 10, 2 );
|
||||
add_filter( 'pre_update_option_dkpdf_pdf_footer_show_pagination', 'dkpdf_update_field_dkpdf_pdf_footer_show_pagination', 10, 2 );
|
||||
add_filter( 'pre_update_option_dkpdf_pdf_custom_css', 'dkpdf_update_field_dkpdf_pdf_custom_css', 10, 2 );
|
||||
add_filter( 'pre_update_option_dkpdf_print_wp_head', 'dkpdf_update_field_dkpdf_print_wp_head', 10, 2 );
|
||||
|
||||
|
||||
}
|
||||
|
||||
add_action( 'init', 'dkpdf_sanitize_options' );
|
||||
|
||||
/**
|
||||
* sanitizes dkpdf_pdfbutton_text option
|
||||
*/
|
||||
function dkpdf_update_field_dkpdf_pdfbutton_text( $new_value, $old_value ) {
|
||||
$new_value = sanitize_text_field( $new_value );
|
||||
return $new_value;
|
||||
}
|
||||
|
||||
/**
|
||||
* sanitizes dkpdf_pdfbutton_post_types option
|
||||
*/
|
||||
function dkpdf_update_field_dkpdf_pdfbutton_post_types( $new_value, $old_value ) {
|
||||
// TODO sanitize_text_field doesn't work
|
||||
//$new_value = sanitize_text_field( $new_value );
|
||||
return $new_value;
|
||||
}
|
||||
|
||||
/**
|
||||
* sanitizes dkpdf_pdfbutton_action option
|
||||
*/
|
||||
function dkpdf_update_field_dkpdf_pdfbutton_action( $new_value, $old_value ) {
|
||||
$new_value = sanitize_text_field( $new_value );
|
||||
return $new_value;
|
||||
}
|
||||
|
||||
/**
|
||||
* sanitizes dkpdf_pdfbutton_position option
|
||||
*/
|
||||
function dkpdf_update_field_dkpdf_pdfbutton_position( $new_value, $old_value ) {
|
||||
$new_value = sanitize_text_field( $new_value );
|
||||
return $new_value;
|
||||
}
|
||||
|
||||
/**
|
||||
* sanitizes dkpdf_pdfbutton_align option
|
||||
*/
|
||||
function dkpdf_update_field_dkpdf_pdfbutton_align( $new_value, $old_value ) {
|
||||
$new_value = sanitize_text_field( $new_value );
|
||||
return $new_value;
|
||||
}
|
||||
|
||||
/**
|
||||
* sanitizes dkpdf_page_orientation option
|
||||
*/
|
||||
function dkpdf_update_field_dkpdf_page_orientation( $new_value, $old_value ) {
|
||||
$new_value = sanitize_text_field( $new_value );
|
||||
return $new_value;
|
||||
}
|
||||
|
||||
/**
|
||||
* sanitizes dkpdf_font_size option
|
||||
*/
|
||||
function dkpdf_update_field_dkpdf_font_size( $new_value, $old_value ) {
|
||||
$new_value = intval( $new_value );
|
||||
return $new_value;
|
||||
}
|
||||
|
||||
/**
|
||||
* sanitizes dkpdf_margin_left option
|
||||
*/
|
||||
function dkpdf_update_field_dkpdf_margin_left( $new_value, $old_value ) {
|
||||
$new_value = intval( $new_value );
|
||||
return $new_value;
|
||||
}
|
||||
|
||||
/**
|
||||
* sanitizes dkpdf_margin_right option
|
||||
*/
|
||||
function dkpdf_update_field_dkpdf_margin_right( $new_value, $old_value ) {
|
||||
$new_value = intval( $new_value );
|
||||
return $new_value;
|
||||
}
|
||||
|
||||
/**
|
||||
* sanitizes dkpdf_margin_top option
|
||||
*/
|
||||
function dkpdf_update_field_dkpdf_margin_top( $new_value, $old_value ) {
|
||||
$new_value = intval( $new_value );
|
||||
return $new_value;
|
||||
}
|
||||
|
||||
/**
|
||||
* sanitizes dkpdf_margin_bottom option
|
||||
*/
|
||||
function dkpdf_update_field_dkpdf_margin_bottom( $new_value, $old_value ) {
|
||||
$new_value = intval( $new_value );
|
||||
return $new_value;
|
||||
}
|
||||
|
||||
/**
|
||||
* sanitizes dkpdf_margin_header option
|
||||
*/
|
||||
function dkpdf_update_field_dkpdf_margin_header( $new_value, $old_value ) {
|
||||
$new_value = intval( $new_value );
|
||||
return $new_value;
|
||||
}
|
||||
|
||||
/**
|
||||
* sanitizes dkpdf_pdf_header_image option
|
||||
*/
|
||||
function dkpdf_update_field_dkpdf_pdf_header_image( $new_value, $old_value ) {
|
||||
$new_value = sanitize_text_field( $new_value );
|
||||
return $new_value;
|
||||
}
|
||||
|
||||
/**
|
||||
* sanitizes dkpdf_pdf_header_show_title option
|
||||
*/
|
||||
function dkpdf_update_field_dkpdf_pdf_header_show_title( $new_value, $old_value ) {
|
||||
$new_value = sanitize_text_field( $new_value );
|
||||
return $new_value;
|
||||
}
|
||||
|
||||
/**
|
||||
* sanitizes dkpdf_pdf_header_show_pagination option
|
||||
*/
|
||||
function dkpdf_update_field_dkpdf_pdf_header_show_pagination( $new_value, $old_value ) {
|
||||
$new_value = sanitize_text_field( $new_value );
|
||||
return $new_value;
|
||||
}
|
||||
|
||||
/**
|
||||
* sanitizes dkpdf_pdf_footer_text option
|
||||
*/
|
||||
function dkpdf_update_field_dkpdf_pdf_footer_text( $new_value, $old_value ) {
|
||||
|
||||
$arr = array(
|
||||
'a' => array(
|
||||
'href' => array(),
|
||||
'title' => array(),
|
||||
'class' => array(),
|
||||
'style' => array()
|
||||
),
|
||||
'br' => array(),
|
||||
'em' => array(),
|
||||
'strong' => array(),
|
||||
'hr' => array(),
|
||||
'p' => array(
|
||||
'title' => array(),
|
||||
'class' => array(),
|
||||
'style' => array()
|
||||
),
|
||||
'h1' => array(
|
||||
'title' => array(),
|
||||
'class' => array(),
|
||||
'style' => array()
|
||||
),
|
||||
'h2' => array(
|
||||
'title' => array(),
|
||||
'class' => array(),
|
||||
'style' => array()
|
||||
),
|
||||
'h3' => array(
|
||||
'title' => array(),
|
||||
'class' => array(),
|
||||
'style' => array()
|
||||
),
|
||||
'h4' => array(
|
||||
'title' => array(),
|
||||
'class' => array(),
|
||||
'style' => array()
|
||||
),
|
||||
'div' => array(
|
||||
'title' => array(),
|
||||
'class' => array(),
|
||||
'style' => array()
|
||||
)
|
||||
);
|
||||
|
||||
$new_value = wp_kses( $new_value, $arr );
|
||||
return $new_value;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* sanitizes dkpdf_pdf_header_show_pagination option
|
||||
*/
|
||||
function dkpdf_update_field_dkpdf_pdf_footer_show_title( $new_value, $old_value ) {
|
||||
$new_value = sanitize_text_field( $new_value );
|
||||
return $new_value;
|
||||
}
|
||||
|
||||
/**
|
||||
* sanitizes dkpdf_pdf_header_show_pagination option
|
||||
*/
|
||||
function dkpdf_update_field_dkpdf_pdf_footer_show_pagination( $new_value, $old_value ) {
|
||||
$new_value = sanitize_text_field( $new_value );
|
||||
return $new_value;
|
||||
}
|
||||
|
||||
/**
|
||||
* sanitizes dkpdf_pdf_custom_css option
|
||||
*/
|
||||
function dkpdf_update_field_dkpdf_pdf_custom_css( $new_value, $old_value ) {
|
||||
$new_value = wp_filter_nohtml_kses( $new_value );
|
||||
$new_value = str_replace('\"', '"', $new_value);
|
||||
$new_value = str_replace("\'", "'", $new_value);
|
||||
return $new_value;
|
||||
}
|
||||
|
||||
/**
|
||||
* sanitizes dkpdf_print_wp_head option
|
||||
*/
|
||||
function dkpdf_update_field_dkpdf_print_wp_head( $new_value, $old_value ) {
|
||||
$new_value = sanitize_text_field( $new_value );
|
||||
return $new_value;
|
||||
}
|
36
dk-pdf/includes/dkpdf-load-js-css.php
Executable file
36
dk-pdf/includes/dkpdf-load-js-css.php
Executable file
@ -0,0 +1,36 @@
|
||||
<?php
|
||||
if ( ! defined( 'ABSPATH' ) ) exit;
|
||||
|
||||
add_action( 'wp_enqueue_scripts', 'dkpdf_enqueue_styles', 15 );
|
||||
add_action( 'wp_enqueue_scripts', 'dkpdf_enqueue_scripts', 10 );
|
||||
add_action( 'admin_enqueue_scripts', 'dkpdf_admin_enqueue_scripts', 10, 1 );
|
||||
add_action( 'admin_enqueue_scripts', 'dkpdf_admin_enqueue_styles', 10, 1 );
|
||||
|
||||
function dkpdf_enqueue_styles() {
|
||||
wp_register_style( 'font-awesome', '//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css', array(), '4.3.0' );
|
||||
wp_enqueue_style( 'font-awesome' );
|
||||
|
||||
wp_register_style( 'dkpdf-frontend', plugins_url( 'dk-pdf/assets/css/frontend.css' ), array(), DKPDF_VERSION );
|
||||
wp_enqueue_style( 'dkpdf-frontend' );
|
||||
}
|
||||
|
||||
function dkpdf_enqueue_scripts() {
|
||||
wp_register_script( 'dkpdf-frontend', plugins_url( 'dk-pdf/assets/js/frontend.js' ), array( 'jquery' ), DKPDF_VERSION, true );
|
||||
wp_enqueue_script( 'dkpdf-frontend' );
|
||||
}
|
||||
|
||||
function dkpdf_admin_enqueue_styles( $hook = '' ) {
|
||||
wp_register_style( 'dkpdf-admin', plugins_url( 'dk-pdf/assets/css/admin.css' ), array(), DKPDF_VERSION );
|
||||
wp_enqueue_style( 'dkpdf-admin' );
|
||||
}
|
||||
|
||||
function dkpdf_admin_enqueue_scripts( $hook = '' ) {
|
||||
wp_register_script( 'dkpdf-settings-admin', plugins_url( 'dk-pdf/assets/js/settings-admin.js' ), array( 'jquery' ), DKPDF_VERSION );
|
||||
wp_enqueue_script( 'dkpdf-settings-admin' );
|
||||
|
||||
wp_register_script( 'dkpdf-ace', plugins_url( 'dk-pdf/assets/js/src-min/ace.js' ), array(), DKPDF_VERSION );
|
||||
wp_enqueue_script( 'dkpdf-ace' );
|
||||
|
||||
wp_register_script( 'dkpdf-admin', plugins_url( 'dk-pdf/assets/js/admin.js' ), array( 'jquery' ), DKPDF_VERSION );
|
||||
wp_enqueue_script( 'dkpdf-admin' );
|
||||
}
|
142
dk-pdf/includes/dkpdf-metaboxes.php
Executable file
142
dk-pdf/includes/dkpdf-metaboxes.php
Executable file
@ -0,0 +1,142 @@
|
||||
<?php
|
||||
|
||||
if ( ! defined( 'ABSPATH' ) ) exit;
|
||||
|
||||
/**
|
||||
* Return array with all fields in metabox
|
||||
*/
|
||||
function dkpdf_get_custom_fields_settings() {
|
||||
|
||||
$fields = array();
|
||||
|
||||
$fields['_hide_pdfbutton'] = array(
|
||||
'name' => __( 'Disable DK PDF Button:' , 'dkpdf' ),
|
||||
'description' => '',
|
||||
'type' => 'checkbox',
|
||||
'default' => '',
|
||||
'section' => ''
|
||||
);
|
||||
|
||||
return $fields;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Add metabox to post types
|
||||
*/
|
||||
function dkpdf_meta_box_setup () {
|
||||
|
||||
// get post types selected in settings
|
||||
|
||||
$pdfbutton_post_types = sanitize_option( 'dkpdf_pdfbutton_post_types', get_option( 'dkpdf_pdfbutton_post_types' ) );
|
||||
|
||||
if( $pdfbutton_post_types ) {
|
||||
|
||||
// add metabox to selected post types
|
||||
foreach ( $pdfbutton_post_types as $post_type ) {
|
||||
add_meta_box( 'post-data', __( 'DK PDF', 'dkpdf' ), 'dkpdf_meta_box_content', $post_type, 'normal', 'high' );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
add_action( 'add_meta_boxes', 'dkpdf_meta_box_setup' );
|
||||
|
||||
/**
|
||||
* Add content to metabox
|
||||
*/
|
||||
function dkpdf_meta_box_content () {
|
||||
|
||||
global $post_id;
|
||||
$fields = get_post_custom( $post_id );
|
||||
$field_data = dkpdf_get_custom_fields_settings();
|
||||
|
||||
$html = '';
|
||||
|
||||
$html .= '<input type="hidden" name="' . 'dkpdf' . '_nonce" id="' . 'dkpdf' . '_nonce" value="' . wp_create_nonce( plugin_basename( __FILE__ ) ) . '" />';
|
||||
|
||||
if ( 0 < count( $field_data ) ) {
|
||||
$html .= '<table class="form-table">' . "\n";
|
||||
$html .= '<tbody>' . "\n";
|
||||
|
||||
foreach ( $field_data as $k => $v ) {
|
||||
$data = $v['default'];
|
||||
|
||||
if ( isset( $fields[$k] ) && isset( $fields[$k][0] ) ) {
|
||||
$data = $fields[$k][0];
|
||||
}
|
||||
|
||||
if( $v['type'] == 'checkbox' ) {
|
||||
$html .= '<tr valign="top"><th scope="row">' . $v['name'] . '</th><td><input name="' . esc_attr( $k ) . '" type="checkbox" id="' . esc_attr( $k ) . '" ' . checked( 'on' , $data , false ) . ' /> <label for="' . esc_attr( $k ) . '"><span class="description">' . $v['description'] . '</span></label>' . "\n";
|
||||
$html .= '</td></tr>' . "\n";
|
||||
} else {
|
||||
$html .= '<tr valign="top"><th scope="row"><label for="' . esc_attr( $k ) . '">' . $v['name'] . '</label></th><td><input name="' . esc_attr( $k ) . '" type="text" id="' . esc_attr( $k ) . '" class="regular-text" value="' . esc_attr( $data ) . '" />' . "\n";
|
||||
$html .= '<p class="description">' . $v['description'] . '</p>' . "\n";
|
||||
$html .= '</td></tr>' . "\n";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$html .= '</tbody>' . "\n";
|
||||
$html .= '</table>' . "\n";
|
||||
|
||||
}
|
||||
|
||||
echo $html;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Save metabox data
|
||||
*/
|
||||
function dkpdf_meta_box_save ( $post_id ) {
|
||||
|
||||
global $post, $messages;
|
||||
|
||||
if ( isset( $_POST[ 'dkpdf' . '_nonce'] ) ) {
|
||||
|
||||
// Verify nonce
|
||||
if ( ! wp_verify_nonce( $_POST[ 'dkpdf' . '_nonce'], plugin_basename( __FILE__ ) ) ) {
|
||||
return $post_id;
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
return $post_id;
|
||||
|
||||
}
|
||||
|
||||
// Verify user permissions
|
||||
if ( ! current_user_can( 'edit_post', $post_id ) ) {
|
||||
return $post_id;
|
||||
}
|
||||
|
||||
// Handle custom fields
|
||||
$field_data = dkpdf_get_custom_fields_settings();
|
||||
$fields = array_keys( $field_data );
|
||||
|
||||
foreach ( $fields as $f ) {
|
||||
|
||||
${$f} = '';
|
||||
|
||||
if( isset( $_POST[$f] ) ) {
|
||||
${$f} = strip_tags( trim( $_POST[$f] ) );
|
||||
}
|
||||
|
||||
// Escape the URLs.
|
||||
if ( 'url' == $field_data[$f]['type'] ) {
|
||||
${$f} = esc_url( ${$f} );
|
||||
}
|
||||
|
||||
if ( ${$f} == '' ) {
|
||||
delete_post_meta( $post_id , $f , get_post_meta( $post_id , $f , true ) );
|
||||
} else {
|
||||
update_post_meta( $post_id , $f , ${$f} );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
add_action( 'save_post', 'dkpdf_meta_box_save' );
|
86
dk-pdf/includes/dkpdf-shortcodes.php
Executable file
86
dk-pdf/includes/dkpdf-shortcodes.php
Executable file
@ -0,0 +1,86 @@
|
||||
<?php
|
||||
|
||||
if ( ! defined( 'ABSPATH' ) ) exit;
|
||||
|
||||
/**
|
||||
* [dkpdf-button]
|
||||
* This shortcode is used to display DK PDF Button
|
||||
* doesn't has attributes, uses settings from DK PDF Settings / PDF Button
|
||||
*/
|
||||
function dkpdf_button_shortcode( $atts, $content = null ) {
|
||||
|
||||
$template = new DKPDF_Template_Loader;
|
||||
|
||||
ob_start();
|
||||
|
||||
$template->get_template_part( 'dkpdf-button' );
|
||||
|
||||
return ob_get_clean();
|
||||
|
||||
}
|
||||
|
||||
add_shortcode( 'dkpdf-button', 'dkpdf_button_shortcode' );
|
||||
|
||||
/**
|
||||
* [dkpdf-remove tag="gallery"]content to remove[/dkpdf-remove]
|
||||
* This shortcode is used remove pieces of content in the generated PDF
|
||||
* @return string
|
||||
*/
|
||||
function dkpdf_remove_shortcode( $atts, $content = null ) {
|
||||
$atts = shortcode_atts( array(
|
||||
'tag' => ''
|
||||
), $atts );
|
||||
$pdf = get_query_var( 'pdf' );
|
||||
$tag = sanitize_text_field( $atts['tag'] );
|
||||
if( $tag !== '' && $pdf ) {
|
||||
remove_shortcode( $tag );
|
||||
add_shortcode( $tag, '__return_false' );
|
||||
return do_shortcode( $content );
|
||||
} else if( $pdf ) {
|
||||
return '';
|
||||
}
|
||||
|
||||
return do_shortcode( $content );
|
||||
}
|
||||
add_shortcode( 'dkpdf-remove', 'dkpdf_remove_shortcode' );
|
||||
|
||||
/**
|
||||
* [dkpdf-pagebreak]
|
||||
* Allows adding page breaks for sending content after this shortcode to the next page.
|
||||
* Uses <pagebreak /> http://mpdf1.com/manual/index.php?tid=108
|
||||
* @return string
|
||||
*/
|
||||
function dkpdf_pagebreak_shortcode( $atts, $content = null ) {
|
||||
|
||||
$pdf = get_query_var( 'pdf' );
|
||||
|
||||
if( apply_filters( 'dkpdf_hide_button_isset', isset( $_POST['dkpdfg_action_create'] ) ) ) {
|
||||
if ( $pdf || apply_filters( 'dkpdf_hide_button_equal', $_POST['dkpdfg_action_create'] == 'dkpdfg_action_create' ) ) {
|
||||
|
||||
$output = '<pagebreak />';
|
||||
|
||||
} else {
|
||||
|
||||
$output = '';
|
||||
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
if( $pdf ) {
|
||||
|
||||
$output = '<pagebreak />';
|
||||
|
||||
} else {
|
||||
|
||||
$output = '';
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return $output;
|
||||
|
||||
}
|
||||
|
||||
add_shortcode( 'dkpdf-pagebreak', 'dkpdf_pagebreak_shortcode' );
|
75
dk-pdf/includes/dkpdf-upgrades.php
Executable file
75
dk-pdf/includes/dkpdf-upgrades.php
Executable file
@ -0,0 +1,75 @@
|
||||
<?php
|
||||
|
||||
if ( ! defined( 'ABSPATH' ) ) exit;
|
||||
|
||||
/**
|
||||
* adds dashboard page
|
||||
*/
|
||||
function dkpdf_welcome_screen_page(){
|
||||
add_dashboard_page('DK PDF Welcome', 'DK PDF Welcome', 'manage_options', 'dkpdf-welcome', 'dkpdf_welcome_page');
|
||||
}
|
||||
|
||||
// output dkpdf-welcome dashboard page
|
||||
function dkpdf_welcome_page(){ ?>
|
||||
|
||||
<div class="wrap">
|
||||
|
||||
<h1>Welcome to DK PDF <?php echo DKPDF_VERSION;?></h1>
|
||||
<h2 style="font-size:140%;">What's new in this version:</h2>
|
||||
<ul>
|
||||
<li>
|
||||
<h3 style="margin-top:20px;">DK PDF admin menu</h3>
|
||||
<?php
|
||||
$img1 = plugins_url( 'assets/images/dkpdf-admin-menu.jpg', DKPDF_PLUGIN_FILE );
|
||||
?>
|
||||
<img style="margin-bottom:20px;width:100%;height:auto;"src="<?php echo $img1;?>">
|
||||
</li>
|
||||
<li>
|
||||
<h3 style="margin-top:20px;">PDF Setup tab for adjusting page orientation, font size and margins of the PDF</h3>
|
||||
<?php
|
||||
$img2 = plugins_url( 'assets/images/dkpdf-setup-tab.jpg', DKPDF_PLUGIN_FILE );
|
||||
?>
|
||||
<img style="margin-bottom:20px;width:100%;height:auto;"src="<?php echo $img2;?>">
|
||||
</li>
|
||||
<li>
|
||||
<h3 style="margin-top:20px;">[dkpdf-remove] shortcode for removing pieces of content in the generated PDF</h3></li>
|
||||
<p><a href="http://wp.dinamiko.com/demos/dkpdf/doc/dkpdf-remove-shortcode/" target="_blank">See more info here</a></p>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
<?php }
|
||||
|
||||
add_action('admin_menu', 'dkpdf_welcome_screen_page');
|
||||
|
||||
/**
|
||||
* Fires when plugin is activated or upgraded
|
||||
*/
|
||||
function dkpdf_welcome_redirect( $plugin ) {
|
||||
|
||||
if( $plugin == 'dk-pdf/dk-pdf.php' ) {
|
||||
|
||||
wp_redirect( admin_url( 'index.php?page=dkpdf-welcome' ) );
|
||||
die();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
add_action( 'activated_plugin', 'dkpdf_welcome_redirect' );
|
||||
|
||||
/**
|
||||
* removes dkpdf-welcome link in Dashboard submenu
|
||||
*/
|
||||
function dkpdf_remove_menu_entry(){
|
||||
remove_submenu_page( 'index.php', 'dkpdf-welcome' );
|
||||
}
|
||||
|
||||
add_action( 'admin_head', 'dkpdf_remove_menu_entry' );
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
3110
dk-pdf/includes/mpdf60/CHANGELOG.txt
Executable file
3110
dk-pdf/includes/mpdf60/CHANGELOG.txt
Executable file
File diff suppressed because it is too large
Load Diff
92
dk-pdf/includes/mpdf60/CREDITS.txt
Executable file
92
dk-pdf/includes/mpdf60/CREDITS.txt
Executable file
@ -0,0 +1,92 @@
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
* Software: FPDF *
|
||||
* Version: 1.53 *
|
||||
* Date: 2004-12-31 *
|
||||
* Author: Olivier PLATHEY *
|
||||
* License: Freeware *
|
||||
* *
|
||||
* You may use and modify this software as you wish. *
|
||||
*******************************************************************************/
|
||||
|
||||
/*******************************************************************************
|
||||
* HTML2FPDF is a php script to read a HTML text and generate a PDF file. *
|
||||
* Copyright (C) 2004-2005 Renato Coelho *
|
||||
* *
|
||||
* html2fpdf.php, htmltoolkit.php *
|
||||
*******************************************************************************/
|
||||
|
||||
CREDITS From HTML2FPDF:
|
||||
|
||||
-Olivier Plathey for the fpdf.php class [http://www.fpdf.org]
|
||||
-Damon Kohler for the Flowing Block script [mailto:damonkohler@yahoo.com]
|
||||
-Clément Lavoillotte for HTML-oriented FPDF idea
|
||||
-Yamasoft for the gif.php class [http://www.yamasoft.com/]
|
||||
-Jérôme Fenal for the _parsegif() function
|
||||
-"VIETCOM" for the PDFTable code [http://www.freepgs.com/vietcom/tool/pdftable/] [mailto:vncommando@yahoo.com]
|
||||
-Yukihiro O. for the SetDash() function [mailto:yukihiro_o@infoseek.jp]
|
||||
-Ron Korving for the WordWrap() function
|
||||
-Michel Poulain for the DisplayPreferences() function
|
||||
-Patrick Benny for the MultiCellBlt() function idea [no longer in use]
|
||||
-Seb for the _SetTextRendering() and SetTextOutline() functions [mailto:captainseb@wanadoo.fr]
|
||||
-MorphSoft for the colornames list idea
|
||||
-W3SCHOOLS for HTML-related reference info [http://www.w3schools.com/]
|
||||
|
||||
|
||||
|
||||
/****************************************************************************
|
||||
* Software: FPDF_Protection *
|
||||
* Version: 1.02 *
|
||||
* Date: 2005/05/08 *
|
||||
* Author: Klemen VODOPIVEC *
|
||||
* License: Freeware *
|
||||
* *
|
||||
* You may use and modify this software as you wish as stated in original *
|
||||
* FPDF package. *
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
// FPDI - Version 1.2
|
||||
//
|
||||
// Copyright 2004-2007 Setasign - Jan Slabon
|
||||
//
|
||||
// Licensed 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.
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* @copyright Khaled Al-Shamaa 2008
|
||||
* @link http://www.ar-php.org
|
||||
* @author Khaled Al-Shamaa <khaled@ar-php.org>
|
||||
* @desc Set of PHP5 / UTF-8 Classes developed to enhance Arabic web
|
||||
* applications by providing set of tools includes stem-based searching,
|
||||
* translitiration, soundex, Hijri calendar, charset detection and
|
||||
* converter, spell numbers, keyboard language, Muslim prayer time,
|
||||
* auto-summarization, and more...
|
||||
* @package Arabic
|
||||
*
|
||||
* @version 1.8 released in Feb 15, 2009
|
||||
*
|
||||
* @license LGPL
|
||||
****************************************************************************/
|
||||
|
||||
|
||||
This library 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;
|
||||
This library 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.
|
||||
[http://www.opensource.org/licenses/lgpl-license.php]
|
||||
|
340
dk-pdf/includes/mpdf60/LICENSE.txt
Executable file
340
dk-pdf/includes/mpdf60/LICENSE.txt
Executable file
@ -0,0 +1,340 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
Public License instead of this License.
|
130
dk-pdf/includes/mpdf60/README.txt
Executable file
130
dk-pdf/includes/mpdf60/README.txt
Executable file
@ -0,0 +1,130 @@
|
||||
Installation
|
||||
============
|
||||
* Download the .zip file and unzip it
|
||||
* Create a folder e.g. /mpdf on your server
|
||||
* Upload all of the files to the server, maintaining the folders as they are
|
||||
* Ensure that you have write permissions set (CHMOD 6xx or 7xx) for the following folders:
|
||||
/ttfontdata/ - used to cache font data; improves performance a lot
|
||||
/tmp/ - used for some images and ProgressBar
|
||||
/graph_cache/ - if you are using JpGraph in conjunction with mPDF
|
||||
|
||||
To test the installation, point your browser to the basic example file : [path_to_mpdf_folder]/mpdf/examples/example01_basic.php
|
||||
|
||||
If you wish to define a different folder for temporary files rather than /tmp/ see the note on 'Folder for temporary files' in
|
||||
the section on Installation & Setup in the manual (http://mpdf1.com/manual/).
|
||||
|
||||
If you have problems, please read the section on troubleshooting in the manual.
|
||||
|
||||
|
||||
Fonts
|
||||
=====
|
||||
Let us refer to font names in 2 ways:
|
||||
"CSS font-family name" - mPDF is designed primarily to read HTML and CSS. This is the name used in CSS e.g.
|
||||
<p style="font-family: 'Trebuchet MS';">
|
||||
|
||||
"mPDF font-family name" - the name used internally to process fonts. This could be anything you like,
|
||||
but by default mPDF will convert CSS font-family names by removing any spaces and changing
|
||||
to lowercase. Reading the name above, mPDF will look for a "mPDF font-family name" of
|
||||
'trebuchetms'.
|
||||
|
||||
The configurable values referred to below are set in the config_fonts.php file
|
||||
|
||||
When parsing HTML/CSS, mPDF will read the CSS font-family name (e.g. 'Trebuchet MS') and convert
|
||||
by removing any spaces and changing to lowercase, to look for a mPDF font-family name (trebuchetms).
|
||||
|
||||
Next it will look for a translation (if set) in config_font.php e.g.:
|
||||
$this->fonttrans = array(
|
||||
'trebuchetms' => 'trebuchet'
|
||||
)
|
||||
|
||||
Now the mPDF font-family name to be used is 'trebuchet'
|
||||
|
||||
If you wish to make this font available, you need to specify the Truetype .ttf font files for each variant.
|
||||
These should be defined in config_font.php in the array:
|
||||
$this->fontdata = array(
|
||||
"trebuchet" => array(
|
||||
'R' => "trebuc.ttf",
|
||||
'B' => "trebucbd.ttf",
|
||||
'I' => "trebucit.ttf",
|
||||
'BI' => "trebucbi.ttf",
|
||||
)
|
||||
)
|
||||
|
||||
This is the array which determines whether a font is available to mPDF. Each font-family must have a
|
||||
Regular ['R'] file defined - the others (bold, italic, bold-italic) are optional.
|
||||
|
||||
mPDF will try to load the font-file. If you have defined _MPDF_SYSTEM_TTFONTS at the top of the
|
||||
config_fonts.php file, it will first look for the font-file there. This is useful if you are running
|
||||
mPDF on a computer which already has a folder with TTF fonts in (e.g. on Windows)
|
||||
|
||||
If the font-file is not there, or _MPDF_SYSTEM_TTFONTS is not defined, mPDF will look in the folder
|
||||
/[your_path_to_mpdf]/ttfonts/
|
||||
|
||||
Note that the font-file names are case-sensitive and can contain capitals.
|
||||
|
||||
If the folder /ttfontdata/ is writeable (CHMOD 644 or 755), mPDF will save files there which it can
|
||||
re-use next time it accesses a particular font. This will significantly improve processing time
|
||||
and is strongly recommended.
|
||||
|
||||
mPDF should be able to read most TrueType Unicode font files with a .ttf extension
|
||||
Truetype fonts with .otf extension that are OpenType also work OK.
|
||||
TrueType collections (.ttc) will also work if they contain TrueType Unicode fonts.
|
||||
|
||||
|
||||
Character substitution
|
||||
----------------------
|
||||
Most people will have access to a Pan-Unicode font with most Unicode characters in it such as
|
||||
Arial Unicode MS. Set $this->backupSubsFont = array('arialunicodems'); at the top of the config_fonts.php file
|
||||
to use this font when substituting any characters not found in the specific font being used.
|
||||
|
||||
Example:
|
||||
You can set $mpdf->useSubstitutions = true; at runtime
|
||||
or $this->useSubstitutions = true; in the config.php file
|
||||
|
||||
<p style="font-family: 'Comic Sans MS'">This text contains a Thai character ม which does not exist
|
||||
in the Comic Sans MS font file</p>
|
||||
|
||||
When useSubstitutions is true, mPDF will try to find substitutions for any missing characters:
|
||||
1) firstly looks if the character is available in the inbuilt Symbols or ZapfDingbats fonts;
|
||||
2) [If defined] looks in each of the the font(s) set by $this->backupSubsFont array
|
||||
|
||||
NB There is an increase in processing time when using substitutions, and even more so if
|
||||
a backupSubsFont is defined.
|
||||
|
||||
Controlling mPDF mode
|
||||
=====================
|
||||
The first parameter of new mPDF('') works as follows:
|
||||
new mPDF('c') - forces mPDF to only use the built-in [c]ore Adobe fonts (Helvetica, Times etc)
|
||||
|
||||
new mPDF('') - default - font subsetting behaviour is determined by the configurable variables
|
||||
$this->maxTTFFilesize and $this->percentSubset (see below)
|
||||
Default values are set so that: 1) very large font files are always subset
|
||||
2) Fonts are embedded as subsets if < 30% of the characters are used
|
||||
|
||||
new mPDF('..+aCJK') new mPDF('+aCJK')
|
||||
new mPDF('..-aCJK') new mPDF('-aCJK')
|
||||
- used optionally together with a language or language/country code, +aCJK will force mPDF
|
||||
to use the Adobe non-embedded CJK fonts when a passage is marked with e.g. "lang: ja"
|
||||
This can be used at runtime to override the value set for $mpdf->useAdobeCJK in config.php
|
||||
Use in conjunction with settings in config_cp.php
|
||||
|
||||
For backwards compatibility, new mPDF('-s') and new mPDF('s') will force subsetting by
|
||||
setting $this->percentSubset=100
|
||||
new mPDF('utf-8-s') and new mPDF('ar-s') are also recognised
|
||||
|
||||
|
||||
|
||||
|
||||
Configuration variables changed
|
||||
===============================
|
||||
Configuration variables are documented in the on-line manual (http://mpdf1.com/manual/).
|
||||
|
||||
|
||||
Font folders
|
||||
============
|
||||
If you wish to define your own font file folders (perhaps to share),
|
||||
you can define the 2 constants in your script before including the mpdf.php script e.g.:
|
||||
|
||||
define('_MPDF_TTFONTPATH','your_path/ttfonts/');
|
||||
define('_MPDF_TTFONTDATAPATH','your_path/ttfontdata/'); // should be writeable
|
||||
|
1972
dk-pdf/includes/mpdf60/classes/barcode.php
Executable file
1972
dk-pdf/includes/mpdf60/classes/barcode.php
Executable file
File diff suppressed because it is too large
Load Diff
248
dk-pdf/includes/mpdf60/classes/bmp.php
Executable file
248
dk-pdf/includes/mpdf60/classes/bmp.php
Executable file
@ -0,0 +1,248 @@
|
||||
<?php
|
||||
|
||||
class bmp {
|
||||
|
||||
var $mpdf = null;
|
||||
|
||||
function bmp(&$mpdf) {
|
||||
$this->mpdf = $mpdf;
|
||||
}
|
||||
|
||||
|
||||
function _getBMPimage($data, $file) {
|
||||
$info = array();
|
||||
// Adapted from script by Valentin Schmidt
|
||||
// http://staff.dasdeck.de/valentin/fpdf/fpdf_bmp/
|
||||
$bfOffBits=$this->_fourbytes2int_le(substr($data,10,4));
|
||||
$width=$this->_fourbytes2int_le(substr($data,18,4));
|
||||
$height=$this->_fourbytes2int_le(substr($data,22,4));
|
||||
$flip = ($height<0);
|
||||
if ($flip) $height =-$height;
|
||||
$biBitCount=$this->_twobytes2int_le(substr($data,28,2));
|
||||
$biCompression=$this->_fourbytes2int_le(substr($data,30,4));
|
||||
$info = array('w'=>$width, 'h'=>$height);
|
||||
if ($biBitCount<16){
|
||||
$info['cs'] = 'Indexed';
|
||||
$info['bpc'] = $biBitCount;
|
||||
$palStr = substr($data,54,($bfOffBits-54));
|
||||
$pal = '';
|
||||
$cnt = strlen($palStr)/4;
|
||||
for ($i=0;$i<$cnt;$i++){
|
||||
$n = 4*$i;
|
||||
$pal .= $palStr[$n+2].$palStr[$n+1].$palStr[$n];
|
||||
}
|
||||
$info['pal'] = $pal;
|
||||
}
|
||||
else{
|
||||
$info['cs'] = 'DeviceRGB';
|
||||
$info['bpc'] = 8;
|
||||
}
|
||||
|
||||
if ($this->mpdf->restrictColorSpace==1 || $this->mpdf->PDFX || $this->mpdf->restrictColorSpace==3) {
|
||||
if (($this->mpdf->PDFA && !$this->mpdf->PDFAauto) || ($this->mpdf->PDFX && !$this->mpdf->PDFXauto)) { $this->mpdf->PDFAXwarnings[] = "Image cannot be converted to suitable colour space for PDFA or PDFX file - ".$file." - (Image replaced by 'no-image'.)"; }
|
||||
return array('error' => "BMP Image cannot be converted to suitable colour space - ".$file." - (Image replaced by 'no-image'.)");
|
||||
}
|
||||
|
||||
$biXPelsPerMeter=$this->_fourbytes2int_le(substr($data,38,4)); // horizontal pixels per meter, usually set to zero
|
||||
//$biYPelsPerMeter=$this->_fourbytes2int_le(substr($data,42,4)); // vertical pixels per meter, usually set to zero
|
||||
$biXPelsPerMeter=round($biXPelsPerMeter/1000 *25.4);
|
||||
//$biYPelsPerMeter=round($biYPelsPerMeter/1000 *25.4);
|
||||
$info['set-dpi'] = $biXPelsPerMeter;
|
||||
|
||||
switch ($biCompression){
|
||||
case 0:
|
||||
$str = substr($data,$bfOffBits);
|
||||
break;
|
||||
case 1: # BI_RLE8
|
||||
$str = $this->rle8_decode(substr($data,$bfOffBits), $width);
|
||||
break;
|
||||
case 2: # BI_RLE4
|
||||
$str = $this->rle4_decode(substr($data,$bfOffBits), $width);
|
||||
break;
|
||||
}
|
||||
$bmpdata = '';
|
||||
$padCnt = (4-ceil(($width/(8/$biBitCount)))%4)%4;
|
||||
switch ($biBitCount){
|
||||
case 1:
|
||||
case 4:
|
||||
case 8:
|
||||
$w = floor($width/(8/$biBitCount)) + ($width%(8/$biBitCount)?1:0);
|
||||
$w_row = $w + $padCnt;
|
||||
if ($flip){
|
||||
for ($y=0;$y<$height;$y++){
|
||||
$y0 = $y*$w_row;
|
||||
for ($x=0;$x<$w;$x++)
|
||||
$bmpdata .= $str[$y0+$x];
|
||||
}
|
||||
}else{
|
||||
for ($y=$height-1;$y>=0;$y--){
|
||||
$y0 = $y*$w_row;
|
||||
for ($x=0;$x<$w;$x++)
|
||||
$bmpdata .= $str[$y0+$x];
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case 16:
|
||||
$w_row = $width*2 + $padCnt;
|
||||
if ($flip){
|
||||
for ($y=0;$y<$height;$y++){
|
||||
$y0 = $y*$w_row;
|
||||
for ($x=0;$x<$width;$x++){
|
||||
$n = (ord( $str[$y0 + 2*$x + 1])*256 + ord( $str[$y0 + 2*$x]));
|
||||
$b = ($n & 31)<<3; $g = ($n & 992)>>2; $r = ($n & 31744)>>7128;
|
||||
$bmpdata .= chr($r) . chr($g) . chr($b);
|
||||
}
|
||||
}
|
||||
}else{
|
||||
for ($y=$height-1;$y>=0;$y--){
|
||||
$y0 = $y*$w_row;
|
||||
for ($x=0;$x<$width;$x++){
|
||||
$n = (ord( $str[$y0 + 2*$x + 1])*256 + ord( $str[$y0 + 2*$x]));
|
||||
$b = ($n & 31)<<3; $g = ($n & 992)>>2; $r = ($n & 31744)>>7;
|
||||
$bmpdata .= chr($r) . chr($g) . chr($b);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case 24:
|
||||
case 32:
|
||||
$byteCnt = $biBitCount/8;
|
||||
$w_row = $width*$byteCnt + $padCnt;
|
||||
|
||||
if ($flip){
|
||||
for ($y=0;$y<$height;$y++){
|
||||
$y0 = $y*$w_row;
|
||||
for ($x=0;$x<$width;$x++){
|
||||
$i = $y0 + $x*$byteCnt ; # + 1
|
||||
$bmpdata .= $str[$i+2].$str[$i+1].$str[$i];
|
||||
}
|
||||
}
|
||||
}else{
|
||||
for ($y=$height-1;$y>=0;$y--){
|
||||
$y0 = $y*$w_row;
|
||||
for ($x=0;$x<$width;$x++){
|
||||
$i = $y0 + $x*$byteCnt ; # + 1
|
||||
$bmpdata .= $str[$i+2].$str[$i+1].$str[$i];
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
return array('error' => 'Error parsing BMP image - Unsupported image biBitCount');
|
||||
}
|
||||
if ($this->mpdf->compress) {
|
||||
$bmpdata=gzcompress($bmpdata);
|
||||
$info['f']='FlateDecode';
|
||||
}
|
||||
$info['data']=$bmpdata;
|
||||
$info['type']='bmp';
|
||||
return $info;
|
||||
}
|
||||
|
||||
function _fourbytes2int_le($s) {
|
||||
//Read a 4-byte integer from string
|
||||
return (ord($s[3])<<24) + (ord($s[2])<<16) + (ord($s[1])<<8) + ord($s[0]);
|
||||
}
|
||||
|
||||
function _twobytes2int_le($s) {
|
||||
//Read a 2-byte integer from string
|
||||
return (ord(substr($s, 1, 1))<<8) + ord(substr($s, 0, 1));
|
||||
}
|
||||
|
||||
|
||||
# Decoder for RLE8 compression in windows bitmaps
|
||||
# see http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/bitmaps_6x0u.asp
|
||||
function rle8_decode ($str, $width){
|
||||
$lineWidth = $width + (3 - ($width-1) % 4);
|
||||
$out = '';
|
||||
$cnt = strlen($str);
|
||||
for ($i=0;$i<$cnt;$i++){
|
||||
$o = ord($str[$i]);
|
||||
switch ($o){
|
||||
case 0: # ESCAPE
|
||||
$i++;
|
||||
switch (ord($str[$i])){
|
||||
case 0: # NEW LINE
|
||||
$padCnt = $lineWidth - strlen($out)%$lineWidth;
|
||||
if ($padCnt<$lineWidth) $out .= str_repeat(chr(0), $padCnt); # pad line
|
||||
break;
|
||||
case 1: # END OF FILE
|
||||
$padCnt = $lineWidth - strlen($out)%$lineWidth;
|
||||
if ($padCnt<$lineWidth) $out .= str_repeat(chr(0), $padCnt); # pad line
|
||||
break 3;
|
||||
case 2: # DELTA
|
||||
$i += 2;
|
||||
break;
|
||||
default: # ABSOLUTE MODE
|
||||
$num = ord($str[$i]);
|
||||
for ($j=0;$j<$num;$j++)
|
||||
$out .= $str[++$i];
|
||||
if ($num % 2) $i++;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
$out .= str_repeat($str[++$i], $o);
|
||||
}
|
||||
}
|
||||
return $out;
|
||||
}
|
||||
|
||||
# Decoder for RLE4 compression in windows bitmaps
|
||||
# see http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/bitmaps_6x0u.asp
|
||||
function rle4_decode ($str, $width){
|
||||
$w = floor($width/2) + ($width % 2);
|
||||
$lineWidth = $w + (3 - ( ($width-1) / 2) % 4);
|
||||
$pixels = array();
|
||||
$cnt = strlen($str);
|
||||
for ($i=0;$i<$cnt;$i++){
|
||||
$o = ord($str[$i]);
|
||||
switch ($o){
|
||||
case 0: # ESCAPE
|
||||
$i++;
|
||||
switch (ord($str[$i])){
|
||||
case 0: # NEW LINE
|
||||
while (count($pixels)%$lineWidth!=0)
|
||||
$pixels[]=0;
|
||||
break;
|
||||
case 1: # END OF FILE
|
||||
while (count($pixels)%$lineWidth!=0)
|
||||
$pixels[]=0;
|
||||
break 3;
|
||||
case 2: # DELTA
|
||||
$i += 2;
|
||||
break;
|
||||
default: # ABSOLUTE MODE
|
||||
$num = ord($str[$i]);
|
||||
for ($j=0;$j<$num;$j++){
|
||||
if ($j%2==0){
|
||||
$c = ord($str[++$i]);
|
||||
$pixels[] = ($c & 240)>>4;
|
||||
} else
|
||||
$pixels[] = $c & 15;
|
||||
}
|
||||
if ($num % 2) $i++;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
$c = ord($str[++$i]);
|
||||
for ($j=0;$j<$o;$j++)
|
||||
$pixels[] = ($j%2==0 ? ($c & 240)>>4 : $c & 15);
|
||||
}
|
||||
}
|
||||
|
||||
$out = '';
|
||||
if (count($pixels)%2) $pixels[]=0;
|
||||
$cnt = count($pixels)/2;
|
||||
for ($i=0;$i<$cnt;$i++)
|
||||
$out .= chr(16*$pixels[2*$i] + $pixels[2*$i+1]);
|
||||
return $out;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
?>
|
1721
dk-pdf/includes/mpdf60/classes/cssmgr.php
Executable file
1721
dk-pdf/includes/mpdf60/classes/cssmgr.php
Executable file
File diff suppressed because it is too large
Load Diff
4
dk-pdf/includes/mpdf60/classes/desktop.ini
Executable file
4
dk-pdf/includes/mpdf60/classes/desktop.ini
Executable file
@ -0,0 +1,4 @@
|
||||
[ViewState]
|
||||
Mode=
|
||||
Vid=
|
||||
FolderType=Documents
|
412
dk-pdf/includes/mpdf60/classes/directw.php
Executable file
412
dk-pdf/includes/mpdf60/classes/directw.php
Executable file
@ -0,0 +1,412 @@
|
||||
<?php
|
||||
|
||||
class directw {
|
||||
|
||||
var $mpdf = null;
|
||||
|
||||
function directw(&$mpdf) {
|
||||
$this->mpdf = $mpdf;
|
||||
}
|
||||
|
||||
|
||||
function Write($h,$txt,$currentx=0,$link='',$directionality='ltr',$align='') {
|
||||
if (!$align) {
|
||||
if ($directionality=='rtl') { $align = 'R'; }
|
||||
else { $align = 'L'; }
|
||||
}
|
||||
if ($h == 0) { $this->mpdf->SetLineHeight(); $h = $this->mpdf->lineheight; }
|
||||
//Output text in flowing mode
|
||||
$w = $this->mpdf->w - $this->mpdf->rMargin - $this->mpdf->x;
|
||||
|
||||
$wmax = ($w - ($this->mpdf->cMarginL+$this->mpdf->cMarginR));
|
||||
$s=str_replace("\r",'',$txt);
|
||||
if ($this->mpdf->usingCoreFont) { $nb=strlen($s); }
|
||||
else {
|
||||
$nb=mb_strlen($s, $this->mpdf->mb_enc );
|
||||
// handle single space character
|
||||
if(($nb==1) && $s == " ") {
|
||||
$this->mpdf->x += $this->mpdf->GetStringWidth($s);
|
||||
return;
|
||||
}
|
||||
}
|
||||
$sep=-1;
|
||||
$i=0;
|
||||
$j=0;
|
||||
$l=0;
|
||||
$nl=1;
|
||||
if (!$this->mpdf->usingCoreFont) {
|
||||
if (preg_match("/([".$this->mpdf->pregRTLchars."])/u", $txt)) { $this->mpdf->biDirectional = true; } // *RTL*
|
||||
while($i<$nb) {
|
||||
//Get next character
|
||||
$c = mb_substr($s,$i,1,$this->mpdf->mb_enc );
|
||||
if($c == "\n") {
|
||||
// WORD SPACING
|
||||
$this->mpdf->ResetSpacing();
|
||||
//Explicit line break
|
||||
$tmp = rtrim(mb_substr($s,$j,$i-$j,$this->mpdf->mb_enc));
|
||||
$this->mpdf->Cell($w, $h, $tmp, 0, 2, $align, $fill, $link);
|
||||
$i++;
|
||||
$sep = -1;
|
||||
$j = $i;
|
||||
$l = 0;
|
||||
if($nl == 1) {
|
||||
if ($currentx != 0) $this->mpdf->x=$currentx;
|
||||
else $this->mpdf->x=$this->mpdf->lMargin;
|
||||
$w = $this->mpdf->w - $this->mpdf->rMargin - $this->mpdf->x;
|
||||
$wmax = ($w - ($this->mpdf->cMarginL+$this->mpdf->cMarginR));
|
||||
}
|
||||
$nl++;
|
||||
continue;
|
||||
}
|
||||
if($c == " ") { $sep= $i; }
|
||||
$l += $this->mpdf->GetCharWidthNonCore($c); // mPDF 5.3.04
|
||||
if($l > $wmax) {
|
||||
//Automatic line break (word wrapping)
|
||||
if($sep == -1) {
|
||||
// WORD SPACING
|
||||
$this->mpdf->ResetSpacing();
|
||||
if($this->mpdf->x > $this->mpdf->lMargin) {
|
||||
//Move to next line
|
||||
if ($currentx != 0) $this->mpdf->x=$currentx;
|
||||
else $this->mpdf->x=$this->mpdf->lMargin;
|
||||
$this->mpdf->y+=$h;
|
||||
$w=$this->mpdf->w-$this->mpdf->rMargin-$this->mpdf->x;
|
||||
$wmax = ($w - ($this->mpdf->cMarginL+$this->mpdf->cMarginR));
|
||||
$i++;
|
||||
$nl++;
|
||||
continue;
|
||||
}
|
||||
if($i==$j) { $i++; }
|
||||
$tmp = rtrim(mb_substr($s,$j,$i-$j,$this->mpdf->mb_enc));
|
||||
$this->mpdf->Cell($w, $h, $tmp, 0, 2, $align, $fill, $link);
|
||||
}
|
||||
else {
|
||||
$tmp = rtrim(mb_substr($s,$j,$sep-$j,$this->mpdf->mb_enc));
|
||||
|
||||
if($align=='J') {
|
||||
//////////////////////////////////////////
|
||||
// JUSTIFY J using Unicode fonts (Word spacing doesn't work)
|
||||
// WORD SPACING
|
||||
// Change NON_BREAKING SPACE to spaces so they are 'spaced' properly
|
||||
$tmp = str_replace(chr(194).chr(160),chr(32),$tmp );
|
||||
$len_ligne = $this->mpdf->GetStringWidth($tmp );
|
||||
$nb_carac = mb_strlen( $tmp , $this->mpdf->mb_enc ) ;
|
||||
$nb_spaces = mb_substr_count( $tmp ,' ', $this->mpdf->mb_enc ) ;
|
||||
$inclCursive=false;
|
||||
if (isset($this->mpdf->CurrentFont['useOTL']) && $this->mpdf->CurrentFont['useOTL']) {
|
||||
if (preg_match("/([".$this->mpdf->pregCURSchars."])/u", $tmp)) { $inclCursive = true; }
|
||||
}
|
||||
list($charspacing,$ws) = $this->mpdf->GetJspacing($nb_carac,$nb_spaces,((($w-2) - $len_ligne) * _MPDFK),$inclCursive);
|
||||
$this->mpdf->SetSpacing($charspacing,$ws);
|
||||
//////////////////////////////////////////
|
||||
}
|
||||
$this->mpdf->Cell($w, $h, $tmp, 0, 2, $align, $fill, $link);
|
||||
$i=$sep+1;
|
||||
}
|
||||
$sep = -1;
|
||||
$j = $i;
|
||||
$l = 0;
|
||||
if($nl==1) {
|
||||
if ($currentx != 0) $this->mpdf->x=$currentx;
|
||||
else $this->mpdf->x=$this->mpdf->lMargin;
|
||||
$w=$this->mpdf->w-$this->mpdf->rMargin-$this->mpdf->x;
|
||||
$wmax = ($w - ($this->mpdf->cMarginL+$this->mpdf->cMarginR));
|
||||
}
|
||||
$nl++;
|
||||
}
|
||||
else { $i++; }
|
||||
}
|
||||
//Last chunk
|
||||
// WORD SPACING
|
||||
$this->mpdf->ResetSpacing();
|
||||
}
|
||||
else {
|
||||
while($i<$nb) {
|
||||
//Get next character
|
||||
$c=$s[$i];
|
||||
if($c == "\n") {
|
||||
//Explicit line break
|
||||
// WORD SPACING
|
||||
$this->mpdf->ResetSpacing();
|
||||
$this->mpdf->Cell($w, $h, substr($s, $j, $i-$j), 0, 2, $align, $fill, $link);
|
||||
$i++;
|
||||
$sep = -1;
|
||||
$j = $i;
|
||||
$l = 0;
|
||||
if($nl == 1) {
|
||||
if ($currentx != 0) $this->mpdf->x=$currentx;
|
||||
else $this->mpdf->x=$this->mpdf->lMargin;
|
||||
$w = $this->mpdf->w - $this->mpdf->rMargin - $this->mpdf->x;
|
||||
$wmax=$w-($this->mpdf->cMarginL+$this->mpdf->cMarginR);
|
||||
}
|
||||
$nl++;
|
||||
continue;
|
||||
}
|
||||
if($c == " ") { $sep= $i; }
|
||||
$l += $this->mpdf->GetCharWidthCore($c); // mPDF 5.3.04
|
||||
if($l > $wmax) {
|
||||
//Automatic line break (word wrapping)
|
||||
if($sep == -1) {
|
||||
// WORD SPACING
|
||||
$this->mpdf->ResetSpacing();
|
||||
if($this->mpdf->x > $this->mpdf->lMargin) {
|
||||
//Move to next line
|
||||
if ($currentx != 0) $this->mpdf->x=$currentx;
|
||||
else $this->mpdf->x=$this->mpdf->lMargin;
|
||||
$this->mpdf->y+=$h;
|
||||
$w=$this->mpdf->w-$this->mpdf->rMargin-$this->mpdf->x;
|
||||
$wmax=$w-($this->mpdf->cMarginL+$this->mpdf->cMarginR);
|
||||
$i++;
|
||||
$nl++;
|
||||
continue;
|
||||
}
|
||||
if($i==$j) { $i++; }
|
||||
$this->mpdf->Cell($w, $h, substr($s, $j, $i-$j), 0, 2, $align, $fill, $link);
|
||||
}
|
||||
else {
|
||||
$tmp = substr($s, $j, $sep-$j);
|
||||
if($align=='J') {
|
||||
//////////////////////////////////////////
|
||||
// JUSTIFY J using Unicode fonts
|
||||
// WORD SPACING is not fully supported for complex scripts
|
||||
// Change NON_BREAKING SPACE to spaces so they are 'spaced' properly
|
||||
$tmp = str_replace(chr(160),chr(32),$tmp );
|
||||
$len_ligne = $this->mpdf->GetStringWidth($tmp );
|
||||
$nb_carac = strlen( $tmp ) ;
|
||||
$nb_spaces = substr_count( $tmp ,' ' ) ;
|
||||
list($charspacing,$ws) = $this->mpdf->GetJspacing($nb_carac,$nb_spaces,((($w-2) - $len_ligne) * _MPDFK),$false);
|
||||
$this->mpdf->SetSpacing($charspacing,$ws);
|
||||
//////////////////////////////////////////
|
||||
}
|
||||
$this->mpdf->Cell($w, $h, $tmp, 0, 2, $align, $fill, $link);
|
||||
$i=$sep+1;
|
||||
}
|
||||
$sep = -1;
|
||||
$j = $i;
|
||||
$l = 0;
|
||||
if($nl==1) {
|
||||
if ($currentx != 0) $this->mpdf->x=$currentx;
|
||||
else $this->mpdf->x=$this->mpdf->lMargin;
|
||||
$w=$this->mpdf->w-$this->mpdf->rMargin-$this->mpdf->x;
|
||||
$wmax=$w-($this->mpdf->cMarginL+$this->mpdf->cMarginR);
|
||||
}
|
||||
$nl++;
|
||||
}
|
||||
else {
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
// WORD SPACING
|
||||
$this->mpdf->ResetSpacing();
|
||||
}
|
||||
//Last chunk
|
||||
if($i!=$j) {
|
||||
if ($currentx != 0) $this->mpdf->x=$currentx;
|
||||
else $this->mpdf->x=$this->mpdf->lMargin;
|
||||
if ($this->mpdf->usingCoreFont) { $tmp = substr($s,$j,$i-$j); }
|
||||
else { $tmp = mb_substr($s,$j,$i-$j,$this->mpdf->mb_enc); }
|
||||
$this->mpdf->Cell($w,$h,$tmp,0,0,$align,$fill,$link);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function CircularText($x, $y, $r, $text, $align='top', $fontfamily='', $fontsizePt=0, $fontstyle='', $kerning=120, $fontwidth=100, $divider='') {
|
||||
if ($fontfamily || $fontstyle || $fontsizePt) $this->mpdf->SetFont($fontfamily,$fontstyle,$fontsizePt);
|
||||
$kerning/=100;
|
||||
$fontwidth/=100;
|
||||
if($kerning==0) $this->mpdf->Error('Please use values unequal to zero for kerning (CircularText)');
|
||||
if($fontwidth==0) $this->mpdf->Error('Please use values unequal to zero for font width (CircularText)');
|
||||
$text=str_replace("\r",'',$text);
|
||||
//circumference
|
||||
$u=($r*2)*M_PI;
|
||||
$checking = true;
|
||||
$autoset = false;
|
||||
while($checking) {
|
||||
$t=0;
|
||||
$w = array();
|
||||
if ($this->mpdf->usingCoreFont) {
|
||||
$nb=strlen($text);
|
||||
for($i=0; $i<$nb; $i++){
|
||||
$w[$i]=$this->mpdf->GetStringWidth($text[$i]);
|
||||
$w[$i]*=$kerning*$fontwidth;
|
||||
$t+=$w[$i];
|
||||
}
|
||||
}
|
||||
else {
|
||||
$nb=mb_strlen($text, $this->mpdf->mb_enc );
|
||||
$lastchar = '';
|
||||
$unicode = $this->mpdf->UTF8StringToArray($text);
|
||||
for($i=0; $i<$nb; $i++){
|
||||
$c = mb_substr($text,$i,1,$this->mpdf->mb_enc );
|
||||
$w[$i]=$this->mpdf->GetStringWidth($c);
|
||||
$w[$i]*=$kerning*$fontwidth;
|
||||
$char = $unicode[$i];
|
||||
if ($this->mpdf->useKerning && $lastchar) {
|
||||
if (isset($this->mpdf->CurrentFont['kerninfo'][$lastchar][$char])) {
|
||||
$tk = $this->mpdf->CurrentFont['kerninfo'][$lastchar][$char] * ($this->mpdf->FontSize/ 1000) * $kerning * $fontwidth;
|
||||
$w[$i] += $tk/2;
|
||||
$w[$i-1] += $tk/2;
|
||||
$t+=$tk;
|
||||
}
|
||||
}
|
||||
$lastchar = $char;
|
||||
$t+=$w[$i];
|
||||
}
|
||||
}
|
||||
if ($fontsizePt>=0 || $autoset) { $checking = false; }
|
||||
else {
|
||||
$t+=$this->mpdf->GetStringWidth(' ');
|
||||
if ($divider)
|
||||
$t+=$this->mpdf->GetStringWidth(' ');
|
||||
if ($fontsizePt==-2)
|
||||
$fontsizePt = $this->mpdf->FontSizePt * 0.5 * $u/$t;
|
||||
else
|
||||
$fontsizePt = $this->mpdf->FontSizePt * $u/$t;
|
||||
$this->mpdf->SetFontSize($fontsizePt);
|
||||
$autoset = true;
|
||||
}
|
||||
}
|
||||
|
||||
//total width of string in degrees
|
||||
$d=($t/$u)*360;
|
||||
|
||||
$this->mpdf->StartTransform();
|
||||
// rotate matrix for the first letter to center the text
|
||||
// (half of total degrees)
|
||||
if($align=='top'){
|
||||
$this->mpdf->transformRotate(-$d/2, $x, $y);
|
||||
}
|
||||
else{
|
||||
$this->mpdf->transformRotate($d/2, $x, $y);
|
||||
}
|
||||
//run through the string
|
||||
for($i=0; $i<$nb; $i++){
|
||||
if($align=='top'){
|
||||
//rotate matrix half of the width of current letter + half of the width of preceding letter
|
||||
if($i==0){
|
||||
$this->mpdf->transformRotate((($w[$i]/2)/$u)*360, $x, $y);
|
||||
}
|
||||
else{
|
||||
$this->mpdf->transformRotate((($w[$i]/2+$w[$i-1]/2)/$u)*360, $x, $y);
|
||||
}
|
||||
if($fontwidth!=1){
|
||||
$this->mpdf->StartTransform();
|
||||
$this->mpdf->transformScale($fontwidth*100, 100, $x, $y);
|
||||
}
|
||||
$this->mpdf->SetXY($x-$w[$i]/2, $y-$r);
|
||||
}
|
||||
else{
|
||||
//rotate matrix half of the width of current letter + half of the width of preceding letter
|
||||
if($i==0){
|
||||
$this->mpdf->transformRotate(-(($w[$i]/2)/$u)*360, $x, $y);
|
||||
}
|
||||
else{
|
||||
$this->mpdf->transformRotate(-(($w[$i]/2+$w[$i-1]/2)/$u)*360, $x, $y);
|
||||
}
|
||||
if($fontwidth!=1){
|
||||
$this->mpdf->StartTransform();
|
||||
$this->mpdf->transformScale($fontwidth*100, 100, $x, $y);
|
||||
}
|
||||
$this->mpdf->SetXY($x-$w[$i]/2, $y+$r-($this->mpdf->FontSize));
|
||||
}
|
||||
if ($this->mpdf->usingCoreFont) { $c=$text[$i]; }
|
||||
else { $c = mb_substr($text,$i,1,$this->mpdf->mb_enc ); }
|
||||
$this->mpdf->Cell(($w[$i]),$this->mpdf->FontSize,$c,0,0,'C'); // mPDF 5.3.53
|
||||
if($fontwidth!=1){
|
||||
$this->mpdf->StopTransform();
|
||||
}
|
||||
}
|
||||
$this->mpdf->StopTransform();
|
||||
|
||||
// mPDF 5.5.23
|
||||
if($align=='top' && $divider!=''){
|
||||
$wc=$this->mpdf->GetStringWidth($divider);
|
||||
$wc*=$kerning*$fontwidth;
|
||||
|
||||
$this->mpdf->StartTransform();
|
||||
$this->mpdf->transformRotate(90, $x, $y);
|
||||
$this->mpdf->SetXY($x-$wc/2, $y-$r);
|
||||
$this->mpdf->Cell(($wc),$this->mpdf->FontSize,$divider,0,0,'C');
|
||||
$this->mpdf->StopTransform();
|
||||
|
||||
$this->mpdf->StartTransform();
|
||||
$this->mpdf->transformRotate(-90, $x, $y);
|
||||
$this->mpdf->SetXY($x-$wc/2, $y-$r);
|
||||
$this->mpdf->Cell(($wc),$this->mpdf->FontSize,$divider,0,0,'C');
|
||||
$this->mpdf->StopTransform();
|
||||
}
|
||||
}
|
||||
|
||||
function Shaded_box( $text,$font='',$fontstyle='B',$szfont='',$width='70%',$style='DF',$radius=2.5,$fill='#FFFFFF',$color='#000000',$pad=2 ) {
|
||||
// F (shading - no line),S (line, no shading),DF (both)
|
||||
if (!$font) { $font= $this->mpdf->default_font; }
|
||||
if (!$szfont) { $szfont = ($this->mpdf->default_font_size * 1.8); }
|
||||
|
||||
$text = ' '.$text.' ';
|
||||
$this->mpdf->SetFont( $font, $fontstyle, $szfont, false );
|
||||
|
||||
$text = $this->mpdf->purify_utf8_text($text);
|
||||
if ($this->mpdf->text_input_as_HTML) {
|
||||
$text = $this->mpdf->all_entities_to_utf8($text);
|
||||
}
|
||||
if ($this->mpdf->usingCoreFont) { $text = mb_convert_encoding($text,$this->mpdf->mb_enc,'UTF-8'); }
|
||||
|
||||
|
||||
// DIRECTIONALITY
|
||||
if (preg_match("/([".$this->mpdf->pregRTLchars."])/u", $text)) { $this->mpdf->biDirectional = true; } // *RTL*
|
||||
|
||||
$textvar = 0;
|
||||
$save_OTLtags = $this->mpdf->OTLtags;
|
||||
$this->mpdf->OTLtags = array();
|
||||
if ($this->mpdf->useKerning) {
|
||||
if ($this->mpdf->CurrentFont['haskernGPOS']) { $this->mpdf->OTLtags['Plus'] .= ' kern'; }
|
||||
else { $textvar = ($textvar | FC_KERNING); }
|
||||
}
|
||||
// Use OTL OpenType Table Layout - GSUB & GPOS
|
||||
if (isset($this->mpdf->CurrentFont['useOTL']) && $this->mpdf->CurrentFont['useOTL']) {
|
||||
$text = $this->mpdf->otl->applyOTL($text, $this->mpdf->CurrentFont['useOTL']);
|
||||
$OTLdata = $this->mpdf->otl->OTLdata;
|
||||
}
|
||||
$this->mpdf->OTLtags = $save_OTLtags ;
|
||||
|
||||
$this->mpdf->magic_reverse_dir($text, $this->mpdf->directionality, $OTLdata);
|
||||
|
||||
if (!$width) { $width = $this->mpdf->pgwidth; } else { $width=$this->mpdf->ConvertSize($width,$this->mpdf->pgwidth); }
|
||||
$midpt = $this->mpdf->lMargin+($this->mpdf->pgwidth/2);
|
||||
$r1 = $midpt-($width/2); //($this->mpdf->w / 2) - 40;
|
||||
$r2 = $r1 + $width; //$r1 + 80;
|
||||
$y1 = $this->mpdf->y;
|
||||
|
||||
|
||||
$mid = ($r1 + $r2 ) / 2;
|
||||
$loop = 0;
|
||||
|
||||
while ( $loop == 0 )
|
||||
{
|
||||
$this->mpdf->SetFont( $font, $fontstyle, $szfont, false );
|
||||
$sz = $this->mpdf->GetStringWidth( $text, true, $OTLdata, $textvar );
|
||||
if ( ($r1+$sz) > $r2 )
|
||||
$szfont --;
|
||||
else
|
||||
$loop ++;
|
||||
}
|
||||
$this->mpdf->SetFont( $font, $fontstyle, $szfont, true, true );
|
||||
|
||||
$y2 = $this->mpdf->FontSize+($pad*2);
|
||||
|
||||
$this->mpdf->SetLineWidth(0.1);
|
||||
$fc = $this->mpdf->ConvertColor($fill);
|
||||
$tc = $this->mpdf->ConvertColor($color);
|
||||
$this->mpdf->SetFColor($fc);
|
||||
$this->mpdf->SetTColor($tc);
|
||||
$this->mpdf->RoundedRect($r1, $y1, ($r2 - $r1), $y2, $radius, $style);
|
||||
$this->mpdf->SetX( $r1);
|
||||
$this->mpdf->Cell($r2-$r1, $y2, $text, 0, 1, "C",0,'',0,0,0,'M', 0, false, $OTLdata, $textvar );
|
||||
$this->mpdf->SetY($y1+$y2+2); // +2 = mm margin below shaded box
|
||||
$this->mpdf->Reset();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
?>
|
700
dk-pdf/includes/mpdf60/classes/gif.php
Executable file
700
dk-pdf/includes/mpdf60/classes/gif.php
Executable file
@ -0,0 +1,700 @@
|
||||
<?php
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// 2009-12-22 Adapted for mPDF 4.2
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// GIF Util - (C) 2003 Yamasoft (S/C)
|
||||
// http://www.yamasoft.com
|
||||
// All Rights Reserved
|
||||
// This file can be freely copied, distributed, modified, updated by anyone under the only
|
||||
// condition to leave the original address (Yamasoft, http://www.yamasoft.com) and this header.
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// 2009-12-22 Adapted INB
|
||||
// Functions calling functionname($x, $len = 0) were not working on PHP5.1.5 as pass by reference
|
||||
// All edited to $len = 0; then call function.
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
class CGIFLZW
|
||||
{
|
||||
var $MAX_LZW_BITS;
|
||||
var $Fresh, $CodeSize, $SetCodeSize, $MaxCode, $MaxCodeSize, $FirstCode, $OldCode;
|
||||
var $ClearCode, $EndCode, $Next, $Vals, $Stack, $sp, $Buf, $CurBit, $LastBit, $Done, $LastByte;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// CONSTRUCTOR
|
||||
function CGIFLZW()
|
||||
{
|
||||
$this->MAX_LZW_BITS = 12;
|
||||
unSet($this->Next);
|
||||
unSet($this->Vals);
|
||||
unSet($this->Stack);
|
||||
unSet($this->Buf);
|
||||
|
||||
$this->Next = range(0, (1 << $this->MAX_LZW_BITS) - 1);
|
||||
$this->Vals = range(0, (1 << $this->MAX_LZW_BITS) - 1);
|
||||
$this->Stack = range(0, (1 << ($this->MAX_LZW_BITS + 1)) - 1);
|
||||
$this->Buf = range(0, 279);
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
function deCompress($data, &$datLen)
|
||||
{
|
||||
$stLen = strlen($data);
|
||||
$datLen = 0;
|
||||
$ret = "";
|
||||
$dp = 0; // data pointer
|
||||
|
||||
// INITIALIZATION
|
||||
$this->LZWCommandInit($data, $dp);
|
||||
|
||||
while(($iIndex = $this->LZWCommand($data, $dp)) >= 0) {
|
||||
$ret .= chr($iIndex);
|
||||
}
|
||||
|
||||
$datLen = $dp;
|
||||
|
||||
if($iIndex != -2) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return $ret;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
function LZWCommandInit(&$data, &$dp)
|
||||
{
|
||||
$this->SetCodeSize = ord($data[0]);
|
||||
$dp += 1;
|
||||
|
||||
$this->CodeSize = $this->SetCodeSize + 1;
|
||||
$this->ClearCode = 1 << $this->SetCodeSize;
|
||||
$this->EndCode = $this->ClearCode + 1;
|
||||
$this->MaxCode = $this->ClearCode + 2;
|
||||
$this->MaxCodeSize = $this->ClearCode << 1;
|
||||
|
||||
$this->GetCodeInit($data, $dp);
|
||||
|
||||
$this->Fresh = 1;
|
||||
for($i = 0; $i < $this->ClearCode; $i++) {
|
||||
$this->Next[$i] = 0;
|
||||
$this->Vals[$i] = $i;
|
||||
}
|
||||
|
||||
for(; $i < (1 << $this->MAX_LZW_BITS); $i++) {
|
||||
$this->Next[$i] = 0;
|
||||
$this->Vals[$i] = 0;
|
||||
}
|
||||
|
||||
$this->sp = 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
function LZWCommand(&$data, &$dp)
|
||||
{
|
||||
if($this->Fresh) {
|
||||
$this->Fresh = 0;
|
||||
do {
|
||||
$this->FirstCode = $this->GetCode($data, $dp);
|
||||
$this->OldCode = $this->FirstCode;
|
||||
}
|
||||
while($this->FirstCode == $this->ClearCode);
|
||||
|
||||
return $this->FirstCode;
|
||||
}
|
||||
|
||||
if($this->sp > 0) {
|
||||
$this->sp--;
|
||||
return $this->Stack[$this->sp];
|
||||
}
|
||||
|
||||
while(($Code = $this->GetCode($data, $dp)) >= 0) {
|
||||
if($Code == $this->ClearCode) {
|
||||
for($i = 0; $i < $this->ClearCode; $i++) {
|
||||
$this->Next[$i] = 0;
|
||||
$this->Vals[$i] = $i;
|
||||
}
|
||||
|
||||
for(; $i < (1 << $this->MAX_LZW_BITS); $i++) {
|
||||
$this->Next[$i] = 0;
|
||||
$this->Vals[$i] = 0;
|
||||
}
|
||||
|
||||
$this->CodeSize = $this->SetCodeSize + 1;
|
||||
$this->MaxCodeSize = $this->ClearCode << 1;
|
||||
$this->MaxCode = $this->ClearCode + 2;
|
||||
$this->sp = 0;
|
||||
$this->FirstCode = $this->GetCode($data, $dp);
|
||||
$this->OldCode = $this->FirstCode;
|
||||
|
||||
return $this->FirstCode;
|
||||
}
|
||||
|
||||
if($Code == $this->EndCode) {
|
||||
return -2;
|
||||
}
|
||||
|
||||
$InCode = $Code;
|
||||
if($Code >= $this->MaxCode) {
|
||||
$this->Stack[$this->sp++] = $this->FirstCode;
|
||||
$Code = $this->OldCode;
|
||||
}
|
||||
|
||||
while($Code >= $this->ClearCode) {
|
||||
$this->Stack[$this->sp++] = $this->Vals[$Code];
|
||||
|
||||
if($Code == $this->Next[$Code]) // Circular table entry, big GIF Error!
|
||||
return -1;
|
||||
|
||||
$Code = $this->Next[$Code];
|
||||
}
|
||||
|
||||
$this->FirstCode = $this->Vals[$Code];
|
||||
$this->Stack[$this->sp++] = $this->FirstCode;
|
||||
|
||||
if(($Code = $this->MaxCode) < (1 << $this->MAX_LZW_BITS)) {
|
||||
$this->Next[$Code] = $this->OldCode;
|
||||
$this->Vals[$Code] = $this->FirstCode;
|
||||
$this->MaxCode++;
|
||||
|
||||
if(($this->MaxCode >= $this->MaxCodeSize) && ($this->MaxCodeSize < (1 << $this->MAX_LZW_BITS))) {
|
||||
$this->MaxCodeSize *= 2;
|
||||
$this->CodeSize++;
|
||||
}
|
||||
}
|
||||
|
||||
$this->OldCode = $InCode;
|
||||
if($this->sp > 0) {
|
||||
$this->sp--;
|
||||
return $this->Stack[$this->sp];
|
||||
}
|
||||
}
|
||||
|
||||
return $Code;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
function GetCodeInit(&$data, &$dp)
|
||||
{
|
||||
$this->CurBit = 0;
|
||||
$this->LastBit = 0;
|
||||
$this->Done = 0;
|
||||
$this->LastByte = 2;
|
||||
return 1;
|
||||
}
|
||||
|
||||
function GetCode(&$data, &$dp)
|
||||
{
|
||||
if(($this->CurBit + $this->CodeSize) >= $this->LastBit) {
|
||||
if($this->Done) {
|
||||
if($this->CurBit >= $this->LastBit) {
|
||||
// Ran off the end of my bits
|
||||
return 0;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
$this->Buf[0] = $this->Buf[$this->LastByte - 2];
|
||||
$this->Buf[1] = $this->Buf[$this->LastByte - 1];
|
||||
|
||||
$Count = ord($data[$dp]);
|
||||
$dp += 1;
|
||||
|
||||
if($Count) {
|
||||
for($i = 0; $i < $Count; $i++) {
|
||||
$this->Buf[2 + $i] = ord($data[$dp+$i]);
|
||||
}
|
||||
$dp += $Count;
|
||||
}
|
||||
else {
|
||||
$this->Done = 1;
|
||||
}
|
||||
|
||||
$this->LastByte = 2 + $Count;
|
||||
$this->CurBit = ($this->CurBit - $this->LastBit) + 16;
|
||||
$this->LastBit = (2 + $Count) << 3;
|
||||
}
|
||||
|
||||
$iRet = 0;
|
||||
for($i = $this->CurBit, $j = 0; $j < $this->CodeSize; $i++, $j++) {
|
||||
$iRet |= (($this->Buf[intval($i / 8)] & (1 << ($i % 8))) != 0) << $j;
|
||||
}
|
||||
|
||||
$this->CurBit += $this->CodeSize;
|
||||
return $iRet;
|
||||
}
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
class CGIFCOLORTABLE
|
||||
{
|
||||
var $m_nColors;
|
||||
var $m_arColors;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// CONSTRUCTOR
|
||||
function CGIFCOLORTABLE()
|
||||
{
|
||||
unSet($this->m_nColors);
|
||||
unSet($this->m_arColors);
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
function load($lpData, $num)
|
||||
{
|
||||
$this->m_nColors = 0;
|
||||
$this->m_arColors = array();
|
||||
|
||||
for($i = 0; $i < $num; $i++) {
|
||||
$rgb = substr($lpData, $i * 3, 3);
|
||||
if(strlen($rgb) < 3) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$this->m_arColors[] = (ord($rgb[2]) << 16) + (ord($rgb[1]) << 8) + ord($rgb[0]);
|
||||
$this->m_nColors++;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
function toString()
|
||||
{
|
||||
$ret = "";
|
||||
|
||||
for($i = 0; $i < $this->m_nColors; $i++) {
|
||||
$ret .=
|
||||
chr(($this->m_arColors[$i] & 0x000000FF)) . // R
|
||||
chr(($this->m_arColors[$i] & 0x0000FF00) >> 8) . // G
|
||||
chr(($this->m_arColors[$i] & 0x00FF0000) >> 16); // B
|
||||
}
|
||||
|
||||
return $ret;
|
||||
}
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
function colorIndex($rgb)
|
||||
{
|
||||
$rgb = intval($rgb) & 0xFFFFFF;
|
||||
$r1 = ($rgb & 0x0000FF);
|
||||
$g1 = ($rgb & 0x00FF00) >> 8;
|
||||
$b1 = ($rgb & 0xFF0000) >> 16;
|
||||
$idx = -1;
|
||||
|
||||
for($i = 0; $i < $this->m_nColors; $i++) {
|
||||
$r2 = ($this->m_arColors[$i] & 0x000000FF);
|
||||
$g2 = ($this->m_arColors[$i] & 0x0000FF00) >> 8;
|
||||
$b2 = ($this->m_arColors[$i] & 0x00FF0000) >> 16;
|
||||
$d = abs($r2 - $r1) + abs($g2 - $g1) + abs($b2 - $b1);
|
||||
|
||||
if(($idx == -1) || ($d < $dif)) {
|
||||
$idx = $i;
|
||||
$dif = $d;
|
||||
}
|
||||
}
|
||||
|
||||
return $idx;
|
||||
}
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
class CGIFFILEHEADER
|
||||
{
|
||||
var $m_lpVer;
|
||||
var $m_nWidth;
|
||||
var $m_nHeight;
|
||||
var $m_bGlobalClr;
|
||||
var $m_nColorRes;
|
||||
var $m_bSorted;
|
||||
var $m_nTableSize;
|
||||
var $m_nBgColor;
|
||||
var $m_nPixelRatio;
|
||||
var $m_colorTable;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// CONSTRUCTOR
|
||||
function CGIFFILEHEADER()
|
||||
{
|
||||
unSet($this->m_lpVer);
|
||||
unSet($this->m_nWidth);
|
||||
unSet($this->m_nHeight);
|
||||
unSet($this->m_bGlobalClr);
|
||||
unSet($this->m_nColorRes);
|
||||
unSet($this->m_bSorted);
|
||||
unSet($this->m_nTableSize);
|
||||
unSet($this->m_nBgColor);
|
||||
unSet($this->m_nPixelRatio);
|
||||
unSet($this->m_colorTable);
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
function load($lpData, &$hdrLen)
|
||||
{
|
||||
$hdrLen = 0;
|
||||
|
||||
$this->m_lpVer = substr($lpData, 0, 6);
|
||||
if(($this->m_lpVer <> "GIF87a") && ($this->m_lpVer <> "GIF89a")) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$this->m_nWidth = $this->w2i(substr($lpData, 6, 2));
|
||||
$this->m_nHeight = $this->w2i(substr($lpData, 8, 2));
|
||||
if(!$this->m_nWidth || !$this->m_nHeight) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$b = ord(substr($lpData, 10, 1));
|
||||
$this->m_bGlobalClr = ($b & 0x80) ? true : false;
|
||||
$this->m_nColorRes = ($b & 0x70) >> 4;
|
||||
$this->m_bSorted = ($b & 0x08) ? true : false;
|
||||
$this->m_nTableSize = 2 << ($b & 0x07);
|
||||
$this->m_nBgColor = ord(substr($lpData, 11, 1));
|
||||
$this->m_nPixelRatio = ord(substr($lpData, 12, 1));
|
||||
$hdrLen = 13;
|
||||
|
||||
if($this->m_bGlobalClr) {
|
||||
$this->m_colorTable = new CGIFCOLORTABLE();
|
||||
if(!$this->m_colorTable->load(substr($lpData, $hdrLen), $this->m_nTableSize)) {
|
||||
return false;
|
||||
}
|
||||
$hdrLen += 3 * $this->m_nTableSize;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
function w2i($str)
|
||||
{
|
||||
return ord(substr($str, 0, 1)) + (ord(substr($str, 1, 1)) << 8);
|
||||
}
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
class CGIFIMAGEHEADER
|
||||
{
|
||||
var $m_nLeft;
|
||||
var $m_nTop;
|
||||
var $m_nWidth;
|
||||
var $m_nHeight;
|
||||
var $m_bLocalClr;
|
||||
var $m_bInterlace;
|
||||
var $m_bSorted;
|
||||
var $m_nTableSize;
|
||||
var $m_colorTable;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// CONSTRUCTOR
|
||||
function CGIFIMAGEHEADER()
|
||||
{
|
||||
unSet($this->m_nLeft);
|
||||
unSet($this->m_nTop);
|
||||
unSet($this->m_nWidth);
|
||||
unSet($this->m_nHeight);
|
||||
unSet($this->m_bLocalClr);
|
||||
unSet($this->m_bInterlace);
|
||||
unSet($this->m_bSorted);
|
||||
unSet($this->m_nTableSize);
|
||||
unSet($this->m_colorTable);
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
function load($lpData, &$hdrLen)
|
||||
{
|
||||
$hdrLen = 0;
|
||||
|
||||
$this->m_nLeft = $this->w2i(substr($lpData, 0, 2));
|
||||
$this->m_nTop = $this->w2i(substr($lpData, 2, 2));
|
||||
$this->m_nWidth = $this->w2i(substr($lpData, 4, 2));
|
||||
$this->m_nHeight = $this->w2i(substr($lpData, 6, 2));
|
||||
|
||||
if(!$this->m_nWidth || !$this->m_nHeight) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$b = ord($lpData{8});
|
||||
$this->m_bLocalClr = ($b & 0x80) ? true : false;
|
||||
$this->m_bInterlace = ($b & 0x40) ? true : false;
|
||||
$this->m_bSorted = ($b & 0x20) ? true : false;
|
||||
$this->m_nTableSize = 2 << ($b & 0x07);
|
||||
$hdrLen = 9;
|
||||
|
||||
if($this->m_bLocalClr) {
|
||||
$this->m_colorTable = new CGIFCOLORTABLE();
|
||||
if(!$this->m_colorTable->load(substr($lpData, $hdrLen), $this->m_nTableSize)) {
|
||||
return false;
|
||||
}
|
||||
$hdrLen += 3 * $this->m_nTableSize;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
function w2i($str)
|
||||
{
|
||||
return ord(substr($str, 0, 1)) + (ord(substr($str, 1, 1)) << 8);
|
||||
}
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
class CGIFIMAGE
|
||||
{
|
||||
var $m_disp;
|
||||
var $m_bUser;
|
||||
var $m_bTrans;
|
||||
var $m_nDelay;
|
||||
var $m_nTrans;
|
||||
var $m_lpComm;
|
||||
var $m_gih;
|
||||
var $m_data;
|
||||
var $m_lzw;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
function CGIFIMAGE()
|
||||
{
|
||||
unSet($this->m_disp);
|
||||
unSet($this->m_bUser);
|
||||
unSet($this->m_bTrans);
|
||||
unSet($this->m_nDelay);
|
||||
unSet($this->m_nTrans);
|
||||
unSet($this->m_lpComm);
|
||||
unSet($this->m_data);
|
||||
$this->m_gih = new CGIFIMAGEHEADER();
|
||||
$this->m_lzw = new CGIFLZW();
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
function load($data, &$datLen)
|
||||
{
|
||||
$datLen = 0;
|
||||
|
||||
while(true) {
|
||||
$b = ord($data[0]);
|
||||
$data = substr($data, 1);
|
||||
$datLen++;
|
||||
|
||||
switch($b) {
|
||||
case 0x21: // Extension
|
||||
$len = 0;
|
||||
if(!$this->skipExt($data, $len)) {
|
||||
return false;
|
||||
}
|
||||
$datLen += $len;
|
||||
break;
|
||||
|
||||
case 0x2C: // Image
|
||||
// LOAD HEADER & COLOR TABLE
|
||||
$len = 0;
|
||||
if(!$this->m_gih->load($data, $len)) {
|
||||
return false;
|
||||
}
|
||||
$data = substr($data, $len);
|
||||
$datLen += $len;
|
||||
|
||||
// ALLOC BUFFER
|
||||
$len = 0;
|
||||
|
||||
if(!($this->m_data = $this->m_lzw->deCompress($data, $len))) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$data = substr($data, $len);
|
||||
$datLen += $len;
|
||||
|
||||
if($this->m_gih->m_bInterlace) {
|
||||
$this->deInterlace();
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
case 0x3B: // EOF
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
function skipExt(&$data, &$extLen)
|
||||
{
|
||||
$extLen = 0;
|
||||
|
||||
$b = ord($data[0]);
|
||||
$data = substr($data, 1);
|
||||
$extLen++;
|
||||
|
||||
switch($b) {
|
||||
case 0xF9: // Graphic Control
|
||||
$b = ord($data[1]);
|
||||
$this->m_disp = ($b & 0x1C) >> 2;
|
||||
$this->m_bUser = ($b & 0x02) ? true : false;
|
||||
$this->m_bTrans = ($b & 0x01) ? true : false;
|
||||
$this->m_nDelay = $this->w2i(substr($data, 2, 2));
|
||||
$this->m_nTrans = ord($data[4]);
|
||||
break;
|
||||
|
||||
case 0xFE: // Comment
|
||||
$this->m_lpComm = substr($data, 1, ord($data[0]));
|
||||
break;
|
||||
|
||||
case 0x01: // Plain text
|
||||
break;
|
||||
|
||||
case 0xFF: // Application
|
||||
break;
|
||||
}
|
||||
|
||||
// SKIP DEFAULT AS DEFS MAY CHANGE
|
||||
$b = ord($data[0]);
|
||||
$data = substr($data, 1);
|
||||
$extLen++;
|
||||
while($b > 0) {
|
||||
$data = substr($data, $b);
|
||||
$extLen += $b;
|
||||
$b = ord($data[0]);
|
||||
$data = substr($data, 1);
|
||||
$extLen++;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
function w2i($str)
|
||||
{
|
||||
return ord(substr($str, 0, 1)) + (ord(substr($str, 1, 1)) << 8);
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
function deInterlace()
|
||||
{
|
||||
$data = $this->m_data;
|
||||
|
||||
for($i = 0; $i < 4; $i++) {
|
||||
switch($i) {
|
||||
case 0:
|
||||
$s = 8;
|
||||
$y = 0;
|
||||
break;
|
||||
|
||||
case 1:
|
||||
$s = 8;
|
||||
$y = 4;
|
||||
break;
|
||||
|
||||
case 2:
|
||||
$s = 4;
|
||||
$y = 2;
|
||||
break;
|
||||
|
||||
case 3:
|
||||
$s = 2;
|
||||
$y = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
for(; $y < $this->m_gih->m_nHeight; $y += $s) {
|
||||
$lne = substr($this->m_data, 0, $this->m_gih->m_nWidth);
|
||||
$this->m_data = substr($this->m_data, $this->m_gih->m_nWidth);
|
||||
|
||||
$data =
|
||||
substr($data, 0, $y * $this->m_gih->m_nWidth) .
|
||||
$lne .
|
||||
substr($data, ($y + 1) * $this->m_gih->m_nWidth);
|
||||
}
|
||||
}
|
||||
|
||||
$this->m_data = $data;
|
||||
}
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
class CGIF
|
||||
{
|
||||
var $m_gfh;
|
||||
var $m_lpData;
|
||||
var $m_img;
|
||||
var $m_bLoaded;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// CONSTRUCTOR
|
||||
function CGIF()
|
||||
{
|
||||
$this->m_gfh = new CGIFFILEHEADER();
|
||||
$this->m_img = new CGIFIMAGE();
|
||||
$this->m_lpData = "";
|
||||
$this->m_bLoaded = false;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
function ClearData() {
|
||||
$this->m_lpData = '';
|
||||
unSet($this->m_img->m_data);
|
||||
unSet($this->m_img->m_lzw->Next);
|
||||
unSet($this->m_img->m_lzw->Vals);
|
||||
unSet($this->m_img->m_lzw->Stack);
|
||||
unSet($this->m_img->m_lzw->Buf);
|
||||
}
|
||||
|
||||
function loadFile(&$data, $iIndex)
|
||||
{
|
||||
if($iIndex < 0) {
|
||||
return false;
|
||||
}
|
||||
$this->m_lpData = $data;
|
||||
|
||||
// GET FILE HEADER
|
||||
$len = 0;
|
||||
if(!$this->m_gfh->load($this->m_lpData, $len)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$this->m_lpData = substr($this->m_lpData, $len);
|
||||
|
||||
do {
|
||||
$imgLen = 0;
|
||||
if(!$this->m_img->load($this->m_lpData, $imgLen)) {
|
||||
return false;
|
||||
}
|
||||
$this->m_lpData = substr($this->m_lpData, $imgLen);
|
||||
}
|
||||
while($iIndex-- > 0);
|
||||
|
||||
$this->m_bLoaded = true;
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
?>
|
724
dk-pdf/includes/mpdf60/classes/grad.php
Executable file
724
dk-pdf/includes/mpdf60/classes/grad.php
Executable file
@ -0,0 +1,724 @@
|
||||
<?php
|
||||
|
||||
class grad {
|
||||
|
||||
var $mpdf = null;
|
||||
|
||||
function grad(&$mpdf) {
|
||||
$this->mpdf = $mpdf;
|
||||
}
|
||||
|
||||
// mPDF 5.3.A1
|
||||
function CoonsPatchMesh($x, $y, $w, $h, $patch_array=array(), $x_min=0, $x_max=1, $y_min=0, $y_max=1, $colspace='RGB', $return=false){
|
||||
$s=' q ';
|
||||
$s.=sprintf(' %.3F %.3F %.3F %.3F re W n ', $x*_MPDFK, ($this->mpdf->h-$y)*_MPDFK, $w*_MPDFK, -$h*_MPDFK);
|
||||
$s.=sprintf(' %.3F 0 0 %.3F %.3F %.3F cm ', $w*_MPDFK, $h*_MPDFK, $x*_MPDFK, ($this->mpdf->h-($y+$h))*_MPDFK);
|
||||
$n = count($this->mpdf->gradients)+1;
|
||||
$this->mpdf->gradients[$n]['type'] = 6; //coons patch mesh
|
||||
$this->mpdf->gradients[$n]['colorspace'] = $colspace; //coons patch mesh
|
||||
$bpcd=65535; //16 BitsPerCoordinate
|
||||
$trans = false;
|
||||
$this->mpdf->gradients[$n]['stream']='';
|
||||
for($i=0;$i<count($patch_array);$i++){
|
||||
$this->mpdf->gradients[$n]['stream'].=chr($patch_array[$i]['f']); //start with the edge flag as 8 bit
|
||||
for($j=0;$j<count($patch_array[$i]['points']);$j++){
|
||||
//each point as 16 bit
|
||||
if (($j % 2) == 1) { // Y coordinate (adjusted as input is From top left)
|
||||
$patch_array[$i]['points'][$j]=(($patch_array[$i]['points'][$j]-$y_min)/($y_max-$y_min))*$bpcd;
|
||||
$patch_array[$i]['points'][$j]=$bpcd-$patch_array[$i]['points'][$j];
|
||||
}
|
||||
else {
|
||||
$patch_array[$i]['points'][$j]=(($patch_array[$i]['points'][$j]-$x_min)/($x_max-$x_min))*$bpcd;
|
||||
}
|
||||
if($patch_array[$i]['points'][$j]<0) $patch_array[$i]['points'][$j]=0;
|
||||
if($patch_array[$i]['points'][$j]>$bpcd) $patch_array[$i]['points'][$j]=$bpcd;
|
||||
$this->mpdf->gradients[$n]['stream'].=chr(floor($patch_array[$i]['points'][$j]/256));
|
||||
$this->mpdf->gradients[$n]['stream'].=chr(floor($patch_array[$i]['points'][$j]%256));
|
||||
}
|
||||
for($j=0;$j<count($patch_array[$i]['colors']);$j++){
|
||||
//each color component as 8 bit
|
||||
if ($colspace=='RGB') {
|
||||
$this->mpdf->gradients[$n]['stream'].=($patch_array[$i]['colors'][$j][1]);
|
||||
$this->mpdf->gradients[$n]['stream'].=($patch_array[$i]['colors'][$j][2]);
|
||||
$this->mpdf->gradients[$n]['stream'].=($patch_array[$i]['colors'][$j][3]);
|
||||
if (isset($patch_array[$i]['colors'][$j][4]) && ord($patch_array[$i]['colors'][$j][4])<100) { $trans = true; }
|
||||
}
|
||||
else if ($colspace=='CMYK') {
|
||||
$this->mpdf->gradients[$n]['stream'].=chr(ord($patch_array[$i]['colors'][$j][1])*2.55);
|
||||
$this->mpdf->gradients[$n]['stream'].=chr(ord($patch_array[$i]['colors'][$j][2])*2.55);
|
||||
$this->mpdf->gradients[$n]['stream'].=chr(ord($patch_array[$i]['colors'][$j][3])*2.55);
|
||||
$this->mpdf->gradients[$n]['stream'].=chr(ord($patch_array[$i]['colors'][$j][4])*2.55);
|
||||
if (isset($patch_array[$i]['colors'][$j][5]) && ord($patch_array[$i]['colors'][$j][5])<100) { $trans = true; }
|
||||
}
|
||||
else if ($colspace=='Gray') {
|
||||
$this->mpdf->gradients[$n]['stream'].=($patch_array[$i]['colors'][$j][1]);
|
||||
if ($patch_array[$i]['colors'][$j][2]==1) { $trans = true; } // transparency converted from rgba or cmyka()
|
||||
}
|
||||
}
|
||||
}
|
||||
// TRANSPARENCY
|
||||
if ($trans) {
|
||||
$this->mpdf->gradients[$n]['stream_trans']='';
|
||||
for($i=0;$i<count($patch_array);$i++){
|
||||
$this->mpdf->gradients[$n]['stream_trans'].=chr($patch_array[$i]['f']);
|
||||
for($j=0;$j<count($patch_array[$i]['points']);$j++){
|
||||
//each point as 16 bit
|
||||
$this->mpdf->gradients[$n]['stream_trans'].=chr(floor($patch_array[$i]['points'][$j]/256));
|
||||
$this->mpdf->gradients[$n]['stream_trans'].=chr(floor($patch_array[$i]['points'][$j]%256));
|
||||
}
|
||||
for($j=0;$j<count($patch_array[$i]['colors']);$j++){
|
||||
//each color component as 8 bit // OPACITY
|
||||
if ($colspace=='RGB') {
|
||||
$this->mpdf->gradients[$n]['stream_trans'].=chr(intval(ord($patch_array[$i]['colors'][$j][4])*2.55));
|
||||
}
|
||||
else if ($colspace=='CMYK') {
|
||||
$this->mpdf->gradients[$n]['stream_trans'].=chr(intval(ord($patch_array[$i]['colors'][$j][5])*2.55));
|
||||
}
|
||||
else if ($colspace=='Gray') {
|
||||
$this->mpdf->gradients[$n]['stream_trans'].=chr(intval(ord($patch_array[$i]['colors'][$j][3])*2.55));
|
||||
}
|
||||
}
|
||||
}
|
||||
$this->mpdf->gradients[$n]['trans'] = true;
|
||||
$s .= ' /TGS'.$n.' gs ';
|
||||
}
|
||||
//paint the gradient
|
||||
$s .= '/Sh'.$n.' sh'."\n";
|
||||
//restore previous Graphic State
|
||||
$s .= 'Q'."\n";
|
||||
if ($return) { return $s; }
|
||||
else { $this->mpdf->_out($s); }
|
||||
}
|
||||
|
||||
|
||||
// type = linear:2; radial: 3;
|
||||
// Linear: $coords - array of the form (x1, y1, x2, y2) which defines the gradient vector (see linear_gradient_coords.jpg).
|
||||
// The default value is from left to right (x1=0, y1=0, x2=1, y2=0).
|
||||
// Radial: $coords - array of the form (fx, fy, cx, cy, r) where (fx, fy) is the starting point of the gradient with color1,
|
||||
// (cx, cy) is the center of the circle with color2, and r is the radius of the circle (see radial_gradient_coords.jpg).
|
||||
// (fx, fy) should be inside the circle, otherwise some areas will not be defined
|
||||
// $col = array(R,G,B/255); or array(G/255); or array(C,M,Y,K/100)
|
||||
// $stops = array('col'=>$col [, 'opacity'=>0-1] [, 'offset'=>0-1])
|
||||
function Gradient($x, $y, $w, $h, $type, $stops=array(), $colorspace='RGB', $coords='', $extend='', $return=false, $is_mask=false) {
|
||||
if (strtoupper(substr($type,0,1)) == 'L') { $type = 2; } // linear
|
||||
else if (strtoupper(substr($type,0,1)) == 'R') { $type = 3; } // radial
|
||||
if ($colorspace != 'CMYK' && $colorspace != 'Gray') {
|
||||
$colorspace = 'RGB';
|
||||
}
|
||||
$bboxw = $w;
|
||||
$bboxh = $h;
|
||||
$usex = $x;
|
||||
$usey = $y;
|
||||
$usew = $bboxw;
|
||||
$useh = $bboxh;
|
||||
|
||||
if ($type < 1) { $type = 2; }
|
||||
if ($coords[0]!==false && preg_match('/([0-9.]+(px|em|ex|pc|pt|cm|mm|in))/i',$coords[0],$m)) {
|
||||
$tmp = $this->mpdf->ConvertSize($m[1],$this->mpdf->w,$this->mpdf->FontSize,false);
|
||||
if ($tmp) { $coords[0] = $tmp/$w; }
|
||||
}
|
||||
if ($coords[1]!==false && preg_match('/([0-9.]+(px|em|ex|pc|pt|cm|mm|in))/i',$coords[1],$m)) {
|
||||
$tmp = $this->mpdf->ConvertSize($m[1],$this->mpdf->w,$this->mpdf->FontSize,false);
|
||||
if ($tmp) { $coords[1] = 1-($tmp/$h); }
|
||||
}
|
||||
// LINEAR
|
||||
if ($type == 2) {
|
||||
$angle = (isset($coords[4]) ? $coords[4] : false);
|
||||
$repeat = (isset($coords[5]) ? $coords[5] : false);
|
||||
// ALL POINTS SET (default for custom mPDF linear gradient) - no -moz
|
||||
if ($coords[0]!==false && $coords[1]!==false && $coords[2]!==false && $coords[3]!==false) {
|
||||
// do nothing - coords used as they are
|
||||
}
|
||||
|
||||
// If both a <point> and <angle> are defined, the gradient axis starts from the point and runs along the angle. The end point is
|
||||
// defined as before - in this case start points may not be in corners, and axis may not correctly fall in the right quadrant.
|
||||
// NO end points (Angle defined & Start points)
|
||||
else if ($angle!==false && $coords[0]!==false && $coords[1]!==false && $coords[2]===false && $coords[3]===false) {
|
||||
if ($angle==0 || $angle==360) { $coords[3]=$coords[1]; if ($coords[0]==1) $coords[2]=2; else $coords[2]=1; }
|
||||
else if ($angle==90) { $coords[2]=$coords[0]; $coords[3]=1; if ($coords[1]==1) $coords[3]=2; else $coords[3]=1; }
|
||||
else if ($angle==180) { if ($coords[4]==0) $coords[2]=-1; else $coords[2]=0; $coords[3]=$coords[1]; }
|
||||
else if ($angle==270) { $coords[2]=$coords[0]; if ($coords[1]==0) $coords[3]=-1; else $coords[3]=0; }
|
||||
else {
|
||||
$endx=1; $endy=1;
|
||||
if ($angle <=90) {
|
||||
if ($angle <=45) { $endy=tan(deg2rad($angle)); }
|
||||
else { $endx=tan(deg2rad(90-$angle)); }
|
||||
$b = atan2(($endy*$bboxh), ($endx*$bboxw));
|
||||
$ny = 1 - $coords[1] - (tan($b) * (1-$coords[0]));
|
||||
$tx = sin($b) * cos($b) * $ny;
|
||||
$ty = cos($b) * cos($b) * $ny;
|
||||
$coords[2] = 1+$tx; $coords[3] = 1-$ty;
|
||||
}
|
||||
else if ($angle <=180) {
|
||||
if ($angle <=135) { $endx=tan(deg2rad($angle-90)); }
|
||||
else { $endy=tan(deg2rad(180-$angle)); }
|
||||
$b = atan2(($endy*$bboxh), ($endx*$bboxw));
|
||||
$ny = 1 - $coords[1] - (tan($b) * ($coords[0]));
|
||||
$tx = sin($b) * cos($b) * $ny;
|
||||
$ty = cos($b) * cos($b) * $ny;
|
||||
$coords[2] = -$tx; $coords[3] = 1-$ty;
|
||||
}
|
||||
else if ($angle <=270) {
|
||||
if ($angle <=225) { $endy=tan(deg2rad($angle-180)); }
|
||||
else { $endx=tan(deg2rad(270-$angle)); }
|
||||
$b = atan2(($endy*$bboxh), ($endx*$bboxw));
|
||||
$ny = $coords[1] - (tan($b) * ($coords[0]));
|
||||
$tx = sin($b) * cos($b) * $ny;
|
||||
$ty = cos($b) * cos($b) * $ny;
|
||||
$coords[2] = -$tx; $coords[3] = $ty;
|
||||
}
|
||||
else {
|
||||
if ($angle <=315) { $endx=tan(deg2rad($angle-270)); }
|
||||
else { $endy=tan(deg2rad(360-$angle)); }
|
||||
$b = atan2(($endy*$bboxh), ($endx*$bboxw));
|
||||
$ny = $coords[1] - (tan($b) * (1-$coords[0]));
|
||||
$tx = sin($b) * cos($b) * $ny;
|
||||
$ty = cos($b) * cos($b) * $ny;
|
||||
$coords[2] = 1+$tx; $coords[3] = $ty;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// -moz If the first parameter is only an <angle>, the gradient axis starts from the box's corner that would ensure the
|
||||
// axis goes through the box. The axis runs along the specified angle. The end point of the axis is defined such that the
|
||||
// farthest corner of the box from the starting point is perpendicular to the gradient axis at that point.
|
||||
// NO end points or Start points (Angle defined)
|
||||
else if ($angle!==false && $coords[0]===false && $coords[1]===false) {
|
||||
if ($angle==0 || $angle==360) { $coords[0]=0; $coords[1]=0; $coords[2]=1; $coords[3]=0; }
|
||||
else if ($angle==90) { $coords[0]=0; $coords[1]=0; $coords[2]=0; $coords[3]=1; }
|
||||
else if ($angle==180) { $coords[0]=1; $coords[1]=0; $coords[2]=0; $coords[3]=0; }
|
||||
else if ($angle==270) { $coords[0]=0; $coords[1]=1; $coords[2]=0; $coords[3]=0; }
|
||||
else {
|
||||
if ($angle <=90) {
|
||||
$coords[0]=0; $coords[1]=0;
|
||||
if ($angle <=45) { $endx=1; $endy=tan(deg2rad($angle)); }
|
||||
else { $endx=tan(deg2rad(90-$angle)); $endy=1; }
|
||||
}
|
||||
else if ($angle <=180) {
|
||||
$coords[0]=1; $coords[1]=0;
|
||||
if ($angle <=135) { $endx=tan(deg2rad($angle-90)); $endy=1; }
|
||||
else { $endx=1; $endy=tan(deg2rad(180-$angle)); }
|
||||
}
|
||||
else if ($angle <=270) {
|
||||
$coords[0]=1; $coords[1]=1;
|
||||
if ($angle <=225) { $endx=1; $endy=tan(deg2rad($angle-180)); }
|
||||
else { $endx=tan(deg2rad(270-$angle)); $endy=1; }
|
||||
}
|
||||
else {
|
||||
$coords[0]=0; $coords[1]=1;
|
||||
if ($angle <=315) { $endx=tan(deg2rad($angle-270)); $endy=1; }
|
||||
else { $endx=1; $endy=tan(deg2rad(360-$angle)); }
|
||||
}
|
||||
$b = atan2(($endy*$bboxh), ($endx*$bboxw));
|
||||
$h2 = $bboxh - ($bboxh * tan($b));
|
||||
$px = $bboxh + ($h2 * sin($b) * cos($b));
|
||||
$py = ($bboxh * tan($b)) + ($h2 * sin($b) * sin($b));
|
||||
$x1 = $px / $bboxh;
|
||||
$y1 = $py / $bboxh;
|
||||
if ($angle <=90) { $coords[2] = $x1; $coords[3] = $y1; }
|
||||
else if ($angle <=180) { $coords[2] = 1-$x1; $coords[3] = $y1; }
|
||||
else if ($angle <=270) { $coords[2] = 1-$x1; $coords[3] = 1-$y1; }
|
||||
else { $coords[2] = $x1; $coords[3] = 1-$y1; }
|
||||
}
|
||||
}
|
||||
// -moz If the first parameter to the gradient function is only a <point>, the gradient axis starts from the specified point,
|
||||
// and ends at the point you would get if you rotated the starting point by 180 degrees about the center of the box that the
|
||||
// gradient is to be applied to.
|
||||
// NO angle and NO end points (Start points defined)
|
||||
else if ((!isset($angle) || $angle===false) && $coords[0]!==false && $coords[1]!==false) { // should have start and end defined
|
||||
$coords[2] = 1-$coords[0]; $coords[3] = 1-$coords[1];
|
||||
$angle = rad2deg(atan2($coords[3]-$coords[1],$coords[2]-$coords[0]));
|
||||
if ($angle < 0) { $angle += 360; }
|
||||
else if ($angle > 360) { $angle -= 360; }
|
||||
if ($angle!=0 && $angle!=360 && $angle!=90 && $angle!=180 && $angle!=270) {
|
||||
if ($w >= $h) {
|
||||
$coords[1] *= $h/$w ;
|
||||
$coords[3] *= $h/$w ;
|
||||
$usew = $useh = $bboxw;
|
||||
$usey -= ($w-$h);
|
||||
}
|
||||
else {
|
||||
$coords[0] *= $w/$h ;
|
||||
$coords[2] *= $w/$h ;
|
||||
$usew = $useh = $bboxh;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// -moz If neither a <point> or <angle> is specified, i.e. the entire function consists of only <stop> values, the gradient
|
||||
// axis starts from the top of the box and runs vertically downwards, ending at the bottom of the box.
|
||||
else { // default values T2B
|
||||
// All values are set in parseMozGradient - so won't appear here
|
||||
$coords = array(0,0,1,0); // default for original linear gradient (L2R)
|
||||
}
|
||||
$s = ' q';
|
||||
$s .= sprintf(' %.3F %.3F %.3F %.3F re W n', $x*_MPDFK, ($this->mpdf->h-$y)*_MPDFK, $w*_MPDFK, -$h*_MPDFK)."\n";
|
||||
$s .= sprintf(' %.3F 0 0 %.3F %.3F %.3F cm', $usew*_MPDFK, $useh*_MPDFK, $usex*_MPDFK, ($this->mpdf->h-($usey+$useh))*_MPDFK)."\n";
|
||||
}
|
||||
|
||||
// RADIAL
|
||||
else if ($type == 3) {
|
||||
$radius = (isset($coords[4]) ? $coords[4] : false);
|
||||
$angle = (isset($coords[5]) ? $coords[5] : false); // ?? no effect
|
||||
$shape = (isset($coords[6]) ? $coords[6] : false);
|
||||
$size = (isset($coords[7]) ? $coords[7] : false);
|
||||
$repeat = (isset($coords[8]) ? $coords[8] : false);
|
||||
// ALL POINTS AND RADIUS SET (default for custom mPDF radial gradient) - no -moz
|
||||
if ($coords[0]!==false && $coords[1]!==false && $coords[2]!==false && $coords[3]!==false && $coords[4]!==false) {
|
||||
// do nothing - coords used as they are
|
||||
}
|
||||
// If a <point> is defined
|
||||
else if ($shape!==false && $size!==false) {
|
||||
if ($coords[2]==false) { $coords[2] = $coords[0]; }
|
||||
if ($coords[3]==false) { $coords[3] = $coords[1]; }
|
||||
// ELLIPSE
|
||||
if ($shape=='ellipse') {
|
||||
$corner1 = sqrt(pow($coords[0],2) + pow($coords[1],2));
|
||||
$corner2 = sqrt(pow($coords[0],2) + pow((1-$coords[1]),2));
|
||||
$corner3 = sqrt(pow((1-$coords[0]),2) + pow($coords[1],2));
|
||||
$corner4 = sqrt(pow((1-$coords[0]),2) + pow((1-$coords[1]),2));
|
||||
if ($size=='closest-side') { $radius = min($coords[0], $coords[1], (1-$coords[0]), (1-$coords[1])); }
|
||||
else if ($size=='closest-corner') { $radius = min($corner1, $corner2, $corner3, $corner4); }
|
||||
else if ($size=='farthest-side') { $radius = max($coords[0], $coords[1], (1-$coords[0]), (1-$coords[1])); }
|
||||
else { $radius = max($corner1, $corner2, $corner3, $corner4); } // farthest corner (default)
|
||||
}
|
||||
// CIRCLE
|
||||
else if ($shape=='circle') {
|
||||
if ($w >= $h) {
|
||||
$coords[1] = $coords[3] = ($coords[1] * $h/$w) ;
|
||||
$corner1 = sqrt(pow($coords[0],2) + pow($coords[1],2));
|
||||
$corner2 = sqrt(pow($coords[0],2) + pow((($h/$w)-$coords[1]),2));
|
||||
$corner3 = sqrt(pow((1-$coords[0]),2) + pow($coords[1],2));
|
||||
$corner4 = sqrt(pow((1-$coords[0]),2) + pow((($h/$w)-$coords[1]),2));
|
||||
if ($size=='closest-side') { $radius = min($coords[0], $coords[1], (1-$coords[0]), (($h/$w)-$coords[1])); }
|
||||
else if ($size=='closest-corner') { $radius = min($corner1, $corner2, $corner3, $corner4); }
|
||||
else if ($size=='farthest-side') { $radius = max($coords[0], $coords[1], (1-$coords[0]), (($h/$w)-$coords[1])); }
|
||||
else if ($size=='farthest-corner') { $radius = max($corner1, $corner2, $corner3, $corner4); } // farthest corner (default)
|
||||
$usew = $useh = $bboxw;
|
||||
$usey -= ($w-$h);
|
||||
}
|
||||
else {
|
||||
$coords[0] = $coords[2] = ($coords[0] * $w/$h) ;
|
||||
$corner1 = sqrt(pow($coords[0],2) + pow($coords[1],2));
|
||||
$corner2 = sqrt(pow($coords[0],2) + pow((1-$coords[1]),2));
|
||||
$corner3 = sqrt(pow((($w/$h)-$coords[0]),2) + pow($coords[1],2));
|
||||
$corner4 = sqrt(pow((($w/$h)-$coords[0]),2) + pow((1-$coords[1]),2));
|
||||
if ($size=='closest-side') { $radius = min($coords[0], $coords[1], (($w/$h)-$coords[0]), (1-$coords[1])); }
|
||||
else if ($size=='closest-corner') { $radius = min($corner1, $corner2, $corner3, $corner4); }
|
||||
else if ($size=='farthest-side') { $radius = max($coords[0], $coords[1], (($w/$h)-$coords[0]), (1-$coords[1])); }
|
||||
else if ($size=='farthest-corner') { $radius = max($corner1, $corner2, $corner3, $corner4); } // farthest corner (default)
|
||||
$usew = $useh = $bboxh;
|
||||
}
|
||||
}
|
||||
if ($radius==0) { $radius=0.001; } // to prevent error
|
||||
$coords[4] = $radius;
|
||||
}
|
||||
|
||||
// -moz If entire function consists of only <stop> values
|
||||
else { // default values
|
||||
// All values are set in parseMozGradient - so won't appear here
|
||||
$coords = array(0.5,0.5,0.5,0.5); // default for radial gradient (centred)
|
||||
}
|
||||
$s = ' q';
|
||||
$s .= sprintf(' %.3F %.3F %.3F %.3F re W n', $x*_MPDFK, ($this->mpdf->h-$y)*_MPDFK, $w*_MPDFK, -$h*_MPDFK)."\n";
|
||||
$s .= sprintf(' %.3F 0 0 %.3F %.3F %.3F cm', $usew*_MPDFK, $useh*_MPDFK, $usex*_MPDFK, ($this->mpdf->h-($usey+$useh))*_MPDFK)."\n";
|
||||
}
|
||||
|
||||
$n = count($this->mpdf->gradients) + 1;
|
||||
$this->mpdf->gradients[$n]['type'] = $type;
|
||||
$this->mpdf->gradients[$n]['colorspace'] = $colorspace;
|
||||
$trans = false;
|
||||
$this->mpdf->gradients[$n]['is_mask'] = $is_mask;
|
||||
if ($is_mask) { $trans = true; }
|
||||
if (count($stops) == 1) { $stops[1] = $stops[0]; }
|
||||
if (!isset($stops[0]['offset'])) { $stops[0]['offset'] = 0; }
|
||||
if (!isset($stops[(count($stops)-1)]['offset'])) { $stops[(count($stops)-1)]['offset'] = 1; }
|
||||
|
||||
// Fix stop-offsets set as absolute lengths
|
||||
if ($type==2) {
|
||||
$axisx = ($coords[2]-$coords[0])*$usew;
|
||||
$axisy = ($coords[3]-$coords[1])*$useh;
|
||||
$axis_length = sqrt(pow($axisx,2) + pow($axisy,2));
|
||||
}
|
||||
else { $axis_length = $coords[4]*$usew; } // Absolute lengths are meaningless for an ellipse - Firefox uses Width as reference
|
||||
|
||||
for($i=0;$i<count($stops);$i++) {
|
||||
if (isset($stops[$i]['offset']) && preg_match('/([0-9.]+(px|em|ex|pc|pt|cm|mm|in))/i',$stops[$i]['offset'],$m)) {
|
||||
$tmp = $this->mpdf->ConvertSize($m[1],$this->mpdf->w,$this->mpdf->FontSize,false);
|
||||
$stops[$i]['offset'] = $tmp/$axis_length;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (isset($stops[0]['offset']) && $stops[0]['offset']>0) {
|
||||
$firststop = $stops[0];
|
||||
$firststop['offset'] = 0;
|
||||
array_unshift($stops, $firststop);
|
||||
}
|
||||
if (!$repeat && isset($stops[(count($stops)-1)]['offset']) && $stops[(count($stops)-1)]['offset']<1) {
|
||||
$endstop = $stops[(count($stops)-1)];
|
||||
$endstop['offset'] = 1;
|
||||
$stops[] = $endstop;
|
||||
}
|
||||
if ($stops[0]['offset'] > $stops[(count($stops)-1)]['offset']) {
|
||||
$stops[0]['offset'] = 0;
|
||||
$stops[(count($stops)-1)]['offset'] = 1;
|
||||
}
|
||||
|
||||
for($i=0;$i<count($stops);$i++) {
|
||||
// mPDF 5.3.74
|
||||
if ($colorspace == 'CMYK') {
|
||||
$this->mpdf->gradients[$n]['stops'][$i]['col'] = sprintf('%.3F %.3F %.3F %.3F', (ord($stops[$i]['col']{1})/100), (ord($stops[$i]['col']{2})/100), (ord($stops[$i]['col']{3})/100), (ord($stops[$i]['col']{4})/100));
|
||||
}
|
||||
else if ($colorspace == 'Gray') {
|
||||
$this->mpdf->gradients[$n]['stops'][$i]['col'] = sprintf('%.3F', (ord($stops[$i]['col']{1})/255));
|
||||
}
|
||||
else {
|
||||
$this->mpdf->gradients[$n]['stops'][$i]['col'] = sprintf('%.3F %.3F %.3F', (ord($stops[$i]['col']{1})/255), (ord($stops[$i]['col']{2})/255), (ord($stops[$i]['col']{3})/255));
|
||||
}
|
||||
if (!isset($stops[$i]['opacity'])) { $stops[$i]['opacity'] = 1; }
|
||||
else if ($stops[$i]['opacity'] > 1 || $stops[$i]['opacity'] < 0) { $stops[$i]['opacity'] = 1; }
|
||||
else if ($stops[$i]['opacity'] < 1) {
|
||||
$trans = true;
|
||||
}
|
||||
$this->mpdf->gradients[$n]['stops'][$i]['opacity'] = $stops[$i]['opacity'];
|
||||
// OFFSET
|
||||
if ($i>0 && $i<(count($stops)-1)) {
|
||||
if (!isset($stops[$i]['offset']) || (isset($stops[$i+1]['offset']) && $stops[$i]['offset']>$stops[$i+1]['offset']) || $stops[$i]['offset']<$stops[$i-1]['offset']) {
|
||||
if (isset($stops[$i-1]['offset']) && isset($stops[$i+1]['offset'])) {
|
||||
$stops[$i]['offset'] = ($stops[$i-1]['offset']+$stops[$i+1]['offset'])/2;
|
||||
}
|
||||
else {
|
||||
for($j=($i+1);$j<count($stops);$j++) {
|
||||
if(isset($stops[$j]['offset'])) { break; }
|
||||
}
|
||||
$int = ($stops[$j]['offset'] - $stops[($i-1)]['offset'])/($j-$i+1);
|
||||
for($f=0;$f<($j-$i-1);$f++) {
|
||||
$stops[($i+$f)]['offset'] = $stops[($i+$f-1)]['offset'] + ($int);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$this->mpdf->gradients[$n]['stops'][$i]['offset'] = $stops[$i]['offset'];
|
||||
$this->mpdf->gradients[$n]['stops'][$i]['offset'] = $stops[$i]['offset'];
|
||||
}
|
||||
|
||||
if ($repeat) {
|
||||
$ns = count($this->mpdf->gradients[$n]['stops']);
|
||||
$offs = array();
|
||||
for($i=0;$i<$ns;$i++) {
|
||||
$offs[$i] = $this->mpdf->gradients[$n]['stops'][$i]['offset'];
|
||||
}
|
||||
$gp = 0;
|
||||
$inside=true;
|
||||
while($inside) {
|
||||
$gp++;
|
||||
for($i=0;$i<$ns;$i++) {
|
||||
$this->mpdf->gradients[$n]['stops'][(($ns*$gp)+$i)] = $this->mpdf->gradients[$n]['stops'][(($ns*($gp-1))+$i)];
|
||||
$tmp = $this->mpdf->gradients[$n]['stops'][(($ns*($gp-1))+($ns-1))]['offset']+$offs[$i] ;
|
||||
if ($tmp < 1) { $this->mpdf->gradients[$n]['stops'][(($ns*$gp)+$i)]['offset'] = $tmp; }
|
||||
else {
|
||||
$this->mpdf->gradients[$n]['stops'][(($ns*$gp)+$i)]['offset'] = 1;
|
||||
$inside = false;
|
||||
break(2);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($trans) {
|
||||
$this->mpdf->gradients[$n]['trans'] = true;
|
||||
$s .= ' /TGS'.$n.' gs ';
|
||||
}
|
||||
if (!is_array($extend) || count($extend) <1) {
|
||||
$extend=array('true', 'true'); // These are supposed to be quoted - appear in PDF file as text
|
||||
}
|
||||
$this->mpdf->gradients[$n]['coords'] = $coords;
|
||||
$this->mpdf->gradients[$n]['extend'] = $extend;
|
||||
//paint the gradient
|
||||
$s .= '/Sh'.$n.' sh '."\n";
|
||||
//restore previous Graphic State
|
||||
$s .= ' Q '."\n";
|
||||
if ($return) { return $s; }
|
||||
else { $this->mpdf->_out($s); }
|
||||
}
|
||||
|
||||
|
||||
function parseMozGradient($bg) {
|
||||
// background[-image]: -moz-linear-gradient(left, #c7Fdde 20%, #FF0000 );
|
||||
// background[-image]: linear-gradient(left, #c7Fdde 20%, #FF0000 ); // CSS3
|
||||
if (preg_match('/repeating-/',$bg)) { $repeat = true; }
|
||||
else { $repeat = false; }
|
||||
if (preg_match('/linear-gradient\((.*)\)/',$bg,$m)) {
|
||||
$g = array();
|
||||
$g['type'] = 2;
|
||||
$g['colorspace'] = 'RGB';
|
||||
$g['extend'] = array('true','true');
|
||||
$v = trim($m[1]);
|
||||
// Change commas inside e.g. rgb(x,x,x)
|
||||
while(preg_match('/(\([^\)]*?),/',$v)) { $v = preg_replace('/(\([^\)]*?),/','\\1@',$v); }
|
||||
// Remove spaces inside e.g. rgb(x, x, x)
|
||||
while(preg_match('/(\([^\)]*?)[ ]/',$v)) { $v = preg_replace('/(\([^\)]*?)[ ]/','\\1',$v); }
|
||||
$bgr = preg_split('/\s*,\s*/',$v);
|
||||
for($i=0;$i<count($bgr);$i++) { $bgr[$i] = preg_replace('/@/', ',', $bgr[$i]); }
|
||||
// Is first part $bgr[0] a valid point/angle?
|
||||
$first = preg_split('/\s+/',trim($bgr[0]));
|
||||
if (preg_match('/(left|center|right|bottom|top|deg|grad|rad)/i',$bgr[0]) && !preg_match('/(<#|rgb|rgba|hsl|hsla)/i',$bgr[0])) {
|
||||
$startStops = 1;
|
||||
}
|
||||
else if (trim($first[(count($first)-1)]) === "0") {
|
||||
$startStops = 1;
|
||||
}
|
||||
else {
|
||||
$check = $this->mpdf->ConvertColor($first[0]);
|
||||
if ($check) $startStops = 0;
|
||||
else $startStops = 1;
|
||||
}
|
||||
// first part a valid point/angle?
|
||||
if ($startStops == 1) { // default values
|
||||
// [<point> || <angle>,] = [<% em px left center right bottom top> || <deg grad rad 0>,]
|
||||
if (preg_match('/([\-]*[0-9\.]+)(deg|grad|rad)/i',$bgr[0],$m)) {
|
||||
$angle = $m[1] + 0;
|
||||
if (strtolower($m[2])=='deg') { $angle = $angle; }
|
||||
else if (strtolower($m[2])=='grad') { $angle *= (360/400); }
|
||||
else if (strtolower($m[2])=='rad') { $angle = rad2deg($angle); }
|
||||
while($angle < 0) { $angle += 360; }
|
||||
$angle = ($angle % 360);
|
||||
}
|
||||
else if (trim($first[(count($first)-1)]) === "0") { $angle = 0; }
|
||||
if (preg_match('/left/i',$bgr[0])) { $startx = 0; }
|
||||
else if (preg_match('/right/i',$bgr[0])) { $startx = 1; }
|
||||
if (preg_match('/top/i',$bgr[0])) { $starty = 1; }
|
||||
else if (preg_match('/bottom/i',$bgr[0])) { $starty = 0; }
|
||||
// Check for %? ?% or %%
|
||||
if (preg_match('/(\d+)[%]/i',$first[0],$m)) { $startx = $m[1]/100; }
|
||||
else if (!isset($startx) && preg_match('/([0-9.]+(px|em|ex|pc|pt|cm|mm|in))/i',$first[0],$m)) {
|
||||
$tmp = $this->mpdf->ConvertSize($m[1],$this->mpdf->w,$this->mpdf->FontSize,false);
|
||||
if ($tmp) { $startx = $m[1]; }
|
||||
}
|
||||
if (isset($first[1]) && preg_match('/(\d+)[%]/i',$first[1],$m)) { $starty = 1 - ($m[1]/100); }
|
||||
else if (!isset($starty) && isset($first[1]) && preg_match('/([0-9.]+(px|em|ex|pc|pt|cm|mm|in))/i',$first[1],$m)) {
|
||||
$tmp = $this->mpdf->ConvertSize($m[1],$this->mpdf->w,$this->mpdf->FontSize,false);
|
||||
if ($tmp) { $starty = $m[1]; }
|
||||
}
|
||||
if (isset($startx) && !isset($starty)) { $starty = 0.5; }
|
||||
if (!isset($startx) && isset($starty)) { $startx = 0.5; }
|
||||
|
||||
}
|
||||
// If neither a <point> or <angle> is specified, i.e. the entire function consists of only <stop> values, the gradient axis starts from the top of the box and runs vertically downwards, ending at the bottom of the box.
|
||||
else { // default values T2B
|
||||
$starty = 1; $startx = 0.5;
|
||||
$endy = 0; $endx = 0.5;
|
||||
}
|
||||
$coords = array();
|
||||
if (!isset($startx)) { $startx = false; }
|
||||
if (!isset($starty)) { $starty = false; }
|
||||
if (!isset($endx)) { $endx = false; }
|
||||
if (!isset($endy)) { $endy = false; }
|
||||
if (!isset($angle)) { $angle = false; }
|
||||
$g['coords'] = array($startx ,$starty ,$endx ,$endy, $angle, $repeat );
|
||||
$g['stops'] = array();
|
||||
for($i=$startStops;$i<count($bgr);$i++) {
|
||||
$stop = array();
|
||||
// parse stops
|
||||
$el = preg_split('/\s+/',trim($bgr[$i]));
|
||||
// mPDF 5.3.74
|
||||
$col = $this->mpdf->ConvertColor($el[0]);
|
||||
if ($col) { $stop['col'] = $col; }
|
||||
else { $stop['col'] = $col = $this->mpdf->ConvertColor(255); }
|
||||
if ($col{0}==1) $g['colorspace'] = 'Gray';
|
||||
else if ($col{0}==4 || $col{0}==6) $g['colorspace'] = 'CMYK';
|
||||
if ($col{0}==5) { $stop['opacity'] = ord($col{4})/100; } // transparency from rgba()
|
||||
else if ($col{0}==6) { $stop['opacity'] = ord($col{5})/100; } // transparency from cmyka()
|
||||
else if ($col{0}==1 && $col{2}==1) { $stop['opacity'] = ord($col{3})/100; } // transparency converted from rgba or cmyka()
|
||||
|
||||
if (isset($el[1]) && preg_match('/(\d+)[%]/',$el[1],$m)) {
|
||||
$stop['offset'] = $m[1]/100;
|
||||
if ($stop['offset']>1) { unset($stop['offset']); }
|
||||
}
|
||||
else if (isset($el[1]) && preg_match('/([0-9.]+(px|em|ex|pc|pt|cm|mm|in))/i',$el[1],$m)) {
|
||||
$tmp = $this->mpdf->ConvertSize($m[1],$this->mpdf->w,$this->mpdf->FontSize,false);
|
||||
if ($tmp) { $stop['offset'] = $m[1]; }
|
||||
}
|
||||
$g['stops'][] = $stop;
|
||||
}
|
||||
if (count($g['stops'] )) { return $g; }
|
||||
}
|
||||
else if (preg_match('/radial-gradient\((.*)\)/',$bg,$m)) {
|
||||
$g = array();
|
||||
$g['type'] = 3;
|
||||
$g['colorspace'] = 'RGB';
|
||||
$g['extend'] = array('true','true');
|
||||
$v = trim($m[1]);
|
||||
// Change commas inside e.g. rgb(x,x,x)
|
||||
while(preg_match('/(\([^\)]*?),/',$v)) { $v = preg_replace('/(\([^\)]*?),/','\\1@',$v); }
|
||||
// Remove spaces inside e.g. rgb(x, x, x)
|
||||
while(preg_match('/(\([^\)]*?)[ ]/',$v)) { $v = preg_replace('/(\([^\)]*?)[ ]/','\\1',$v); }
|
||||
$bgr = preg_split('/\s*,\s*/',$v);
|
||||
for($i=0;$i<count($bgr);$i++) { $bgr[$i] = preg_replace('/@/', ',', $bgr[$i]); }
|
||||
|
||||
// Is first part $bgr[0] a valid point/angle?
|
||||
$startStops = 0;
|
||||
$pos_angle = false;
|
||||
$shape_size = false;
|
||||
$first = preg_split('/\s+/',trim($bgr[0]));
|
||||
$checkCol = $this->mpdf->ConvertColor($first[0]);
|
||||
if (preg_match('/(left|center|right|bottom|top|deg|grad|rad)/i',$bgr[0]) && !preg_match('/(<#|rgb|rgba|hsl|hsla)/i',$bgr[0])) {
|
||||
$startStops=1;
|
||||
$pos_angle = $bgr[0];
|
||||
}
|
||||
else if (trim($first[(count($first)-1)]) === "0") {
|
||||
$startStops=1;
|
||||
$pos_angle = $bgr[0];
|
||||
}
|
||||
else if (preg_match('/(circle|ellipse|closest-side|closest-corner|farthest-side|farthest-corner|contain|cover)/i',$bgr[0])) {
|
||||
$startStops=1;
|
||||
$shape_size = $bgr[0];
|
||||
}
|
||||
else if (!$checkCol) {
|
||||
$startStops=1;
|
||||
$pos_angle = $bgr[0];
|
||||
}
|
||||
if (preg_match('/(circle|ellipse|closest-side|closest-corner|farthest-side|farthest-corner|contain|cover)/i',$bgr[1])) {
|
||||
$startStops=2;
|
||||
$shape_size = $bgr[1];
|
||||
}
|
||||
|
||||
// If valid point/angle?
|
||||
if ($pos_angle) { // default values
|
||||
// [<point> || <angle>,] = [<% em px left center right bottom top> || <deg grad rad 0>,]
|
||||
if (preg_match('/left/i',$pos_angle)) { $startx = 0; }
|
||||
else if (preg_match('/right/i',$pos_angle)) { $startx = 1; }
|
||||
if (preg_match('/top/i',$pos_angle)) { $starty = 1; }
|
||||
else if (preg_match('/bottom/i',$pos_angle)) { $starty = 0; }
|
||||
// Check for %? ?% or %%
|
||||
if (preg_match('/(\d+)[%]/i',$first[0],$m)) { $startx = $m[1]/100; }
|
||||
else if (!isset($startx) && preg_match('/([0-9.]+(px|em|ex|pc|pt|cm|mm|in))/i',$first[0],$m)) {
|
||||
$tmp = $this->mpdf->ConvertSize($m[1],$this->mpdf->w,$this->mpdf->FontSize,false);
|
||||
if ($tmp) { $startx = $m[1]; }
|
||||
}
|
||||
if (isset($first[1]) && preg_match('/(\d+)[%]/i',$first[1],$m)) { $starty = 1 - ($m[1]/100); }
|
||||
else if (!isset($starty) && isset($first[1]) && preg_match('/([0-9.]+(px|em|ex|pc|pt|cm|mm|in))/i',$first[1],$m)) {
|
||||
$tmp = $this->mpdf->ConvertSize($m[1],$this->mpdf->w,$this->mpdf->FontSize,false);
|
||||
if ($tmp) { $starty = $m[1]; }
|
||||
}
|
||||
|
||||
/*
|
||||
// ?? Angle has no effect in radial gradient (does not exist in CSS3 spec.)
|
||||
if (preg_match('/([\-]*[0-9\.]+)(deg|grad|rad)/i',$pos_angle,$m)) {
|
||||
$angle = $m[1] + 0;
|
||||
if (strtolower($m[2])=='deg') { $angle = $angle; }
|
||||
else if (strtolower($m[2])=='grad') { $angle *= (360/400); }
|
||||
else if (strtolower($m[2])=='rad') { $angle = rad2deg($angle); }
|
||||
while($angle < 0) { $angle += 360; }
|
||||
$angle = ($angle % 360);
|
||||
}
|
||||
*/
|
||||
if (!isset($starty)) { $starty = 0.5; }
|
||||
if (!isset($startx)) { $startx = 0.5; }
|
||||
|
||||
}
|
||||
// If neither a <point> or <angle> is specified, i.e. the entire function consists of only <stop> values, the gradient axis starts from the top of the box and runs vertically downwards, ending at the bottom of the box.
|
||||
else { // default values Center
|
||||
$starty = 0.5; $startx = 0.5;
|
||||
$endy = 0.5; $endx = 0.5;
|
||||
}
|
||||
|
||||
// If valid shape/size?
|
||||
$shape = 'ellipse'; // default
|
||||
$size = 'farthest-corner'; // default
|
||||
if ($shape_size) { // default values
|
||||
if (preg_match('/(circle|ellipse)/i',$shape_size, $m)) {
|
||||
$shape = $m[1];
|
||||
}
|
||||
if (preg_match('/(closest-side|closest-corner|farthest-side|farthest-corner|contain|cover)/i',$shape_size, $m)) {
|
||||
$size = $m[1];
|
||||
if ($size=='contain') { $size = 'closest-side'; }
|
||||
else if ($size=='cover') { $size = 'farthest-corner'; }
|
||||
}
|
||||
}
|
||||
|
||||
$coords = array();
|
||||
if (!isset($startx)) { $startx = false; }
|
||||
if (!isset($starty)) { $starty = false; }
|
||||
if (!isset($endx)) { $endx = false; }
|
||||
if (!isset($endy)) { $endy = false; }
|
||||
if (!isset($radius)) { $radius = false; }
|
||||
if (!isset($angle)) { $angle = 0; }
|
||||
$g['coords'] = array($startx ,$starty ,$endx ,$endy, $radius, $angle, $shape, $size, $repeat );
|
||||
|
||||
$g['stops'] = array();
|
||||
for($i=$startStops;$i<count($bgr);$i++) {
|
||||
$stop = array();
|
||||
// parse stops
|
||||
$el = preg_split('/\s+/',trim($bgr[$i]));
|
||||
// mPDF 5.3.74
|
||||
$col = $this->mpdf->ConvertColor($el[0]);
|
||||
if ($col) { $stop['col'] = $col; }
|
||||
else { $stop['col'] = $col = $this->mpdf->ConvertColor(255); }
|
||||
if ($col{0}==1) $g['colorspace'] = 'Gray';
|
||||
else if ($col{0}==4 || $col{0}==6) $g['colorspace'] = 'CMYK';
|
||||
if ($col{0}==5) { $stop['opacity'] = ord($col{4})/100; } // transparency from rgba()
|
||||
else if ($col{0}==6) { $stop['opacity'] = ord($col{5})/100; } // transparency from cmyka()
|
||||
else if ($col{0}==1 && $col{2}==1) { $stop['opacity'] = ord($col{3})/100; } // transparency converted from rgba or cmyka()
|
||||
|
||||
if (isset($el[1]) && preg_match('/(\d+)[%]/',$el[1],$m)) {
|
||||
$stop['offset'] = $m[1]/100;
|
||||
if ($stop['offset']>1) { unset($stop['offset']); }
|
||||
}
|
||||
else if (isset($el[1]) && preg_match('/([0-9.]+(px|em|ex|pc|pt|cm|mm|in))/i',$el[1],$m)) {
|
||||
$tmp = $this->mpdf->ConvertSize($m[1],$this->mpdf->w,$this->mpdf->FontSize,false);
|
||||
$stop['offset'] = $el[1];
|
||||
}
|
||||
$g['stops'][] = $stop;
|
||||
}
|
||||
if (count($g['stops'] )) { return $g; }
|
||||
}
|
||||
return array();
|
||||
}
|
||||
|
||||
function parseBackgroundGradient($bg) {
|
||||
// background-gradient: linear #00FFFF #FFFF00 0 0.5 1 0.5; or
|
||||
// background-gradient: radial #00FFFF #FFFF00 0.5 0.5 1 1 1.2;
|
||||
|
||||
$v = trim($bg);
|
||||
$bgr = preg_split('/\s+/',$v);
|
||||
$g = array();
|
||||
if (count($bgr)> 6) {
|
||||
if (strtoupper(substr($bgr[0],0,1)) == 'L' && count($bgr)==7) { // linear
|
||||
$g['type'] = 2;
|
||||
//$coords = array(0,0,1,1 ); // 0 0 1 0 or 0 1 1 1 is L 2 R; 1,1,0,1 is R2L; 1,1,1,0 is T2B; 1,0,1,1 is B2T
|
||||
// Linear: $coords - array of the form (x1, y1, x2, y2) which defines the gradient vector (see linear_gradient_coords.jpg).
|
||||
// The default value is from left to right (x1=0, y1=0, x2=1, y2=0).
|
||||
$g['coords'] = array($bgr[3], $bgr[4], $bgr[5], $bgr[6]);
|
||||
}
|
||||
else if (count($bgr)==8) { // radial
|
||||
$g['type'] = 3;
|
||||
// Radial: $coords - array of the form (fx, fy, cx, cy, r) where (fx, fy) is the starting point of the gradient with color1,
|
||||
// (cx, cy) is the center of the circle with color2, and r is the radius of the circle (see radial_gradient_coords.jpg).
|
||||
// (fx, fy) should be inside the circle, otherwise some areas will not be defined
|
||||
$g['coords'] = array($bgr[3], $bgr[4], $bgr[5], $bgr[6], $bgr[7]);
|
||||
}
|
||||
$g['colorspace'] = 'RGB';
|
||||
// mPDF 5.3.74
|
||||
$cor = $this->mpdf->ConvertColor($bgr[1]);
|
||||
if ($cor{0}==1) $g['colorspace'] = 'Gray';
|
||||
else if ($cor{0}==4 || $cor{0}==6) $g['colorspace'] = 'CMYK';
|
||||
if ($cor) { $g['col'] = $cor; }
|
||||
else { $g['col'] = $this->mpdf->ConvertColor(255); }
|
||||
$cor = $this->mpdf->ConvertColor($bgr[2]);
|
||||
if ($cor) { $g['col2'] = $cor; }
|
||||
else { $g['col2'] = $this->mpdf->ConvertColor(255); }
|
||||
$g['extend'] = array('true','true');
|
||||
$g['stops'] = array(array('col'=>$g['col'], 'opacity'=>1, 'offset'=>0), array('col'=>$g['col2'], 'opacity'=>1, 'offset'=>1));
|
||||
return $g;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
?>
|
1714
dk-pdf/includes/mpdf60/classes/indic.php
Executable file
1714
dk-pdf/includes/mpdf60/classes/indic.php
Executable file
File diff suppressed because it is too large
Load Diff
282
dk-pdf/includes/mpdf60/classes/meter.php
Executable file
282
dk-pdf/includes/mpdf60/classes/meter.php
Executable file
@ -0,0 +1,282 @@
|
||||
<?php
|
||||
|
||||
class meter {
|
||||
|
||||
|
||||
function __construct() {
|
||||
|
||||
}
|
||||
|
||||
function makeSVG($tag, $type, $value, $max, $min, $optimum, $low, $high) {
|
||||
$svg = '';
|
||||
if ($tag == 'meter') {
|
||||
|
||||
if ($type=='2') {
|
||||
/////////////////////////////////////////////////////////////////////////////////////
|
||||
///////// CUSTOM <meter type="2">
|
||||
/////////////////////////////////////////////////////////////////////////////////////
|
||||
$h = 10;
|
||||
$w = 160;
|
||||
$border_radius = 0.143; // Factor of Height
|
||||
|
||||
$svg = '<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg width="'.$w.'px" height="'.$h.'px" viewBox="0 0 '.$w.' '.$h.'" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" ><g>
|
||||
|
||||
|
||||
<defs>
|
||||
<linearGradient id="GrGRAY" x1="0" y1="0" x2="0" y2="1" gradientUnits="boundingBox">
|
||||
<stop offset="0%" stop-color="rgb(222, 222, 222)" />
|
||||
<stop offset="20%" stop-color="rgb(232, 232, 232)" />
|
||||
<stop offset="25%" stop-color="rgb(232, 232, 232)" />
|
||||
<stop offset="100%" stop-color="rgb(182, 182, 182)" />
|
||||
</linearGradient>
|
||||
|
||||
</defs>
|
||||
';
|
||||
$svg .= '<rect x="0" y="0" width="'.$w.'" height="'.$h.'" fill="#f4f4f4" stroke="none" />';
|
||||
|
||||
// LOW to HIGH region
|
||||
//if ($low && $high && ($low != $min || $high != $max)) {
|
||||
if ($low && $high) {
|
||||
$barx = (($low-$min) / ($max-$min) ) * $w;
|
||||
$barw = (($high-$low) / ($max-$min) ) * $w;
|
||||
$svg .= '<rect x="'.$barx.'" y="0" width="'.$barw.'" height="'.$h.'" fill="url(#GrGRAY)" stroke="#888888" stroke-width="0.5px" />';
|
||||
}
|
||||
|
||||
// OPTIMUM Marker (? AVERAGE)
|
||||
if ($optimum) {
|
||||
$barx = (($optimum-$min) / ($max-$min) ) * $w;
|
||||
$barw = $h/2;
|
||||
$barcol = '#888888';
|
||||
$svg .= '<rect x="'.$barx.'" y="0" rx="'.($h*$border_radius).'px" ry="'.($h*$border_radius).'px" width="'.$barw.'" height="'.$h.'" fill="'.$barcol.'" stroke="none" />';
|
||||
}
|
||||
|
||||
// VALUE Marker
|
||||
if ($value) {
|
||||
if ($min != $low && $value < $low) { $col = 'orange'; }
|
||||
else if ($max != $high && $value > $high) { $col = 'orange'; }
|
||||
else { $col = '#008800'; }
|
||||
$cx = (($value-$min) / ($max-$min) ) * $w;
|
||||
$cy = $h/2;
|
||||
$rx = $h/3.5;
|
||||
$ry = $h/2.2;
|
||||
$svg .= '<ellipse fill="'.$col.'" stroke="#000000" stroke-width="0.5px" cx="'.$cx.'" cy="'.$cy.'" rx="'.$rx.'" ry="'.$ry.'"/>';
|
||||
}
|
||||
|
||||
// BoRDER
|
||||
$svg .= '<rect x="0" y="0" width="'.$w.'" height="'.$h.'" fill="none" stroke="#888888" stroke-width="0.5px" />';
|
||||
|
||||
$svg .= '</g></svg>';
|
||||
}
|
||||
else if ($type=='3') {
|
||||
/////////////////////////////////////////////////////////////////////////////////////
|
||||
///////// CUSTOM <meter type="2">
|
||||
/////////////////////////////////////////////////////////////////////////////////////
|
||||
$h = 10;
|
||||
$w = 100;
|
||||
$border_radius = 0.143; // Factor of Height
|
||||
|
||||
$svg = '<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg width="'.$w.'px" height="'.$h.'px" viewBox="0 0 '.$w.' '.$h.'" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" ><g>
|
||||
|
||||
|
||||
<defs>
|
||||
<linearGradient id="GrGRAY" x1="0" y1="0" x2="0" y2="1" gradientUnits="boundingBox">
|
||||
<stop offset="0%" stop-color="rgb(222, 222, 222)" />
|
||||
<stop offset="20%" stop-color="rgb(232, 232, 232)" />
|
||||
<stop offset="25%" stop-color="rgb(232, 232, 232)" />
|
||||
<stop offset="100%" stop-color="rgb(182, 182, 182)" />
|
||||
</linearGradient>
|
||||
|
||||
</defs>
|
||||
';
|
||||
$svg .= '<rect x="0" y="0" width="'.$w.'" height="'.$h.'" fill="#f4f4f4" stroke="none" />';
|
||||
|
||||
// LOW to HIGH region
|
||||
if ($low && $high && ($low != $min || $high != $max)) {
|
||||
//if ($low && $high) {
|
||||
$barx = (($low-$min) / ($max-$min) ) * $w;
|
||||
$barw = (($high-$low) / ($max-$min) ) * $w;
|
||||
$svg .= '<rect x="'.$barx.'" y="0" width="'.$barw.'" height="'.$h.'" fill="url(#GrGRAY)" stroke="#888888" stroke-width="0.5px" />';
|
||||
}
|
||||
|
||||
// OPTIMUM Marker (? AVERAGE)
|
||||
if ($optimum) {
|
||||
$barx = (($optimum-$min) / ($max-$min) ) * $w;
|
||||
$barw = $h/2;
|
||||
$barcol = '#888888';
|
||||
$svg .= '<rect x="'.$barx.'" y="0" rx="'.($h*$border_radius).'px" ry="'.($h*$border_radius).'px" width="'.$barw.'" height="'.$h.'" fill="'.$barcol.'" stroke="none" />';
|
||||
}
|
||||
|
||||
// VALUE Marker
|
||||
if ($value) {
|
||||
if ($min != $low && $value < $low) { $col = 'orange'; }
|
||||
else if ($max != $high && $value > $high) { $col = 'orange'; }
|
||||
else { $col = 'orange'; }
|
||||
$cx = (($value-$min) / ($max-$min) ) * $w;
|
||||
$cy = $h/2;
|
||||
$rx = $h/2.2;
|
||||
$ry = $h/2.2;
|
||||
$svg .= '<ellipse fill="'.$col.'" stroke="#000000" stroke-width="0.5px" cx="'.$cx.'" cy="'.$cy.'" rx="'.$rx.'" ry="'.$ry.'"/>';
|
||||
}
|
||||
|
||||
// BoRDER
|
||||
$svg .= '<rect x="0" y="0" width="'.$w.'" height="'.$h.'" fill="none" stroke="#888888" stroke-width="0.5px" />';
|
||||
|
||||
$svg .= '</g></svg>';
|
||||
}
|
||||
else {
|
||||
/////////////////////////////////////////////////////////////////////////////////////
|
||||
///////// DEFAULT <meter>
|
||||
/////////////////////////////////////////////////////////////////////////////////////
|
||||
$h = 10;
|
||||
$w = 50;
|
||||
$border_radius = 0.143; // Factor of Height
|
||||
|
||||
$svg = '<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg width="'.$w.'px" height="'.$h.'px" viewBox="0 0 '.$w.' '.$h.'" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" ><g>
|
||||
|
||||
<defs>
|
||||
<linearGradient id="GrGRAY" x1="0" y1="0" x2="0" y2="1" gradientUnits="boundingBox">
|
||||
<stop offset="0%" stop-color="rgb(222, 222, 222)" />
|
||||
<stop offset="20%" stop-color="rgb(232, 232, 232)" />
|
||||
<stop offset="25%" stop-color="rgb(232, 232, 232)" />
|
||||
<stop offset="100%" stop-color="rgb(182, 182, 182)" />
|
||||
</linearGradient>
|
||||
|
||||
<linearGradient id="GrRED" x1="0" y1="0" x2="0" y2="1" gradientUnits="boundingBox">
|
||||
<stop offset="0%" stop-color="rgb(255, 162, 162)" />
|
||||
<stop offset="20%" stop-color="rgb(255, 218, 218)" />
|
||||
<stop offset="25%" stop-color="rgb(255, 218, 218)" />
|
||||
<stop offset="100%" stop-color="rgb(255, 0, 0)" />
|
||||
</linearGradient>
|
||||
|
||||
<linearGradient id="GrGREEN" x1="0" y1="0" x2="0" y2="1" gradientUnits="boundingBox">
|
||||
<stop offset="0%" stop-color="rgb(102, 230, 102)" />
|
||||
<stop offset="20%" stop-color="rgb(218, 255, 218)" />
|
||||
<stop offset="25%" stop-color="rgb(218, 255, 218)" />
|
||||
<stop offset="100%" stop-color="rgb(0, 148, 0)" />
|
||||
</linearGradient>
|
||||
|
||||
<linearGradient id="GrBLUE" x1="0" y1="0" x2="0" y2="1" gradientUnits="boundingBox">
|
||||
<stop offset="0%" stop-color="rgb(102, 102, 230)" />
|
||||
<stop offset="20%" stop-color="rgb(238, 238, 238)" />
|
||||
<stop offset="25%" stop-color="rgb(238, 238, 238)" />
|
||||
<stop offset="100%" stop-color="rgb(0, 0, 128)" />
|
||||
</linearGradient>
|
||||
|
||||
<linearGradient id="GrORANGE" x1="0" y1="0" x2="0" y2="1" gradientUnits="boundingBox">
|
||||
<stop offset="0%" stop-color="rgb(255, 186, 0)" />
|
||||
<stop offset="20%" stop-color="rgb(255, 238, 168)" />
|
||||
<stop offset="25%" stop-color="rgb(255, 238, 168)" />
|
||||
<stop offset="100%" stop-color="rgb(255, 155, 0)" />
|
||||
</linearGradient>
|
||||
</defs>
|
||||
|
||||
<rect x="0" y="0" rx="'.($h*$border_radius).'px" ry="'.($h*$border_radius).'px" width="'.$w.'" height="'.$h.'" fill="url(#GrGRAY)" stroke="none" />
|
||||
';
|
||||
|
||||
if ($value) {
|
||||
$barw = (($value-$min) / ($max-$min) ) * $w;
|
||||
if ($optimum < $low) {
|
||||
if ($value < $low) { $barcol = 'url(#GrGREEN)'; }
|
||||
else if ($value > $high) { $barcol = 'url(#GrRED)'; }
|
||||
else { $barcol = 'url(#GrORANGE)'; }
|
||||
}
|
||||
else if ($optimum > $high) {
|
||||
if ($value < $low) { $barcol = 'url(#GrRED)'; }
|
||||
else if ($value > $high) { $barcol = 'url(#GrGREEN)'; }
|
||||
else { $barcol = 'url(#GrORANGE)'; }
|
||||
}
|
||||
else {
|
||||
if ($value < $low) { $barcol = 'url(#GrORANGE)'; }
|
||||
else if ($value > $high) { $barcol = 'url(#GrORANGE)'; }
|
||||
else { $barcol = 'url(#GrGREEN)'; }
|
||||
}
|
||||
$svg .= '<rect x="0" y="0" rx="'.($h*$border_radius).'px" ry="'.($h*$border_radius).'px" width="'.$barw.'" height="'.$h.'" fill="'.$barcol.'" stroke="none" />';
|
||||
}
|
||||
|
||||
|
||||
// Borders
|
||||
//$svg .= '<rect x="0" y="0" rx="'.($h*$border_radius).'px" ry="'.($h*$border_radius).'px" width="'.$w.'" height="'.$h.'" fill="none" stroke="#888888" stroke-width="0.5px" />';
|
||||
if ($value) {
|
||||
// $svg .= '<rect x="0" y="0" rx="'.($h*$border_radius).'px" ry="'.($h*$border_radius).'px" width="'.$barw.'" height="'.$h.'" fill="none" stroke="#888888" stroke-width="0.5px" />';
|
||||
}
|
||||
|
||||
|
||||
$svg .= '</g></svg>';
|
||||
}
|
||||
}
|
||||
else { // $tag == 'progress'
|
||||
|
||||
if ($type=='2') {
|
||||
/////////////////////////////////////////////////////////////////////////////////////
|
||||
///////// CUSTOM <progress type="2">
|
||||
/////////////////////////////////////////////////////////////////////////////////////
|
||||
}
|
||||
else {
|
||||
/////////////////////////////////////////////////////////////////////////////////////
|
||||
///////// DEFAULT <progress>
|
||||
/////////////////////////////////////////////////////////////////////////////////////
|
||||
$h = 10;
|
||||
$w = 100;
|
||||
$border_radius = 0.143; // Factor of Height
|
||||
|
||||
if ($value or $value==='0') {
|
||||
$fill = 'url(#GrGRAY)';
|
||||
}
|
||||
else {
|
||||
$fill = '#f8f8f8';
|
||||
}
|
||||
|
||||
$svg = '<svg width="'.$w.'px" height="'.$h.'px" viewBox="0 0 '.$w.' '.$h.'"><g>
|
||||
|
||||
<defs>
|
||||
<linearGradient id="GrGRAY" x1="0" y1="0" x2="0" y2="1" gradientUnits="boundingBox">
|
||||
<stop offset="0%" stop-color="rgb(222, 222, 222)" />
|
||||
<stop offset="20%" stop-color="rgb(232, 232, 232)" />
|
||||
<stop offset="25%" stop-color="rgb(232, 232, 232)" />
|
||||
<stop offset="100%" stop-color="rgb(182, 182, 182)" />
|
||||
</linearGradient>
|
||||
|
||||
<linearGradient id="GrGREEN" x1="0" y1="0" x2="0" y2="1" gradientUnits="boundingBox">
|
||||
<stop offset="0%" stop-color="rgb(102, 230, 102)" />
|
||||
<stop offset="20%" stop-color="rgb(218, 255, 218)" />
|
||||
<stop offset="25%" stop-color="rgb(218, 255, 218)" />
|
||||
<stop offset="100%" stop-color="rgb(0, 148, 0)" />
|
||||
</linearGradient>
|
||||
|
||||
</defs>
|
||||
|
||||
<rect x="0" y="0" rx="'.($h*$border_radius).'px" ry="'.($h*$border_radius).'px" width="'.$w.'" height="'.$h.'" fill="'.$fill.'" stroke="none" />
|
||||
';
|
||||
|
||||
if ($value) {
|
||||
$barw = (($value-$min) / ($max-$min) ) * $w;
|
||||
$barcol = 'url(#GrGREEN)';
|
||||
$svg .= '<rect x="0" y="0" rx="'.($h*$border_radius).'px" ry="'.($h*$border_radius).'px" width="'.$barw.'" height="'.$h.'" fill="'.$barcol.'" stroke="none" />';
|
||||
}
|
||||
|
||||
|
||||
// Borders
|
||||
$svg .= '<rect x="0" y="0" rx="'.($h*$border_radius).'px" ry="'.($h*$border_radius).'px" width="'.$w.'" height="'.$h.'" fill="none" stroke="#888888" stroke-width="0.5px" />';
|
||||
if ($value) {
|
||||
// $svg .= '<rect x="0" y="0" rx="'.($h*$border_radius).'px" ry="'.($h*$border_radius).'px" width="'.$barw.'" height="'.$h.'" fill="none" stroke="#888888" stroke-width="0.5px" />';
|
||||
}
|
||||
|
||||
|
||||
$svg .= '</g></svg>';
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
return $svg;
|
||||
}
|
||||
|
||||
|
||||
} // end of class
|
||||
|
||||
?>
|
1550
dk-pdf/includes/mpdf60/classes/mpdfform.php
Executable file
1550
dk-pdf/includes/mpdf60/classes/mpdfform.php
Executable file
File diff suppressed because it is too large
Load Diff
481
dk-pdf/includes/mpdf60/classes/myanmar.php
Executable file
481
dk-pdf/includes/mpdf60/classes/myanmar.php
Executable file
@ -0,0 +1,481 @@
|
||||
<?php
|
||||
|
||||
|
||||
class MYANMAR {
|
||||
|
||||
/* FROM hb-ot-shape-complex-indic-private.hh */
|
||||
// indic_category
|
||||
const OT_X = 0;
|
||||
const OT_C = 1;
|
||||
const OT_V = 2;
|
||||
const OT_N = 3;
|
||||
const OT_H = 4;
|
||||
const OT_ZWNJ = 5;
|
||||
const OT_ZWJ = 6;
|
||||
const OT_M = 7; /* Matra or Dependent Vowel */
|
||||
const OT_SM = 8;
|
||||
const OT_VD = 9;
|
||||
const OT_A = 10;
|
||||
const OT_NBSP = 11;
|
||||
const OT_DOTTEDCIRCLE = 12; /* Not in the spec, but special in Uniscribe. /Very very/ special! */
|
||||
const OT_RS = 13; /* Register Shifter, used in Khmer OT spec */
|
||||
const OT_Coeng = 14;
|
||||
const OT_Repha = 15;
|
||||
const OT_Ra = 16; /* Not explicitly listed in the OT spec, but used in the grammar. */
|
||||
const OT_CM = 17;
|
||||
|
||||
/* FROM hb-ot-shape-complex-myanmar.hh */
|
||||
// myanmar_category
|
||||
const OT_DB = 3; // same as INDIC::OT_N; /* Dot below */
|
||||
const OT_GB = 12; // same as INDIC::OT_DOTTEDCIRCLE;
|
||||
|
||||
const OT_As = 18; /* Asat */
|
||||
const OT_D = 19; /* Digits except zero */
|
||||
const OT_D0 = 20; /* Digit zero */
|
||||
const OT_MH = 21; /* Various consonant medial types */
|
||||
const OT_MR = 22; /* Various consonant medial types */
|
||||
const OT_MW = 23; /* Various consonant medial types */
|
||||
const OT_MY = 24; /* Various consonant medial types */
|
||||
const OT_PT = 25; /* Pwo and other tones */
|
||||
const OT_VAbv = 26;
|
||||
const OT_VBlw = 27;
|
||||
const OT_VPre = 28;
|
||||
const OT_VPst = 29;
|
||||
const OT_VS = 30; /* Variation selectors */
|
||||
|
||||
|
||||
// Based on myanmar_category used to make string to find syllables
|
||||
// OT_ to string character (using e.g. OT_C from MYANMAR) hb-ot-shape-complex-myanmar-private.hh
|
||||
public static $myanmar_category_char = array(
|
||||
'x',
|
||||
'C',
|
||||
'V',
|
||||
'N',
|
||||
'H',
|
||||
'Z',
|
||||
'J',
|
||||
'x',
|
||||
'S',
|
||||
'x',
|
||||
'A',
|
||||
'x',
|
||||
'D',
|
||||
'x',
|
||||
'x',
|
||||
'x',
|
||||
'R',
|
||||
'x',
|
||||
|
||||
|
||||
'a', /* As Asat */
|
||||
'd', /* Digits except zero */
|
||||
'o', /* Digit zero */
|
||||
'k', /* Medial types */
|
||||
'l', /* Medial types */
|
||||
'm', /* Medial types */
|
||||
'n', /* Medial types */
|
||||
'p', /* Pwo and other tones */
|
||||
'v', /* Vowel aboVe */
|
||||
'b', /* Vowel Below */
|
||||
'e', /* Vowel prE */
|
||||
't', /* Vowel posT */
|
||||
's', /* variation Selector */
|
||||
|
||||
);
|
||||
|
||||
|
||||
/* Visual positions in a syllable from left to right. */
|
||||
/* FROM hb-ot-shape-complex-myanmar-private.hh */
|
||||
// myanmar_position
|
||||
const POS_START = 0;
|
||||
|
||||
const POS_RA_TO_BECOME_REPH = 1;
|
||||
const POS_PRE_M = 2;
|
||||
const POS_PRE_C = 3;
|
||||
|
||||
const POS_BASE_C = 4;
|
||||
const POS_AFTER_MAIN = 5;
|
||||
|
||||
const POS_ABOVE_C = 6;
|
||||
|
||||
const POS_BEFORE_SUB = 7;
|
||||
const POS_BELOW_C = 8;
|
||||
const POS_AFTER_SUB = 9;
|
||||
|
||||
const POS_BEFORE_POST = 10;
|
||||
const POS_POST_C = 11;
|
||||
const POS_AFTER_POST = 12;
|
||||
|
||||
const POS_FINAL_C = 13;
|
||||
const POS_SMVD = 14;
|
||||
|
||||
const POS_END = 15;
|
||||
|
||||
|
||||
|
||||
public static function set_myanmar_properties(&$info) {
|
||||
$u = $info['uni'];
|
||||
$type = self::myanmar_get_categories($u);
|
||||
$cat = ($type & 0x7F);
|
||||
$pos = ($type >> 8);
|
||||
/*
|
||||
* Re-assign category
|
||||
* http://www.microsoft.com/typography/OpenTypeDev/myanmar/intro.htm#analyze
|
||||
*/
|
||||
if (self::in_range($u, 0xFE00, 0xFE0F))
|
||||
$cat = self::OT_VS;
|
||||
else if ($u == 0x200C) $cat = self::OT_ZWNJ;
|
||||
else if ($u == 0x200D) $cat = self::OT_ZWJ;
|
||||
|
||||
switch ($u) {
|
||||
case 0x002D: case 0x00A0: case 0x00D7: case 0x2012:
|
||||
case 0x2013: case 0x2014: case 0x2015: case 0x2022:
|
||||
case 0x25CC: case 0x25FB: case 0x25FC: case 0x25FD:
|
||||
case 0x25FE:
|
||||
$cat = self::OT_GB;
|
||||
break;
|
||||
|
||||
case 0x1004: case 0x101B: case 0x105A:
|
||||
$cat = self::OT_Ra;
|
||||
break;
|
||||
|
||||
case 0x1032: case 0x1036:
|
||||
$cat = self::OT_A;
|
||||
break;
|
||||
|
||||
case 0x103A:
|
||||
$cat = self::OT_As;
|
||||
break;
|
||||
|
||||
case 0x1041: case 0x1042: case 0x1043: case 0x1044:
|
||||
case 0x1045: case 0x1046: case 0x1047: case 0x1048:
|
||||
case 0x1049: case 0x1090: case 0x1091: case 0x1092:
|
||||
case 0x1093: case 0x1094: case 0x1095: case 0x1096:
|
||||
case 0x1097: case 0x1098: case 0x1099:
|
||||
$cat = self::OT_D;
|
||||
break;
|
||||
|
||||
case 0x1040:
|
||||
$cat = self::OT_D; /* XXX The spec says D0, but Uniscribe doesn't seem to do. */
|
||||
break;
|
||||
|
||||
case 0x103E: case 0x1060:
|
||||
$cat = self::OT_MH;
|
||||
break;
|
||||
|
||||
case 0x103C:
|
||||
$cat = self::OT_MR;
|
||||
break;
|
||||
|
||||
case 0x103D: case 0x1082:
|
||||
$cat = self::OT_MW;
|
||||
break;
|
||||
|
||||
case 0x103B: case 0x105E: case 0x105F:
|
||||
$cat = self::OT_MY;
|
||||
break;
|
||||
|
||||
case 0x1063: case 0x1064: case 0x1069: case 0x106A:
|
||||
case 0x106B: case 0x106C: case 0x106D: case 0xAA7B:
|
||||
$cat = self::OT_PT;
|
||||
break;
|
||||
|
||||
case 0x1038: case 0x1087: case 0x1088: case 0x1089:
|
||||
case 0x108A: case 0x108B: case 0x108C: case 0x108D:
|
||||
case 0x108F: case 0x109A: case 0x109B: case 0x109C:
|
||||
$cat = self::OT_SM;
|
||||
break;
|
||||
}
|
||||
|
||||
if ($cat == self::OT_M) {
|
||||
switch ($pos) {
|
||||
case self::POS_PRE_C:
|
||||
$cat = self::OT_VPre;
|
||||
$pos = self::POS_PRE_M;
|
||||
break;
|
||||
case self::POS_ABOVE_C: $cat = self::OT_VAbv; break;
|
||||
case self::POS_BELOW_C: $cat = self::OT_VBlw; break;
|
||||
case self::POS_POST_C: $cat = self::OT_VPst; break;
|
||||
}
|
||||
}
|
||||
$info['myanmar_category'] = $cat;
|
||||
$info['myanmar_position'] = $pos;
|
||||
}
|
||||
|
||||
// syllable_type
|
||||
const CONSONANT_SYLLABLE = 0;
|
||||
const BROKEN_CLUSTER = 3;
|
||||
const NON_MYANMAR_CLUSTER = 4;
|
||||
|
||||
|
||||
|
||||
public static function set_syllables(&$o, $s, &$broken_syllables) {
|
||||
$ptr = 0;
|
||||
$syllable_serial = 1;
|
||||
$broken_syllables = false;
|
||||
|
||||
while($ptr < strlen($s)) {
|
||||
$match = '';
|
||||
$syllable_length = 1;
|
||||
$syllable_type = self::NON_MYANMAR_CLUSTER ;
|
||||
// CONSONANT_SYLLABLE Consonant syllable
|
||||
// From OT spec:
|
||||
if (preg_match('/^(RaH)?([C|R]|V|d|D)[s]?(H([C|R|V])[s]?)*(H|[a]*[n]?[l]?((m[k]?|k)[a]?)?[e]*[v]*[b]*[A]*(N[a]?)?(t[k]?[a]*[v]*[A]*(N[a]?)?)*(p[A]*(N[a]?)?)*S*[J|Z]?)/', substr($s,$ptr), $ma)) {
|
||||
$syllable_length = strlen($ma[0]);
|
||||
$syllable_type = self::CONSONANT_SYLLABLE ;
|
||||
}
|
||||
|
||||
// BROKEN_CLUSTER syllable
|
||||
else if (preg_match('/^(RaH)?s?(H|[a]*[n]?[l]?((m[k]?|k)[a]?)?[e]*[v]*[b]*[A]*(N[a]?)?(t[k]?[a]*[v]*[A]*(N[a]?)?)*(p[A]*(N[a]?)?)*S*[J|Z]?)/', substr($s,$ptr), $ma)) {
|
||||
if (strlen($ma[0])) { // May match blank
|
||||
$syllable_length = strlen($ma[0]);
|
||||
$syllable_type = self::BROKEN_CLUSTER ;
|
||||
$broken_syllables = true;
|
||||
}
|
||||
}
|
||||
for ($i = $ptr; $i < $ptr+$syllable_length; $i++) { $o[$i]['syllable'] = ($syllable_serial << 4) | $syllable_type; }
|
||||
$ptr += $syllable_length ;
|
||||
$syllable_serial++;
|
||||
if ($syllable_serial == 16) $syllable_serial = 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
public static function reordering(&$info, $GSUBdata, $broken_syllables, $dottedcircle) {
|
||||
if ($broken_syllables && $dottedcircle) { self::insert_dotted_circles ($info, $dottedcircle); }
|
||||
$count = count($info);
|
||||
if (!$count) return;
|
||||
$last = 0;
|
||||
$last_syllable = $info[0]['syllable'];
|
||||
for ($i = 1; $i < $count; $i++) {
|
||||
if ($last_syllable != $info[$i]['syllable']) {
|
||||
self::reordering_syllable ($info, $GSUBdata, $last, $i);
|
||||
$last = $i;
|
||||
$last_syllable = $info[$last]['syllable'];
|
||||
}
|
||||
}
|
||||
self::reordering_syllable($info, $GSUBdata, $last, $count);
|
||||
}
|
||||
|
||||
public static function insert_dotted_circles(&$info, $dottedcircle) {
|
||||
$idx = 0;
|
||||
$last_syllable = 0;
|
||||
while ($idx < count($info)) {
|
||||
$syllable = $info[$idx]['syllable'];
|
||||
$syllable_type = ($syllable & 0x0F);
|
||||
if ($last_syllable != $syllable && $syllable_type == self::BROKEN_CLUSTER) {
|
||||
$last_syllable = $syllable;
|
||||
$dottedcircle[0]['syllable'] = $info[$idx]['syllable'];
|
||||
array_splice($info, $idx, 0, $dottedcircle);
|
||||
}
|
||||
else
|
||||
$idx++;
|
||||
}
|
||||
// In case of final bloken cluster...
|
||||
$syllable = $info[$idx]['syllable'];
|
||||
$syllable_type = ($syllable & 0x0F);
|
||||
if ($last_syllable != $syllable && $syllable_type == self::BROKEN_CLUSTER) {
|
||||
$dottedcircle[0]['syllable'] = $info[$idx]['syllable'];
|
||||
array_splice($info, $idx, 0, $dottedcircle);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Rules from:
|
||||
* https://www.microsoft.com/typography/otfntdev/devanot/shaping.aspx */
|
||||
|
||||
public static function reordering_syllable (&$info, $GSUBdata, $start, $end) {
|
||||
/* vowel_syllable: We made the vowels look like consonants. So uses the consonant logic! */
|
||||
/* broken_cluster: We already inserted dotted-circles, so just call the standalone_cluster. */
|
||||
|
||||
$syllable_type = ($info[$start]['syllable'] & 0x0F);
|
||||
if ($syllable_type==self::NON_MYANMAR_CLUSTER ) { return; }
|
||||
if ($syllable_type==self::BROKEN_CLUSTER) {
|
||||
//if ($uniscribe_bug_compatible) {
|
||||
/* For dotted-circle, this is what Uniscribe does:
|
||||
* If dotted-circle is the last glyph, it just does nothing.
|
||||
* i.e. It doesn't form Reph. */
|
||||
if ($info[$end - 1]['myanmar_category'] == self::OT_DOTTEDCIRCLE) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
$base = $end;
|
||||
$has_reph = false;
|
||||
$limit = $start;
|
||||
|
||||
if (($start + 3 <= $end) &&
|
||||
$info[$start]['myanmar_category'] == self::OT_Ra &&
|
||||
$info[$start+1]['myanmar_category'] == self::OT_As &&
|
||||
$info[$start+2]['myanmar_category'] == self::OT_H ) {
|
||||
$limit += 3;
|
||||
$base = $start;
|
||||
$has_reph = true;
|
||||
}
|
||||
|
||||
if (!$has_reph)
|
||||
$base = $limit;
|
||||
|
||||
for ($i = $limit; $i < $end; $i++) {
|
||||
if (self::is_consonant($info[$i])) {
|
||||
$base = $i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Reorder! */
|
||||
$i = $start;
|
||||
for (; $i < $start + ($has_reph ? 3 : 0); $i++)
|
||||
$info[$i]['myanmar_position'] = self::POS_AFTER_MAIN;
|
||||
for (; $i < $base; $i++)
|
||||
$info[$i]['myanmar_position'] = self::POS_PRE_C;
|
||||
if ($i < $end) {
|
||||
$info[$i]['myanmar_position'] = self::POS_BASE_C;
|
||||
$i++;
|
||||
}
|
||||
$pos = self::POS_AFTER_MAIN;
|
||||
/* The following loop may be ugly, but it implements all of
|
||||
* Myanmar reordering! */
|
||||
for (; $i < $end; $i++) {
|
||||
if ($info[$i]['myanmar_category'] == self::OT_MR) /* Pre-base reordering */
|
||||
{
|
||||
$info[$i]['myanmar_position'] = self::POS_PRE_C;
|
||||
continue;
|
||||
}
|
||||
if ($info[$i]['myanmar_position'] < self::POS_BASE_C) /* Left matra */
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if ($pos == self::POS_AFTER_MAIN && $info[$i]['myanmar_category'] == self::OT_VBlw)
|
||||
{
|
||||
$pos = self::POS_BELOW_C;
|
||||
$info[$i]['myanmar_position'] = $pos;
|
||||
continue;
|
||||
}
|
||||
|
||||
if ($pos == self::POS_BELOW_C && $info[$i]['myanmar_category'] == self::OT_A)
|
||||
{
|
||||
$info[$i]['myanmar_position'] = self::POS_BEFORE_SUB;
|
||||
continue;
|
||||
}
|
||||
if ($pos == self::POS_BELOW_C && $info[$i]['myanmar_category'] == self::OT_VBlw)
|
||||
{
|
||||
$info[$i]['myanmar_position'] = $pos;
|
||||
continue;
|
||||
}
|
||||
if ($pos == self::POS_BELOW_C && $info[$i]['myanmar_category'] != self::OT_A)
|
||||
{
|
||||
$pos = self::POS_AFTER_SUB;
|
||||
$info[$i]['myanmar_position'] = $pos;
|
||||
continue;
|
||||
}
|
||||
$info[$i]['myanmar_position'] = $pos;
|
||||
}
|
||||
|
||||
|
||||
/* Sit tight, rock 'n roll! */
|
||||
self::bubble_sort ($info, $start, $end - $start);
|
||||
|
||||
}
|
||||
|
||||
|
||||
public static function is_one_of ($info, $flags) {
|
||||
if (isset($info['is_ligature']) && $info['is_ligature']) return false; /* If it ligated, all bets are off. */
|
||||
return !!(self::FLAG($info['myanmar_category']) & $flags);
|
||||
}
|
||||
|
||||
/* Vowels and placeholders treated as if they were consonants. */
|
||||
public static function is_consonant($info) {
|
||||
return self::is_one_of($info, (self::FLAG(self::OT_C) | self::FLAG(self::OT_CM) | self::FLAG(self::OT_Ra) | self::FLAG(self::OT_V) | self::FLAG(self::OT_NBSP) | self::FLAG(self::OT_GB)));
|
||||
}
|
||||
|
||||
|
||||
|
||||
// From hb-private.hh
|
||||
public static function in_range ($u, $lo, $hi) {
|
||||
if ( (($lo^$hi) & $lo) == 0 && (($lo^$hi) & $hi) == ($lo^$hi) && (($lo^$hi) & (($lo^$hi) + 1)) == 0 )
|
||||
return ($u & ~($lo^$hi)) == $lo;
|
||||
else
|
||||
return $lo <= $u && $u <= $hi;
|
||||
}
|
||||
|
||||
// From hb-private.hh
|
||||
public static function FLAG($x) { return (1<<($x)); }
|
||||
|
||||
public static function FLAG_RANGE($x,$y) { self::FLAG(y+1) - self::FLAG(x); }
|
||||
|
||||
|
||||
|
||||
// BELOW from hb-ot-shape-complex-indic.cc
|
||||
// see INDIC for details
|
||||
|
||||
public static $myanmar_table = array(
|
||||
|
||||
/* Myanmar (1000..109F) */
|
||||
|
||||
/* 1000 */ 3841, 3841, 3841, 3841, 3841, 3841, 3841, 3841,
|
||||
/* 1008 */ 3841, 3841, 3841, 3841, 3841, 3841, 3841, 3841,
|
||||
/* 1010 */ 3841, 3841, 3841, 3841, 3841, 3841, 3841, 3841,
|
||||
/* 1018 */ 3841, 3841, 3841, 3841, 3841, 3841, 3841, 3841,
|
||||
/* 1020 */ 3841, 3842, 3842, 3842, 3842, 3842, 3842, 3842,
|
||||
/* 1028 */ 3842, 3842, 3842, 2823, 2823, 1543, 1543, 2055,
|
||||
/* 1030 */ 2055, 775, 1543, 1543, 1543, 1543, 3848, 3843,
|
||||
/* 1038 */ 3848, 3844, 1540, 3857, 3857, 3857, 3857, 3841,
|
||||
/* 1040 */ 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840,
|
||||
/* 1048 */ 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840,
|
||||
/* 1050 */ 3841, 3841, 3842, 3842, 3842, 3842, 2823, 2823,
|
||||
/* 1058 */ 2055, 2055, 3841, 3841, 3841, 3841, 3857, 3857,
|
||||
/* 1060 */ 3857, 3841, 2823, 3843, 3843, 3841, 3841, 2823,
|
||||
/* 1068 */ 2823, 3843, 3843, 3843, 3843, 3843, 3841, 3841,
|
||||
/* 1070 */ 3841, 1543, 1543, 1543, 1543, 3841, 3841, 3841,
|
||||
/* 1078 */ 3841, 3841, 3841, 3841, 3841, 3841, 3841, 3841,
|
||||
/* 1080 */ 3841, 3841, 3857, 2823, 775, 1543, 1543, 3843,
|
||||
/* 1088 */ 3843, 3843, 3843, 3843, 3843, 3843, 3841, 3843,
|
||||
/* 1090 */ 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840,
|
||||
/* 1098 */ 3840, 3840, 3843, 3843, 2823, 1543, 3840, 3840,
|
||||
|
||||
/* Myanmar Extended-A (AA60..AA7F) */
|
||||
|
||||
/* AA60 */ 3841, 3841, 3841, 3841, 3841, 3841, 3841, 3841,
|
||||
/* AA68 */ 3841, 3841, 3841, 3841, 3841, 3841, 3841, 3841,
|
||||
/* AA70 */ 3840, 3841, 3841, 3841, 3840, 3840, 3840, 3840,
|
||||
/* AA78 */ 3840, 3840, 3841, 3843, 3840, 3840, 3840, 3840,
|
||||
|
||||
|
||||
);
|
||||
|
||||
// from "hb-ot-shape-complex-indic-table.cc"
|
||||
public static function myanmar_get_categories ($u) {
|
||||
if (0x1000 <= $u && $u <= 0x109F) return self::$myanmar_table[$u - 0x1000 + 0]; // offset 0 for Most "myanmar"
|
||||
if (0xAA60 <= $u && $u <= 0xAA7F) return self::$myanmar_table[$u - 0xAA60 + 160]; // offset for extensions
|
||||
if ($u == 0x00A0) return 3851; // (ISC_CP | (IMC_x << 8))
|
||||
if ($u == 0x25CC) return 3851; // (ISC_CP | (IMC_x << 8))
|
||||
return 3840; // (ISC_x | (IMC_x << 8))
|
||||
}
|
||||
|
||||
|
||||
public static function bubble_sort(&$arr, $start, $len) {
|
||||
if ($len<2) { return;}
|
||||
$k = $start+$len-2;
|
||||
while ($k >= $start) {
|
||||
for ($j=$start; $j<=$k; $j++) {
|
||||
if ($arr[$j]['myanmar_position'] > $arr[$j + 1]['myanmar_position']) {
|
||||
$t = $arr[$j];
|
||||
$arr[$j] = $arr[$j + 1];
|
||||
$arr[$j + 1] = $t;
|
||||
}
|
||||
}
|
||||
$k--;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
} // end Class
|
||||
|
||||
?>
|
5719
dk-pdf/includes/mpdf60/classes/otl.php
Executable file
5719
dk-pdf/includes/mpdf60/classes/otl.php
Executable file
File diff suppressed because it is too large
Load Diff
3897
dk-pdf/includes/mpdf60/classes/otl_dump.php
Executable file
3897
dk-pdf/includes/mpdf60/classes/otl_dump.php
Executable file
File diff suppressed because it is too large
Load Diff
349
dk-pdf/includes/mpdf60/classes/sea.php
Executable file
349
dk-pdf/includes/mpdf60/classes/sea.php
Executable file
@ -0,0 +1,349 @@
|
||||
<?php
|
||||
|
||||
|
||||
class SEA {
|
||||
|
||||
// South East Asian shaper
|
||||
|
||||
// sea_category
|
||||
const OT_X = 0;
|
||||
const OT_C = 1;
|
||||
const OT_IV = 2; # Independent Vowel
|
||||
const OT_T = 3; # Tone Marks
|
||||
const OT_H = 4; # Halant
|
||||
const OT_A = 10; # Anusvara
|
||||
const OT_GB = 12; # Generic Base (OT_DOTTEDCIRCLE in Indic)
|
||||
const OT_CM = 17; # Consonant Medial
|
||||
const OT_MR = 22; # Medial Ra
|
||||
const OT_VAbv = 26;
|
||||
const OT_VBlw = 27;
|
||||
const OT_VPre = 28;
|
||||
const OT_VPst = 29;
|
||||
// ? From Indic categories
|
||||
const OT_ZWNJ = 5;
|
||||
const OT_ZWJ = 6;
|
||||
const OT_M = 7;
|
||||
const OT_SM = 8;
|
||||
const OT_VD = 9;
|
||||
const OT_NBSP = 11;
|
||||
const OT_RS = 13;
|
||||
const OT_Coeng = 14;
|
||||
const OT_Repha = 15;
|
||||
const OT_Ra = 16;
|
||||
|
||||
// Based on sea_category used to make string to find syllables
|
||||
// OT_ to string character (using e.g. OT_C from INDIC) hb-ot-shape-complex-sea-private.hh
|
||||
public static $sea_category_char = array(
|
||||
'x',
|
||||
'C',
|
||||
'V',
|
||||
'T',
|
||||
'H',
|
||||
'x',
|
||||
'x',
|
||||
'x',
|
||||
'x',
|
||||
'x',
|
||||
'A',
|
||||
'x',
|
||||
'G',
|
||||
'x',
|
||||
'x',
|
||||
'x',
|
||||
'x',
|
||||
'M',
|
||||
'x',
|
||||
'x',
|
||||
'x',
|
||||
'x',
|
||||
'R',
|
||||
'x',
|
||||
'x',
|
||||
'x',
|
||||
'a',
|
||||
'b',
|
||||
'p',
|
||||
't',
|
||||
);
|
||||
|
||||
|
||||
/* Visual positions in a syllable from left to right. */
|
||||
// sea_position
|
||||
const POS_START = 0;
|
||||
|
||||
const POS_RA_TO_BECOME_REPH = 1;
|
||||
const POS_PRE_M = 2;
|
||||
const POS_PRE_C = 3;
|
||||
|
||||
const POS_BASE_C = 4;
|
||||
const POS_AFTER_MAIN = 5;
|
||||
|
||||
const POS_ABOVE_C = 6;
|
||||
|
||||
const POS_BEFORE_SUB = 7;
|
||||
const POS_BELOW_C = 8;
|
||||
const POS_AFTER_SUB = 9;
|
||||
|
||||
const POS_BEFORE_POST = 10;
|
||||
const POS_POST_C = 11;
|
||||
const POS_AFTER_POST = 12;
|
||||
|
||||
const POS_FINAL_C = 13;
|
||||
const POS_SMVD = 14;
|
||||
|
||||
const POS_END = 15;
|
||||
|
||||
|
||||
|
||||
public static function set_sea_properties(&$info, $scriptblock ) {
|
||||
$u = $info['uni'];
|
||||
$type = self::sea_get_categories($u);
|
||||
$cat = ($type & 0x7F);
|
||||
$pos = ($type >> 8);
|
||||
|
||||
/*
|
||||
* Re-assign category
|
||||
*/
|
||||
// Medial Ra
|
||||
if ($u == 0x1A55 || $u == 0xAA34) { $cat = self::OT_MR; }
|
||||
|
||||
/*
|
||||
* Re-assign position.
|
||||
*/
|
||||
if ($cat == self::OT_M) { // definitely "OT_M" in HarfBuzz - although this does not seem to have been defined ? should be OT_MR
|
||||
switch ($pos) {
|
||||
case self::POS_PRE_C: $cat = self::OT_VPre; break;
|
||||
case self::POS_ABOVE_C: $cat = self::OT_VAbv; break;
|
||||
case self::POS_BELOW_C: $cat = self::OT_VBlw; break;
|
||||
case self::POS_POST_C: $cat = self::OT_VPst; break;
|
||||
}
|
||||
}
|
||||
|
||||
$info['sea_category'] = $cat;
|
||||
$info['sea_position'] = $pos;
|
||||
}
|
||||
|
||||
// syllable_type
|
||||
const CONSONANT_SYLLABLE = 0;
|
||||
const BROKEN_CLUSTER = 1;
|
||||
const NON_SEA_CLUSTER = 2;
|
||||
|
||||
|
||||
|
||||
public static function set_syllables(&$o, $s, &$broken_syllables) {
|
||||
$ptr = 0;
|
||||
$syllable_serial = 1;
|
||||
$broken_syllables = false;
|
||||
while($ptr < strlen($s)) {
|
||||
$match = '';
|
||||
$syllable_length = 1;
|
||||
$syllable_type = self::NON_SEA_CLUSTER ;
|
||||
|
||||
// CONSONANT_SYLLABLE Consonant syllable
|
||||
if (preg_match('/^(C|V|G)(p|a|b|t|HC|M|R|T|A)*/', substr($s,$ptr), $ma)) {
|
||||
$syllable_length = strlen($ma[0]);
|
||||
$syllable_type = self::CONSONANT_SYLLABLE ;
|
||||
}
|
||||
// BROKEN_CLUSTER syllable
|
||||
else if (preg_match('/^(p|a|b|t|HC|M|R|T|A)+/', substr($s,$ptr), $ma)) {
|
||||
$syllable_length = strlen($ma[0]);
|
||||
$syllable_type = self::BROKEN_CLUSTER ;
|
||||
$broken_syllables = true;
|
||||
}
|
||||
|
||||
for ($i = $ptr; $i < $ptr+$syllable_length; $i++) { $o[$i]['syllable'] = ($syllable_serial << 4) | $syllable_type; }
|
||||
$ptr += $syllable_length ;
|
||||
$syllable_serial++;
|
||||
if ($syllable_serial == 16) $syllable_serial = 1;
|
||||
}
|
||||
}
|
||||
|
||||
public static function initial_reordering(&$info, $GSUBdata, $broken_syllables, $scriptblock, $dottedcircle) {
|
||||
|
||||
if ($broken_syllables && $dottedcircle) { self::insert_dotted_circles ($info, $dottedcircle); }
|
||||
|
||||
$count = count($info);
|
||||
if (!$count) return;
|
||||
$last = 0;
|
||||
$last_syllable = $info[0]['syllable'];
|
||||
for ($i = 1; $i < $count; $i++) {
|
||||
if ($last_syllable != $info[$i]['syllable']) {
|
||||
self::initial_reordering_syllable ($info, $GSUBdata, $scriptblock, $last, $i);
|
||||
$last = $i;
|
||||
$last_syllable = $info[$last]['syllable'];
|
||||
}
|
||||
}
|
||||
self::initial_reordering_syllable($info, $GSUBdata, $scriptblock, $last, $count);
|
||||
}
|
||||
|
||||
public static function insert_dotted_circles(&$info, $dottedcircle) {
|
||||
$idx = 0;
|
||||
$last_syllable = 0;
|
||||
while ($idx < count($info)) {
|
||||
$syllable = $info[$idx]['syllable'];
|
||||
$syllable_type = ($syllable & 0x0F);
|
||||
if ($last_syllable != $syllable && $syllable_type == self::BROKEN_CLUSTER) {
|
||||
$last_syllable = $syllable;
|
||||
$dottedcircle[0]['syllable'] = $info[$idx]['syllable'];
|
||||
array_splice($info, $idx, 0, $dottedcircle);
|
||||
}
|
||||
else
|
||||
$idx++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public static function initial_reordering_syllable (&$info, $GSUBdata, $scriptblock, $start, $end) {
|
||||
/* broken_cluster: We already inserted dotted-circles, so just call the standalone_cluster. */
|
||||
|
||||
$syllable_type = ($info[$start]['syllable'] & 0x0F);
|
||||
if ($syllable_type==self::NON_SEA_CLUSTER ) { return; }
|
||||
if ($syllable_type==self::BROKEN_CLUSTER) {
|
||||
/* For dotted-circle, this is what Uniscribe does:
|
||||
* If dotted-circle is the last glyph, it just does nothing. */
|
||||
if ($info[$end - 1]['sea_category'] == self::OT_GB) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
$base = $start;
|
||||
$i = $start;
|
||||
for (; $i < $base; $i++)
|
||||
$info[$i]['sea_position'] = self::POS_PRE_C;
|
||||
if ($i < $end) {
|
||||
$info[$i]['sea_position'] = self::POS_BASE_C;
|
||||
$i++;
|
||||
}
|
||||
for (; $i < $end; $i++) {
|
||||
if ($info[$i]['sea_category'] == self::OT_MR) { /* Pre-base reordering */
|
||||
$info[$i]['sea_position'] = self::POS_PRE_C;
|
||||
continue;
|
||||
}
|
||||
if ($info[$i]['sea_category'] == self::OT_VPre) { /* Left matra */
|
||||
$info[$i]['sea_position'] = self::POS_PRE_M;
|
||||
continue;
|
||||
}
|
||||
$info[$i]['sea_position'] = self::POS_AFTER_MAIN;
|
||||
}
|
||||
|
||||
/* Sit tight, rock 'n roll! */
|
||||
self::bubble_sort ($info, $start, $end - $start);
|
||||
|
||||
}
|
||||
|
||||
public static function final_reordering (&$info, $GSUBdata, $scriptblock) {
|
||||
$count = count($info);
|
||||
if (!$count) return;
|
||||
$last = 0;
|
||||
$last_syllable = $info[0]['syllable'];
|
||||
for ($i = 1; $i < $count; $i++) {
|
||||
if ($last_syllable != $info[$i]['syllable']) {
|
||||
self::final_reordering_syllable ($info, $GSUBdata, $scriptblock, $last, $i);
|
||||
$last = $i;
|
||||
$last_syllable = $info[$last]['syllable'];
|
||||
}
|
||||
}
|
||||
self::final_reordering_syllable ($info, $GSUBdata, $scriptblock, $last, $count);
|
||||
|
||||
}
|
||||
|
||||
public static function final_reordering_syllable (&$info, $GSUBdata, $scriptblock, $start, $end) {
|
||||
/*
|
||||
* Nothing to do here at present!
|
||||
*/
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public static $sea_table = array(
|
||||
|
||||
/* New Tai Lue (1980..19DF) */
|
||||
|
||||
/* 1980 */ 3841, 3841, 3841, 3841, 3841, 3841, 3841, 3841,
|
||||
/* 1988 */ 3841, 3841, 3841, 3841, 3841, 3841, 3841, 3841,
|
||||
/* 1990 */ 3841, 3841, 3841, 3841, 3841, 3841, 3841, 3841,
|
||||
/* 1998 */ 3841, 3841, 3841, 3841, 3841, 3841, 3841, 3841,
|
||||
/* 19A0 */ 3841, 3841, 3841, 3841, 3841, 3841, 3841, 3841,
|
||||
/* 19A8 */ 3841, 3841, 3841, 3841, 3840, 3840, 3840, 3840,
|
||||
/* 19B0 */ 2823, 2823, 2823, 2823, 2823, 775, 775, 775,
|
||||
/* 19B8 */ 2823, 2823, 775, 2823, 2823, 2823, 2823, 2823,
|
||||
/* 19C0 */ 2823, 3857, 3857, 3857, 3857, 3857, 3857, 3857,
|
||||
/* 19C8 */ 3843, 3843, 3840, 3840, 3840, 3840, 3840, 3840,
|
||||
/* 19D0 */ 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840,
|
||||
/* 19D8 */ 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840,
|
||||
|
||||
/* Tai Tham (1A20..1AAF) */
|
||||
|
||||
/* 1A20 */ 3841, 3841, 3841, 3841, 3841, 3841, 3841, 3841,
|
||||
/* 1A28 */ 3841, 3841, 3841, 3841, 3841, 3841, 3841, 3841,
|
||||
/* 1A30 */ 3841, 3841, 3841, 3841, 3841, 3841, 3841, 3841,
|
||||
/* 1A38 */ 3841, 3841, 3841, 3841, 3841, 3841, 3841, 3841,
|
||||
/* 1A40 */ 3841, 3841, 3841, 3841, 3841, 3841, 3841, 3841,
|
||||
/* 1A48 */ 3841, 3841, 3841, 3841, 3841, 3842, 3842, 3842,
|
||||
/* 1A50 */3842, 3842, 3842, 3841, 3841, 3857, 3857, 3857,
|
||||
/* 1A58 */ 3857, 3857, 3857, 3857, 3857, 3857, 3857, 3840,
|
||||
/* 1A60 */ 3844, 2823, 1543, 2823, 2823, 1543, 1543, 1543,
|
||||
/* 1A68 */ 1543, 2055, 2055, 1543, 2055, 2823, 775, 775,
|
||||
/* 1A70 */ 775, 775, 775, 1543, 1543, 3843, 3843, 3843,
|
||||
/* 1A78 */ 3843, 3843, 3840, 3840, 3840, 3840, 3840, 3840,
|
||||
/* 1A80 */ 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840,
|
||||
/* 1A88 */ 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840,
|
||||
/* 1A90 */ 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840,
|
||||
/* 1A98 */ 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840,
|
||||
/* 1AA0 */ 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840,
|
||||
/* 1AA8 */ 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840,
|
||||
|
||||
/* Cham (AA00..AA5F) */
|
||||
|
||||
/* AA00 */ 3842, 3842, 3842, 3842, 3842, 3842, 3841, 3841,
|
||||
/* AA08 */ 3841, 3841, 3841, 3841, 3841, 3841, 3841, 3841,
|
||||
/* AA10 */ 3841, 3841, 3841, 3841, 3841, 3841, 3841, 3841,
|
||||
/* AA18 */ 3841, 3841, 3841, 3841, 3841, 3841, 3841, 3841,
|
||||
/* AA20 */ 3841, 3841, 3841, 3841, 3841, 3841, 3841, 3841,
|
||||
/* AA28 */ 3841, 1543, 1543, 1543, 1543, 2055, 1543, 775,
|
||||
/* AA30 */ 775, 1543, 2055, 3857, 3857, 3857, 3857, 3840,
|
||||
/* AA38 */ 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840,
|
||||
/* AA40 */ 3857, 3857, 3857, 3857, 3857, 3857, 3857, 3857,
|
||||
/* AA48 */ 3857, 3857, 3857, 3857, 3857, 3857, 3840, 3840,
|
||||
/* AA50 */ 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840,
|
||||
/* AA58 */ 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840,
|
||||
|
||||
);
|
||||
|
||||
|
||||
|
||||
public static function sea_get_categories ($u) {
|
||||
if (0x1980 <= $u && $u <= 0x19DF) return self::$sea_table[$u - 0x1980]; // offset 0 for New Tai Lue
|
||||
if (0x1A20 <= $u && $u <= 0x1AAF) return self::$sea_table[$u - 0x1A20 + 96]; // offset for Tai Tham
|
||||
if (0xAA00 <= $u && $u <= 0xAA5F) return self::$sea_table[$u - 0xAA00 + 96 + 144]; // Cham
|
||||
if ($u == 0x00A0) return 3851; // (ISC_CP | (IMC_x << 8))
|
||||
if ($u == 0x25CC) return 3851; // (ISC_CP | (IMC_x << 8))
|
||||
return 3840; // (ISC_x | (IMC_x << 8))
|
||||
}
|
||||
|
||||
|
||||
public static function bubble_sort(&$arr, $start, $len) {
|
||||
if ($len<2) { return;}
|
||||
$k = $start+$len-2;
|
||||
while ($k >= $start) {
|
||||
for ($j=$start; $j<=$k; $j++) {
|
||||
if ($arr[$j]['sea_position'] > $arr[$j + 1]['sea_position']) {
|
||||
$t = $arr[$j];
|
||||
$arr[$j] = $arr[$j + 1];
|
||||
$arr[$j + 1] = $t;
|
||||
}
|
||||
}
|
||||
$k--;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
} // end Class
|
||||
|
||||
?>
|
3441
dk-pdf/includes/mpdf60/classes/svg.php
Executable file
3441
dk-pdf/includes/mpdf60/classes/svg.php
Executable file
File diff suppressed because it is too large
Load Diff
509
dk-pdf/includes/mpdf60/classes/tocontents.php
Executable file
509
dk-pdf/includes/mpdf60/classes/tocontents.php
Executable file
@ -0,0 +1,509 @@
|
||||
<?php
|
||||
|
||||
class tocontents {
|
||||
|
||||
var $mpdf = null;
|
||||
var $_toc;
|
||||
var $TOCmark;
|
||||
var $TOCoutdent; // mPDF 5.6.31
|
||||
var $TOCpreHTML;
|
||||
var $TOCpostHTML;
|
||||
var $TOCbookmarkText;
|
||||
var $TOCusePaging;
|
||||
var $TOCuseLinking;
|
||||
var $TOCorientation;
|
||||
var $TOC_margin_left;
|
||||
var $TOC_margin_right;
|
||||
var $TOC_margin_top;
|
||||
var $TOC_margin_bottom;
|
||||
var $TOC_margin_header;
|
||||
var $TOC_margin_footer;
|
||||
var $TOC_odd_header_name;
|
||||
var $TOC_even_header_name;
|
||||
var $TOC_odd_footer_name;
|
||||
var $TOC_even_footer_name;
|
||||
var $TOC_odd_header_value;
|
||||
var $TOC_even_header_value;
|
||||
var $TOC_odd_footer_value;
|
||||
var $TOC_even_footer_value;
|
||||
var $TOC_page_selector;
|
||||
var $TOC_resetpagenum; // mPDF 6
|
||||
var $TOC_pagenumstyle; // mPDF 6
|
||||
var $TOC_suppress; // mPDF 6
|
||||
var $m_TOC;
|
||||
|
||||
function tocontents(&$mpdf) {
|
||||
$this->mpdf = $mpdf;
|
||||
$this->_toc=array();
|
||||
$this->TOCmark = 0;
|
||||
$this->m_TOC=array();
|
||||
}
|
||||
|
||||
function TOCpagebreak($tocfont='', $tocfontsize='', $tocindent='', $TOCusePaging=true, $TOCuseLinking='', $toc_orientation='', $toc_mgl='',$toc_mgr='',$toc_mgt='',$toc_mgb='',$toc_mgh='',$toc_mgf='',$toc_ohname='',$toc_ehname='',$toc_ofname='',$toc_efname='',$toc_ohvalue=0,$toc_ehvalue=0,$toc_ofvalue=0, $toc_efvalue=0, $toc_preHTML='', $toc_postHTML='', $toc_bookmarkText='', $resetpagenum='', $pagenumstyle='', $suppress='', $orientation='', $mgl='',$mgr='',$mgt='',$mgb='',$mgh='',$mgf='',$ohname='',$ehname='',$ofname='',$efname='',$ohvalue=0,$ehvalue=0,$ofvalue=0,$efvalue=0, $toc_id=0, $pagesel='', $toc_pagesel='', $sheetsize='', $toc_sheetsize='', $tocoutdent='', $toc_resetpagenum='', $toc_pagenumstyle='', $toc_suppress='') { // mPDF 5.6.19 // mPDF 6
|
||||
if (strtoupper($toc_id)=='ALL') { $toc_id = '_mpdf_all'; }
|
||||
else if (!$toc_id) { $toc_id = 0; }
|
||||
else { $toc_id = strtolower($toc_id); }
|
||||
|
||||
if ($TOCusePaging === false || strtolower($TOCusePaging) == "off" || $TOCusePaging === 0 || $TOCusePaging === "0" || $TOCusePaging === "") { $TOCusePaging = false; }
|
||||
else { $TOCusePaging = true; }
|
||||
if (!$TOCuseLinking) { $TOCuseLinking = false; }
|
||||
if ($toc_id) {
|
||||
$this->m_TOC[$toc_id]['TOCmark'] = $this->mpdf->page;
|
||||
$this->m_TOC[$toc_id]['TOCoutdent'] = $tocoutdent;
|
||||
$this->m_TOC[$toc_id]['TOCorientation'] = $toc_orientation;
|
||||
$this->m_TOC[$toc_id]['TOCuseLinking'] = $TOCuseLinking;
|
||||
$this->m_TOC[$toc_id]['TOCusePaging'] = $TOCusePaging;
|
||||
|
||||
if ($toc_preHTML) { $this->m_TOC[$toc_id]['TOCpreHTML'] = $toc_preHTML; }
|
||||
if ($toc_postHTML) { $this->m_TOC[$toc_id]['TOCpostHTML'] = $toc_postHTML; }
|
||||
if ($toc_bookmarkText) { $this->m_TOC[$toc_id]['TOCbookmarkText'] = $toc_bookmarkText; }
|
||||
|
||||
$this->m_TOC[$toc_id]['TOC_margin_left'] = $toc_mgl;
|
||||
$this->m_TOC[$toc_id]['TOC_margin_right'] = $toc_mgr;
|
||||
$this->m_TOC[$toc_id]['TOC_margin_top'] = $toc_mgt;
|
||||
$this->m_TOC[$toc_id]['TOC_margin_bottom'] = $toc_mgb;
|
||||
$this->m_TOC[$toc_id]['TOC_margin_header'] = $toc_mgh;
|
||||
$this->m_TOC[$toc_id]['TOC_margin_footer'] = $toc_mgf;
|
||||
$this->m_TOC[$toc_id]['TOC_odd_header_name'] = $toc_ohname;
|
||||
$this->m_TOC[$toc_id]['TOC_even_header_name'] = $toc_ehname;
|
||||
$this->m_TOC[$toc_id]['TOC_odd_footer_name'] = $toc_ofname;
|
||||
$this->m_TOC[$toc_id]['TOC_even_footer_name'] = $toc_efname;
|
||||
$this->m_TOC[$toc_id]['TOC_odd_header_value'] = $toc_ohvalue;
|
||||
$this->m_TOC[$toc_id]['TOC_even_header_value'] = $toc_ehvalue;
|
||||
$this->m_TOC[$toc_id]['TOC_odd_footer_value'] = $toc_ofvalue;
|
||||
$this->m_TOC[$toc_id]['TOC_even_footer_value'] = $toc_efvalue;
|
||||
$this->m_TOC[$toc_id]['TOC_page_selector'] = $toc_pagesel;
|
||||
$this->m_TOC[$toc_id]['TOC_resetpagenum'] = $toc_resetpagenum; // mPDF 6
|
||||
$this->m_TOC[$toc_id]['TOC_pagenumstyle'] = $toc_pagenumstyle; // mPDF 6
|
||||
$this->m_TOC[$toc_id]['TOC_suppress'] = $toc_suppress; // mPDF 6
|
||||
$this->m_TOC[$toc_id]['TOCsheetsize'] = $toc_sheetsize;
|
||||
}
|
||||
else {
|
||||
$this->TOCmark = $this->mpdf->page;
|
||||
$this->TOCoutdent = $tocoutdent;
|
||||
$this->TOCorientation = $toc_orientation;
|
||||
$this->TOCuseLinking = $TOCuseLinking;
|
||||
$this->TOCusePaging = $TOCusePaging;
|
||||
|
||||
if ($toc_preHTML) { $this->TOCpreHTML = $toc_preHTML; }
|
||||
if ($toc_postHTML) { $this->TOCpostHTML = $toc_postHTML; }
|
||||
if ($toc_bookmarkText) { $this->TOCbookmarkText = $toc_bookmarkText; }
|
||||
|
||||
$this->TOC_margin_left = $toc_mgl;
|
||||
$this->TOC_margin_right = $toc_mgr;
|
||||
$this->TOC_margin_top = $toc_mgt;
|
||||
$this->TOC_margin_bottom = $toc_mgb;
|
||||
$this->TOC_margin_header = $toc_mgh;
|
||||
$this->TOC_margin_footer = $toc_mgf;
|
||||
$this->TOC_odd_header_name = $toc_ohname;
|
||||
$this->TOC_even_header_name = $toc_ehname;
|
||||
$this->TOC_odd_footer_name = $toc_ofname;
|
||||
$this->TOC_even_footer_name = $toc_efname;
|
||||
$this->TOC_odd_header_value = $toc_ohvalue;
|
||||
$this->TOC_even_header_value = $toc_ehvalue;
|
||||
$this->TOC_odd_footer_value = $toc_ofvalue;
|
||||
$this->TOC_even_footer_value = $toc_efvalue;
|
||||
$this->TOC_page_selector = $toc_pagesel;
|
||||
$this->TOC_resetpagenum = $toc_resetpagenum; // mPDF 6
|
||||
$this->TOC_pagenumstyle = $toc_pagenumstyle; // mPDF 6
|
||||
$this->TOC_suppress = $toc_suppress; // mPDF 6
|
||||
$this->TOCsheetsize = $toc_sheetsize;
|
||||
}
|
||||
}
|
||||
|
||||
// Initiate, and Mark a place for the Table of Contents to be inserted
|
||||
function TOC($tocfont='', $tocfontsize=0, $tocindent=0, $resetpagenum='', $pagenumstyle='', $suppress='', $toc_orientation='', $TOCusePaging=true, $TOCuseLinking=false, $toc_id=0, $tocoutdent='', $toc_resetpagenum='', $toc_pagenumstyle='', $toc_suppress='') { // mPDF 5.6.19 // mPDF 6
|
||||
if (strtoupper($toc_id)=='ALL') { $toc_id = '_mpdf_all'; }
|
||||
else if (!$toc_id) { $toc_id = 0; }
|
||||
else { $toc_id = strtolower($toc_id); }
|
||||
// To use odd and even pages
|
||||
// Cannot start table of contents on an even page
|
||||
if (($this->mpdf->mirrorMargins) && (($this->mpdf->page)%2==0)) { // EVEN
|
||||
if ($this->mpdf->ColActive) {
|
||||
if (count($this->mpdf->columnbuffer)) { $this->mpdf->printcolumnbuffer(); }
|
||||
}
|
||||
$this->mpdf->AddPage($this->mpdf->CurOrientation,'',$resetpagenum, $pagenumstyle, $suppress);
|
||||
}
|
||||
else {
|
||||
$this->mpdf->PageNumSubstitutions[] = array('from'=>$this->mpdf->page, 'reset'=> $resetpagenum, 'type'=>$pagenumstyle, 'suppress'=>$suppress);
|
||||
}
|
||||
if ($toc_id) {
|
||||
$this->m_TOC[$toc_id]['TOCmark'] = $this->mpdf->page;
|
||||
$this->m_TOC[$toc_id]['TOCoutdent'] = $tocoutdent;
|
||||
$this->m_TOC[$toc_id]['TOCorientation'] = $toc_orientation;
|
||||
$this->m_TOC[$toc_id]['TOCuseLinking'] = $TOCuseLinking;
|
||||
$this->m_TOC[$toc_id]['TOCusePaging'] = $TOCusePaging;
|
||||
$this->m_TOC[$toc_id]['TOC_resetpagenum'] = $toc_resetpagenum; // mPDF 6
|
||||
$this->m_TOC[$toc_id]['TOC_pagenumstyle'] = $toc_pagenumstyle; // mPDF 6
|
||||
$this->m_TOC[$toc_id]['TOC_suppress'] = $toc_suppress; // mPDF 6
|
||||
}
|
||||
else {
|
||||
$this->TOCmark = $this->mpdf->page;
|
||||
$this->TOCoutdent = $tocoutdent;
|
||||
$this->TOCorientation = $toc_orientation;
|
||||
$this->TOCuseLinking = $TOCuseLinking;
|
||||
$this->TOCusePaging = $TOCusePaging;
|
||||
$this->TOC_resetpagenum = $toc_resetpagenum; // mPDF 6
|
||||
$this->TOC_pagenumstyle = $toc_pagenumstyle; // mPDF 6
|
||||
$this->TOC_suppress = $toc_suppress; // mPDF 6
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function insertTOC() {
|
||||
$notocs = 0;
|
||||
if ($this->TOCmark) { $notocs = 1; }
|
||||
$notocs += count($this->m_TOC);
|
||||
|
||||
if ($notocs==0) { return; }
|
||||
|
||||
if (count($this->m_TOC)) { reset($this->m_TOC); }
|
||||
$added_toc_pages = 0;
|
||||
|
||||
if ($this->mpdf->ColActive) { $this->mpdf->SetColumns(0); }
|
||||
if (($this->mpdf->mirrorMargins) && (($this->mpdf->page)%2==1)) { // ODD
|
||||
$this->mpdf->AddPage($this->mpdf->CurOrientation);
|
||||
$extrapage = true;
|
||||
}
|
||||
else { $extrapage = false; }
|
||||
|
||||
for ($toci = 0; $toci<$notocs; $toci++) {
|
||||
if ($toci==0 && $this->TOCmark) {
|
||||
$toc_id = 0;
|
||||
$toc_page = $this->TOCmark;
|
||||
$tocoutdent = $this->TOCoutdent;
|
||||
$toc_orientation = $this->TOCorientation;
|
||||
$TOCuseLinking = $this->TOCuseLinking;
|
||||
$TOCusePaging = $this->TOCusePaging;
|
||||
$toc_preHTML = $this->TOCpreHTML;
|
||||
$toc_postHTML = $this->TOCpostHTML;
|
||||
$toc_bookmarkText = $this->TOCbookmarkText;
|
||||
$toc_mgl = $this->TOC_margin_left;
|
||||
$toc_mgr = $this->TOC_margin_right;
|
||||
$toc_mgt = $this->TOC_margin_top;
|
||||
$toc_mgb = $this->TOC_margin_bottom;
|
||||
$toc_mgh = $this->TOC_margin_header;
|
||||
$toc_mgf = $this->TOC_margin_footer;
|
||||
$toc_ohname = $this->TOC_odd_header_name;
|
||||
$toc_ehname = $this->TOC_even_header_name;
|
||||
$toc_ofname = $this->TOC_odd_footer_name;
|
||||
$toc_efname = $this->TOC_even_footer_name;
|
||||
$toc_ohvalue = $this->TOC_odd_header_value;
|
||||
$toc_ehvalue = $this->TOC_even_header_value;
|
||||
$toc_ofvalue = $this->TOC_odd_footer_value;
|
||||
$toc_efvalue = $this->TOC_even_footer_value;
|
||||
$toc_page_selector = $this->TOC_page_selector;
|
||||
$toc_resetpagenum = $this->TOC_resetpagenum; // mPDF 6
|
||||
$toc_pagenumstyle = $this->TOC_pagenumstyle; // mPDF 6
|
||||
$toc_suppress = $this->TOC_suppress; // mPDF 6
|
||||
$toc_sheet_size = (isset($this->TOCsheetsize) ? $this->TOCsheetsize : '');
|
||||
}
|
||||
else {
|
||||
$arr = current($this->m_TOC);
|
||||
|
||||
$toc_id = key($this->m_TOC);
|
||||
$toc_page = $this->m_TOC[$toc_id]['TOCmark'];
|
||||
$tocoutdent = $this->m_TOC[$toc_id]['TOCoutdent'];
|
||||
$toc_orientation = $this->m_TOC[$toc_id]['TOCorientation'];
|
||||
$TOCuseLinking = $this->m_TOC[$toc_id]['TOCuseLinking'];
|
||||
$TOCusePaging = $this->m_TOC[$toc_id]['TOCusePaging'];
|
||||
if (isset($this->m_TOC[$toc_id]['TOCpreHTML'])) { $toc_preHTML = $this->m_TOC[$toc_id]['TOCpreHTML']; }
|
||||
else { $toc_preHTML = ''; }
|
||||
if (isset($this->m_TOC[$toc_id]['TOCpostHTML'])) { $toc_postHTML = $this->m_TOC[$toc_id]['TOCpostHTML']; }
|
||||
else { $toc_postHTML = ''; }
|
||||
if (isset($this->m_TOC[$toc_id]['TOCbookmarkText'])) { $toc_bookmarkText = $this->m_TOC[$toc_id]['TOCbookmarkText']; }
|
||||
else { $toc_bookmarkText = ''; } // *BOOKMARKS*
|
||||
$toc_mgl = $this->m_TOC[$toc_id]['TOC_margin_left'];
|
||||
$toc_mgr = $this->m_TOC[$toc_id]['TOC_margin_right'];
|
||||
$toc_mgt = $this->m_TOC[$toc_id]['TOC_margin_top'];
|
||||
$toc_mgb = $this->m_TOC[$toc_id]['TOC_margin_bottom'];
|
||||
$toc_mgh = $this->m_TOC[$toc_id]['TOC_margin_header'];
|
||||
$toc_mgf = $this->m_TOC[$toc_id]['TOC_margin_footer'];
|
||||
$toc_ohname = $this->m_TOC[$toc_id]['TOC_odd_header_name'];
|
||||
$toc_ehname = $this->m_TOC[$toc_id]['TOC_even_header_name'];
|
||||
$toc_ofname = $this->m_TOC[$toc_id]['TOC_odd_footer_name'];
|
||||
$toc_efname = $this->m_TOC[$toc_id]['TOC_even_footer_name'];
|
||||
$toc_ohvalue = $this->m_TOC[$toc_id]['TOC_odd_header_value'];
|
||||
$toc_ehvalue = $this->m_TOC[$toc_id]['TOC_even_header_value'];
|
||||
$toc_ofvalue = $this->m_TOC[$toc_id]['TOC_odd_footer_value'];
|
||||
$toc_efvalue = $this->m_TOC[$toc_id]['TOC_even_footer_value'];
|
||||
$toc_page_selector = $this->m_TOC[$toc_id]['TOC_page_selector'];
|
||||
$toc_resetpagenum = $this->m_TOC[$toc_id]['TOC_resetpagenum']; // mPDF 6
|
||||
$toc_pagenumstyle = $this->m_TOC[$toc_id]['TOC_pagenumstyle']; // mPDF 6
|
||||
$toc_suppress = $this->m_TOC[$toc_id]['TOC_suppress']; // mPDF 6
|
||||
$toc_sheet_size = (isset($this->m_TOC[$toc_id]['TOCsheetsize']) ? $this->m_TOC[$toc_id]['TOCsheetsize'] : '');
|
||||
next($this->m_TOC);
|
||||
}
|
||||
|
||||
// mPDF 5.6.31
|
||||
if (!$toc_orientation) { $toc_orientation= $this->mpdf->DefOrientation; }
|
||||
|
||||
// mPDF 6 number style and suppress now picked up from section preceding ToC
|
||||
list($tp_pagenumstyle, $tp_suppress, $tp_reset) = $this->mpdf->docPageSettings($toc_page-1);
|
||||
|
||||
if ($toc_resetpagenum) $tp_reset = $toc_resetpagenum; // mPDF 6
|
||||
if ($toc_pagenumstyle) $tp_pagenumstyle = $toc_pagenumstyle; // mPDF 6
|
||||
if ($toc_suppress || $toc_suppress==='0') $tp_suppress = $toc_suppress; // mPDF 6
|
||||
|
||||
$this->mpdf->AddPage($toc_orientation, '', $tp_reset, $tp_pagenumstyle, $tp_suppress, $toc_mgl, $toc_mgr, $toc_mgt, $toc_mgb, $toc_mgh, $toc_mgf, $toc_ohname, $toc_ehname, $toc_ofname, $toc_efname, $toc_ohvalue, $toc_ehvalue, $toc_ofvalue, $toc_efvalue, $toc_page_selector, $toc_sheet_size ); // mPDF 6
|
||||
|
||||
|
||||
$this->mpdf->writingToC = true; // mPDF 5.6.38
|
||||
// mPDF 5.6.31
|
||||
$tocstart=count($this->mpdf->pages);
|
||||
if (isset($toc_preHTML) && $toc_preHTML) { $this->mpdf->WriteHTML($toc_preHTML); }
|
||||
|
||||
|
||||
// mPDF 5.6.19
|
||||
$html ='<div class="mpdf_toc" id="mpdf_toc_'.$toc_id.'">';
|
||||
foreach($this->_toc as $t) {
|
||||
if ($t['toc_id']==='_mpdf_all' || $t['toc_id']===$toc_id ) {
|
||||
$html .= '<div class="mpdf_toc_level_'.$t['l'].'">';
|
||||
if ($TOCuseLinking) { $html .= '<a class="mpdf_toc_a" href="#__mpdfinternallink_'.$t['link'].'">'; }
|
||||
$html .= '<span class="mpdf_toc_t_level_'.$t['l'].'">'.$t['t'].'</span>';
|
||||
if ($TOCuseLinking) { $html .= '</a>'; }
|
||||
if (!$tocoutdent) { $tocoutdent = '0'; }
|
||||
if ($TOCusePaging) { $html .= ' <dottab outdent="'.$tocoutdent.'" /> ';
|
||||
if ($TOCuseLinking) { $html .= '<a class="mpdf_toc_a" href="#__mpdfinternallink_'.$t['link'].'">'; }
|
||||
$html .= '<span class="mpdf_toc_p_level_'.$t['l'].'">'.$this->mpdf->docPageNum($t['p']).'</span>';
|
||||
if ($TOCuseLinking) { $html .= '</a>'; }
|
||||
}
|
||||
$html .= '</div>';
|
||||
}
|
||||
}
|
||||
$html .= '</div>';
|
||||
$this->mpdf->WriteHTML($html);
|
||||
|
||||
if (isset($toc_postHTML) && $toc_postHTML) { $this->mpdf->WriteHTML($toc_postHTML); }
|
||||
$this->mpdf->writingToC = false; // mPDF 5.6.38
|
||||
$this->mpdf->AddPage($toc_orientation,'E');
|
||||
|
||||
$n_toc = $this->mpdf->page - $tocstart + 1;
|
||||
|
||||
if ($toci==0 && $this->TOCmark) {
|
||||
$TOC_start = $tocstart ;
|
||||
$TOC_end = $this->mpdf->page;
|
||||
$TOC_npages = $n_toc;
|
||||
}
|
||||
else {
|
||||
$this->m_TOC[$toc_id]['start'] = $tocstart ;
|
||||
$this->m_TOC[$toc_id]['end'] = $this->mpdf->page;
|
||||
$this->m_TOC[$toc_id]['npages'] = $n_toc;
|
||||
}
|
||||
}
|
||||
|
||||
$s = '';
|
||||
|
||||
$s .= $this->mpdf->PrintBodyBackgrounds();
|
||||
|
||||
$s .= $this->mpdf->PrintPageBackgrounds();
|
||||
$this->mpdf->pages[$this->mpdf->page] = preg_replace('/(___BACKGROUND___PATTERNS'.$this->mpdf->uniqstr.')/', "\n".$s."\n".'\\1', $this->mpdf->pages[$this->mpdf->page]);
|
||||
$this->mpdf->pageBackgrounds = array();
|
||||
|
||||
//Page footer
|
||||
$this->mpdf->InFooter=true;
|
||||
$this->mpdf->Footer();
|
||||
$this->mpdf->InFooter=false;
|
||||
|
||||
// 2nd time through to move pages etc.
|
||||
$added_toc_pages = 0;
|
||||
if (count($this->m_TOC)) { reset($this->m_TOC); }
|
||||
|
||||
for ($toci = 0; $toci<$notocs; $toci++) {
|
||||
if ($toci==0 && $this->TOCmark) {
|
||||
$toc_id = 0;
|
||||
$toc_page = $this->TOCmark + $added_toc_pages;
|
||||
$toc_orientation = $this->TOCorientation;
|
||||
$TOCuseLinking = $this->TOCuseLinking;
|
||||
$TOCusePaging = $this->TOCusePaging;
|
||||
$toc_bookmarkText = $this->TOCbookmarkText; // *BOOKMARKS*
|
||||
|
||||
$tocstart = $TOC_start ;
|
||||
$tocend = $n = $TOC_end;
|
||||
$n_toc = $TOC_npages;
|
||||
}
|
||||
else {
|
||||
$arr = current($this->m_TOC);
|
||||
|
||||
$toc_id = key($this->m_TOC);
|
||||
$toc_page = $this->m_TOC[$toc_id]['TOCmark'] + $added_toc_pages;
|
||||
$toc_orientation = $this->m_TOC[$toc_id]['TOCorientation'];
|
||||
$TOCuseLinking = $this->m_TOC[$toc_id]['TOCuseLinking'];
|
||||
$TOCusePaging = $this->m_TOC[$toc_id]['TOCusePaging'];
|
||||
$toc_bookmarkText = $this->m_TOC[$toc_id]['TOCbookmarkText']; // *BOOKMARKS*
|
||||
|
||||
$tocstart = $this->m_TOC[$toc_id]['start'] ;
|
||||
$tocend = $n = $this->m_TOC[$toc_id]['end'] ;
|
||||
$n_toc = $this->m_TOC[$toc_id]['npages'] ;
|
||||
|
||||
next($this->m_TOC);
|
||||
}
|
||||
|
||||
// Now pages moved
|
||||
$added_toc_pages += $n_toc;
|
||||
|
||||
$this->mpdf->MovePages($toc_page, $tocstart, $tocend) ;
|
||||
$this->mpdf->pgsIns[$toc_page] = $tocend - $tocstart + 1;
|
||||
|
||||
/*-- BOOKMARKS --*/
|
||||
// Insert new Bookmark for Bookmark
|
||||
if ($toc_bookmarkText) {
|
||||
$insert = -1;
|
||||
foreach($this->mpdf->BMoutlines as $i=>$o) {
|
||||
if($o['p']<$toc_page) { // i.e. before point of insertion
|
||||
$insert = $i;
|
||||
}
|
||||
}
|
||||
$txt = $this->mpdf->purify_utf8_text($toc_bookmarkText);
|
||||
if ($this->mpdf->text_input_as_HTML) {
|
||||
$txt = $this->mpdf->all_entities_to_utf8($txt);
|
||||
}
|
||||
$newBookmark[0] = array('t'=>$txt,'l'=>0,'y'=>0,'p'=>$toc_page );
|
||||
array_splice($this->mpdf->BMoutlines,($insert+1),0,$newBookmark);
|
||||
}
|
||||
/*-- END BOOKMARKS --*/
|
||||
|
||||
}
|
||||
|
||||
// Delete empty page that was inserted earlier
|
||||
if ($extrapage) {
|
||||
unset($this->mpdf->pages[count($this->mpdf->pages)]);
|
||||
$this->mpdf->page--; // Reset page pointer
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
function openTagTOC($attr) {
|
||||
if (isset($attr['OUTDENT']) && $attr['OUTDENT']) { $tocoutdent = $attr['OUTDENT']; } else { $tocoutdent = ''; } // mPDF 5.6.19
|
||||
if (isset($attr['RESETPAGENUM']) && $attr['RESETPAGENUM']) { $resetpagenum = $attr['RESETPAGENUM']; } else { $resetpagenum = ''; }
|
||||
if (isset($attr['PAGENUMSTYLE']) && $attr['PAGENUMSTYLE']) { $pagenumstyle = $attr['PAGENUMSTYLE']; } else { $pagenumstyle= ''; }
|
||||
if (isset($attr['SUPPRESS']) && $attr['SUPPRESS']) { $suppress = $attr['SUPPRESS']; } else { $suppress = ''; }
|
||||
if (isset($attr['TOC-ORIENTATION']) && $attr['TOC-ORIENTATION']) { $toc_orientation = $attr['TOC-ORIENTATION']; } else { $toc_orientation = ''; }
|
||||
if (isset($attr['PAGING']) && (strtoupper($attr['PAGING'])=='OFF' || $attr['PAGING']==='0')) { $paging = false; }
|
||||
else { $paging = true; }
|
||||
if (isset($attr['LINKS']) && (strtoupper($attr['LINKS'])=='ON' || $attr['LINKS']==1)) { $links = true; }
|
||||
else { $links = false; }
|
||||
if (isset($attr['NAME']) && $attr['NAME']) { $toc_id = strtolower($attr['NAME']); } else { $toc_id = 0; }
|
||||
$this->TOC('',0,0,$resetpagenum, $pagenumstyle, $suppress, $toc_orientation, $paging, $links, $toc_id, $tocoutdent); // mPDF 5.6.19 5.6.31
|
||||
}
|
||||
|
||||
|
||||
function openTagTOCPAGEBREAK($attr) {
|
||||
if (isset($attr['NAME']) && $attr['NAME']) { $toc_id = strtolower($attr['NAME']); } else { $toc_id = 0; }
|
||||
if ($toc_id) {
|
||||
if (isset($attr['OUTDENT']) && $attr['OUTDENT']) { $this->m_TOC[$toc_id]['TOCoutdent'] = $attr['OUTDENT']; } else { $this->m_TOC[$toc_id]['TOCoutdent'] = ''; } // mPDF 5.6.19
|
||||
if (isset($attr['TOC-ORIENTATION']) && $attr['TOC-ORIENTATION']) { $this->m_TOC[$toc_id]['TOCorientation'] = $attr['TOC-ORIENTATION']; } else { $this->m_TOC[$toc_id]['TOCorientation'] = ''; }
|
||||
if (isset($attr['PAGING']) && (strtoupper($attr['PAGING'])=='OFF' || $attr['PAGING']==='0')) { $this->m_TOC[$toc_id]['TOCusePaging'] = false; }
|
||||
else { $this->m_TOC[$toc_id]['TOCusePaging'] = true; }
|
||||
if (isset($attr['LINKS']) && (strtoupper($attr['LINKS'])=='ON' || $attr['LINKS']==1)) { $this->m_TOC[$toc_id]['TOCuseLinking'] = true; }
|
||||
else { $this->m_TOC[$toc_id]['TOCuseLinking'] = false; }
|
||||
|
||||
$this->m_TOC[$toc_id]['TOC_margin_left'] = $this->m_TOC[$toc_id]['TOC_margin_right'] = $this->m_TOC[$toc_id]['TOC_margin_top'] = $this->m_TOC[$toc_id]['TOC_margin_bottom'] = $this->m_TOC[$toc_id]['TOC_margin_header'] = $this->m_TOC[$toc_id]['TOC_margin_footer'] = '';
|
||||
if (isset($attr['TOC-MARGIN-RIGHT'])) { $this->m_TOC[$toc_id]['TOC_margin_right'] = $this->mpdf->ConvertSize($attr['TOC-MARGIN-RIGHT'],$this->mpdf->w,$this->mpdf->FontSize,false); }
|
||||
if (isset($attr['TOC-MARGIN-LEFT'])) { $this->m_TOC[$toc_id]['TOC_margin_left'] = $this->mpdf->ConvertSize($attr['TOC-MARGIN-LEFT'],$this->mpdf->w,$this->mpdf->FontSize,false); }
|
||||
if (isset($attr['TOC-MARGIN-TOP'])) { $this->m_TOC[$toc_id]['TOC_margin_top'] = $this->mpdf->ConvertSize($attr['TOC-MARGIN-TOP'],$this->mpdf->w,$this->mpdf->FontSize,false); }
|
||||
if (isset($attr['TOC-MARGIN-BOTTOM'])) { $this->m_TOC[$toc_id]['TOC_margin_bottom'] = $this->mpdf->ConvertSize($attr['TOC-MARGIN-BOTTOM'],$this->mpdf->w,$this->mpdf->FontSize,false); }
|
||||
if (isset($attr['TOC-MARGIN-HEADER'])) { $this->m_TOC[$toc_id]['TOC_margin_header'] = $this->mpdf->ConvertSize($attr['TOC-MARGIN-HEADER'],$this->mpdf->w,$this->mpdf->FontSize,false); }
|
||||
if (isset($attr['TOC-MARGIN-FOOTER'])) { $this->m_TOC[$toc_id]['TOC_margin_footer'] = $this->mpdf->ConvertSize($attr['TOC-MARGIN-FOOTER'],$this->mpdf->w,$this->mpdf->FontSize,false); }
|
||||
$this->m_TOC[$toc_id]['TOC_odd_header_name'] = $this->m_TOC[$toc_id]['TOC_even_header_name'] = $this->m_TOC[$toc_id]['TOC_odd_footer_name'] = $this->m_TOC[$toc_id]['TOC_even_footer_name'] = '';
|
||||
if (isset($attr['TOC-ODD-HEADER-NAME']) && $attr['TOC-ODD-HEADER-NAME']) { $this->m_TOC[$toc_id]['TOC_odd_header_name'] = $attr['TOC-ODD-HEADER-NAME']; }
|
||||
if (isset($attr['TOC-EVEN-HEADER-NAME']) && $attr['TOC-EVEN-HEADER-NAME']) { $this->m_TOC[$toc_id]['TOC_even_header_name'] = $attr['TOC-EVEN-HEADER-NAME']; }
|
||||
if (isset($attr['TOC-ODD-FOOTER-NAME']) && $attr['TOC-ODD-FOOTER-NAME']) { $this->m_TOC[$toc_id]['TOC_odd_footer_name'] = $attr['TOC-ODD-FOOTER-NAME']; }
|
||||
if (isset($attr['TOC-EVEN-FOOTER-NAME']) && $attr['TOC-EVEN-FOOTER-NAME']) { $this->m_TOC[$toc_id]['TOC_even_footer_name'] = $attr['TOC-EVEN-FOOTER-NAME']; }
|
||||
$this->m_TOC[$toc_id]['TOC_odd_header_value'] = $this->m_TOC[$toc_id]['TOC_even_header_value'] = $this->m_TOC[$toc_id]['TOC_odd_footer_value'] = $this->m_TOC[$toc_id]['TOC_even_footer_value'] = 0;
|
||||
if (isset($attr['TOC-ODD-HEADER-VALUE']) && ($attr['TOC-ODD-HEADER-VALUE']=='1' || strtoupper($attr['TOC-ODD-HEADER-VALUE'])=='ON')) { $this->m_TOC[$toc_id]['TOC_odd_header_value'] = 1; }
|
||||
else if (isset($attr['TOC-ODD-HEADER-VALUE']) && ($attr['TOC-ODD-HEADER-VALUE']=='-1' || strtoupper($attr['TOC-ODD-HEADER-VALUE'])=='OFF')) { $this->m_TOC[$toc_id]['TOC_odd_header_value'] = -1; }
|
||||
if (isset($attr['TOC-EVEN-HEADER-VALUE']) && ($attr['TOC-EVEN-HEADER-VALUE']=='1' || strtoupper($attr['TOC-EVEN-HEADER-VALUE'])=='ON')) { $this->m_TOC[$toc_id]['TOC_even_header_value'] = 1; }
|
||||
else if (isset($attr['TOC-EVEN-HEADER-VALUE']) && ($attr['TOC-EVEN-HEADER-VALUE']=='-1' || strtoupper($attr['TOC-EVEN-HEADER-VALUE'])=='OFF')) { $this->m_TOC[$toc_id]['TOC_even_header_value'] = -1; }
|
||||
if (isset($attr['TOC-ODD-FOOTER-VALUE']) && ($attr['TOC-ODD-FOOTER-VALUE']=='1' || strtoupper($attr['TOC-ODD-FOOTER-VALUE'])=='ON')) { $this->m_TOC[$toc_id]['TOC_odd_footer_value'] = 1; }
|
||||
else if (isset($attr['TOC-ODD-FOOTER-VALUE']) && ($attr['TOC-ODD-FOOTER-VALUE']=='-1' || strtoupper($attr['TOC-ODD-FOOTER-VALUE'])=='OFF')) { $this->m_TOC[$toc_id]['TOC_odd_footer_value'] = -1; }
|
||||
if (isset($attr['TOC-EVEN-FOOTER-VALUE']) && ($attr['TOC-EVEN-FOOTER-VALUE']=='1' || strtoupper($attr['TOC-EVEN-FOOTER-VALUE'])=='ON')) { $this->m_TOC[$toc_id]['TOC_even_footer_value'] = 1; }
|
||||
else if (isset($attr['TOC-EVEN-FOOTER-VALUE']) && ($attr['TOC-EVEN-FOOTER-VALUE']=='-1' || strtoupper($attr['TOC-EVEN-FOOTER-VALUE'])=='OFF')) { $this->m_TOC[$toc_id]['TOC_even_footer_value'] = -1; }
|
||||
if (isset($attr['TOC-RESETPAGENUM']) && $attr['TOC-RESETPAGENUM']) { $this->m_TOC[$toc_id]['TOC_resetpagenum'] = $attr['TOC-RESETPAGENUM']; }
|
||||
else { $this->m_TOC[$toc_id]['TOC_resetpagenum'] = ''; } // mPDF 6
|
||||
if (isset($attr['TOC-PAGENUMSTYLE']) && $attr['TOC-PAGENUMSTYLE']) { $this->m_TOC[$toc_id]['TOC_pagenumstyle'] = $attr['TOC-PAGENUMSTYLE']; }
|
||||
else { $this->m_TOC[$toc_id]['TOC_pagenumstyle'] = ''; } // mPDF 6
|
||||
if (isset($attr['TOC-SUPPRESS']) && ($attr['TOC-SUPPRESS'] || $attr['TOC-SUPPRESS']==='0')) { $this->m_TOC[$toc_id]['TOC_suppress'] = $attr['TOC-SUPPRESS']; }
|
||||
else { $this->m_TOC[$toc_id]['TOC_suppress'] = ''; } // mPDF 6
|
||||
if (isset($attr['TOC-PAGE-SELECTOR']) && $attr['TOC-PAGE-SELECTOR']) { $this->m_TOC[$toc_id]['TOC_page_selector'] = $attr['TOC-PAGE-SELECTOR']; }
|
||||
else { $this->m_TOC[$toc_id]['TOC_page_selector'] = ''; }
|
||||
if (isset($attr['TOC-SHEET-SIZE']) && $attr['TOC-SHEET-SIZE']) { $this->m_TOC[$toc_id]['TOCsheetsize'] = $attr['TOC-SHEET-SIZE']; } else { $this->m_TOC[$toc_id]['TOCsheetsize'] = ''; }
|
||||
|
||||
|
||||
if (isset($attr['TOC-PREHTML']) && $attr['TOC-PREHTML']) { $this->m_TOC[$toc_id]['TOCpreHTML'] = htmlspecialchars_decode($attr['TOC-PREHTML'],ENT_QUOTES); }
|
||||
if (isset($attr['TOC-POSTHTML']) && $attr['TOC-POSTHTML']) { $this->m_TOC[$toc_id]['TOCpostHTML'] = htmlspecialchars_decode($attr['TOC-POSTHTML'],ENT_QUOTES); }
|
||||
|
||||
if (isset($attr['TOC-BOOKMARKTEXT']) && $attr['TOC-BOOKMARKTEXT']) { $this->m_TOC[$toc_id]['TOCbookmarkText'] = htmlspecialchars_decode($attr['TOC-BOOKMARKTEXT'],ENT_QUOTES); } // *BOOKMARKS*
|
||||
}
|
||||
else {
|
||||
if (isset($attr['OUTDENT']) && $attr['OUTDENT']) { $this->TOCoutdent = $attr['OUTDENT']; } else { $this->TOCoutdent = ''; } // mPDF 5.6.19
|
||||
if (isset($attr['TOC-ORIENTATION']) && $attr['TOC-ORIENTATION']) { $this->TOCorientation = $attr['TOC-ORIENTATION']; } else { $this->TOCorientation = ''; }
|
||||
if (isset($attr['PAGING']) && (strtoupper($attr['PAGING'])=='OFF' || $attr['PAGING']==='0')) { $this->TOCusePaging = false; }
|
||||
else { $this->TOCusePaging = true; }
|
||||
if (isset($attr['LINKS']) && (strtoupper($attr['LINKS'])=='ON' || $attr['LINKS']==1)) { $this->TOCuseLinking = true; }
|
||||
else { $this->TOCuseLinking = false; }
|
||||
|
||||
$this->TOC_margin_left = $this->TOC_margin_right = $this->TOC_margin_top = $this->TOC_margin_bottom = $this->TOC_margin_header = $this->TOC_margin_footer = '';
|
||||
if (isset($attr['TOC-MARGIN-RIGHT'])) { $this->TOC_margin_right = $this->mpdf->ConvertSize($attr['TOC-MARGIN-RIGHT'],$this->mpdf->w,$this->mpdf->FontSize,false); }
|
||||
if (isset($attr['TOC-MARGIN-LEFT'])) { $this->TOC_margin_left = $this->mpdf->ConvertSize($attr['TOC-MARGIN-LEFT'],$this->mpdf->w,$this->mpdf->FontSize,false); }
|
||||
if (isset($attr['TOC-MARGIN-TOP'])) { $this->TOC_margin_top = $this->mpdf->ConvertSize($attr['TOC-MARGIN-TOP'],$this->mpdf->w,$this->mpdf->FontSize,false); }
|
||||
if (isset($attr['TOC-MARGIN-BOTTOM'])) { $this->TOC_margin_bottom = $this->mpdf->ConvertSize($attr['TOC-MARGIN-BOTTOM'],$this->mpdf->w,$this->mpdf->FontSize,false); }
|
||||
if (isset($attr['TOC-MARGIN-HEADER'])) { $this->TOC_margin_header = $this->mpdf->ConvertSize($attr['TOC-MARGIN-HEADER'],$this->mpdf->w,$this->mpdf->FontSize,false); }
|
||||
if (isset($attr['TOC-MARGIN-FOOTER'])) { $this->TOC_margin_footer = $this->mpdf->ConvertSize($attr['TOC-MARGIN-FOOTER'],$this->mpdf->w,$this->mpdf->FontSize,false); }
|
||||
$this->TOC_odd_header_name = $this->TOC_even_header_name = $this->TOC_odd_footer_name = $this->TOC_even_footer_name = '';
|
||||
if (isset($attr['TOC-ODD-HEADER-NAME']) && $attr['TOC-ODD-HEADER-NAME']) { $this->TOC_odd_header_name = $attr['TOC-ODD-HEADER-NAME']; }
|
||||
if (isset($attr['TOC-EVEN-HEADER-NAME']) && $attr['TOC-EVEN-HEADER-NAME']) { $this->TOC_even_header_name = $attr['TOC-EVEN-HEADER-NAME']; }
|
||||
if (isset($attr['TOC-ODD-FOOTER-NAME']) && $attr['TOC-ODD-FOOTER-NAME']) { $this->TOC_odd_footer_name = $attr['TOC-ODD-FOOTER-NAME']; }
|
||||
if (isset($attr['TOC-EVEN-FOOTER-NAME']) && $attr['TOC-EVEN-FOOTER-NAME']) { $this->TOC_even_footer_name = $attr['TOC-EVEN-FOOTER-NAME']; }
|
||||
$this->TOC_odd_header_value = $this->TOC_even_header_value = $this->TOC_odd_footer_value = $this->TOC_even_footer_value = 0;
|
||||
if (isset($attr['TOC-ODD-HEADER-VALUE']) && ($attr['TOC-ODD-HEADER-VALUE']=='1' || strtoupper($attr['TOC-ODD-HEADER-VALUE'])=='ON')) { $this->TOC_odd_header_value = 1; }
|
||||
else if (isset($attr['TOC-ODD-HEADER-VALUE']) && ($attr['TOC-ODD-HEADER-VALUE']=='-1' || strtoupper($attr['TOC-ODD-HEADER-VALUE'])=='OFF')) { $this->TOC_odd_header_value = -1; }
|
||||
if (isset($attr['TOC-EVEN-HEADER-VALUE']) && ($attr['TOC-EVEN-HEADER-VALUE']=='1' || strtoupper($attr['TOC-EVEN-HEADER-VALUE'])=='ON')) { $this->TOC_even_header_value = 1; }
|
||||
else if (isset($attr['TOC-EVEN-HEADER-VALUE']) && ($attr['TOC-EVEN-HEADER-VALUE']=='-1' || strtoupper($attr['TOC-EVEN-HEADER-VALUE'])=='OFF')) { $this->TOC_even_header_value = -1; }
|
||||
|
||||
if (isset($attr['TOC-ODD-FOOTER-VALUE']) && ($attr['TOC-ODD-FOOTER-VALUE']=='1' || strtoupper($attr['TOC-ODD-FOOTER-VALUE'])=='ON')) { $this->TOC_odd_footer_value = 1; }
|
||||
else if (isset($attr['TOC-ODD-FOOTER-VALUE']) && ($attr['TOC-ODD-FOOTER-VALUE']=='-1' || strtoupper($attr['TOC-ODD-FOOTER-VALUE'])=='OFF')) { $this->TOC_odd_footer_value = -1; }
|
||||
if (isset($attr['TOC-EVEN-FOOTER-VALUE']) && ($attr['TOC-EVEN-FOOTER-VALUE']=='1' || strtoupper($attr['TOC-EVEN-FOOTER-VALUE'])=='ON')) { $this->TOC_even_footer_value = 1; }
|
||||
else if (isset($attr['TOC-EVEN-FOOTER-VALUE']) && ($attr['TOC-EVEN-FOOTER-VALUE']=='-1' || strtoupper($attr['TOC-EVEN-FOOTER-VALUE'])=='OFF')) { $this->TOC_even_footer_value = -1; }
|
||||
if (isset($attr['TOC-PAGE-SELECTOR']) && $attr['TOC-PAGE-SELECTOR']) { $this->TOC_page_selector = $attr['TOC-PAGE-SELECTOR']; }
|
||||
else { $this->TOC_page_selector = ''; }
|
||||
if (isset($attr['TOC-RESETPAGENUM']) && $attr['TOC-RESETPAGENUM']) { $this->TOC_resetpagenum = $attr['TOC-RESETPAGENUM']; }
|
||||
else { $this->TOC_resetpagenum = ''; } // mPDF 6
|
||||
if (isset($attr['TOC-PAGENUMSTYLE']) && $attr['TOC-PAGENUMSTYLE']) { $this->TOC_pagenumstyle = $attr['TOC-PAGENUMSTYLE']; }
|
||||
else { $this->TOC_pagenumstyle = ''; } // mPDF 6
|
||||
if (isset($attr['TOC-SUPPRESS']) && ($attr['TOC-SUPPRESS'] || $attr['TOC-SUPPRESS']==='0')) { $this->TOC_suppress = $attr['TOC-SUPPRESS']; }
|
||||
else { $this->TOC_suppress = ''; } // mPDF 6
|
||||
if (isset($attr['TOC-SHEET-SIZE']) && $attr['TOC-SHEET-SIZE']) { $this->TOCsheetsize = $attr['TOC-SHEET-SIZE']; } else { $this->TOCsheetsize = ''; }
|
||||
|
||||
if (isset($attr['TOC-PREHTML']) && $attr['TOC-PREHTML']) { $this->TOCpreHTML = htmlspecialchars_decode($attr['TOC-PREHTML'],ENT_QUOTES); }
|
||||
if (isset($attr['TOC-POSTHTML']) && $attr['TOC-POSTHTML']) { $this->TOCpostHTML = htmlspecialchars_decode($attr['TOC-POSTHTML'],ENT_QUOTES); }
|
||||
if (isset($attr['TOC-BOOKMARKTEXT']) && $attr['TOC-BOOKMARKTEXT']) { $this->TOCbookmarkText = htmlspecialchars_decode($attr['TOC-BOOKMARKTEXT'],ENT_QUOTES); }
|
||||
}
|
||||
|
||||
if ($this->mpdf->y == $this->mpdf->tMargin && (!$this->mpdf->mirrorMargins ||($this->mpdf->mirrorMargins && $this->mpdf->page % 2==1))) {
|
||||
if ($toc_id) { $this->m_TOC[$toc_id]['TOCmark'] = $this->mpdf->page; }
|
||||
else { $this->TOCmark = $this->mpdf->page; }
|
||||
// Don't add a page
|
||||
if ($this->mpdf->page==1 && count($this->mpdf->PageNumSubstitutions)==0) {
|
||||
$resetpagenum = '';
|
||||
$pagenumstyle = '';
|
||||
$suppress = '';
|
||||
if (isset($attr['RESETPAGENUM'])) { $resetpagenum = $attr['RESETPAGENUM']; }
|
||||
if (isset($attr['PAGENUMSTYLE'])) { $pagenumstyle = $attr['PAGENUMSTYLE']; }
|
||||
if (isset($attr['SUPPRESS'])) { $suppress = $attr['SUPPRESS']; }
|
||||
if (!$suppress) { $suppress = 'off'; }
|
||||
if (!$resetpagenum) { $resetpagenum= 1; }
|
||||
$this->mpdf->PageNumSubstitutions[] = array('from'=>1, 'reset'=> $resetpagenum, 'type'=>$pagenumstyle, 'suppress'=> $suppress);
|
||||
}
|
||||
return array(true, $toc_id);
|
||||
}
|
||||
// No break - continues as PAGEBREAK...
|
||||
return array(false, $toc_id);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
?>
|
4732
dk-pdf/includes/mpdf60/classes/ttfontsuni.php
Executable file
4732
dk-pdf/includes/mpdf60/classes/ttfontsuni.php
Executable file
File diff suppressed because it is too large
Load Diff
408
dk-pdf/includes/mpdf60/classes/ttfontsuni_analysis.php
Executable file
408
dk-pdf/includes/mpdf60/classes/ttfontsuni_analysis.php
Executable file
@ -0,0 +1,408 @@
|
||||
<?php
|
||||
|
||||
require_once(_MPDF_PATH.'classes/ttfontsuni.php');
|
||||
|
||||
class TTFontFile_Analysis EXTENDS TTFontFile {
|
||||
|
||||
// Used to get font information from files in directory
|
||||
function extractCoreInfo($file, $TTCfontID=0) {
|
||||
$this->filename = $file;
|
||||
$this->fh = fopen($file,'rb');
|
||||
if (!$this->fh) { return ('ERROR - Can\'t open file ' . $file); }
|
||||
$this->_pos = 0;
|
||||
$this->charWidths = '';
|
||||
$this->glyphPos = array();
|
||||
$this->charToGlyph = array();
|
||||
$this->tables = array();
|
||||
$this->otables = array();
|
||||
$this->ascent = 0;
|
||||
$this->descent = 0;
|
||||
$this->numTTCFonts = 0;
|
||||
$this->TTCFonts = array();
|
||||
$this->version = $version = $this->read_ulong();
|
||||
$this->panose = array(); // mPDF 5.0
|
||||
if ($version==0x4F54544F)
|
||||
return("ERROR - NOT ADDED as Postscript outlines are not supported - " . $file);
|
||||
if ($version==0x74746366) {
|
||||
if ($TTCfontID > 0) {
|
||||
$this->version = $version = $this->read_ulong(); // TTC Header version now
|
||||
if (!in_array($version, array(0x00010000,0x00020000)))
|
||||
return("ERROR - NOT ADDED as Error parsing TrueType Collection: version=".$version." - " . $file);
|
||||
}
|
||||
else return("ERROR - Error parsing TrueType Collection - " . $file);
|
||||
$this->numTTCFonts = $this->read_ulong();
|
||||
for ($i=1; $i<=$this->numTTCFonts; $i++) {
|
||||
$this->TTCFonts[$i]['offset'] = $this->read_ulong();
|
||||
}
|
||||
$this->seek($this->TTCFonts[$TTCfontID]['offset']);
|
||||
$this->version = $version = $this->read_ulong(); // TTFont version again now
|
||||
$this->readTableDirectory(false);
|
||||
}
|
||||
else {
|
||||
if (!in_array($version, array(0x00010000,0x74727565)))
|
||||
return("ERROR - NOT ADDED as Not a TrueType font: version=".$version." - " . $file);
|
||||
$this->readTableDirectory(false);
|
||||
}
|
||||
|
||||
/* Included for testing...
|
||||
$cmap_offset = $this->seek_table("cmap");
|
||||
$this->skip(2);
|
||||
$cmapTableCount = $this->read_ushort();
|
||||
$unicode_cmap_offset = 0;
|
||||
for ($i=0;$i<$cmapTableCount;$i++) {
|
||||
$x[$i]['platformId'] = $this->read_ushort();
|
||||
$x[$i]['encodingId'] = $this->read_ushort();
|
||||
$x[$i]['offset'] = $this->read_ulong();
|
||||
$save_pos = $this->_pos;
|
||||
$x[$i]['format'] = $this->get_ushort($cmap_offset + $x[$i]['offset'] );
|
||||
$this->seek($save_pos );
|
||||
}
|
||||
print_r($x); exit;
|
||||
*/
|
||||
///////////////////////////////////
|
||||
// name - Naming table
|
||||
///////////////////////////////////
|
||||
|
||||
/* Test purposes - displays table of names
|
||||
$name_offset = $this->seek_table("name");
|
||||
$format = $this->read_ushort();
|
||||
if ($format != 0 && $format != 1) // mPDF 5.3.73
|
||||
die("Unknown name table format ".$format);
|
||||
$numRecords = $this->read_ushort();
|
||||
$string_data_offset = $name_offset + $this->read_ushort();
|
||||
for ($i=0;$i<$numRecords; $i++) {
|
||||
$x[$i]['platformId'] = $this->read_ushort();
|
||||
$x[$i]['encodingId'] = $this->read_ushort();
|
||||
$x[$i]['languageId'] = $this->read_ushort();
|
||||
$x[$i]['nameId'] = $this->read_ushort();
|
||||
$x[$i]['length'] = $this->read_ushort();
|
||||
$x[$i]['offset'] = $this->read_ushort();
|
||||
|
||||
$N = '';
|
||||
if ($x[$i]['platformId'] == 1 && $x[$i]['encodingId'] == 0 && $x[$i]['languageId'] == 0) { // Roman
|
||||
$opos = $this->_pos;
|
||||
$N = $this->get_chunk($string_data_offset + $x[$i]['offset'] , $x[$i]['length'] );
|
||||
$this->_pos = $opos;
|
||||
$this->seek($opos);
|
||||
}
|
||||
else { // Unicode
|
||||
$opos = $this->_pos;
|
||||
$this->seek($string_data_offset + $x[$i]['offset'] );
|
||||
$length = $x[$i]['length'] ;
|
||||
if ($length % 2 != 0)
|
||||
$length -= 1;
|
||||
// die("PostScript name is UTF-16BE string of odd length");
|
||||
$length /= 2;
|
||||
$N = '';
|
||||
while ($length > 0) {
|
||||
$char = $this->read_ushort();
|
||||
$N .= (chr($char));
|
||||
$length -= 1;
|
||||
}
|
||||
$this->_pos = $opos;
|
||||
$this->seek($opos);
|
||||
}
|
||||
$x[$i]['names'][$nameId] = $N;
|
||||
}
|
||||
print_r($x); exit;
|
||||
*/
|
||||
|
||||
$name_offset = $this->seek_table("name");
|
||||
$format = $this->read_ushort();
|
||||
if ($format != 0 && $format != 1) // mPDF 5.3.73
|
||||
return("ERROR - NOT ADDED as Unknown name table format ".$format." - " . $file);
|
||||
$numRecords = $this->read_ushort();
|
||||
$string_data_offset = $name_offset + $this->read_ushort();
|
||||
$names = array(1=>'',2=>'',3=>'',4=>'',6=>'');
|
||||
$K = array_keys($names);
|
||||
$nameCount = count($names);
|
||||
for ($i=0;$i<$numRecords; $i++) {
|
||||
$platformId = $this->read_ushort();
|
||||
$encodingId = $this->read_ushort();
|
||||
$languageId = $this->read_ushort();
|
||||
$nameId = $this->read_ushort();
|
||||
$length = $this->read_ushort();
|
||||
$offset = $this->read_ushort();
|
||||
if (!in_array($nameId,$K)) continue;
|
||||
$N = '';
|
||||
if ($platformId == 3 && $encodingId == 1 && $languageId == 0x409) { // Microsoft, Unicode, US English, PS Name
|
||||
$opos = $this->_pos;
|
||||
$this->seek($string_data_offset + $offset);
|
||||
if ($length % 2 != 0)
|
||||
$length += 1;
|
||||
$length /= 2;
|
||||
$N = '';
|
||||
while ($length > 0) {
|
||||
$char = $this->read_ushort();
|
||||
$N .= (chr($char));
|
||||
$length -= 1;
|
||||
}
|
||||
$this->_pos = $opos;
|
||||
$this->seek($opos);
|
||||
}
|
||||
else if ($platformId == 1 && $encodingId == 0 && $languageId == 0) { // Macintosh, Roman, English, PS Name
|
||||
$opos = $this->_pos;
|
||||
$N = $this->get_chunk($string_data_offset + $offset, $length);
|
||||
$this->_pos = $opos;
|
||||
$this->seek($opos);
|
||||
}
|
||||
if ($N && $names[$nameId]=='') {
|
||||
$names[$nameId] = $N;
|
||||
$nameCount -= 1;
|
||||
if ($nameCount==0) break;
|
||||
}
|
||||
}
|
||||
if ($names[6])
|
||||
$psName = preg_replace('/ /','-',$names[6]);
|
||||
else if ($names[4])
|
||||
$psName = preg_replace('/ /','-',$names[4]);
|
||||
else if ($names[1])
|
||||
$psName = preg_replace('/ /','-',$names[1]);
|
||||
else
|
||||
$psName = '';
|
||||
if (!$names[1] && !$psName)
|
||||
return("ERROR - NOT ADDED as Could not find valid font name - " . $file);
|
||||
$this->name = $psName;
|
||||
if ($names[1]) { $this->familyName = $names[1]; } else { $this->familyName = $psName; }
|
||||
if ($names[2]) { $this->styleName = $names[2]; } else { $this->styleName = 'Regular'; }
|
||||
|
||||
///////////////////////////////////
|
||||
// head - Font header table
|
||||
///////////////////////////////////
|
||||
$this->seek_table("head");
|
||||
$ver_maj = $this->read_ushort();
|
||||
$ver_min = $this->read_ushort();
|
||||
if ($ver_maj != 1)
|
||||
return('ERROR - NOT ADDED as Unknown head table version '. $ver_maj .'.'. $ver_min." - " . $file);
|
||||
$this->fontRevision = $this->read_ushort() . $this->read_ushort();
|
||||
$this->skip(4);
|
||||
$magic = $this->read_ulong();
|
||||
if ($magic != 0x5F0F3CF5)
|
||||
return('ERROR - NOT ADDED as Invalid head table magic ' .$magic." - " . $file);
|
||||
$this->skip(2);
|
||||
$this->unitsPerEm = $unitsPerEm = $this->read_ushort();
|
||||
$scale = 1000 / $unitsPerEm;
|
||||
$this->skip(24);
|
||||
$macStyle = $this->read_short();
|
||||
$this->skip(4);
|
||||
$indexLocFormat = $this->read_short();
|
||||
|
||||
///////////////////////////////////
|
||||
// OS/2 - OS/2 and Windows metrics table
|
||||
///////////////////////////////////
|
||||
$sFamily = '';
|
||||
$panose = '';
|
||||
$fsSelection = '';
|
||||
if (isset($this->tables["OS/2"])) {
|
||||
$this->seek_table("OS/2");
|
||||
$this->skip(30);
|
||||
$sF = $this->read_short();
|
||||
$sFamily = ($sF >> 8);
|
||||
$this->_pos += 10; //PANOSE = 10 byte length
|
||||
$panose = fread($this->fh,10);
|
||||
$this->panose = array();
|
||||
for ($p=0;$p<strlen($panose);$p++) { $this->panose[] = ord($panose[$p]); }
|
||||
$this->skip(20);
|
||||
$fsSelection = $this->read_short();
|
||||
}
|
||||
|
||||
///////////////////////////////////
|
||||
// post - PostScript table
|
||||
///////////////////////////////////
|
||||
$this->seek_table("post");
|
||||
$this->skip(4);
|
||||
$this->italicAngle = $this->read_short() + $this->read_ushort() / 65536.0;
|
||||
$this->skip(4);
|
||||
$isFixedPitch = $this->read_ulong();
|
||||
|
||||
|
||||
|
||||
///////////////////////////////////
|
||||
// cmap - Character to glyph index mapping table
|
||||
///////////////////////////////////
|
||||
$cmap_offset = $this->seek_table("cmap");
|
||||
$this->skip(2);
|
||||
$cmapTableCount = $this->read_ushort();
|
||||
$unicode_cmap_offset = 0;
|
||||
for ($i=0;$i<$cmapTableCount;$i++) {
|
||||
$platformID = $this->read_ushort();
|
||||
$encodingID = $this->read_ushort();
|
||||
$offset = $this->read_ulong();
|
||||
$save_pos = $this->_pos;
|
||||
if (($platformID == 3 && $encodingID == 1) || $platformID == 0) { // Microsoft, Unicode
|
||||
$format = $this->get_ushort($cmap_offset + $offset);
|
||||
if ($format == 4) {
|
||||
if (!$unicode_cmap_offset) $unicode_cmap_offset = $cmap_offset + $offset;
|
||||
}
|
||||
}
|
||||
else if ((($platformID == 3 && $encodingID == 10) || $platformID == 0)) { // Microsoft, Unicode Format 12 table HKCS
|
||||
$format = $this->get_ushort($cmap_offset + $offset);
|
||||
if ($format == 12) {
|
||||
$unicode_cmap_offset = $cmap_offset + $offset;
|
||||
break;
|
||||
}
|
||||
}
|
||||
$this->seek($save_pos );
|
||||
}
|
||||
|
||||
if (!$unicode_cmap_offset)
|
||||
return('ERROR - Font ('.$this->filename .') NOT ADDED as it is not Unicode encoded, and cannot be used by mPDF');
|
||||
|
||||
$rtl = false;
|
||||
$indic = false;
|
||||
$cjk = false;
|
||||
$sip = false;
|
||||
$smp = false;
|
||||
$pua = false;
|
||||
$puaag = false;
|
||||
$glyphToChar = array();
|
||||
$unAGlyphs = '';
|
||||
// Format 12 CMAP does characters above Unicode BMP i.e. some HKCS characters U+20000 and above
|
||||
if ($format == 12) {
|
||||
$this->seek($unicode_cmap_offset + 4);
|
||||
$length = $this->read_ulong();
|
||||
$limit = $unicode_cmap_offset + $length;
|
||||
$this->skip(4);
|
||||
$nGroups = $this->read_ulong();
|
||||
for($i=0; $i<$nGroups ; $i++) {
|
||||
$startCharCode = $this->read_ulong();
|
||||
$endCharCode = $this->read_ulong();
|
||||
$startGlyphCode = $this->read_ulong();
|
||||
if (($endCharCode > 0x20000 && $endCharCode < 0x2A6DF) || ($endCharCode > 0x2F800 && $endCharCode < 0x2FA1F)) {
|
||||
$sip = true;
|
||||
}
|
||||
if ($endCharCode > 0x10000 && $endCharCode < 0x1FFFF) {
|
||||
$smp = true;
|
||||
}
|
||||
if (($endCharCode > 0x0590 && $endCharCode < 0x077F) || ($endCharCode > 0xFE70 && $endCharCode < 0xFEFF) || ($endCharCode > 0xFB50 && $endCharCode < 0xFDFF)) {
|
||||
$rtl = true;
|
||||
}
|
||||
if ($endCharCode > 0x0900 && $endCharCode < 0x0DFF) {
|
||||
$indic = true;
|
||||
}
|
||||
if ($endCharCode > 0xE000 && $endCharCode < 0xF8FF) {
|
||||
$pua = true;
|
||||
if ($endCharCode > 0xF500 && $endCharCode < 0xF7FF) {
|
||||
$puaag = true;
|
||||
}
|
||||
}
|
||||
if (($endCharCode > 0x2E80 && $endCharCode < 0x4DC0) || ($endCharCode > 0x4E00 && $endCharCode < 0xA4CF) || ($endCharCode > 0xAC00 && $endCharCode < 0xD7AF) || ($endCharCode > 0xF900 && $endCharCode < 0xFAFF) || ($endCharCode > 0xFE30 && $endCharCode < 0xFE4F)) {
|
||||
$cjk = true;
|
||||
}
|
||||
|
||||
$offset = 0;
|
||||
// Get each glyphToChar - only point if going to analyse un-mapped Arabic Glyphs
|
||||
if (isset($this->tables['post'])) {
|
||||
for ($unichar=$startCharCode;$unichar<=$endCharCode;$unichar++) {
|
||||
$glyph = $startGlyphCode + $offset ;
|
||||
$offset++;
|
||||
$glyphToChar[$glyph][] = $unichar;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
else { // Format 4 CMap
|
||||
$this->seek($unicode_cmap_offset + 2);
|
||||
$length = $this->read_ushort();
|
||||
$limit = $unicode_cmap_offset + $length;
|
||||
$this->skip(2);
|
||||
|
||||
$segCount = $this->read_ushort() / 2;
|
||||
$this->skip(6);
|
||||
$endCount = array();
|
||||
for($i=0; $i<$segCount; $i++) { $endCount[] = $this->read_ushort(); }
|
||||
$this->skip(2);
|
||||
$startCount = array();
|
||||
for($i=0; $i<$segCount; $i++) { $startCount[] = $this->read_ushort(); }
|
||||
$idDelta = array();
|
||||
for($i=0; $i<$segCount; $i++) { $idDelta[] = $this->read_short(); }
|
||||
$idRangeOffset_start = $this->_pos;
|
||||
$idRangeOffset = array();
|
||||
for($i=0; $i<$segCount; $i++) { $idRangeOffset[] = $this->read_ushort(); }
|
||||
|
||||
for ($n=0;$n<$segCount;$n++) {
|
||||
if (($endCount[$n] > 0x0590 && $endCount[$n] < 0x077F) || ($endCount[$n] > 0xFE70 && $endCount[$n] < 0xFEFF) || ($endCount[$n] > 0xFB50 && $endCount[$n] < 0xFDFF)) {
|
||||
$rtl = true;
|
||||
}
|
||||
if ($endCount[$n] > 0x0900 && $endCount[$n] < 0x0DFF) {
|
||||
$indic = true;
|
||||
}
|
||||
if (($endCount[$n] > 0x2E80 && $endCount[$n] < 0x4DC0) || ($endCount[$n] > 0x4E00 && $endCount[$n] < 0xA4CF) || ($endCount[$n] > 0xAC00 && $endCount[$n] < 0xD7AF) || ($endCount[$n] > 0xF900 && $endCount[$n] < 0xFAFF) || ($endCount[$n] > 0xFE30 && $endCount[$n] < 0xFE4F)) {
|
||||
$cjk = true;
|
||||
}
|
||||
if ($endCount[$n] > 0xE000 && $endCount[$n] < 0xF8FF) {
|
||||
$pua = true;
|
||||
if ($endCount[$n] > 0xF500 && $endCount[$n] < 0xF7FF) {
|
||||
$puaag = true;
|
||||
}
|
||||
}
|
||||
// Get each glyphToChar - only point if going to analyse un-mapped Arabic Glyphs
|
||||
if (isset($this->tables['post'])) {
|
||||
$endpoint = ($endCount[$n] + 1);
|
||||
for ($unichar=$startCount[$n];$unichar<$endpoint;$unichar++) {
|
||||
if ($idRangeOffset[$n] == 0)
|
||||
$glyph = ($unichar + $idDelta[$n]) & 0xFFFF;
|
||||
else {
|
||||
$offset = ($unichar - $startCount[$n]) * 2 + $idRangeOffset[$n];
|
||||
$offset = $idRangeOffset_start + 2 * $n + $offset;
|
||||
if ($offset >= $limit)
|
||||
$glyph = 0;
|
||||
else {
|
||||
$glyph = $this->get_ushort($offset);
|
||||
if ($glyph != 0)
|
||||
$glyph = ($glyph + $idDelta[$n]) & 0xFFFF;
|
||||
}
|
||||
}
|
||||
$glyphToChar[$glyph][] = $unichar;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$bold = false;
|
||||
$italic = false;
|
||||
$ftype = '';
|
||||
if ($macStyle & (1 << 0)) { $bold = true; } // bit 0 bold
|
||||
else if ($fsSelection & (1 << 5)) { $bold = true; } // 5 BOLD Characters are emboldened
|
||||
|
||||
if ($macStyle & (1 << 1)) { $italic = true; } // bit 1 italic
|
||||
else if ($fsSelection & (1 << 0)) { $italic = true; } // 0 ITALIC Font contains Italic characters, otherwise they are upright
|
||||
else if ($this->italicAngle <> 0) { $italic = true; }
|
||||
|
||||
if ($isFixedPitch ) { $ftype = 'mono'; }
|
||||
else if ($sFamily >0 && $sFamily <8) { $ftype = 'serif'; }
|
||||
else if ($sFamily ==8) { $ftype = 'sans'; }
|
||||
else if ($sFamily ==10) { $ftype = 'cursive'; }
|
||||
// Use PANOSE
|
||||
if ($panose) {
|
||||
$bFamilyType=ord($panose[0]);
|
||||
if ($bFamilyType==2) {
|
||||
$bSerifStyle=ord($panose[1]);
|
||||
if (!$ftype) {
|
||||
if ($bSerifStyle>1 && $bSerifStyle<11) { $ftype = 'serif'; }
|
||||
else if ($bSerifStyle>10) { $ftype = 'sans'; }
|
||||
}
|
||||
$bProportion=ord($panose[3]);
|
||||
if ($bProportion==9 || $bProportion==1) { $ftype = 'mono'; } // ==1 i.e. No Fit needed for OCR-a and -b
|
||||
}
|
||||
else if ($bFamilyType==3) {
|
||||
$ftype = 'cursive';
|
||||
}
|
||||
}
|
||||
|
||||
fclose($this->fh);
|
||||
return array($this->familyName, $bold, $italic, $ftype, $TTCfontID, $rtl, $indic, $cjk, $sip, $smp, $puaag, $pua, $unAGlyphs);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
?>
|
2920
dk-pdf/includes/mpdf60/classes/ucdn.php
Executable file
2920
dk-pdf/includes/mpdf60/classes/ucdn.php
Executable file
File diff suppressed because it is too large
Load Diff
236
dk-pdf/includes/mpdf60/classes/wmf.php
Executable file
236
dk-pdf/includes/mpdf60/classes/wmf.php
Executable file
@ -0,0 +1,236 @@
|
||||
<?php
|
||||
|
||||
class wmf {
|
||||
|
||||
var $mpdf = null;
|
||||
var $gdiObjectArray;
|
||||
|
||||
function wmf(&$mpdf) {
|
||||
$this->mpdf = $mpdf;
|
||||
}
|
||||
|
||||
|
||||
function _getWMFimage($data) {
|
||||
$k = _MPDFK;
|
||||
|
||||
$this->gdiObjectArray = array();
|
||||
$a=unpack('stest',"\1\0");
|
||||
if ($a['test']!=1)
|
||||
return array(0, 'Error parsing WMF image - Big-endian architecture not supported');
|
||||
// check for Aldus placeable metafile header
|
||||
$key = unpack('Lmagic', substr($data, 0, 4));
|
||||
$p = 18; // WMF header
|
||||
if ($key['magic'] == (int)0x9AC6CDD7) { $p +=22; } // Aldus header
|
||||
// define some state variables
|
||||
$wo=null; // window origin
|
||||
$we=null; // window extent
|
||||
$polyFillMode = 0;
|
||||
$nullPen = false;
|
||||
$nullBrush = false;
|
||||
$endRecord = false;
|
||||
$wmfdata = '';
|
||||
while ($p < strlen($data) && !$endRecord) {
|
||||
$recordInfo = unpack('Lsize/Sfunc', substr($data, $p, 6)); $p += 6;
|
||||
// size of record given in WORDs (= 2 bytes)
|
||||
$size = $recordInfo['size'];
|
||||
// func is number of GDI function
|
||||
$func = $recordInfo['func'];
|
||||
if ($size > 3) {
|
||||
$parms = substr($data, $p, 2*($size-3)); $p += 2*($size-3);
|
||||
}
|
||||
switch ($func) {
|
||||
case 0x020b: // SetWindowOrg
|
||||
// do not allow window origin to be changed
|
||||
// after drawing has begun
|
||||
if (!$wmfdata)
|
||||
$wo = array_reverse(unpack('s2', $parms));
|
||||
break;
|
||||
case 0x020c: // SetWindowExt
|
||||
// do not allow window extent to be changed
|
||||
// after drawing has begun
|
||||
if (!$wmfdata)
|
||||
$we = array_reverse(unpack('s2', $parms));
|
||||
break;
|
||||
case 0x02fc: // CreateBrushIndirect
|
||||
$brush = unpack('sstyle/Cr/Cg/Cb/Ca/Shatch', $parms);
|
||||
$brush['type'] = 'B';
|
||||
$this->_AddGDIObject($brush);
|
||||
break;
|
||||
case 0x02fa: // CreatePenIndirect
|
||||
$pen = unpack('Sstyle/swidth/sdummy/Cr/Cg/Cb/Ca', $parms);
|
||||
// convert width from twips to user unit
|
||||
$pen['width'] /= (20 * $k);
|
||||
$pen['type'] = 'P';
|
||||
$this->_AddGDIObject($pen);
|
||||
break;
|
||||
|
||||
// MUST create other GDI objects even if we don't handle them
|
||||
case 0x06fe: // CreateBitmap
|
||||
case 0x02fd: // CreateBitmapIndirect
|
||||
case 0x00f8: // CreateBrush
|
||||
case 0x02fb: // CreateFontIndirect
|
||||
case 0x00f7: // CreatePalette
|
||||
case 0x01f9: // CreatePatternBrush
|
||||
case 0x06ff: // CreateRegion
|
||||
case 0x0142: // DibCreatePatternBrush
|
||||
$dummyObject = array('type'=>'D');
|
||||
$this->_AddGDIObject($dummyObject);
|
||||
break;
|
||||
case 0x0106: // SetPolyFillMode
|
||||
$polyFillMode = unpack('smode', $parms);
|
||||
$polyFillMode = $polyFillMode['mode'];
|
||||
break;
|
||||
case 0x01f0: // DeleteObject
|
||||
$idx = unpack('Sidx', $parms);
|
||||
$idx = $idx['idx'];
|
||||
$this->_DeleteGDIObject($idx);
|
||||
break;
|
||||
case 0x012d: // SelectObject
|
||||
$idx = unpack('Sidx', $parms);
|
||||
$idx = $idx['idx'];
|
||||
$obj = $this->_GetGDIObject($idx);
|
||||
switch ($obj['type']) {
|
||||
case 'B':
|
||||
$nullBrush = false;
|
||||
if ($obj['style'] == 1) { $nullBrush = true; }
|
||||
else {
|
||||
$wmfdata .= $this->mpdf->SetFColor($this->mpdf->ConvertColor('rgb('.$obj['r'].','.$obj['g'].','.$obj['b'].')'), true)."\n";
|
||||
}
|
||||
break;
|
||||
case 'P':
|
||||
$nullPen = false;
|
||||
$dashArray = array();
|
||||
// dash parameters are custom
|
||||
switch ($obj['style']) {
|
||||
case 0: // PS_SOLID
|
||||
break;
|
||||
case 1: // PS_DASH
|
||||
$dashArray = array(3,1);
|
||||
break;
|
||||
case 2: // PS_DOT
|
||||
$dashArray = array(0.5,0.5);
|
||||
break;
|
||||
case 3: // PS_DASHDOT
|
||||
$dashArray = array(2,1,0.5,1);
|
||||
break;
|
||||
case 4: // PS_DASHDOTDOT
|
||||
$dashArray = array(2,1,0.5,1,0.5,1);
|
||||
break;
|
||||
case 5: // PS_NULL
|
||||
$nullPen = true;
|
||||
break;
|
||||
}
|
||||
if (!$nullPen) {
|
||||
$wmfdata .= $this->mpdf->SetDColor($this->mpdf->ConvertColor('rgb('.$obj['r'].','.$obj['g'].','.$obj['b'].')'), true)."\n";
|
||||
$wmfdata .= sprintf("%.3F w\n",$obj['width']*$k);
|
||||
}
|
||||
if (!empty($dashArray)) {
|
||||
$s = '[';
|
||||
for ($i=0; $i<count($dashArray);$i++) {
|
||||
$s .= $dashArray[$i] * $k;
|
||||
if ($i != count($dashArray)-1) { $s .= ' '; }
|
||||
}
|
||||
$s .= '] 0 d';
|
||||
$wmfdata .= $s."\n";
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 0x0325: // Polyline
|
||||
case 0x0324: // Polygon
|
||||
$coords = unpack('s'.($size-3), $parms);
|
||||
$numpoints = $coords[1];
|
||||
for ($i = $numpoints; $i > 0; $i--) {
|
||||
$px = $coords[2*$i];
|
||||
$py = $coords[2*$i+1];
|
||||
|
||||
if ($i < $numpoints) { $wmfdata .= $this->_LineTo($px, $py); }
|
||||
else { $wmfdata .= $this->_MoveTo($px, $py); }
|
||||
}
|
||||
if ($func == 0x0325) { $op = 's'; }
|
||||
else if ($func == 0x0324) {
|
||||
if ($nullPen) {
|
||||
if ($nullBrush) { $op = 'n'; } // no op
|
||||
else { $op = 'f'; } // fill
|
||||
}
|
||||
else {
|
||||
if ($nullBrush) { $op = 's'; } // stroke
|
||||
else { $op = 'b'; } // stroke and fill
|
||||
}
|
||||
if ($polyFillMode==1 && ($op=='b' || $op=='f')) { $op .= '*'; } // use even-odd fill rule
|
||||
}
|
||||
$wmfdata .= $op."\n";
|
||||
break;
|
||||
case 0x0538: // PolyPolygon
|
||||
$coords = unpack('s'.($size-3), $parms);
|
||||
$numpolygons = $coords[1];
|
||||
$adjustment = $numpolygons;
|
||||
for ($j = 1; $j <= $numpolygons; $j++) {
|
||||
$numpoints = $coords[$j + 1];
|
||||
for ($i = $numpoints; $i > 0; $i--) {
|
||||
$px = $coords[2*$i + $adjustment];
|
||||
$py = $coords[2*$i+1 + $adjustment];
|
||||
if ($i == $numpoints) { $wmfdata .= $this->_MoveTo($px, $py); }
|
||||
else { $wmfdata .= $this->_LineTo($px, $py); }
|
||||
}
|
||||
$adjustment += $numpoints * 2;
|
||||
}
|
||||
|
||||
if ($nullPen) {
|
||||
if ($nullBrush) { $op = 'n'; } // no op
|
||||
else { $op = 'f'; } // fill
|
||||
}
|
||||
else {
|
||||
if ($nullBrush) { $op = 's'; } // stroke
|
||||
else { $op = 'b'; } // stroke and fill
|
||||
}
|
||||
if ($polyFillMode==1 && ($op=='b' || $op=='f')) { $op .= '*'; } // use even-odd fill rule
|
||||
$wmfdata .= $op."\n";
|
||||
break;
|
||||
case 0x0000:
|
||||
$endRecord = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return array(1,$wmfdata,$wo,$we);
|
||||
}
|
||||
|
||||
|
||||
function _MoveTo($x, $y) {
|
||||
return "$x $y m\n";
|
||||
}
|
||||
|
||||
// a line must have been started using _MoveTo() first
|
||||
function _LineTo($x, $y) {
|
||||
return "$x $y l\n";
|
||||
}
|
||||
|
||||
function _AddGDIObject($obj) {
|
||||
// find next available slot
|
||||
$idx = 0;
|
||||
if (!empty($this->gdiObjectArray)) {
|
||||
$empty = false;
|
||||
$i = 0;
|
||||
while (!$empty) {
|
||||
$empty = !isset($this->gdiObjectArray[$i]);
|
||||
$i++;
|
||||
}
|
||||
$idx = $i-1;
|
||||
}
|
||||
$this->gdiObjectArray[$idx] = $obj;
|
||||
}
|
||||
|
||||
function _GetGDIObject($idx) {
|
||||
return $this->gdiObjectArray[$idx];
|
||||
}
|
||||
|
||||
function _DeleteGDIObject($idx) {
|
||||
unset($this->gdiObjectArray[$idx]);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
?>
|
105
dk-pdf/includes/mpdf60/collations/Afrikaans_South_Africa.php
Executable file
105
dk-pdf/includes/mpdf60/collations/Afrikaans_South_Africa.php
Executable file
@ -0,0 +1,105 @@
|
||||
<?php
|
||||
$collation = array (
|
||||
710 => 94,
|
||||
189 => 188,
|
||||
190 => 179,
|
||||
65 => 97,
|
||||
170 => 97,
|
||||
225 => 97,
|
||||
193 => 97,
|
||||
224 => 97,
|
||||
192 => 97,
|
||||
226 => 97,
|
||||
194 => 97,
|
||||
228 => 97,
|
||||
196 => 97,
|
||||
227 => 97,
|
||||
195 => 97,
|
||||
229 => 97,
|
||||
197 => 97,
|
||||
230 => 97,
|
||||
198 => 97,
|
||||
66 => 98,
|
||||
67 => 99,
|
||||
231 => 99,
|
||||
199 => 99,
|
||||
68 => 100,
|
||||
240 => 100,
|
||||
208 => 100,
|
||||
69 => 101,
|
||||
233 => 101,
|
||||
201 => 101,
|
||||
232 => 101,
|
||||
200 => 101,
|
||||
234 => 101,
|
||||
202 => 101,
|
||||
235 => 101,
|
||||
203 => 101,
|
||||
70 => 102,
|
||||
402 => 102,
|
||||
71 => 103,
|
||||
72 => 104,
|
||||
73 => 105,
|
||||
237 => 105,
|
||||
205 => 105,
|
||||
236 => 105,
|
||||
204 => 105,
|
||||
238 => 105,
|
||||
206 => 105,
|
||||
239 => 105,
|
||||
207 => 105,
|
||||
74 => 106,
|
||||
75 => 107,
|
||||
76 => 108,
|
||||
77 => 109,
|
||||
78 => 110,
|
||||
241 => 110,
|
||||
209 => 110,
|
||||
79 => 111,
|
||||
186 => 111,
|
||||
243 => 111,
|
||||
211 => 111,
|
||||
242 => 111,
|
||||
210 => 111,
|
||||
244 => 111,
|
||||
212 => 111,
|
||||
246 => 111,
|
||||
214 => 111,
|
||||
245 => 111,
|
||||
213 => 111,
|
||||
248 => 111,
|
||||
216 => 111,
|
||||
339 => 111,
|
||||
338 => 111,
|
||||
80 => 112,
|
||||
81 => 113,
|
||||
82 => 114,
|
||||
83 => 115,
|
||||
353 => 115,
|
||||
352 => 115,
|
||||
223 => 115,
|
||||
84 => 116,
|
||||
254 => 116,
|
||||
222 => 116,
|
||||
85 => 117,
|
||||
250 => 117,
|
||||
218 => 117,
|
||||
249 => 117,
|
||||
217 => 117,
|
||||
251 => 117,
|
||||
219 => 117,
|
||||
252 => 117,
|
||||
220 => 117,
|
||||
86 => 118,
|
||||
87 => 119,
|
||||
88 => 120,
|
||||
89 => 121,
|
||||
253 => 121,
|
||||
221 => 121,
|
||||
255 => 121,
|
||||
376 => 121,
|
||||
90 => 122,
|
||||
382 => 122,
|
||||
381 => 122,
|
||||
);
|
||||
?>
|
111
dk-pdf/includes/mpdf60/collations/Albanian_Albania.php
Executable file
111
dk-pdf/includes/mpdf60/collations/Albanian_Albania.php
Executable file
@ -0,0 +1,111 @@
|
||||
<?php
|
||||
$collation = array (
|
||||
728 => 711,
|
||||
65 => 97,
|
||||
225 => 97,
|
||||
193 => 97,
|
||||
226 => 97,
|
||||
194 => 97,
|
||||
228 => 97,
|
||||
196 => 97,
|
||||
259 => 97,
|
||||
258 => 97,
|
||||
261 => 97,
|
||||
260 => 97,
|
||||
66 => 98,
|
||||
67 => 99,
|
||||
263 => 99,
|
||||
262 => 99,
|
||||
269 => 99,
|
||||
268 => 99,
|
||||
231 => 99,
|
||||
199 => 99,
|
||||
68 => 100,
|
||||
271 => 100,
|
||||
270 => 100,
|
||||
273 => 100,
|
||||
272 => 100,
|
||||
69 => 101,
|
||||
233 => 101,
|
||||
201 => 101,
|
||||
235 => 101,
|
||||
203 => 101,
|
||||
283 => 101,
|
||||
282 => 101,
|
||||
281 => 101,
|
||||
280 => 101,
|
||||
70 => 102,
|
||||
71 => 103,
|
||||
72 => 104,
|
||||
73 => 105,
|
||||
237 => 105,
|
||||
205 => 105,
|
||||
238 => 105,
|
||||
206 => 105,
|
||||
74 => 106,
|
||||
75 => 107,
|
||||
76 => 108,
|
||||
314 => 108,
|
||||
313 => 108,
|
||||
318 => 108,
|
||||
317 => 108,
|
||||
322 => 108,
|
||||
321 => 108,
|
||||
77 => 109,
|
||||
78 => 110,
|
||||
324 => 110,
|
||||
323 => 110,
|
||||
328 => 110,
|
||||
327 => 110,
|
||||
79 => 111,
|
||||
243 => 111,
|
||||
211 => 111,
|
||||
244 => 111,
|
||||
212 => 111,
|
||||
246 => 111,
|
||||
214 => 111,
|
||||
337 => 111,
|
||||
336 => 111,
|
||||
80 => 112,
|
||||
81 => 113,
|
||||
82 => 114,
|
||||
341 => 114,
|
||||
340 => 114,
|
||||
345 => 114,
|
||||
344 => 114,
|
||||
83 => 115,
|
||||
347 => 115,
|
||||
346 => 115,
|
||||
353 => 115,
|
||||
352 => 115,
|
||||
351 => 115,
|
||||
350 => 115,
|
||||
223 => 115,
|
||||
84 => 116,
|
||||
357 => 116,
|
||||
356 => 116,
|
||||
355 => 116,
|
||||
354 => 116,
|
||||
85 => 117,
|
||||
250 => 117,
|
||||
218 => 117,
|
||||
367 => 117,
|
||||
366 => 117,
|
||||
369 => 117,
|
||||
368 => 117,
|
||||
252 => 117,
|
||||
220 => 117,
|
||||
86 => 118,
|
||||
87 => 119,
|
||||
88 => 120,
|
||||
221 => 253,
|
||||
89 => 121,
|
||||
90 => 122,
|
||||
378 => 122,
|
||||
377 => 122,
|
||||
380 => 122,
|
||||
379 => 122,
|
||||
382 => 122,
|
||||
381 => 122,
|
||||
);
|
||||
?>
|
105
dk-pdf/includes/mpdf60/collations/Alsatian_France.php
Executable file
105
dk-pdf/includes/mpdf60/collations/Alsatian_France.php
Executable file
@ -0,0 +1,105 @@
|
||||
<?php
|
||||
$collation = array (
|
||||
710 => 94,
|
||||
189 => 188,
|
||||
190 => 179,
|
||||
65 => 97,
|
||||
170 => 97,
|
||||
225 => 97,
|
||||
193 => 97,
|
||||
224 => 97,
|
||||
192 => 97,
|
||||
226 => 97,
|
||||
194 => 97,
|
||||
228 => 97,
|
||||
196 => 97,
|
||||
227 => 97,
|
||||
195 => 97,
|
||||
229 => 97,
|
||||
197 => 97,
|
||||
230 => 97,
|
||||
198 => 97,
|
||||
66 => 98,
|
||||
67 => 99,
|
||||
231 => 99,
|
||||
199 => 99,
|
||||
68 => 100,
|
||||
240 => 100,
|
||||
208 => 100,
|
||||
69 => 101,
|
||||
233 => 101,
|
||||
201 => 101,
|
||||
232 => 101,
|
||||
200 => 101,
|
||||
234 => 101,
|
||||
202 => 101,
|
||||
235 => 101,
|
||||
203 => 101,
|
||||
70 => 102,
|
||||
402 => 102,
|
||||
71 => 103,
|
||||
72 => 104,
|
||||
73 => 105,
|
||||
237 => 105,
|
||||
205 => 105,
|
||||
236 => 105,
|
||||
204 => 105,
|
||||
238 => 105,
|
||||
206 => 105,
|
||||
239 => 105,
|
||||
207 => 105,
|
||||
74 => 106,
|
||||
75 => 107,
|
||||
76 => 108,
|
||||
77 => 109,
|
||||
78 => 110,
|
||||
241 => 110,
|
||||
209 => 110,
|
||||
79 => 111,
|
||||
186 => 111,
|
||||
243 => 111,
|
||||
211 => 111,
|
||||
242 => 111,
|
||||
210 => 111,
|
||||
244 => 111,
|
||||
212 => 111,
|
||||
246 => 111,
|
||||
214 => 111,
|
||||
245 => 111,
|
||||
213 => 111,
|
||||
248 => 111,
|
||||
216 => 111,
|
||||
339 => 111,
|
||||
338 => 111,
|
||||
80 => 112,
|
||||
81 => 113,
|
||||
82 => 114,
|
||||
83 => 115,
|
||||
353 => 115,
|
||||
352 => 115,
|
||||
223 => 115,
|
||||
84 => 116,
|
||||
254 => 116,
|
||||
222 => 116,
|
||||
85 => 117,
|
||||
250 => 117,
|
||||
218 => 117,
|
||||
249 => 117,
|
||||
217 => 117,
|
||||
251 => 117,
|
||||
219 => 117,
|
||||
252 => 117,
|
||||
220 => 117,
|
||||
86 => 118,
|
||||
87 => 119,
|
||||
88 => 120,
|
||||
89 => 121,
|
||||
253 => 121,
|
||||
221 => 121,
|
||||
255 => 121,
|
||||
376 => 121,
|
||||
90 => 122,
|
||||
382 => 122,
|
||||
381 => 122,
|
||||
);
|
||||
?>
|
68
dk-pdf/includes/mpdf60/collations/Arabic_Algeria.php
Executable file
68
dk-pdf/includes/mpdf60/collations/Arabic_Algeria.php
Executable file
@ -0,0 +1,68 @@
|
||||
<?php
|
||||
$collation = array (
|
||||
173 => 8205,
|
||||
1600 => 8205,
|
||||
1611 => 8205,
|
||||
1612 => 8205,
|
||||
1613 => 8205,
|
||||
1614 => 8205,
|
||||
1615 => 8205,
|
||||
1616 => 8205,
|
||||
1618 => 8205,
|
||||
1617 => 8205,
|
||||
710 => 94,
|
||||
189 => 188,
|
||||
190 => 179,
|
||||
65 => 97,
|
||||
224 => 97,
|
||||
226 => 97,
|
||||
66 => 98,
|
||||
67 => 99,
|
||||
231 => 99,
|
||||
68 => 100,
|
||||
69 => 101,
|
||||
233 => 101,
|
||||
232 => 101,
|
||||
234 => 101,
|
||||
235 => 101,
|
||||
70 => 102,
|
||||
402 => 102,
|
||||
71 => 103,
|
||||
72 => 104,
|
||||
73 => 105,
|
||||
238 => 105,
|
||||
239 => 105,
|
||||
74 => 106,
|
||||
75 => 107,
|
||||
76 => 108,
|
||||
77 => 109,
|
||||
78 => 110,
|
||||
79 => 111,
|
||||
244 => 111,
|
||||
339 => 111,
|
||||
338 => 111,
|
||||
80 => 112,
|
||||
81 => 113,
|
||||
82 => 114,
|
||||
83 => 115,
|
||||
84 => 116,
|
||||
85 => 117,
|
||||
249 => 117,
|
||||
251 => 117,
|
||||
252 => 117,
|
||||
86 => 118,
|
||||
87 => 119,
|
||||
88 => 120,
|
||||
89 => 121,
|
||||
90 => 122,
|
||||
1573 => 1575,
|
||||
1571 => 1575,
|
||||
1570 => 1575,
|
||||
1606 => 1722,
|
||||
1729 => 1607,
|
||||
1726 => 1607,
|
||||
1572 => 1608,
|
||||
1746 => 1610,
|
||||
1574 => 1610,
|
||||
);
|
||||
?>
|
68
dk-pdf/includes/mpdf60/collations/Arabic_Bahrain.php
Executable file
68
dk-pdf/includes/mpdf60/collations/Arabic_Bahrain.php
Executable file
@ -0,0 +1,68 @@
|
||||
<?php
|
||||
$collation = array (
|
||||
173 => 8205,
|
||||
1600 => 8205,
|
||||
1611 => 8205,
|
||||
1612 => 8205,
|
||||
1613 => 8205,
|
||||
1614 => 8205,
|
||||
1615 => 8205,
|
||||
1616 => 8205,
|
||||
1618 => 8205,
|
||||
1617 => 8205,
|
||||
710 => 94,
|
||||
189 => 188,
|
||||
190 => 179,
|
||||
65 => 97,
|
||||
224 => 97,
|
||||
226 => 97,
|
||||
66 => 98,
|
||||
67 => 99,
|
||||
231 => 99,
|
||||
68 => 100,
|
||||
69 => 101,
|
||||
233 => 101,
|
||||
232 => 101,
|
||||
234 => 101,
|
||||
235 => 101,
|
||||
70 => 102,
|
||||
402 => 102,
|
||||
71 => 103,
|
||||
72 => 104,
|
||||
73 => 105,
|
||||
238 => 105,
|
||||
239 => 105,
|
||||
74 => 106,
|
||||
75 => 107,
|
||||
76 => 108,
|
||||
77 => 109,
|
||||
78 => 110,
|
||||
79 => 111,
|
||||
244 => 111,
|
||||
339 => 111,
|
||||
338 => 111,
|
||||
80 => 112,
|
||||
81 => 113,
|
||||
82 => 114,
|
||||
83 => 115,
|
||||
84 => 116,
|
||||
85 => 117,
|
||||
249 => 117,
|
||||
251 => 117,
|
||||
252 => 117,
|
||||
86 => 118,
|
||||
87 => 119,
|
||||
88 => 120,
|
||||
89 => 121,
|
||||
90 => 122,
|
||||
1573 => 1575,
|
||||
1571 => 1575,
|
||||
1570 => 1575,
|
||||
1606 => 1722,
|
||||
1729 => 1607,
|
||||
1726 => 1607,
|
||||
1572 => 1608,
|
||||
1746 => 1610,
|
||||
1574 => 1610,
|
||||
);
|
||||
?>
|
68
dk-pdf/includes/mpdf60/collations/Arabic_Egypt.php
Executable file
68
dk-pdf/includes/mpdf60/collations/Arabic_Egypt.php
Executable file
@ -0,0 +1,68 @@
|
||||
<?php
|
||||
$collation = array (
|
||||
173 => 8205,
|
||||
1600 => 8205,
|
||||
1611 => 8205,
|
||||
1612 => 8205,
|
||||
1613 => 8205,
|
||||
1614 => 8205,
|
||||
1615 => 8205,
|
||||
1616 => 8205,
|
||||
1618 => 8205,
|
||||
1617 => 8205,
|
||||
710 => 94,
|
||||
189 => 188,
|
||||
190 => 179,
|
||||
65 => 97,
|
||||
224 => 97,
|
||||
226 => 97,
|
||||
66 => 98,
|
||||
67 => 99,
|
||||
231 => 99,
|
||||
68 => 100,
|
||||
69 => 101,
|
||||
233 => 101,
|
||||
232 => 101,
|
||||
234 => 101,
|
||||
235 => 101,
|
||||
70 => 102,
|
||||
402 => 102,
|
||||
71 => 103,
|
||||
72 => 104,
|
||||
73 => 105,
|
||||
238 => 105,
|
||||
239 => 105,
|
||||
74 => 106,
|
||||
75 => 107,
|
||||
76 => 108,
|
||||
77 => 109,
|
||||
78 => 110,
|
||||
79 => 111,
|
||||
244 => 111,
|
||||
339 => 111,
|
||||
338 => 111,
|
||||
80 => 112,
|
||||
81 => 113,
|
||||
82 => 114,
|
||||
83 => 115,
|
||||
84 => 116,
|
||||
85 => 117,
|
||||
249 => 117,
|
||||
251 => 117,
|
||||
252 => 117,
|
||||
86 => 118,
|
||||
87 => 119,
|
||||
88 => 120,
|
||||
89 => 121,
|
||||
90 => 122,
|
||||
1573 => 1575,
|
||||
1571 => 1575,
|
||||
1570 => 1575,
|
||||
1606 => 1722,
|
||||
1729 => 1607,
|
||||
1726 => 1607,
|
||||
1572 => 1608,
|
||||
1746 => 1610,
|
||||
1574 => 1610,
|
||||
);
|
||||
?>
|
68
dk-pdf/includes/mpdf60/collations/Arabic_Iraq.php
Executable file
68
dk-pdf/includes/mpdf60/collations/Arabic_Iraq.php
Executable file
@ -0,0 +1,68 @@
|
||||
<?php
|
||||
$collation = array (
|
||||
173 => 8205,
|
||||
1600 => 8205,
|
||||
1611 => 8205,
|
||||
1612 => 8205,
|
||||
1613 => 8205,
|
||||
1614 => 8205,
|
||||
1615 => 8205,
|
||||
1616 => 8205,
|
||||
1618 => 8205,
|
||||
1617 => 8205,
|
||||
710 => 94,
|
||||
189 => 188,
|
||||
190 => 179,
|
||||
65 => 97,
|
||||
224 => 97,
|
||||
226 => 97,
|
||||
66 => 98,
|
||||
67 => 99,
|
||||
231 => 99,
|
||||
68 => 100,
|
||||
69 => 101,
|
||||
233 => 101,
|
||||
232 => 101,
|
||||
234 => 101,
|
||||
235 => 101,
|
||||
70 => 102,
|
||||
402 => 102,
|
||||
71 => 103,
|
||||
72 => 104,
|
||||
73 => 105,
|
||||
238 => 105,
|
||||
239 => 105,
|
||||
74 => 106,
|
||||
75 => 107,
|
||||
76 => 108,
|
||||
77 => 109,
|
||||
78 => 110,
|
||||
79 => 111,
|
||||
244 => 111,
|
||||
339 => 111,
|
||||
338 => 111,
|
||||
80 => 112,
|
||||
81 => 113,
|
||||
82 => 114,
|
||||
83 => 115,
|
||||
84 => 116,
|
||||
85 => 117,
|
||||
249 => 117,
|
||||
251 => 117,
|
||||
252 => 117,
|
||||
86 => 118,
|
||||
87 => 119,
|
||||
88 => 120,
|
||||
89 => 121,
|
||||
90 => 122,
|
||||
1573 => 1575,
|
||||
1571 => 1575,
|
||||
1570 => 1575,
|
||||
1606 => 1722,
|
||||
1729 => 1607,
|
||||
1726 => 1607,
|
||||
1572 => 1608,
|
||||
1746 => 1610,
|
||||
1574 => 1610,
|
||||
);
|
||||
?>
|
68
dk-pdf/includes/mpdf60/collations/Arabic_Jordan.php
Executable file
68
dk-pdf/includes/mpdf60/collations/Arabic_Jordan.php
Executable file
@ -0,0 +1,68 @@
|
||||
<?php
|
||||
$collation = array (
|
||||
173 => 8205,
|
||||
1600 => 8205,
|
||||
1611 => 8205,
|
||||
1612 => 8205,
|
||||
1613 => 8205,
|
||||
1614 => 8205,
|
||||
1615 => 8205,
|
||||
1616 => 8205,
|
||||
1618 => 8205,
|
||||
1617 => 8205,
|
||||
710 => 94,
|
||||
189 => 188,
|
||||
190 => 179,
|
||||
65 => 97,
|
||||
224 => 97,
|
||||
226 => 97,
|
||||
66 => 98,
|
||||
67 => 99,
|
||||
231 => 99,
|
||||
68 => 100,
|
||||
69 => 101,
|
||||
233 => 101,
|
||||
232 => 101,
|
||||
234 => 101,
|
||||
235 => 101,
|
||||
70 => 102,
|
||||
402 => 102,
|
||||
71 => 103,
|
||||
72 => 104,
|
||||
73 => 105,
|
||||
238 => 105,
|
||||
239 => 105,
|
||||
74 => 106,
|
||||
75 => 107,
|
||||
76 => 108,
|
||||
77 => 109,
|
||||
78 => 110,
|
||||
79 => 111,
|
||||
244 => 111,
|
||||
339 => 111,
|
||||
338 => 111,
|
||||
80 => 112,
|
||||
81 => 113,
|
||||
82 => 114,
|
||||
83 => 115,
|
||||
84 => 116,
|
||||
85 => 117,
|
||||
249 => 117,
|
||||
251 => 117,
|
||||
252 => 117,
|
||||
86 => 118,
|
||||
87 => 119,
|
||||
88 => 120,
|
||||
89 => 121,
|
||||
90 => 122,
|
||||
1573 => 1575,
|
||||
1571 => 1575,
|
||||
1570 => 1575,
|
||||
1606 => 1722,
|
||||
1729 => 1607,
|
||||
1726 => 1607,
|
||||
1572 => 1608,
|
||||
1746 => 1610,
|
||||
1574 => 1610,
|
||||
);
|
||||
?>
|
68
dk-pdf/includes/mpdf60/collations/Arabic_Kuwait.php
Executable file
68
dk-pdf/includes/mpdf60/collations/Arabic_Kuwait.php
Executable file
@ -0,0 +1,68 @@
|
||||
<?php
|
||||
$collation = array (
|
||||
173 => 8205,
|
||||
1600 => 8205,
|
||||
1611 => 8205,
|
||||
1612 => 8205,
|
||||
1613 => 8205,
|
||||
1614 => 8205,
|
||||
1615 => 8205,
|
||||
1616 => 8205,
|
||||
1618 => 8205,
|
||||
1617 => 8205,
|
||||
710 => 94,
|
||||
189 => 188,
|
||||
190 => 179,
|
||||
65 => 97,
|
||||
224 => 97,
|
||||
226 => 97,
|
||||
66 => 98,
|
||||
67 => 99,
|
||||
231 => 99,
|
||||
68 => 100,
|
||||
69 => 101,
|
||||
233 => 101,
|
||||
232 => 101,
|
||||
234 => 101,
|
||||
235 => 101,
|
||||
70 => 102,
|
||||
402 => 102,
|
||||
71 => 103,
|
||||
72 => 104,
|
||||
73 => 105,
|
||||
238 => 105,
|
||||
239 => 105,
|
||||
74 => 106,
|
||||
75 => 107,
|
||||
76 => 108,
|
||||
77 => 109,
|
||||
78 => 110,
|
||||
79 => 111,
|
||||
244 => 111,
|
||||
339 => 111,
|
||||
338 => 111,
|
||||
80 => 112,
|
||||
81 => 113,
|
||||
82 => 114,
|
||||
83 => 115,
|
||||
84 => 116,
|
||||
85 => 117,
|
||||
249 => 117,
|
||||
251 => 117,
|
||||
252 => 117,
|
||||
86 => 118,
|
||||
87 => 119,
|
||||
88 => 120,
|
||||
89 => 121,
|
||||
90 => 122,
|
||||
1573 => 1575,
|
||||
1571 => 1575,
|
||||
1570 => 1575,
|
||||
1606 => 1722,
|
||||
1729 => 1607,
|
||||
1726 => 1607,
|
||||
1572 => 1608,
|
||||
1746 => 1610,
|
||||
1574 => 1610,
|
||||
);
|
||||
?>
|
68
dk-pdf/includes/mpdf60/collations/Arabic_Lebanon.php
Executable file
68
dk-pdf/includes/mpdf60/collations/Arabic_Lebanon.php
Executable file
@ -0,0 +1,68 @@
|
||||
<?php
|
||||
$collation = array (
|
||||
173 => 8205,
|
||||
1600 => 8205,
|
||||
1611 => 8205,
|
||||
1612 => 8205,
|
||||
1613 => 8205,
|
||||
1614 => 8205,
|
||||
1615 => 8205,
|
||||
1616 => 8205,
|
||||
1618 => 8205,
|
||||
1617 => 8205,
|
||||
710 => 94,
|
||||
189 => 188,
|
||||
190 => 179,
|
||||
65 => 97,
|
||||
224 => 97,
|
||||
226 => 97,
|
||||
66 => 98,
|
||||
67 => 99,
|
||||
231 => 99,
|
||||
68 => 100,
|
||||
69 => 101,
|
||||
233 => 101,
|
||||
232 => 101,
|
||||
234 => 101,
|
||||
235 => 101,
|
||||
70 => 102,
|
||||
402 => 102,
|
||||
71 => 103,
|
||||
72 => 104,
|
||||
73 => 105,
|
||||
238 => 105,
|
||||
239 => 105,
|
||||
74 => 106,
|
||||
75 => 107,
|
||||
76 => 108,
|
||||
77 => 109,
|
||||
78 => 110,
|
||||
79 => 111,
|
||||
244 => 111,
|
||||
339 => 111,
|
||||
338 => 111,
|
||||
80 => 112,
|
||||
81 => 113,
|
||||
82 => 114,
|
||||
83 => 115,
|
||||
84 => 116,
|
||||
85 => 117,
|
||||
249 => 117,
|
||||
251 => 117,
|
||||
252 => 117,
|
||||
86 => 118,
|
||||
87 => 119,
|
||||
88 => 120,
|
||||
89 => 121,
|
||||
90 => 122,
|
||||
1573 => 1575,
|
||||
1571 => 1575,
|
||||
1570 => 1575,
|
||||
1606 => 1722,
|
||||
1729 => 1607,
|
||||
1726 => 1607,
|
||||
1572 => 1608,
|
||||
1746 => 1610,
|
||||
1574 => 1610,
|
||||
);
|
||||
?>
|
68
dk-pdf/includes/mpdf60/collations/Arabic_Libya.php
Executable file
68
dk-pdf/includes/mpdf60/collations/Arabic_Libya.php
Executable file
@ -0,0 +1,68 @@
|
||||
<?php
|
||||
$collation = array (
|
||||
173 => 8205,
|
||||
1600 => 8205,
|
||||
1611 => 8205,
|
||||
1612 => 8205,
|
||||
1613 => 8205,
|
||||
1614 => 8205,
|
||||
1615 => 8205,
|
||||
1616 => 8205,
|
||||
1618 => 8205,
|
||||
1617 => 8205,
|
||||
710 => 94,
|
||||
189 => 188,
|
||||
190 => 179,
|
||||
65 => 97,
|
||||
224 => 97,
|
||||
226 => 97,
|
||||
66 => 98,
|
||||
67 => 99,
|
||||
231 => 99,
|
||||
68 => 100,
|
||||
69 => 101,
|
||||
233 => 101,
|
||||
232 => 101,
|
||||
234 => 101,
|
||||
235 => 101,
|
||||
70 => 102,
|
||||
402 => 102,
|
||||
71 => 103,
|
||||
72 => 104,
|
||||
73 => 105,
|
||||
238 => 105,
|
||||
239 => 105,
|
||||
74 => 106,
|
||||
75 => 107,
|
||||
76 => 108,
|
||||
77 => 109,
|
||||
78 => 110,
|
||||
79 => 111,
|
||||
244 => 111,
|
||||
339 => 111,
|
||||
338 => 111,
|
||||
80 => 112,
|
||||
81 => 113,
|
||||
82 => 114,
|
||||
83 => 115,
|
||||
84 => 116,
|
||||
85 => 117,
|
||||
249 => 117,
|
||||
251 => 117,
|
||||
252 => 117,
|
||||
86 => 118,
|
||||
87 => 119,
|
||||
88 => 120,
|
||||
89 => 121,
|
||||
90 => 122,
|
||||
1573 => 1575,
|
||||
1571 => 1575,
|
||||
1570 => 1575,
|
||||
1606 => 1722,
|
||||
1729 => 1607,
|
||||
1726 => 1607,
|
||||
1572 => 1608,
|
||||
1746 => 1610,
|
||||
1574 => 1610,
|
||||
);
|
||||
?>
|
68
dk-pdf/includes/mpdf60/collations/Arabic_Morocco.php
Executable file
68
dk-pdf/includes/mpdf60/collations/Arabic_Morocco.php
Executable file
@ -0,0 +1,68 @@
|
||||
<?php
|
||||
$collation = array (
|
||||
173 => 8205,
|
||||
1600 => 8205,
|
||||
1611 => 8205,
|
||||
1612 => 8205,
|
||||
1613 => 8205,
|
||||
1614 => 8205,
|
||||
1615 => 8205,
|
||||
1616 => 8205,
|
||||
1618 => 8205,
|
||||
1617 => 8205,
|
||||
710 => 94,
|
||||
189 => 188,
|
||||
190 => 179,
|
||||
65 => 97,
|
||||
224 => 97,
|
||||
226 => 97,
|
||||
66 => 98,
|
||||
67 => 99,
|
||||
231 => 99,
|
||||
68 => 100,
|
||||
69 => 101,
|
||||
233 => 101,
|
||||
232 => 101,
|
||||
234 => 101,
|
||||
235 => 101,
|
||||
70 => 102,
|
||||
402 => 102,
|
||||
71 => 103,
|
||||
72 => 104,
|
||||
73 => 105,
|
||||
238 => 105,
|
||||
239 => 105,
|
||||
74 => 106,
|
||||
75 => 107,
|
||||
76 => 108,
|
||||
77 => 109,
|
||||
78 => 110,
|
||||
79 => 111,
|
||||
244 => 111,
|
||||
339 => 111,
|
||||
338 => 111,
|
||||
80 => 112,
|
||||
81 => 113,
|
||||
82 => 114,
|
||||
83 => 115,
|
||||
84 => 116,
|
||||
85 => 117,
|
||||
249 => 117,
|
||||
251 => 117,
|
||||
252 => 117,
|
||||
86 => 118,
|
||||
87 => 119,
|
||||
88 => 120,
|
||||
89 => 121,
|
||||
90 => 122,
|
||||
1573 => 1575,
|
||||
1571 => 1575,
|
||||
1570 => 1575,
|
||||
1606 => 1722,
|
||||
1729 => 1607,
|
||||
1726 => 1607,
|
||||
1572 => 1608,
|
||||
1746 => 1610,
|
||||
1574 => 1610,
|
||||
);
|
||||
?>
|
68
dk-pdf/includes/mpdf60/collations/Arabic_Oman.php
Executable file
68
dk-pdf/includes/mpdf60/collations/Arabic_Oman.php
Executable file
@ -0,0 +1,68 @@
|
||||
<?php
|
||||
$collation = array (
|
||||
173 => 8205,
|
||||
1600 => 8205,
|
||||
1611 => 8205,
|
||||
1612 => 8205,
|
||||
1613 => 8205,
|
||||
1614 => 8205,
|
||||
1615 => 8205,
|
||||
1616 => 8205,
|
||||
1618 => 8205,
|
||||
1617 => 8205,
|
||||
710 => 94,
|
||||
189 => 188,
|
||||
190 => 179,
|
||||
65 => 97,
|
||||
224 => 97,
|
||||
226 => 97,
|
||||
66 => 98,
|
||||
67 => 99,
|
||||
231 => 99,
|
||||
68 => 100,
|
||||
69 => 101,
|
||||
233 => 101,
|
||||
232 => 101,
|
||||
234 => 101,
|
||||
235 => 101,
|
||||
70 => 102,
|
||||
402 => 102,
|
||||
71 => 103,
|
||||
72 => 104,
|
||||
73 => 105,
|
||||
238 => 105,
|
||||
239 => 105,
|
||||
74 => 106,
|
||||
75 => 107,
|
||||
76 => 108,
|
||||
77 => 109,
|
||||
78 => 110,
|
||||
79 => 111,
|
||||
244 => 111,
|
||||
339 => 111,
|
||||
338 => 111,
|
||||
80 => 112,
|
||||
81 => 113,
|
||||
82 => 114,
|
||||
83 => 115,
|
||||
84 => 116,
|
||||
85 => 117,
|
||||
249 => 117,
|
||||
251 => 117,
|
||||
252 => 117,
|
||||
86 => 118,
|
||||
87 => 119,
|
||||
88 => 120,
|
||||
89 => 121,
|
||||
90 => 122,
|
||||
1573 => 1575,
|
||||
1571 => 1575,
|
||||
1570 => 1575,
|
||||
1606 => 1722,
|
||||
1729 => 1607,
|
||||
1726 => 1607,
|
||||
1572 => 1608,
|
||||
1746 => 1610,
|
||||
1574 => 1610,
|
||||
);
|
||||
?>
|
68
dk-pdf/includes/mpdf60/collations/Arabic_Pseudo_RTL.php
Executable file
68
dk-pdf/includes/mpdf60/collations/Arabic_Pseudo_RTL.php
Executable file
@ -0,0 +1,68 @@
|
||||
<?php
|
||||
$collation = array (
|
||||
173 => 8205,
|
||||
1600 => 8205,
|
||||
1611 => 8205,
|
||||
1612 => 8205,
|
||||
1613 => 8205,
|
||||
1614 => 8205,
|
||||
1615 => 8205,
|
||||
1616 => 8205,
|
||||
1618 => 8205,
|
||||
1617 => 8205,
|
||||
710 => 94,
|
||||
189 => 188,
|
||||
190 => 179,
|
||||
65 => 97,
|
||||
224 => 97,
|
||||
226 => 97,
|
||||
66 => 98,
|
||||
67 => 99,
|
||||
231 => 99,
|
||||
68 => 100,
|
||||
69 => 101,
|
||||
233 => 101,
|
||||
232 => 101,
|
||||
234 => 101,
|
||||
235 => 101,
|
||||
70 => 102,
|
||||
402 => 102,
|
||||
71 => 103,
|
||||
72 => 104,
|
||||
73 => 105,
|
||||
238 => 105,
|
||||
239 => 105,
|
||||
74 => 106,
|
||||
75 => 107,
|
||||
76 => 108,
|
||||
77 => 109,
|
||||
78 => 110,
|
||||
79 => 111,
|
||||
244 => 111,
|
||||
339 => 111,
|
||||
338 => 111,
|
||||
80 => 112,
|
||||
81 => 113,
|
||||
82 => 114,
|
||||
83 => 115,
|
||||
84 => 116,
|
||||
85 => 117,
|
||||
249 => 117,
|
||||
251 => 117,
|
||||
252 => 117,
|
||||
86 => 118,
|
||||
87 => 119,
|
||||
88 => 120,
|
||||
89 => 121,
|
||||
90 => 122,
|
||||
1573 => 1575,
|
||||
1571 => 1575,
|
||||
1570 => 1575,
|
||||
1606 => 1722,
|
||||
1729 => 1607,
|
||||
1726 => 1607,
|
||||
1572 => 1608,
|
||||
1746 => 1610,
|
||||
1574 => 1610,
|
||||
);
|
||||
?>
|
68
dk-pdf/includes/mpdf60/collations/Arabic_Qatar.php
Executable file
68
dk-pdf/includes/mpdf60/collations/Arabic_Qatar.php
Executable file
@ -0,0 +1,68 @@
|
||||
<?php
|
||||
$collation = array (
|
||||
173 => 8205,
|
||||
1600 => 8205,
|
||||
1611 => 8205,
|
||||
1612 => 8205,
|
||||
1613 => 8205,
|
||||
1614 => 8205,
|
||||
1615 => 8205,
|
||||
1616 => 8205,
|
||||
1618 => 8205,
|
||||
1617 => 8205,
|
||||
710 => 94,
|
||||
189 => 188,
|
||||
190 => 179,
|
||||
65 => 97,
|
||||
224 => 97,
|
||||
226 => 97,
|
||||
66 => 98,
|
||||
67 => 99,
|
||||
231 => 99,
|
||||
68 => 100,
|
||||
69 => 101,
|
||||
233 => 101,
|
||||
232 => 101,
|
||||
234 => 101,
|
||||
235 => 101,
|
||||
70 => 102,
|
||||
402 => 102,
|
||||
71 => 103,
|
||||
72 => 104,
|
||||
73 => 105,
|
||||
238 => 105,
|
||||
239 => 105,
|
||||
74 => 106,
|
||||
75 => 107,
|
||||
76 => 108,
|
||||
77 => 109,
|
||||
78 => 110,
|
||||
79 => 111,
|
||||
244 => 111,
|
||||
339 => 111,
|
||||
338 => 111,
|
||||
80 => 112,
|
||||
81 => 113,
|
||||
82 => 114,
|
||||
83 => 115,
|
||||
84 => 116,
|
||||
85 => 117,
|
||||
249 => 117,
|
||||
251 => 117,
|
||||
252 => 117,
|
||||
86 => 118,
|
||||
87 => 119,
|
||||
88 => 120,
|
||||
89 => 121,
|
||||
90 => 122,
|
||||
1573 => 1575,
|
||||
1571 => 1575,
|
||||
1570 => 1575,
|
||||
1606 => 1722,
|
||||
1729 => 1607,
|
||||
1726 => 1607,
|
||||
1572 => 1608,
|
||||
1746 => 1610,
|
||||
1574 => 1610,
|
||||
);
|
||||
?>
|
68
dk-pdf/includes/mpdf60/collations/Arabic_Saudi_Arabia.php
Executable file
68
dk-pdf/includes/mpdf60/collations/Arabic_Saudi_Arabia.php
Executable file
@ -0,0 +1,68 @@
|
||||
<?php
|
||||
$collation = array (
|
||||
173 => 8205,
|
||||
1600 => 8205,
|
||||
1611 => 8205,
|
||||
1612 => 8205,
|
||||
1613 => 8205,
|
||||
1614 => 8205,
|
||||
1615 => 8205,
|
||||
1616 => 8205,
|
||||
1618 => 8205,
|
||||
1617 => 8205,
|
||||
710 => 94,
|
||||
189 => 188,
|
||||
190 => 179,
|
||||
65 => 97,
|
||||
224 => 97,
|
||||
226 => 97,
|
||||
66 => 98,
|
||||
67 => 99,
|
||||
231 => 99,
|
||||
68 => 100,
|
||||
69 => 101,
|
||||
233 => 101,
|
||||
232 => 101,
|
||||
234 => 101,
|
||||
235 => 101,
|
||||
70 => 102,
|
||||
402 => 102,
|
||||
71 => 103,
|
||||
72 => 104,
|
||||
73 => 105,
|
||||
238 => 105,
|
||||
239 => 105,
|
||||
74 => 106,
|
||||
75 => 107,
|
||||
76 => 108,
|
||||
77 => 109,
|
||||
78 => 110,
|
||||
79 => 111,
|
||||
244 => 111,
|
||||
339 => 111,
|
||||
338 => 111,
|
||||
80 => 112,
|
||||
81 => 113,
|
||||
82 => 114,
|
||||
83 => 115,
|
||||
84 => 116,
|
||||
85 => 117,
|
||||
249 => 117,
|
||||
251 => 117,
|
||||
252 => 117,
|
||||
86 => 118,
|
||||
87 => 119,
|
||||
88 => 120,
|
||||
89 => 121,
|
||||
90 => 122,
|
||||
1573 => 1575,
|
||||
1571 => 1575,
|
||||
1570 => 1575,
|
||||
1606 => 1722,
|
||||
1729 => 1607,
|
||||
1726 => 1607,
|
||||
1572 => 1608,
|
||||
1746 => 1610,
|
||||
1574 => 1610,
|
||||
);
|
||||
?>
|
68
dk-pdf/includes/mpdf60/collations/Arabic_Syria.php
Executable file
68
dk-pdf/includes/mpdf60/collations/Arabic_Syria.php
Executable file
@ -0,0 +1,68 @@
|
||||
<?php
|
||||
$collation = array (
|
||||
173 => 8205,
|
||||
1600 => 8205,
|
||||
1611 => 8205,
|
||||
1612 => 8205,
|
||||
1613 => 8205,
|
||||
1614 => 8205,
|
||||
1615 => 8205,
|
||||
1616 => 8205,
|
||||
1618 => 8205,
|
||||
1617 => 8205,
|
||||
710 => 94,
|
||||
189 => 188,
|
||||
190 => 179,
|
||||
65 => 97,
|
||||
224 => 97,
|
||||
226 => 97,
|
||||
66 => 98,
|
||||
67 => 99,
|
||||
231 => 99,
|
||||
68 => 100,
|
||||
69 => 101,
|
||||
233 => 101,
|
||||
232 => 101,
|
||||
234 => 101,
|
||||
235 => 101,
|
||||
70 => 102,
|
||||
402 => 102,
|
||||
71 => 103,
|
||||
72 => 104,
|
||||
73 => 105,
|
||||
238 => 105,
|
||||
239 => 105,
|
||||
74 => 106,
|
||||
75 => 107,
|
||||
76 => 108,
|
||||
77 => 109,
|
||||
78 => 110,
|
||||
79 => 111,
|
||||
244 => 111,
|
||||
339 => 111,
|
||||
338 => 111,
|
||||
80 => 112,
|
||||
81 => 113,
|
||||
82 => 114,
|
||||
83 => 115,
|
||||
84 => 116,
|
||||
85 => 117,
|
||||
249 => 117,
|
||||
251 => 117,
|
||||
252 => 117,
|
||||
86 => 118,
|
||||
87 => 119,
|
||||
88 => 120,
|
||||
89 => 121,
|
||||
90 => 122,
|
||||
1573 => 1575,
|
||||
1571 => 1575,
|
||||
1570 => 1575,
|
||||
1606 => 1722,
|
||||
1729 => 1607,
|
||||
1726 => 1607,
|
||||
1572 => 1608,
|
||||
1746 => 1610,
|
||||
1574 => 1610,
|
||||
);
|
||||
?>
|
68
dk-pdf/includes/mpdf60/collations/Arabic_Tunisia.php
Executable file
68
dk-pdf/includes/mpdf60/collations/Arabic_Tunisia.php
Executable file
@ -0,0 +1,68 @@
|
||||
<?php
|
||||
$collation = array (
|
||||
173 => 8205,
|
||||
1600 => 8205,
|
||||
1611 => 8205,
|
||||
1612 => 8205,
|
||||
1613 => 8205,
|
||||
1614 => 8205,
|
||||
1615 => 8205,
|
||||
1616 => 8205,
|
||||
1618 => 8205,
|
||||
1617 => 8205,
|
||||
710 => 94,
|
||||
189 => 188,
|
||||
190 => 179,
|
||||
65 => 97,
|
||||
224 => 97,
|
||||
226 => 97,
|
||||
66 => 98,
|
||||
67 => 99,
|
||||
231 => 99,
|
||||
68 => 100,
|
||||
69 => 101,
|
||||
233 => 101,
|
||||
232 => 101,
|
||||
234 => 101,
|
||||
235 => 101,
|
||||
70 => 102,
|
||||
402 => 102,
|
||||
71 => 103,
|
||||
72 => 104,
|
||||
73 => 105,
|
||||
238 => 105,
|
||||
239 => 105,
|
||||
74 => 106,
|
||||
75 => 107,
|
||||
76 => 108,
|
||||
77 => 109,
|
||||
78 => 110,
|
||||
79 => 111,
|
||||
244 => 111,
|
||||
339 => 111,
|
||||
338 => 111,
|
||||
80 => 112,
|
||||
81 => 113,
|
||||
82 => 114,
|
||||
83 => 115,
|
||||
84 => 116,
|
||||
85 => 117,
|
||||
249 => 117,
|
||||
251 => 117,
|
||||
252 => 117,
|
||||
86 => 118,
|
||||
87 => 119,
|
||||
88 => 120,
|
||||
89 => 121,
|
||||
90 => 122,
|
||||
1573 => 1575,
|
||||
1571 => 1575,
|
||||
1570 => 1575,
|
||||
1606 => 1722,
|
||||
1729 => 1607,
|
||||
1726 => 1607,
|
||||
1572 => 1608,
|
||||
1746 => 1610,
|
||||
1574 => 1610,
|
||||
);
|
||||
?>
|
68
dk-pdf/includes/mpdf60/collations/Arabic_Yemen.php
Executable file
68
dk-pdf/includes/mpdf60/collations/Arabic_Yemen.php
Executable file
@ -0,0 +1,68 @@
|
||||
<?php
|
||||
$collation = array (
|
||||
173 => 8205,
|
||||
1600 => 8205,
|
||||
1611 => 8205,
|
||||
1612 => 8205,
|
||||
1613 => 8205,
|
||||
1614 => 8205,
|
||||
1615 => 8205,
|
||||
1616 => 8205,
|
||||
1618 => 8205,
|
||||
1617 => 8205,
|
||||
710 => 94,
|
||||
189 => 188,
|
||||
190 => 179,
|
||||
65 => 97,
|
||||
224 => 97,
|
||||
226 => 97,
|
||||
66 => 98,
|
||||
67 => 99,
|
||||
231 => 99,
|
||||
68 => 100,
|
||||
69 => 101,
|
||||
233 => 101,
|
||||
232 => 101,
|
||||
234 => 101,
|
||||
235 => 101,
|
||||
70 => 102,
|
||||
402 => 102,
|
||||
71 => 103,
|
||||
72 => 104,
|
||||
73 => 105,
|
||||
238 => 105,
|
||||
239 => 105,
|
||||
74 => 106,
|
||||
75 => 107,
|
||||
76 => 108,
|
||||
77 => 109,
|
||||
78 => 110,
|
||||
79 => 111,
|
||||
244 => 111,
|
||||
339 => 111,
|
||||
338 => 111,
|
||||
80 => 112,
|
||||
81 => 113,
|
||||
82 => 114,
|
||||
83 => 115,
|
||||
84 => 116,
|
||||
85 => 117,
|
||||
249 => 117,
|
||||
251 => 117,
|
||||
252 => 117,
|
||||
86 => 118,
|
||||
87 => 119,
|
||||
88 => 120,
|
||||
89 => 121,
|
||||
90 => 122,
|
||||
1573 => 1575,
|
||||
1571 => 1575,
|
||||
1570 => 1575,
|
||||
1606 => 1722,
|
||||
1729 => 1607,
|
||||
1726 => 1607,
|
||||
1572 => 1608,
|
||||
1746 => 1610,
|
||||
1574 => 1610,
|
||||
);
|
||||
?>
|
80
dk-pdf/includes/mpdf60/collations/Azeri_(Cyrillic)_Azerbaijan.php
Executable file
80
dk-pdf/includes/mpdf60/collations/Azeri_(Cyrillic)_Azerbaijan.php
Executable file
@ -0,0 +1,80 @@
|
||||
<?php
|
||||
$collation = array (
|
||||
65 => 97,
|
||||
66 => 98,
|
||||
67 => 99,
|
||||
68 => 100,
|
||||
69 => 101,
|
||||
70 => 102,
|
||||
71 => 103,
|
||||
72 => 104,
|
||||
88 => 120,
|
||||
73 => 105,
|
||||
74 => 106,
|
||||
75 => 107,
|
||||
81 => 113,
|
||||
76 => 108,
|
||||
77 => 109,
|
||||
78 => 110,
|
||||
79 => 111,
|
||||
80 => 112,
|
||||
82 => 114,
|
||||
83 => 115,
|
||||
84 => 116,
|
||||
85 => 117,
|
||||
86 => 118,
|
||||
87 => 119,
|
||||
89 => 121,
|
||||
90 => 122,
|
||||
1040 => 1072,
|
||||
1041 => 1073,
|
||||
1042 => 1074,
|
||||
1043 => 1075,
|
||||
1107 => 1075,
|
||||
1027 => 1075,
|
||||
1168 => 1169,
|
||||
1044 => 1076,
|
||||
1026 => 1106,
|
||||
1045 => 1077,
|
||||
1105 => 1077,
|
||||
1025 => 1077,
|
||||
1028 => 1108,
|
||||
1046 => 1078,
|
||||
1047 => 1079,
|
||||
1029 => 1109,
|
||||
1048 => 1080,
|
||||
1031 => 1111,
|
||||
1049 => 1081,
|
||||
1032 => 1112,
|
||||
1050 => 1082,
|
||||
1116 => 1082,
|
||||
1036 => 1082,
|
||||
1067 => 1099,
|
||||
1051 => 1083,
|
||||
1033 => 1113,
|
||||
1052 => 1084,
|
||||
1053 => 1085,
|
||||
1034 => 1114,
|
||||
1054 => 1086,
|
||||
1055 => 1087,
|
||||
1056 => 1088,
|
||||
1057 => 1089,
|
||||
1058 => 1090,
|
||||
1035 => 1115,
|
||||
1059 => 1091,
|
||||
1118 => 1091,
|
||||
1038 => 1091,
|
||||
1060 => 1092,
|
||||
1061 => 1093,
|
||||
1062 => 1094,
|
||||
1063 => 1095,
|
||||
1039 => 1119,
|
||||
1064 => 1096,
|
||||
1065 => 1097,
|
||||
1066 => 1098,
|
||||
1068 => 1100,
|
||||
1069 => 1101,
|
||||
1070 => 1102,
|
||||
1071 => 1103,
|
||||
);
|
||||
?>
|
98
dk-pdf/includes/mpdf60/collations/Azeri_(Latin)_Azerbaijan.php
Executable file
98
dk-pdf/includes/mpdf60/collations/Azeri_(Latin)_Azerbaijan.php
Executable file
@ -0,0 +1,98 @@
|
||||
<?php
|
||||
$collation = array (
|
||||
710 => 94,
|
||||
189 => 188,
|
||||
190 => 179,
|
||||
65 => 97,
|
||||
170 => 97,
|
||||
225 => 97,
|
||||
193 => 97,
|
||||
224 => 97,
|
||||
192 => 97,
|
||||
226 => 97,
|
||||
194 => 97,
|
||||
228 => 97,
|
||||
196 => 97,
|
||||
227 => 97,
|
||||
195 => 97,
|
||||
229 => 97,
|
||||
197 => 97,
|
||||
230 => 97,
|
||||
198 => 97,
|
||||
66 => 98,
|
||||
67 => 99,
|
||||
199 => 231,
|
||||
68 => 100,
|
||||
69 => 101,
|
||||
233 => 101,
|
||||
201 => 101,
|
||||
232 => 101,
|
||||
200 => 101,
|
||||
234 => 101,
|
||||
202 => 101,
|
||||
235 => 101,
|
||||
203 => 101,
|
||||
70 => 102,
|
||||
402 => 102,
|
||||
71 => 103,
|
||||
286 => 287,
|
||||
72 => 104,
|
||||
88 => 120,
|
||||
73 => 105,
|
||||
305 => 105,
|
||||
237 => 105,
|
||||
205 => 105,
|
||||
236 => 105,
|
||||
204 => 105,
|
||||
304 => 105,
|
||||
238 => 105,
|
||||
206 => 105,
|
||||
239 => 105,
|
||||
207 => 105,
|
||||
74 => 106,
|
||||
75 => 107,
|
||||
81 => 113,
|
||||
76 => 108,
|
||||
77 => 109,
|
||||
78 => 110,
|
||||
241 => 110,
|
||||
209 => 110,
|
||||
79 => 111,
|
||||
186 => 111,
|
||||
243 => 111,
|
||||
211 => 111,
|
||||
242 => 111,
|
||||
210 => 111,
|
||||
244 => 111,
|
||||
212 => 111,
|
||||
245 => 111,
|
||||
213 => 111,
|
||||
248 => 111,
|
||||
216 => 111,
|
||||
339 => 111,
|
||||
338 => 111,
|
||||
214 => 246,
|
||||
80 => 112,
|
||||
82 => 114,
|
||||
83 => 115,
|
||||
353 => 115,
|
||||
352 => 115,
|
||||
223 => 115,
|
||||
350 => 351,
|
||||
84 => 116,
|
||||
85 => 117,
|
||||
250 => 117,
|
||||
218 => 117,
|
||||
249 => 117,
|
||||
217 => 117,
|
||||
251 => 117,
|
||||
219 => 117,
|
||||
220 => 252,
|
||||
86 => 118,
|
||||
87 => 119,
|
||||
89 => 121,
|
||||
255 => 121,
|
||||
376 => 121,
|
||||
90 => 122,
|
||||
);
|
||||
?>
|
80
dk-pdf/includes/mpdf60/collations/Bashkir_Russia.php
Executable file
80
dk-pdf/includes/mpdf60/collations/Bashkir_Russia.php
Executable file
@ -0,0 +1,80 @@
|
||||
<?php
|
||||
$collation = array (
|
||||
65 => 97,
|
||||
66 => 98,
|
||||
67 => 99,
|
||||
68 => 100,
|
||||
69 => 101,
|
||||
70 => 102,
|
||||
71 => 103,
|
||||
72 => 104,
|
||||
73 => 105,
|
||||
74 => 106,
|
||||
75 => 107,
|
||||
76 => 108,
|
||||
77 => 109,
|
||||
78 => 110,
|
||||
79 => 111,
|
||||
80 => 112,
|
||||
81 => 113,
|
||||
82 => 114,
|
||||
83 => 115,
|
||||
84 => 116,
|
||||
85 => 117,
|
||||
86 => 118,
|
||||
87 => 119,
|
||||
88 => 120,
|
||||
89 => 121,
|
||||
90 => 122,
|
||||
1040 => 1072,
|
||||
1041 => 1073,
|
||||
1042 => 1074,
|
||||
1043 => 1075,
|
||||
1107 => 1075,
|
||||
1027 => 1075,
|
||||
1168 => 1169,
|
||||
1044 => 1076,
|
||||
1026 => 1106,
|
||||
1045 => 1077,
|
||||
1105 => 1077,
|
||||
1025 => 1077,
|
||||
1028 => 1108,
|
||||
1046 => 1078,
|
||||
1047 => 1079,
|
||||
1029 => 1109,
|
||||
1048 => 1080,
|
||||
1031 => 1111,
|
||||
1049 => 1081,
|
||||
1032 => 1112,
|
||||
1050 => 1082,
|
||||
1116 => 1082,
|
||||
1036 => 1082,
|
||||
1051 => 1083,
|
||||
1033 => 1113,
|
||||
1052 => 1084,
|
||||
1053 => 1085,
|
||||
1034 => 1114,
|
||||
1054 => 1086,
|
||||
1055 => 1087,
|
||||
1056 => 1088,
|
||||
1057 => 1089,
|
||||
1058 => 1090,
|
||||
1035 => 1115,
|
||||
1059 => 1091,
|
||||
1118 => 1091,
|
||||
1038 => 1091,
|
||||
1060 => 1092,
|
||||
1061 => 1093,
|
||||
1062 => 1094,
|
||||
1063 => 1095,
|
||||
1039 => 1119,
|
||||
1064 => 1096,
|
||||
1065 => 1097,
|
||||
1066 => 1098,
|
||||
1067 => 1099,
|
||||
1068 => 1100,
|
||||
1069 => 1101,
|
||||
1070 => 1102,
|
||||
1071 => 1103,
|
||||
);
|
||||
?>
|
105
dk-pdf/includes/mpdf60/collations/Basque_Spain.php
Executable file
105
dk-pdf/includes/mpdf60/collations/Basque_Spain.php
Executable file
@ -0,0 +1,105 @@
|
||||
<?php
|
||||
$collation = array (
|
||||
710 => 94,
|
||||
189 => 188,
|
||||
190 => 179,
|
||||
65 => 97,
|
||||
170 => 97,
|
||||
225 => 97,
|
||||
193 => 97,
|
||||
224 => 97,
|
||||
192 => 97,
|
||||
226 => 97,
|
||||
194 => 97,
|
||||
228 => 97,
|
||||
196 => 97,
|
||||
227 => 97,
|
||||
195 => 97,
|
||||
229 => 97,
|
||||
197 => 97,
|
||||
230 => 97,
|
||||
198 => 97,
|
||||
66 => 98,
|
||||
67 => 99,
|
||||
231 => 99,
|
||||
199 => 99,
|
||||
68 => 100,
|
||||
240 => 100,
|
||||
208 => 100,
|
||||
69 => 101,
|
||||
233 => 101,
|
||||
201 => 101,
|
||||
232 => 101,
|
||||
200 => 101,
|
||||
234 => 101,
|
||||
202 => 101,
|
||||
235 => 101,
|
||||
203 => 101,
|
||||
70 => 102,
|
||||
402 => 102,
|
||||
71 => 103,
|
||||
72 => 104,
|
||||
73 => 105,
|
||||
237 => 105,
|
||||
205 => 105,
|
||||
236 => 105,
|
||||
204 => 105,
|
||||
238 => 105,
|
||||
206 => 105,
|
||||
239 => 105,
|
||||
207 => 105,
|
||||
74 => 106,
|
||||
75 => 107,
|
||||
76 => 108,
|
||||
77 => 109,
|
||||
78 => 110,
|
||||
241 => 110,
|
||||
209 => 110,
|
||||
79 => 111,
|
||||
186 => 111,
|
||||
243 => 111,
|
||||
211 => 111,
|
||||
242 => 111,
|
||||
210 => 111,
|
||||
244 => 111,
|
||||
212 => 111,
|
||||
246 => 111,
|
||||
214 => 111,
|
||||
245 => 111,
|
||||
213 => 111,
|
||||
248 => 111,
|
||||
216 => 111,
|
||||
339 => 111,
|
||||
338 => 111,
|
||||
80 => 112,
|
||||
81 => 113,
|
||||
82 => 114,
|
||||
83 => 115,
|
||||
353 => 115,
|
||||
352 => 115,
|
||||
223 => 115,
|
||||
84 => 116,
|
||||
254 => 116,
|
||||
222 => 116,
|
||||
85 => 117,
|
||||
250 => 117,
|
||||
218 => 117,
|
||||
249 => 117,
|
||||
217 => 117,
|
||||
251 => 117,
|
||||
219 => 117,
|
||||
252 => 117,
|
||||
220 => 117,
|
||||
86 => 118,
|
||||
87 => 119,
|
||||
88 => 120,
|
||||
89 => 121,
|
||||
253 => 121,
|
||||
221 => 121,
|
||||
255 => 121,
|
||||
376 => 121,
|
||||
90 => 122,
|
||||
382 => 122,
|
||||
381 => 122,
|
||||
);
|
||||
?>
|
80
dk-pdf/includes/mpdf60/collations/Belarusian_Belarus.php
Executable file
80
dk-pdf/includes/mpdf60/collations/Belarusian_Belarus.php
Executable file
@ -0,0 +1,80 @@
|
||||
<?php
|
||||
$collation = array (
|
||||
65 => 97,
|
||||
66 => 98,
|
||||
67 => 99,
|
||||
68 => 100,
|
||||
69 => 101,
|
||||
70 => 102,
|
||||
71 => 103,
|
||||
72 => 104,
|
||||
73 => 105,
|
||||
74 => 106,
|
||||
75 => 107,
|
||||
76 => 108,
|
||||
77 => 109,
|
||||
78 => 110,
|
||||
79 => 111,
|
||||
80 => 112,
|
||||
81 => 113,
|
||||
82 => 114,
|
||||
83 => 115,
|
||||
84 => 116,
|
||||
85 => 117,
|
||||
86 => 118,
|
||||
87 => 119,
|
||||
88 => 120,
|
||||
89 => 121,
|
||||
90 => 122,
|
||||
1040 => 1072,
|
||||
1041 => 1073,
|
||||
1042 => 1074,
|
||||
1043 => 1075,
|
||||
1107 => 1075,
|
||||
1027 => 1075,
|
||||
1168 => 1169,
|
||||
1044 => 1076,
|
||||
1026 => 1106,
|
||||
1045 => 1077,
|
||||
1105 => 1077,
|
||||
1025 => 1077,
|
||||
1028 => 1108,
|
||||
1046 => 1078,
|
||||
1047 => 1079,
|
||||
1029 => 1109,
|
||||
1048 => 1080,
|
||||
1031 => 1111,
|
||||
1049 => 1081,
|
||||
1032 => 1112,
|
||||
1050 => 1082,
|
||||
1116 => 1082,
|
||||
1036 => 1082,
|
||||
1051 => 1083,
|
||||
1033 => 1113,
|
||||
1052 => 1084,
|
||||
1053 => 1085,
|
||||
1034 => 1114,
|
||||
1054 => 1086,
|
||||
1055 => 1087,
|
||||
1056 => 1088,
|
||||
1057 => 1089,
|
||||
1058 => 1090,
|
||||
1035 => 1115,
|
||||
1059 => 1091,
|
||||
1118 => 1091,
|
||||
1038 => 1091,
|
||||
1060 => 1092,
|
||||
1061 => 1093,
|
||||
1062 => 1094,
|
||||
1063 => 1095,
|
||||
1039 => 1119,
|
||||
1064 => 1096,
|
||||
1065 => 1097,
|
||||
1066 => 1098,
|
||||
1067 => 1099,
|
||||
1068 => 1100,
|
||||
1069 => 1101,
|
||||
1070 => 1102,
|
||||
1071 => 1103,
|
||||
);
|
||||
?>
|
@ -0,0 +1,80 @@
|
||||
<?php
|
||||
$collation = array (
|
||||
65 => 97,
|
||||
66 => 98,
|
||||
67 => 99,
|
||||
68 => 100,
|
||||
69 => 101,
|
||||
70 => 102,
|
||||
71 => 103,
|
||||
72 => 104,
|
||||
73 => 105,
|
||||
74 => 106,
|
||||
75 => 107,
|
||||
76 => 108,
|
||||
77 => 109,
|
||||
78 => 110,
|
||||
79 => 111,
|
||||
80 => 112,
|
||||
81 => 113,
|
||||
82 => 114,
|
||||
83 => 115,
|
||||
84 => 116,
|
||||
85 => 117,
|
||||
86 => 118,
|
||||
87 => 119,
|
||||
88 => 120,
|
||||
89 => 121,
|
||||
90 => 122,
|
||||
1040 => 1072,
|
||||
1041 => 1073,
|
||||
1042 => 1074,
|
||||
1043 => 1075,
|
||||
1107 => 1075,
|
||||
1027 => 1075,
|
||||
1168 => 1169,
|
||||
1044 => 1076,
|
||||
1026 => 1106,
|
||||
1045 => 1077,
|
||||
1105 => 1077,
|
||||
1025 => 1077,
|
||||
1028 => 1108,
|
||||
1046 => 1078,
|
||||
1047 => 1079,
|
||||
1029 => 1109,
|
||||
1048 => 1080,
|
||||
1031 => 1111,
|
||||
1049 => 1081,
|
||||
1032 => 1112,
|
||||
1050 => 1082,
|
||||
1116 => 1082,
|
||||
1036 => 1082,
|
||||
1051 => 1083,
|
||||
1033 => 1113,
|
||||
1052 => 1084,
|
||||
1053 => 1085,
|
||||
1034 => 1114,
|
||||
1054 => 1086,
|
||||
1055 => 1087,
|
||||
1056 => 1088,
|
||||
1057 => 1089,
|
||||
1058 => 1090,
|
||||
1035 => 1115,
|
||||
1059 => 1091,
|
||||
1118 => 1091,
|
||||
1038 => 1091,
|
||||
1060 => 1092,
|
||||
1061 => 1093,
|
||||
1062 => 1094,
|
||||
1063 => 1095,
|
||||
1039 => 1119,
|
||||
1064 => 1096,
|
||||
1065 => 1097,
|
||||
1066 => 1098,
|
||||
1067 => 1099,
|
||||
1068 => 1100,
|
||||
1069 => 1101,
|
||||
1070 => 1102,
|
||||
1071 => 1103,
|
||||
);
|
||||
?>
|
107
dk-pdf/includes/mpdf60/collations/Bosnian_(Latin)_Bosnia_and_Herzegovina.php
Executable file
107
dk-pdf/includes/mpdf60/collations/Bosnian_(Latin)_Bosnia_and_Herzegovina.php
Executable file
@ -0,0 +1,107 @@
|
||||
<?php
|
||||
$collation = array (
|
||||
728 => 711,
|
||||
65 => 97,
|
||||
259 => 97,
|
||||
258 => 97,
|
||||
225 => 97,
|
||||
193 => 97,
|
||||
226 => 97,
|
||||
194 => 97,
|
||||
228 => 97,
|
||||
196 => 97,
|
||||
261 => 97,
|
||||
260 => 97,
|
||||
66 => 98,
|
||||
67 => 99,
|
||||
231 => 99,
|
||||
199 => 99,
|
||||
268 => 269,
|
||||
262 => 263,
|
||||
68 => 100,
|
||||
271 => 100,
|
||||
270 => 100,
|
||||
272 => 273,
|
||||
69 => 101,
|
||||
283 => 101,
|
||||
282 => 101,
|
||||
233 => 101,
|
||||
201 => 101,
|
||||
235 => 101,
|
||||
203 => 101,
|
||||
281 => 101,
|
||||
280 => 101,
|
||||
70 => 102,
|
||||
71 => 103,
|
||||
72 => 104,
|
||||
73 => 105,
|
||||
237 => 105,
|
||||
205 => 105,
|
||||
238 => 105,
|
||||
206 => 105,
|
||||
74 => 106,
|
||||
75 => 107,
|
||||
76 => 108,
|
||||
318 => 108,
|
||||
317 => 108,
|
||||
314 => 108,
|
||||
313 => 108,
|
||||
322 => 108,
|
||||
321 => 108,
|
||||
77 => 109,
|
||||
78 => 110,
|
||||
328 => 110,
|
||||
327 => 110,
|
||||
324 => 110,
|
||||
323 => 110,
|
||||
79 => 111,
|
||||
243 => 111,
|
||||
211 => 111,
|
||||
244 => 111,
|
||||
212 => 111,
|
||||
246 => 111,
|
||||
214 => 111,
|
||||
337 => 111,
|
||||
336 => 111,
|
||||
80 => 112,
|
||||
81 => 113,
|
||||
82 => 114,
|
||||
345 => 114,
|
||||
344 => 114,
|
||||
341 => 114,
|
||||
340 => 114,
|
||||
83 => 115,
|
||||
347 => 115,
|
||||
346 => 115,
|
||||
351 => 115,
|
||||
350 => 115,
|
||||
223 => 115,
|
||||
352 => 353,
|
||||
84 => 116,
|
||||
357 => 116,
|
||||
356 => 116,
|
||||
355 => 116,
|
||||
354 => 116,
|
||||
85 => 117,
|
||||
250 => 117,
|
||||
218 => 117,
|
||||
367 => 117,
|
||||
366 => 117,
|
||||
369 => 117,
|
||||
368 => 117,
|
||||
252 => 117,
|
||||
220 => 117,
|
||||
86 => 118,
|
||||
87 => 119,
|
||||
88 => 120,
|
||||
89 => 121,
|
||||
253 => 121,
|
||||
221 => 121,
|
||||
90 => 122,
|
||||
378 => 122,
|
||||
377 => 122,
|
||||
380 => 122,
|
||||
379 => 122,
|
||||
381 => 382,
|
||||
);
|
||||
?>
|
105
dk-pdf/includes/mpdf60/collations/Breton_France.php
Executable file
105
dk-pdf/includes/mpdf60/collations/Breton_France.php
Executable file
@ -0,0 +1,105 @@
|
||||
<?php
|
||||
$collation = array (
|
||||
710 => 94,
|
||||
189 => 188,
|
||||
190 => 179,
|
||||
65 => 97,
|
||||
170 => 97,
|
||||
225 => 97,
|
||||
193 => 97,
|
||||
224 => 97,
|
||||
192 => 97,
|
||||
226 => 97,
|
||||
194 => 97,
|
||||
228 => 97,
|
||||
196 => 97,
|
||||
227 => 97,
|
||||
195 => 97,
|
||||
229 => 97,
|
||||
197 => 97,
|
||||
230 => 97,
|
||||
198 => 97,
|
||||
66 => 98,
|
||||
67 => 99,
|
||||
231 => 99,
|
||||
199 => 99,
|
||||
68 => 100,
|
||||
240 => 100,
|
||||
208 => 100,
|
||||
69 => 101,
|
||||
233 => 101,
|
||||
201 => 101,
|
||||
232 => 101,
|
||||
200 => 101,
|
||||
234 => 101,
|
||||
202 => 101,
|
||||
235 => 101,
|
||||
203 => 101,
|
||||
70 => 102,
|
||||
402 => 102,
|
||||
71 => 103,
|
||||
72 => 104,
|
||||
73 => 105,
|
||||
237 => 105,
|
||||
205 => 105,
|
||||
236 => 105,
|
||||
204 => 105,
|
||||
238 => 105,
|
||||
206 => 105,
|
||||
239 => 105,
|
||||
207 => 105,
|
||||
74 => 106,
|
||||
75 => 107,
|
||||
76 => 108,
|
||||
77 => 109,
|
||||
78 => 110,
|
||||
241 => 110,
|
||||
209 => 110,
|
||||
79 => 111,
|
||||
186 => 111,
|
||||
243 => 111,
|
||||
211 => 111,
|
||||
242 => 111,
|
||||
210 => 111,
|
||||
244 => 111,
|
||||
212 => 111,
|
||||
246 => 111,
|
||||
214 => 111,
|
||||
245 => 111,
|
||||
213 => 111,
|
||||
248 => 111,
|
||||
216 => 111,
|
||||
339 => 111,
|
||||
338 => 111,
|
||||
80 => 112,
|
||||
81 => 113,
|
||||
82 => 114,
|
||||
83 => 115,
|
||||
353 => 115,
|
||||
352 => 115,
|
||||
223 => 115,
|
||||
84 => 116,
|
||||
254 => 116,
|
||||
222 => 116,
|
||||
85 => 117,
|
||||
250 => 117,
|
||||
218 => 117,
|
||||
249 => 117,
|
||||
217 => 117,
|
||||
251 => 117,
|
||||
219 => 117,
|
||||
252 => 117,
|
||||
220 => 117,
|
||||
86 => 118,
|
||||
87 => 119,
|
||||
88 => 120,
|
||||
89 => 121,
|
||||
253 => 121,
|
||||
221 => 121,
|
||||
255 => 121,
|
||||
376 => 121,
|
||||
90 => 122,
|
||||
382 => 122,
|
||||
381 => 122,
|
||||
);
|
||||
?>
|
80
dk-pdf/includes/mpdf60/collations/Bulgarian_Bulgaria.php
Executable file
80
dk-pdf/includes/mpdf60/collations/Bulgarian_Bulgaria.php
Executable file
@ -0,0 +1,80 @@
|
||||
<?php
|
||||
$collation = array (
|
||||
65 => 97,
|
||||
66 => 98,
|
||||
67 => 99,
|
||||
68 => 100,
|
||||
69 => 101,
|
||||
70 => 102,
|
||||
71 => 103,
|
||||
72 => 104,
|
||||
73 => 105,
|
||||
74 => 106,
|
||||
75 => 107,
|
||||
76 => 108,
|
||||
77 => 109,
|
||||
78 => 110,
|
||||
79 => 111,
|
||||
80 => 112,
|
||||
81 => 113,
|
||||
82 => 114,
|
||||
83 => 115,
|
||||
84 => 116,
|
||||
85 => 117,
|
||||
86 => 118,
|
||||
87 => 119,
|
||||
88 => 120,
|
||||
89 => 121,
|
||||
90 => 122,
|
||||
1040 => 1072,
|
||||
1041 => 1073,
|
||||
1042 => 1074,
|
||||
1043 => 1075,
|
||||
1107 => 1075,
|
||||
1027 => 1075,
|
||||
1168 => 1169,
|
||||
1044 => 1076,
|
||||
1026 => 1106,
|
||||
1045 => 1077,
|
||||
1105 => 1077,
|
||||
1025 => 1077,
|
||||
1028 => 1108,
|
||||
1046 => 1078,
|
||||
1047 => 1079,
|
||||
1029 => 1109,
|
||||
1048 => 1080,
|
||||
1031 => 1111,
|
||||
1049 => 1081,
|
||||
1032 => 1112,
|
||||
1050 => 1082,
|
||||
1116 => 1082,
|
||||
1036 => 1082,
|
||||
1051 => 1083,
|
||||
1033 => 1113,
|
||||
1052 => 1084,
|
||||
1053 => 1085,
|
||||
1034 => 1114,
|
||||
1054 => 1086,
|
||||
1055 => 1087,
|
||||
1056 => 1088,
|
||||
1057 => 1089,
|
||||
1058 => 1090,
|
||||
1035 => 1115,
|
||||
1059 => 1091,
|
||||
1118 => 1091,
|
||||
1038 => 1091,
|
||||
1060 => 1092,
|
||||
1061 => 1093,
|
||||
1062 => 1094,
|
||||
1063 => 1095,
|
||||
1039 => 1119,
|
||||
1064 => 1096,
|
||||
1065 => 1097,
|
||||
1066 => 1098,
|
||||
1067 => 1099,
|
||||
1068 => 1100,
|
||||
1069 => 1101,
|
||||
1070 => 1102,
|
||||
1071 => 1103,
|
||||
);
|
||||
?>
|
105
dk-pdf/includes/mpdf60/collations/Catalan_Spain.php
Executable file
105
dk-pdf/includes/mpdf60/collations/Catalan_Spain.php
Executable file
@ -0,0 +1,105 @@
|
||||
<?php
|
||||
$collation = array (
|
||||
710 => 94,
|
||||
189 => 188,
|
||||
190 => 179,
|
||||
65 => 97,
|
||||
170 => 97,
|
||||
225 => 97,
|
||||
193 => 97,
|
||||
224 => 97,
|
||||
192 => 97,
|
||||
226 => 97,
|
||||
194 => 97,
|
||||
228 => 97,
|
||||
196 => 97,
|
||||
227 => 97,
|
||||
195 => 97,
|
||||
229 => 97,
|
||||
197 => 97,
|
||||
230 => 97,
|
||||
198 => 97,
|
||||
66 => 98,
|
||||
67 => 99,
|
||||
231 => 99,
|
||||
199 => 99,
|
||||
68 => 100,
|
||||
240 => 100,
|
||||
208 => 100,
|
||||
69 => 101,
|
||||
233 => 101,
|
||||
201 => 101,
|
||||
232 => 101,
|
||||
200 => 101,
|
||||
234 => 101,
|
||||
202 => 101,
|
||||
235 => 101,
|
||||
203 => 101,
|
||||
70 => 102,
|
||||
402 => 102,
|
||||
71 => 103,
|
||||
72 => 104,
|
||||
73 => 105,
|
||||
237 => 105,
|
||||
205 => 105,
|
||||
236 => 105,
|
||||
204 => 105,
|
||||
238 => 105,
|
||||
206 => 105,
|
||||
239 => 105,
|
||||
207 => 105,
|
||||
74 => 106,
|
||||
75 => 107,
|
||||
76 => 108,
|
||||
77 => 109,
|
||||
78 => 110,
|
||||
241 => 110,
|
||||
209 => 110,
|
||||
79 => 111,
|
||||
186 => 111,
|
||||
243 => 111,
|
||||
211 => 111,
|
||||
242 => 111,
|
||||
210 => 111,
|
||||
244 => 111,
|
||||
212 => 111,
|
||||
246 => 111,
|
||||
214 => 111,
|
||||
245 => 111,
|
||||
213 => 111,
|
||||
248 => 111,
|
||||
216 => 111,
|
||||
339 => 111,
|
||||
338 => 111,
|
||||
80 => 112,
|
||||
81 => 113,
|
||||
82 => 114,
|
||||
83 => 115,
|
||||
353 => 115,
|
||||
352 => 115,
|
||||
223 => 115,
|
||||
84 => 116,
|
||||
254 => 116,
|
||||
222 => 116,
|
||||
85 => 117,
|
||||
250 => 117,
|
||||
218 => 117,
|
||||
249 => 117,
|
||||
217 => 117,
|
||||
251 => 117,
|
||||
219 => 117,
|
||||
252 => 117,
|
||||
220 => 117,
|
||||
86 => 118,
|
||||
87 => 119,
|
||||
88 => 120,
|
||||
89 => 121,
|
||||
253 => 121,
|
||||
221 => 121,
|
||||
255 => 121,
|
||||
376 => 121,
|
||||
90 => 122,
|
||||
382 => 122,
|
||||
381 => 122,
|
||||
);
|
||||
?>
|
105
dk-pdf/includes/mpdf60/collations/Corsican_France.php
Executable file
105
dk-pdf/includes/mpdf60/collations/Corsican_France.php
Executable file
@ -0,0 +1,105 @@
|
||||
<?php
|
||||
$collation = array (
|
||||
710 => 94,
|
||||
189 => 188,
|
||||
190 => 179,
|
||||
65 => 97,
|
||||
170 => 97,
|
||||
225 => 97,
|
||||
193 => 97,
|
||||
224 => 97,
|
||||
192 => 97,
|
||||
226 => 97,
|
||||
194 => 97,
|
||||
228 => 97,
|
||||
196 => 97,
|
||||
227 => 97,
|
||||
195 => 97,
|
||||
229 => 97,
|
||||
197 => 97,
|
||||
230 => 97,
|
||||
198 => 97,
|
||||
66 => 98,
|
||||
67 => 99,
|
||||
231 => 99,
|
||||
199 => 99,
|
||||
68 => 100,
|
||||
240 => 100,
|
||||
208 => 100,
|
||||
69 => 101,
|
||||
233 => 101,
|
||||
201 => 101,
|
||||
232 => 101,
|
||||
200 => 101,
|
||||
234 => 101,
|
||||
202 => 101,
|
||||
235 => 101,
|
||||
203 => 101,
|
||||
70 => 102,
|
||||
402 => 102,
|
||||
71 => 103,
|
||||
72 => 104,
|
||||
73 => 105,
|
||||
237 => 105,
|
||||
205 => 105,
|
||||
236 => 105,
|
||||
204 => 105,
|
||||
238 => 105,
|
||||
206 => 105,
|
||||
239 => 105,
|
||||
207 => 105,
|
||||
74 => 106,
|
||||
75 => 107,
|
||||
76 => 108,
|
||||
77 => 109,
|
||||
78 => 110,
|
||||
241 => 110,
|
||||
209 => 110,
|
||||
79 => 111,
|
||||
186 => 111,
|
||||
243 => 111,
|
||||
211 => 111,
|
||||
242 => 111,
|
||||
210 => 111,
|
||||
244 => 111,
|
||||
212 => 111,
|
||||
246 => 111,
|
||||
214 => 111,
|
||||
245 => 111,
|
||||
213 => 111,
|
||||
248 => 111,
|
||||
216 => 111,
|
||||
339 => 111,
|
||||
338 => 111,
|
||||
80 => 112,
|
||||
81 => 113,
|
||||
82 => 114,
|
||||
83 => 115,
|
||||
353 => 115,
|
||||
352 => 115,
|
||||
223 => 115,
|
||||
84 => 116,
|
||||
254 => 116,
|
||||
222 => 116,
|
||||
85 => 117,
|
||||
250 => 117,
|
||||
218 => 117,
|
||||
249 => 117,
|
||||
217 => 117,
|
||||
251 => 117,
|
||||
219 => 117,
|
||||
252 => 117,
|
||||
220 => 117,
|
||||
86 => 118,
|
||||
87 => 119,
|
||||
88 => 120,
|
||||
89 => 121,
|
||||
253 => 121,
|
||||
221 => 121,
|
||||
255 => 121,
|
||||
376 => 121,
|
||||
90 => 122,
|
||||
382 => 122,
|
||||
381 => 122,
|
||||
);
|
||||
?>
|
107
dk-pdf/includes/mpdf60/collations/Croatian_(Latin)_Bosnia_and_Herzegovina.php
Executable file
107
dk-pdf/includes/mpdf60/collations/Croatian_(Latin)_Bosnia_and_Herzegovina.php
Executable file
@ -0,0 +1,107 @@
|
||||
<?php
|
||||
$collation = array (
|
||||
728 => 711,
|
||||
65 => 97,
|
||||
259 => 97,
|
||||
258 => 97,
|
||||
225 => 97,
|
||||
193 => 97,
|
||||
226 => 97,
|
||||
194 => 97,
|
||||
228 => 97,
|
||||
196 => 97,
|
||||
261 => 97,
|
||||
260 => 97,
|
||||
66 => 98,
|
||||
67 => 99,
|
||||
231 => 99,
|
||||
199 => 99,
|
||||
268 => 269,
|
||||
262 => 263,
|
||||
68 => 100,
|
||||
271 => 100,
|
||||
270 => 100,
|
||||
272 => 273,
|
||||
69 => 101,
|
||||
283 => 101,
|
||||
282 => 101,
|
||||
233 => 101,
|
||||
201 => 101,
|
||||
235 => 101,
|
||||
203 => 101,
|
||||
281 => 101,
|
||||
280 => 101,
|
||||
70 => 102,
|
||||
71 => 103,
|
||||
72 => 104,
|
||||
73 => 105,
|
||||
237 => 105,
|
||||
205 => 105,
|
||||
238 => 105,
|
||||
206 => 105,
|
||||
74 => 106,
|
||||
75 => 107,
|
||||
76 => 108,
|
||||
318 => 108,
|
||||
317 => 108,
|
||||
314 => 108,
|
||||
313 => 108,
|
||||
322 => 108,
|
||||
321 => 108,
|
||||
77 => 109,
|
||||
78 => 110,
|
||||
328 => 110,
|
||||
327 => 110,
|
||||
324 => 110,
|
||||
323 => 110,
|
||||
79 => 111,
|
||||
243 => 111,
|
||||
211 => 111,
|
||||
244 => 111,
|
||||
212 => 111,
|
||||
246 => 111,
|
||||
214 => 111,
|
||||
337 => 111,
|
||||
336 => 111,
|
||||
80 => 112,
|
||||
81 => 113,
|
||||
82 => 114,
|
||||
345 => 114,
|
||||
344 => 114,
|
||||
341 => 114,
|
||||
340 => 114,
|
||||
83 => 115,
|
||||
347 => 115,
|
||||
346 => 115,
|
||||
351 => 115,
|
||||
350 => 115,
|
||||
223 => 115,
|
||||
352 => 353,
|
||||
84 => 116,
|
||||
357 => 116,
|
||||
356 => 116,
|
||||
355 => 116,
|
||||
354 => 116,
|
||||
85 => 117,
|
||||
250 => 117,
|
||||
218 => 117,
|
||||
367 => 117,
|
||||
366 => 117,
|
||||
369 => 117,
|
||||
368 => 117,
|
||||
252 => 117,
|
||||
220 => 117,
|
||||
86 => 118,
|
||||
87 => 119,
|
||||
88 => 120,
|
||||
89 => 121,
|
||||
253 => 121,
|
||||
221 => 121,
|
||||
90 => 122,
|
||||
378 => 122,
|
||||
377 => 122,
|
||||
380 => 122,
|
||||
379 => 122,
|
||||
381 => 382,
|
||||
);
|
||||
?>
|
107
dk-pdf/includes/mpdf60/collations/Croatian_Croatia.php
Executable file
107
dk-pdf/includes/mpdf60/collations/Croatian_Croatia.php
Executable file
@ -0,0 +1,107 @@
|
||||
<?php
|
||||
$collation = array (
|
||||
728 => 711,
|
||||
65 => 97,
|
||||
259 => 97,
|
||||
258 => 97,
|
||||
225 => 97,
|
||||
193 => 97,
|
||||
226 => 97,
|
||||
194 => 97,
|
||||
228 => 97,
|
||||
196 => 97,
|
||||
261 => 97,
|
||||
260 => 97,
|
||||
66 => 98,
|
||||
67 => 99,
|
||||
231 => 99,
|
||||
199 => 99,
|
||||
268 => 269,
|
||||
262 => 263,
|
||||
68 => 100,
|
||||
271 => 100,
|
||||
270 => 100,
|
||||
272 => 273,
|
||||
69 => 101,
|
||||
283 => 101,
|
||||
282 => 101,
|
||||
233 => 101,
|
||||
201 => 101,
|
||||
235 => 101,
|
||||
203 => 101,
|
||||
281 => 101,
|
||||
280 => 101,
|
||||
70 => 102,
|
||||
71 => 103,
|
||||
72 => 104,
|
||||
73 => 105,
|
||||
237 => 105,
|
||||
205 => 105,
|
||||
238 => 105,
|
||||
206 => 105,
|
||||
74 => 106,
|
||||
75 => 107,
|
||||
76 => 108,
|
||||
318 => 108,
|
||||
317 => 108,
|
||||
314 => 108,
|
||||
313 => 108,
|
||||
322 => 108,
|
||||
321 => 108,
|
||||
77 => 109,
|
||||
78 => 110,
|
||||
328 => 110,
|
||||
327 => 110,
|
||||
324 => 110,
|
||||
323 => 110,
|
||||
79 => 111,
|
||||
243 => 111,
|
||||
211 => 111,
|
||||
244 => 111,
|
||||
212 => 111,
|
||||
246 => 111,
|
||||
214 => 111,
|
||||
337 => 111,
|
||||
336 => 111,
|
||||
80 => 112,
|
||||
81 => 113,
|
||||
82 => 114,
|
||||
345 => 114,
|
||||
344 => 114,
|
||||
341 => 114,
|
||||
340 => 114,
|
||||
83 => 115,
|
||||
347 => 115,
|
||||
346 => 115,
|
||||
351 => 115,
|
||||
350 => 115,
|
||||
223 => 115,
|
||||
352 => 353,
|
||||
84 => 116,
|
||||
357 => 116,
|
||||
356 => 116,
|
||||
355 => 116,
|
||||
354 => 116,
|
||||
85 => 117,
|
||||
250 => 117,
|
||||
218 => 117,
|
||||
367 => 117,
|
||||
366 => 117,
|
||||
369 => 117,
|
||||
368 => 117,
|
||||
252 => 117,
|
||||
220 => 117,
|
||||
86 => 118,
|
||||
87 => 119,
|
||||
88 => 120,
|
||||
89 => 121,
|
||||
253 => 121,
|
||||
221 => 121,
|
||||
90 => 122,
|
||||
378 => 122,
|
||||
377 => 122,
|
||||
380 => 122,
|
||||
379 => 122,
|
||||
381 => 382,
|
||||
);
|
||||
?>
|
108
dk-pdf/includes/mpdf60/collations/Czech_Czech_Republic.php
Executable file
108
dk-pdf/includes/mpdf60/collations/Czech_Czech_Republic.php
Executable file
@ -0,0 +1,108 @@
|
||||
<?php
|
||||
$collation = array (
|
||||
728 => 711,
|
||||
65 => 97,
|
||||
228 => 97,
|
||||
196 => 97,
|
||||
225 => 97,
|
||||
193 => 97,
|
||||
226 => 97,
|
||||
194 => 97,
|
||||
259 => 97,
|
||||
258 => 97,
|
||||
261 => 97,
|
||||
260 => 97,
|
||||
66 => 98,
|
||||
67 => 99,
|
||||
263 => 99,
|
||||
262 => 99,
|
||||
231 => 99,
|
||||
199 => 99,
|
||||
268 => 269,
|
||||
68 => 100,
|
||||
271 => 100,
|
||||
270 => 100,
|
||||
273 => 100,
|
||||
272 => 100,
|
||||
69 => 101,
|
||||
235 => 101,
|
||||
203 => 101,
|
||||
233 => 101,
|
||||
201 => 101,
|
||||
283 => 101,
|
||||
282 => 101,
|
||||
281 => 101,
|
||||
280 => 101,
|
||||
70 => 102,
|
||||
71 => 103,
|
||||
72 => 104,
|
||||
73 => 105,
|
||||
237 => 105,
|
||||
205 => 105,
|
||||
238 => 105,
|
||||
206 => 105,
|
||||
74 => 106,
|
||||
75 => 107,
|
||||
76 => 108,
|
||||
314 => 108,
|
||||
313 => 108,
|
||||
318 => 108,
|
||||
317 => 108,
|
||||
322 => 108,
|
||||
321 => 108,
|
||||
77 => 109,
|
||||
78 => 110,
|
||||
324 => 110,
|
||||
323 => 110,
|
||||
328 => 110,
|
||||
327 => 110,
|
||||
79 => 111,
|
||||
246 => 111,
|
||||
214 => 111,
|
||||
243 => 111,
|
||||
211 => 111,
|
||||
244 => 111,
|
||||
212 => 111,
|
||||
337 => 111,
|
||||
336 => 111,
|
||||
80 => 112,
|
||||
81 => 113,
|
||||
82 => 114,
|
||||
341 => 114,
|
||||
340 => 114,
|
||||
344 => 345,
|
||||
83 => 115,
|
||||
347 => 115,
|
||||
346 => 115,
|
||||
351 => 115,
|
||||
350 => 115,
|
||||
223 => 115,
|
||||
352 => 353,
|
||||
84 => 116,
|
||||
357 => 116,
|
||||
356 => 116,
|
||||
355 => 116,
|
||||
354 => 116,
|
||||
85 => 117,
|
||||
252 => 117,
|
||||
220 => 117,
|
||||
250 => 117,
|
||||
218 => 117,
|
||||
367 => 117,
|
||||
366 => 117,
|
||||
369 => 117,
|
||||
368 => 117,
|
||||
86 => 118,
|
||||
87 => 119,
|
||||
88 => 120,
|
||||
89 => 121,
|
||||
253 => 121,
|
||||
221 => 121,
|
||||
90 => 122,
|
||||
380 => 122,
|
||||
379 => 122,
|
||||
378 => 122,
|
||||
377 => 122,
|
||||
381 => 382,
|
||||
);
|
||||
?>
|
102
dk-pdf/includes/mpdf60/collations/Danish_Denmark.php
Executable file
102
dk-pdf/includes/mpdf60/collations/Danish_Denmark.php
Executable file
@ -0,0 +1,102 @@
|
||||
<?php
|
||||
$collation = array (
|
||||
710 => 94,
|
||||
189 => 188,
|
||||
190 => 179,
|
||||
65 => 97,
|
||||
170 => 97,
|
||||
225 => 97,
|
||||
193 => 97,
|
||||
224 => 97,
|
||||
192 => 97,
|
||||
226 => 97,
|
||||
194 => 97,
|
||||
227 => 97,
|
||||
195 => 97,
|
||||
66 => 98,
|
||||
67 => 99,
|
||||
231 => 99,
|
||||
199 => 99,
|
||||
68 => 100,
|
||||
240 => 100,
|
||||
208 => 100,
|
||||
69 => 101,
|
||||
233 => 101,
|
||||
201 => 101,
|
||||
232 => 101,
|
||||
200 => 101,
|
||||
234 => 101,
|
||||
202 => 101,
|
||||
235 => 101,
|
||||
203 => 101,
|
||||
70 => 102,
|
||||
402 => 102,
|
||||
71 => 103,
|
||||
72 => 104,
|
||||
73 => 105,
|
||||
237 => 105,
|
||||
205 => 105,
|
||||
236 => 105,
|
||||
204 => 105,
|
||||
238 => 105,
|
||||
206 => 105,
|
||||
239 => 105,
|
||||
207 => 105,
|
||||
74 => 106,
|
||||
75 => 107,
|
||||
76 => 108,
|
||||
77 => 109,
|
||||
78 => 110,
|
||||
241 => 110,
|
||||
209 => 110,
|
||||
79 => 111,
|
||||
186 => 111,
|
||||
243 => 111,
|
||||
211 => 111,
|
||||
242 => 111,
|
||||
210 => 111,
|
||||
244 => 111,
|
||||
212 => 111,
|
||||
245 => 111,
|
||||
213 => 111,
|
||||
339 => 111,
|
||||
338 => 111,
|
||||
80 => 112,
|
||||
81 => 113,
|
||||
82 => 114,
|
||||
83 => 115,
|
||||
353 => 115,
|
||||
352 => 115,
|
||||
223 => 115,
|
||||
84 => 116,
|
||||
254 => 116,
|
||||
222 => 116,
|
||||
85 => 117,
|
||||
250 => 117,
|
||||
218 => 117,
|
||||
249 => 117,
|
||||
217 => 117,
|
||||
251 => 117,
|
||||
219 => 117,
|
||||
86 => 118,
|
||||
87 => 119,
|
||||
88 => 120,
|
||||
89 => 121,
|
||||
253 => 121,
|
||||
221 => 121,
|
||||
255 => 121,
|
||||
376 => 121,
|
||||
252 => 121,
|
||||
220 => 121,
|
||||
90 => 122,
|
||||
382 => 122,
|
||||
381 => 122,
|
||||
198 => 230,
|
||||
228 => 230,
|
||||
196 => 230,
|
||||
216 => 248,
|
||||
246 => 248,
|
||||
214 => 248,
|
||||
197 => 229,
|
||||
);
|
||||
?>
|
65
dk-pdf/includes/mpdf60/collations/Dari_Afghanistan.php
Executable file
65
dk-pdf/includes/mpdf60/collations/Dari_Afghanistan.php
Executable file
@ -0,0 +1,65 @@
|
||||
<?php
|
||||
$collation = array (
|
||||
173 => 8205,
|
||||
1600 => 8205,
|
||||
1611 => 8205,
|
||||
1612 => 8205,
|
||||
1613 => 8205,
|
||||
1614 => 8205,
|
||||
1615 => 8205,
|
||||
1616 => 8205,
|
||||
1618 => 8205,
|
||||
1617 => 8205,
|
||||
710 => 94,
|
||||
189 => 188,
|
||||
190 => 179,
|
||||
65 => 97,
|
||||
224 => 97,
|
||||
226 => 97,
|
||||
66 => 98,
|
||||
67 => 99,
|
||||
231 => 99,
|
||||
68 => 100,
|
||||
69 => 101,
|
||||
233 => 101,
|
||||
232 => 101,
|
||||
234 => 101,
|
||||
235 => 101,
|
||||
70 => 102,
|
||||
402 => 102,
|
||||
71 => 103,
|
||||
72 => 104,
|
||||
73 => 105,
|
||||
238 => 105,
|
||||
239 => 105,
|
||||
74 => 106,
|
||||
75 => 107,
|
||||
76 => 108,
|
||||
77 => 109,
|
||||
78 => 110,
|
||||
79 => 111,
|
||||
244 => 111,
|
||||
339 => 111,
|
||||
338 => 111,
|
||||
80 => 112,
|
||||
81 => 113,
|
||||
82 => 114,
|
||||
83 => 115,
|
||||
84 => 116,
|
||||
85 => 117,
|
||||
249 => 117,
|
||||
251 => 117,
|
||||
252 => 117,
|
||||
86 => 118,
|
||||
87 => 119,
|
||||
88 => 120,
|
||||
89 => 121,
|
||||
90 => 122,
|
||||
1573 => 1575,
|
||||
1571 => 1575,
|
||||
1606 => 1722,
|
||||
1726 => 1729,
|
||||
1572 => 1608,
|
||||
1574 => 1746,
|
||||
);
|
||||
?>
|
105
dk-pdf/includes/mpdf60/collations/Dutch_Belgium.php
Executable file
105
dk-pdf/includes/mpdf60/collations/Dutch_Belgium.php
Executable file
@ -0,0 +1,105 @@
|
||||
<?php
|
||||
$collation = array (
|
||||
710 => 94,
|
||||
189 => 188,
|
||||
190 => 179,
|
||||
65 => 97,
|
||||
170 => 97,
|
||||
225 => 97,
|
||||
193 => 97,
|
||||
224 => 97,
|
||||
192 => 97,
|
||||
226 => 97,
|
||||
194 => 97,
|
||||
228 => 97,
|
||||
196 => 97,
|
||||
227 => 97,
|
||||
195 => 97,
|
||||
229 => 97,
|
||||
197 => 97,
|
||||
230 => 97,
|
||||
198 => 97,
|
||||
66 => 98,
|
||||
67 => 99,
|
||||
231 => 99,
|
||||
199 => 99,
|
||||
68 => 100,
|
||||
240 => 100,
|
||||
208 => 100,
|
||||
69 => 101,
|
||||
233 => 101,
|
||||
201 => 101,
|
||||
232 => 101,
|
||||
200 => 101,
|
||||
234 => 101,
|
||||
202 => 101,
|
||||
235 => 101,
|
||||
203 => 101,
|
||||
70 => 102,
|
||||
402 => 102,
|
||||
71 => 103,
|
||||
72 => 104,
|
||||
73 => 105,
|
||||
237 => 105,
|
||||
205 => 105,
|
||||
236 => 105,
|
||||
204 => 105,
|
||||
238 => 105,
|
||||
206 => 105,
|
||||
239 => 105,
|
||||
207 => 105,
|
||||
74 => 106,
|
||||
75 => 107,
|
||||
76 => 108,
|
||||
77 => 109,
|
||||
78 => 110,
|
||||
241 => 110,
|
||||
209 => 110,
|
||||
79 => 111,
|
||||
186 => 111,
|
||||
243 => 111,
|
||||
211 => 111,
|
||||
242 => 111,
|
||||
210 => 111,
|
||||
244 => 111,
|
||||
212 => 111,
|
||||
246 => 111,
|
||||
214 => 111,
|
||||
245 => 111,
|
||||
213 => 111,
|
||||
248 => 111,
|
||||
216 => 111,
|
||||
339 => 111,
|
||||
338 => 111,
|
||||
80 => 112,
|
||||
81 => 113,
|
||||
82 => 114,
|
||||
83 => 115,
|
||||
353 => 115,
|
||||
352 => 115,
|
||||
223 => 115,
|
||||
84 => 116,
|
||||
254 => 116,
|
||||
222 => 116,
|
||||
85 => 117,
|
||||
250 => 117,
|
||||
218 => 117,
|
||||
249 => 117,
|
||||
217 => 117,
|
||||
251 => 117,
|
||||
219 => 117,
|
||||
252 => 117,
|
||||
220 => 117,
|
||||
86 => 118,
|
||||
87 => 119,
|
||||
88 => 120,
|
||||
89 => 121,
|
||||
253 => 121,
|
||||
221 => 121,
|
||||
255 => 121,
|
||||
376 => 121,
|
||||
90 => 122,
|
||||
382 => 122,
|
||||
381 => 122,
|
||||
);
|
||||
?>
|
105
dk-pdf/includes/mpdf60/collations/Dutch_Netherlands.php
Executable file
105
dk-pdf/includes/mpdf60/collations/Dutch_Netherlands.php
Executable file
@ -0,0 +1,105 @@
|
||||
<?php
|
||||
$collation = array (
|
||||
710 => 94,
|
||||
189 => 188,
|
||||
190 => 179,
|
||||
65 => 97,
|
||||
170 => 97,
|
||||
225 => 97,
|
||||
193 => 97,
|
||||
224 => 97,
|
||||
192 => 97,
|
||||
226 => 97,
|
||||
194 => 97,
|
||||
228 => 97,
|
||||
196 => 97,
|
||||
227 => 97,
|
||||
195 => 97,
|
||||
229 => 97,
|
||||
197 => 97,
|
||||
230 => 97,
|
||||
198 => 97,
|
||||
66 => 98,
|
||||
67 => 99,
|
||||
231 => 99,
|
||||
199 => 99,
|
||||
68 => 100,
|
||||
240 => 100,
|
||||
208 => 100,
|
||||
69 => 101,
|
||||
233 => 101,
|
||||
201 => 101,
|
||||
232 => 101,
|
||||
200 => 101,
|
||||
234 => 101,
|
||||
202 => 101,
|
||||
235 => 101,
|
||||
203 => 101,
|
||||
70 => 102,
|
||||
402 => 102,
|
||||
71 => 103,
|
||||
72 => 104,
|
||||
73 => 105,
|
||||
237 => 105,
|
||||
205 => 105,
|
||||
236 => 105,
|
||||
204 => 105,
|
||||
238 => 105,
|
||||
206 => 105,
|
||||
239 => 105,
|
||||
207 => 105,
|
||||
74 => 106,
|
||||
75 => 107,
|
||||
76 => 108,
|
||||
77 => 109,
|
||||
78 => 110,
|
||||
241 => 110,
|
||||
209 => 110,
|
||||
79 => 111,
|
||||
186 => 111,
|
||||
243 => 111,
|
||||
211 => 111,
|
||||
242 => 111,
|
||||
210 => 111,
|
||||
244 => 111,
|
||||
212 => 111,
|
||||
246 => 111,
|
||||
214 => 111,
|
||||
245 => 111,
|
||||
213 => 111,
|
||||
248 => 111,
|
||||
216 => 111,
|
||||
339 => 111,
|
||||
338 => 111,
|
||||
80 => 112,
|
||||
81 => 113,
|
||||
82 => 114,
|
||||
83 => 115,
|
||||
353 => 115,
|
||||
352 => 115,
|
||||
223 => 115,
|
||||
84 => 116,
|
||||
254 => 116,
|
||||
222 => 116,
|
||||
85 => 117,
|
||||
250 => 117,
|
||||
218 => 117,
|
||||
249 => 117,
|
||||
217 => 117,
|
||||
251 => 117,
|
||||
219 => 117,
|
||||
252 => 117,
|
||||
220 => 117,
|
||||
86 => 118,
|
||||
87 => 119,
|
||||
88 => 120,
|
||||
89 => 121,
|
||||
253 => 121,
|
||||
221 => 121,
|
||||
255 => 121,
|
||||
376 => 121,
|
||||
90 => 122,
|
||||
382 => 122,
|
||||
381 => 122,
|
||||
);
|
||||
?>
|
105
dk-pdf/includes/mpdf60/collations/English_Australia.php
Executable file
105
dk-pdf/includes/mpdf60/collations/English_Australia.php
Executable file
@ -0,0 +1,105 @@
|
||||
<?php
|
||||
$collation = array (
|
||||
710 => 94,
|
||||
189 => 188,
|
||||
190 => 179,
|
||||
65 => 97,
|
||||
170 => 97,
|
||||
225 => 97,
|
||||
193 => 97,
|
||||
224 => 97,
|
||||
192 => 97,
|
||||
226 => 97,
|
||||
194 => 97,
|
||||
228 => 97,
|
||||
196 => 97,
|
||||
227 => 97,
|
||||
195 => 97,
|
||||
229 => 97,
|
||||
197 => 97,
|
||||
230 => 97,
|
||||
198 => 97,
|
||||
66 => 98,
|
||||
67 => 99,
|
||||
231 => 99,
|
||||
199 => 99,
|
||||
68 => 100,
|
||||
240 => 100,
|
||||
208 => 100,
|
||||
69 => 101,
|
||||
233 => 101,
|
||||
201 => 101,
|
||||
232 => 101,
|
||||
200 => 101,
|
||||
234 => 101,
|
||||
202 => 101,
|
||||
235 => 101,
|
||||
203 => 101,
|
||||
70 => 102,
|
||||
402 => 102,
|
||||
71 => 103,
|
||||
72 => 104,
|
||||
73 => 105,
|
||||
237 => 105,
|
||||
205 => 105,
|
||||
236 => 105,
|
||||
204 => 105,
|
||||
238 => 105,
|
||||
206 => 105,
|
||||
239 => 105,
|
||||
207 => 105,
|
||||
74 => 106,
|
||||
75 => 107,
|
||||
76 => 108,
|
||||
77 => 109,
|
||||
78 => 110,
|
||||
241 => 110,
|
||||
209 => 110,
|
||||
79 => 111,
|
||||
186 => 111,
|
||||
243 => 111,
|
||||
211 => 111,
|
||||
242 => 111,
|
||||
210 => 111,
|
||||
244 => 111,
|
||||
212 => 111,
|
||||
246 => 111,
|
||||
214 => 111,
|
||||
245 => 111,
|
||||
213 => 111,
|
||||
248 => 111,
|
||||
216 => 111,
|
||||
339 => 111,
|
||||
338 => 111,
|
||||
80 => 112,
|
||||
81 => 113,
|
||||
82 => 114,
|
||||
83 => 115,
|
||||
353 => 115,
|
||||
352 => 115,
|
||||
223 => 115,
|
||||
84 => 116,
|
||||
254 => 116,
|
||||
222 => 116,
|
||||
85 => 117,
|
||||
250 => 117,
|
||||
218 => 117,
|
||||
249 => 117,
|
||||
217 => 117,
|
||||
251 => 117,
|
||||
219 => 117,
|
||||
252 => 117,
|
||||
220 => 117,
|
||||
86 => 118,
|
||||
87 => 119,
|
||||
88 => 120,
|
||||
89 => 121,
|
||||
253 => 121,
|
||||
221 => 121,
|
||||
255 => 121,
|
||||
376 => 121,
|
||||
90 => 122,
|
||||
382 => 122,
|
||||
381 => 122,
|
||||
);
|
||||
?>
|
105
dk-pdf/includes/mpdf60/collations/English_Belize.php
Executable file
105
dk-pdf/includes/mpdf60/collations/English_Belize.php
Executable file
@ -0,0 +1,105 @@
|
||||
<?php
|
||||
$collation = array (
|
||||
710 => 94,
|
||||
189 => 188,
|
||||
190 => 179,
|
||||
65 => 97,
|
||||
170 => 97,
|
||||
225 => 97,
|
||||
193 => 97,
|
||||
224 => 97,
|
||||
192 => 97,
|
||||
226 => 97,
|
||||
194 => 97,
|
||||
228 => 97,
|
||||
196 => 97,
|
||||
227 => 97,
|
||||
195 => 97,
|
||||
229 => 97,
|
||||
197 => 97,
|
||||
230 => 97,
|
||||
198 => 97,
|
||||
66 => 98,
|
||||
67 => 99,
|
||||
231 => 99,
|
||||
199 => 99,
|
||||
68 => 100,
|
||||
240 => 100,
|
||||
208 => 100,
|
||||
69 => 101,
|
||||
233 => 101,
|
||||
201 => 101,
|
||||
232 => 101,
|
||||
200 => 101,
|
||||
234 => 101,
|
||||
202 => 101,
|
||||
235 => 101,
|
||||
203 => 101,
|
||||
70 => 102,
|
||||
402 => 102,
|
||||
71 => 103,
|
||||
72 => 104,
|
||||
73 => 105,
|
||||
237 => 105,
|
||||
205 => 105,
|
||||
236 => 105,
|
||||
204 => 105,
|
||||
238 => 105,
|
||||
206 => 105,
|
||||
239 => 105,
|
||||
207 => 105,
|
||||
74 => 106,
|
||||
75 => 107,
|
||||
76 => 108,
|
||||
77 => 109,
|
||||
78 => 110,
|
||||
241 => 110,
|
||||
209 => 110,
|
||||
79 => 111,
|
||||
186 => 111,
|
||||
243 => 111,
|
||||
211 => 111,
|
||||
242 => 111,
|
||||
210 => 111,
|
||||
244 => 111,
|
||||
212 => 111,
|
||||
246 => 111,
|
||||
214 => 111,
|
||||
245 => 111,
|
||||
213 => 111,
|
||||
248 => 111,
|
||||
216 => 111,
|
||||
339 => 111,
|
||||
338 => 111,
|
||||
80 => 112,
|
||||
81 => 113,
|
||||
82 => 114,
|
||||
83 => 115,
|
||||
353 => 115,
|
||||
352 => 115,
|
||||
223 => 115,
|
||||
84 => 116,
|
||||
254 => 116,
|
||||
222 => 116,
|
||||
85 => 117,
|
||||
250 => 117,
|
||||
218 => 117,
|
||||
249 => 117,
|
||||
217 => 117,
|
||||
251 => 117,
|
||||
219 => 117,
|
||||
252 => 117,
|
||||
220 => 117,
|
||||
86 => 118,
|
||||
87 => 119,
|
||||
88 => 120,
|
||||
89 => 121,
|
||||
253 => 121,
|
||||
221 => 121,
|
||||
255 => 121,
|
||||
376 => 121,
|
||||
90 => 122,
|
||||
382 => 122,
|
||||
381 => 122,
|
||||
);
|
||||
?>
|
105
dk-pdf/includes/mpdf60/collations/English_Canada.php
Executable file
105
dk-pdf/includes/mpdf60/collations/English_Canada.php
Executable file
@ -0,0 +1,105 @@
|
||||
<?php
|
||||
$collation = array (
|
||||
710 => 94,
|
||||
189 => 188,
|
||||
190 => 179,
|
||||
65 => 97,
|
||||
170 => 97,
|
||||
225 => 97,
|
||||
193 => 97,
|
||||
224 => 97,
|
||||
192 => 97,
|
||||
226 => 97,
|
||||
194 => 97,
|
||||
228 => 97,
|
||||
196 => 97,
|
||||
227 => 97,
|
||||
195 => 97,
|
||||
229 => 97,
|
||||
197 => 97,
|
||||
230 => 97,
|
||||
198 => 97,
|
||||
66 => 98,
|
||||
67 => 99,
|
||||
231 => 99,
|
||||
199 => 99,
|
||||
68 => 100,
|
||||
240 => 100,
|
||||
208 => 100,
|
||||
69 => 101,
|
||||
233 => 101,
|
||||
201 => 101,
|
||||
232 => 101,
|
||||
200 => 101,
|
||||
234 => 101,
|
||||
202 => 101,
|
||||
235 => 101,
|
||||
203 => 101,
|
||||
70 => 102,
|
||||
402 => 102,
|
||||
71 => 103,
|
||||
72 => 104,
|
||||
73 => 105,
|
||||
237 => 105,
|
||||
205 => 105,
|
||||
236 => 105,
|
||||
204 => 105,
|
||||
238 => 105,
|
||||
206 => 105,
|
||||
239 => 105,
|
||||
207 => 105,
|
||||
74 => 106,
|
||||
75 => 107,
|
||||
76 => 108,
|
||||
77 => 109,
|
||||
78 => 110,
|
||||
241 => 110,
|
||||
209 => 110,
|
||||
79 => 111,
|
||||
186 => 111,
|
||||
243 => 111,
|
||||
211 => 111,
|
||||
242 => 111,
|
||||
210 => 111,
|
||||
244 => 111,
|
||||
212 => 111,
|
||||
246 => 111,
|
||||
214 => 111,
|
||||
245 => 111,
|
||||
213 => 111,
|
||||
248 => 111,
|
||||
216 => 111,
|
||||
339 => 111,
|
||||
338 => 111,
|
||||
80 => 112,
|
||||
81 => 113,
|
||||
82 => 114,
|
||||
83 => 115,
|
||||
353 => 115,
|
||||
352 => 115,
|
||||
223 => 115,
|
||||
84 => 116,
|
||||
254 => 116,
|
||||
222 => 116,
|
||||
85 => 117,
|
||||
250 => 117,
|
||||
218 => 117,
|
||||
249 => 117,
|
||||
217 => 117,
|
||||
251 => 117,
|
||||
219 => 117,
|
||||
252 => 117,
|
||||
220 => 117,
|
||||
86 => 118,
|
||||
87 => 119,
|
||||
88 => 120,
|
||||
89 => 121,
|
||||
253 => 121,
|
||||
221 => 121,
|
||||
255 => 121,
|
||||
376 => 121,
|
||||
90 => 122,
|
||||
382 => 122,
|
||||
381 => 122,
|
||||
);
|
||||
?>
|
105
dk-pdf/includes/mpdf60/collations/English_Caribbean.php
Executable file
105
dk-pdf/includes/mpdf60/collations/English_Caribbean.php
Executable file
@ -0,0 +1,105 @@
|
||||
<?php
|
||||
$collation = array (
|
||||
710 => 94,
|
||||
189 => 188,
|
||||
190 => 179,
|
||||
65 => 97,
|
||||
170 => 97,
|
||||
225 => 97,
|
||||
193 => 97,
|
||||
224 => 97,
|
||||
192 => 97,
|
||||
226 => 97,
|
||||
194 => 97,
|
||||
228 => 97,
|
||||
196 => 97,
|
||||
227 => 97,
|
||||
195 => 97,
|
||||
229 => 97,
|
||||
197 => 97,
|
||||
230 => 97,
|
||||
198 => 97,
|
||||
66 => 98,
|
||||
67 => 99,
|
||||
231 => 99,
|
||||
199 => 99,
|
||||
68 => 100,
|
||||
240 => 100,
|
||||
208 => 100,
|
||||
69 => 101,
|
||||
233 => 101,
|
||||
201 => 101,
|
||||
232 => 101,
|
||||
200 => 101,
|
||||
234 => 101,
|
||||
202 => 101,
|
||||
235 => 101,
|
||||
203 => 101,
|
||||
70 => 102,
|
||||
402 => 102,
|
||||
71 => 103,
|
||||
72 => 104,
|
||||
73 => 105,
|
||||
237 => 105,
|
||||
205 => 105,
|
||||
236 => 105,
|
||||
204 => 105,
|
||||
238 => 105,
|
||||
206 => 105,
|
||||
239 => 105,
|
||||
207 => 105,
|
||||
74 => 106,
|
||||
75 => 107,
|
||||
76 => 108,
|
||||
77 => 109,
|
||||
78 => 110,
|
||||
241 => 110,
|
||||
209 => 110,
|
||||
79 => 111,
|
||||
186 => 111,
|
||||
243 => 111,
|
||||
211 => 111,
|
||||
242 => 111,
|
||||
210 => 111,
|
||||
244 => 111,
|
||||
212 => 111,
|
||||
246 => 111,
|
||||
214 => 111,
|
||||
245 => 111,
|
||||
213 => 111,
|
||||
248 => 111,
|
||||
216 => 111,
|
||||
339 => 111,
|
||||
338 => 111,
|
||||
80 => 112,
|
||||
81 => 113,
|
||||
82 => 114,
|
||||
83 => 115,
|
||||
353 => 115,
|
||||
352 => 115,
|
||||
223 => 115,
|
||||
84 => 116,
|
||||
254 => 116,
|
||||
222 => 116,
|
||||
85 => 117,
|
||||
250 => 117,
|
||||
218 => 117,
|
||||
249 => 117,
|
||||
217 => 117,
|
||||
251 => 117,
|
||||
219 => 117,
|
||||
252 => 117,
|
||||
220 => 117,
|
||||
86 => 118,
|
||||
87 => 119,
|
||||
88 => 120,
|
||||
89 => 121,
|
||||
253 => 121,
|
||||
221 => 121,
|
||||
255 => 121,
|
||||
376 => 121,
|
||||
90 => 122,
|
||||
382 => 122,
|
||||
381 => 122,
|
||||
);
|
||||
?>
|
105
dk-pdf/includes/mpdf60/collations/English_India.php
Executable file
105
dk-pdf/includes/mpdf60/collations/English_India.php
Executable file
@ -0,0 +1,105 @@
|
||||
<?php
|
||||
$collation = array (
|
||||
710 => 94,
|
||||
189 => 188,
|
||||
190 => 179,
|
||||
65 => 97,
|
||||
170 => 97,
|
||||
225 => 97,
|
||||
193 => 97,
|
||||
224 => 97,
|
||||
192 => 97,
|
||||
226 => 97,
|
||||
194 => 97,
|
||||
228 => 97,
|
||||
196 => 97,
|
||||
227 => 97,
|
||||
195 => 97,
|
||||
229 => 97,
|
||||
197 => 97,
|
||||
230 => 97,
|
||||
198 => 97,
|
||||
66 => 98,
|
||||
67 => 99,
|
||||
231 => 99,
|
||||
199 => 99,
|
||||
68 => 100,
|
||||
240 => 100,
|
||||
208 => 100,
|
||||
69 => 101,
|
||||
233 => 101,
|
||||
201 => 101,
|
||||
232 => 101,
|
||||
200 => 101,
|
||||
234 => 101,
|
||||
202 => 101,
|
||||
235 => 101,
|
||||
203 => 101,
|
||||
70 => 102,
|
||||
402 => 102,
|
||||
71 => 103,
|
||||
72 => 104,
|
||||
73 => 105,
|
||||
237 => 105,
|
||||
205 => 105,
|
||||
236 => 105,
|
||||
204 => 105,
|
||||
238 => 105,
|
||||
206 => 105,
|
||||
239 => 105,
|
||||
207 => 105,
|
||||
74 => 106,
|
||||
75 => 107,
|
||||
76 => 108,
|
||||
77 => 109,
|
||||
78 => 110,
|
||||
241 => 110,
|
||||
209 => 110,
|
||||
79 => 111,
|
||||
186 => 111,
|
||||
243 => 111,
|
||||
211 => 111,
|
||||
242 => 111,
|
||||
210 => 111,
|
||||
244 => 111,
|
||||
212 => 111,
|
||||
246 => 111,
|
||||
214 => 111,
|
||||
245 => 111,
|
||||
213 => 111,
|
||||
248 => 111,
|
||||
216 => 111,
|
||||
339 => 111,
|
||||
338 => 111,
|
||||
80 => 112,
|
||||
81 => 113,
|
||||
82 => 114,
|
||||
83 => 115,
|
||||
353 => 115,
|
||||
352 => 115,
|
||||
223 => 115,
|
||||
84 => 116,
|
||||
254 => 116,
|
||||
222 => 116,
|
||||
85 => 117,
|
||||
250 => 117,
|
||||
218 => 117,
|
||||
249 => 117,
|
||||
217 => 117,
|
||||
251 => 117,
|
||||
219 => 117,
|
||||
252 => 117,
|
||||
220 => 117,
|
||||
86 => 118,
|
||||
87 => 119,
|
||||
88 => 120,
|
||||
89 => 121,
|
||||
253 => 121,
|
||||
221 => 121,
|
||||
255 => 121,
|
||||
376 => 121,
|
||||
90 => 122,
|
||||
382 => 122,
|
||||
381 => 122,
|
||||
);
|
||||
?>
|
105
dk-pdf/includes/mpdf60/collations/English_Ireland.php
Executable file
105
dk-pdf/includes/mpdf60/collations/English_Ireland.php
Executable file
@ -0,0 +1,105 @@
|
||||
<?php
|
||||
$collation = array (
|
||||
710 => 94,
|
||||
189 => 188,
|
||||
190 => 179,
|
||||
65 => 97,
|
||||
170 => 97,
|
||||
225 => 97,
|
||||
193 => 97,
|
||||
224 => 97,
|
||||
192 => 97,
|
||||
226 => 97,
|
||||
194 => 97,
|
||||
228 => 97,
|
||||
196 => 97,
|
||||
227 => 97,
|
||||
195 => 97,
|
||||
229 => 97,
|
||||
197 => 97,
|
||||
230 => 97,
|
||||
198 => 97,
|
||||
66 => 98,
|
||||
67 => 99,
|
||||
231 => 99,
|
||||
199 => 99,
|
||||
68 => 100,
|
||||
240 => 100,
|
||||
208 => 100,
|
||||
69 => 101,
|
||||
233 => 101,
|
||||
201 => 101,
|
||||
232 => 101,
|
||||
200 => 101,
|
||||
234 => 101,
|
||||
202 => 101,
|
||||
235 => 101,
|
||||
203 => 101,
|
||||
70 => 102,
|
||||
402 => 102,
|
||||
71 => 103,
|
||||
72 => 104,
|
||||
73 => 105,
|
||||
237 => 105,
|
||||
205 => 105,
|
||||
236 => 105,
|
||||
204 => 105,
|
||||
238 => 105,
|
||||
206 => 105,
|
||||
239 => 105,
|
||||
207 => 105,
|
||||
74 => 106,
|
||||
75 => 107,
|
||||
76 => 108,
|
||||
77 => 109,
|
||||
78 => 110,
|
||||
241 => 110,
|
||||
209 => 110,
|
||||
79 => 111,
|
||||
186 => 111,
|
||||
243 => 111,
|
||||
211 => 111,
|
||||
242 => 111,
|
||||
210 => 111,
|
||||
244 => 111,
|
||||
212 => 111,
|
||||
246 => 111,
|
||||
214 => 111,
|
||||
245 => 111,
|
||||
213 => 111,
|
||||
248 => 111,
|
||||
216 => 111,
|
||||
339 => 111,
|
||||
338 => 111,
|
||||
80 => 112,
|
||||
81 => 113,
|
||||
82 => 114,
|
||||
83 => 115,
|
||||
353 => 115,
|
||||
352 => 115,
|
||||
223 => 115,
|
||||
84 => 116,
|
||||
254 => 116,
|
||||
222 => 116,
|
||||
85 => 117,
|
||||
250 => 117,
|
||||
218 => 117,
|
||||
249 => 117,
|
||||
217 => 117,
|
||||
251 => 117,
|
||||
219 => 117,
|
||||
252 => 117,
|
||||
220 => 117,
|
||||
86 => 118,
|
||||
87 => 119,
|
||||
88 => 120,
|
||||
89 => 121,
|
||||
253 => 121,
|
||||
221 => 121,
|
||||
255 => 121,
|
||||
376 => 121,
|
||||
90 => 122,
|
||||
382 => 122,
|
||||
381 => 122,
|
||||
);
|
||||
?>
|
105
dk-pdf/includes/mpdf60/collations/English_Jamaica.php
Executable file
105
dk-pdf/includes/mpdf60/collations/English_Jamaica.php
Executable file
@ -0,0 +1,105 @@
|
||||
<?php
|
||||
$collation = array (
|
||||
710 => 94,
|
||||
189 => 188,
|
||||
190 => 179,
|
||||
65 => 97,
|
||||
170 => 97,
|
||||
225 => 97,
|
||||
193 => 97,
|
||||
224 => 97,
|
||||
192 => 97,
|
||||
226 => 97,
|
||||
194 => 97,
|
||||
228 => 97,
|
||||
196 => 97,
|
||||
227 => 97,
|
||||
195 => 97,
|
||||
229 => 97,
|
||||
197 => 97,
|
||||
230 => 97,
|
||||
198 => 97,
|
||||
66 => 98,
|
||||
67 => 99,
|
||||
231 => 99,
|
||||
199 => 99,
|
||||
68 => 100,
|
||||
240 => 100,
|
||||
208 => 100,
|
||||
69 => 101,
|
||||
233 => 101,
|
||||
201 => 101,
|
||||
232 => 101,
|
||||
200 => 101,
|
||||
234 => 101,
|
||||
202 => 101,
|
||||
235 => 101,
|
||||
203 => 101,
|
||||
70 => 102,
|
||||
402 => 102,
|
||||
71 => 103,
|
||||
72 => 104,
|
||||
73 => 105,
|
||||
237 => 105,
|
||||
205 => 105,
|
||||
236 => 105,
|
||||
204 => 105,
|
||||
238 => 105,
|
||||
206 => 105,
|
||||
239 => 105,
|
||||
207 => 105,
|
||||
74 => 106,
|
||||
75 => 107,
|
||||
76 => 108,
|
||||
77 => 109,
|
||||
78 => 110,
|
||||
241 => 110,
|
||||
209 => 110,
|
||||
79 => 111,
|
||||
186 => 111,
|
||||
243 => 111,
|
||||
211 => 111,
|
||||
242 => 111,
|
||||
210 => 111,
|
||||
244 => 111,
|
||||
212 => 111,
|
||||
246 => 111,
|
||||
214 => 111,
|
||||
245 => 111,
|
||||
213 => 111,
|
||||
248 => 111,
|
||||
216 => 111,
|
||||
339 => 111,
|
||||
338 => 111,
|
||||
80 => 112,
|
||||
81 => 113,
|
||||
82 => 114,
|
||||
83 => 115,
|
||||
353 => 115,
|
||||
352 => 115,
|
||||
223 => 115,
|
||||
84 => 116,
|
||||
254 => 116,
|
||||
222 => 116,
|
||||
85 => 117,
|
||||
250 => 117,
|
||||
218 => 117,
|
||||
249 => 117,
|
||||
217 => 117,
|
||||
251 => 117,
|
||||
219 => 117,
|
||||
252 => 117,
|
||||
220 => 117,
|
||||
86 => 118,
|
||||
87 => 119,
|
||||
88 => 120,
|
||||
89 => 121,
|
||||
253 => 121,
|
||||
221 => 121,
|
||||
255 => 121,
|
||||
376 => 121,
|
||||
90 => 122,
|
||||
382 => 122,
|
||||
381 => 122,
|
||||
);
|
||||
?>
|
105
dk-pdf/includes/mpdf60/collations/English_Malaysia.php
Executable file
105
dk-pdf/includes/mpdf60/collations/English_Malaysia.php
Executable file
@ -0,0 +1,105 @@
|
||||
<?php
|
||||
$collation = array (
|
||||
710 => 94,
|
||||
189 => 188,
|
||||
190 => 179,
|
||||
65 => 97,
|
||||
170 => 97,
|
||||
225 => 97,
|
||||
193 => 97,
|
||||
224 => 97,
|
||||
192 => 97,
|
||||
226 => 97,
|
||||
194 => 97,
|
||||
228 => 97,
|
||||
196 => 97,
|
||||
227 => 97,
|
||||
195 => 97,
|
||||
229 => 97,
|
||||
197 => 97,
|
||||
230 => 97,
|
||||
198 => 97,
|
||||
66 => 98,
|
||||
67 => 99,
|
||||
231 => 99,
|
||||
199 => 99,
|
||||
68 => 100,
|
||||
240 => 100,
|
||||
208 => 100,
|
||||
69 => 101,
|
||||
233 => 101,
|
||||
201 => 101,
|
||||
232 => 101,
|
||||
200 => 101,
|
||||
234 => 101,
|
||||
202 => 101,
|
||||
235 => 101,
|
||||
203 => 101,
|
||||
70 => 102,
|
||||
402 => 102,
|
||||
71 => 103,
|
||||
72 => 104,
|
||||
73 => 105,
|
||||
237 => 105,
|
||||
205 => 105,
|
||||
236 => 105,
|
||||
204 => 105,
|
||||
238 => 105,
|
||||
206 => 105,
|
||||
239 => 105,
|
||||
207 => 105,
|
||||
74 => 106,
|
||||
75 => 107,
|
||||
76 => 108,
|
||||
77 => 109,
|
||||
78 => 110,
|
||||
241 => 110,
|
||||
209 => 110,
|
||||
79 => 111,
|
||||
186 => 111,
|
||||
243 => 111,
|
||||
211 => 111,
|
||||
242 => 111,
|
||||
210 => 111,
|
||||
244 => 111,
|
||||
212 => 111,
|
||||
246 => 111,
|
||||
214 => 111,
|
||||
245 => 111,
|
||||
213 => 111,
|
||||
248 => 111,
|
||||
216 => 111,
|
||||
339 => 111,
|
||||
338 => 111,
|
||||
80 => 112,
|
||||
81 => 113,
|
||||
82 => 114,
|
||||
83 => 115,
|
||||
353 => 115,
|
||||
352 => 115,
|
||||
223 => 115,
|
||||
84 => 116,
|
||||
254 => 116,
|
||||
222 => 116,
|
||||
85 => 117,
|
||||
250 => 117,
|
||||
218 => 117,
|
||||
249 => 117,
|
||||
217 => 117,
|
||||
251 => 117,
|
||||
219 => 117,
|
||||
252 => 117,
|
||||
220 => 117,
|
||||
86 => 118,
|
||||
87 => 119,
|
||||
88 => 120,
|
||||
89 => 121,
|
||||
253 => 121,
|
||||
221 => 121,
|
||||
255 => 121,
|
||||
376 => 121,
|
||||
90 => 122,
|
||||
382 => 122,
|
||||
381 => 122,
|
||||
);
|
||||
?>
|
105
dk-pdf/includes/mpdf60/collations/English_New_Zealand.php
Executable file
105
dk-pdf/includes/mpdf60/collations/English_New_Zealand.php
Executable file
@ -0,0 +1,105 @@
|
||||
<?php
|
||||
$collation = array (
|
||||
710 => 94,
|
||||
189 => 188,
|
||||
190 => 179,
|
||||
65 => 97,
|
||||
170 => 97,
|
||||
225 => 97,
|
||||
193 => 97,
|
||||
224 => 97,
|
||||
192 => 97,
|
||||
226 => 97,
|
||||
194 => 97,
|
||||
228 => 97,
|
||||
196 => 97,
|
||||
227 => 97,
|
||||
195 => 97,
|
||||
229 => 97,
|
||||
197 => 97,
|
||||
230 => 97,
|
||||
198 => 97,
|
||||
66 => 98,
|
||||
67 => 99,
|
||||
231 => 99,
|
||||
199 => 99,
|
||||
68 => 100,
|
||||
240 => 100,
|
||||
208 => 100,
|
||||
69 => 101,
|
||||
233 => 101,
|
||||
201 => 101,
|
||||
232 => 101,
|
||||
200 => 101,
|
||||
234 => 101,
|
||||
202 => 101,
|
||||
235 => 101,
|
||||
203 => 101,
|
||||
70 => 102,
|
||||
402 => 102,
|
||||
71 => 103,
|
||||
72 => 104,
|
||||
73 => 105,
|
||||
237 => 105,
|
||||
205 => 105,
|
||||
236 => 105,
|
||||
204 => 105,
|
||||
238 => 105,
|
||||
206 => 105,
|
||||
239 => 105,
|
||||
207 => 105,
|
||||
74 => 106,
|
||||
75 => 107,
|
||||
76 => 108,
|
||||
77 => 109,
|
||||
78 => 110,
|
||||
241 => 110,
|
||||
209 => 110,
|
||||
79 => 111,
|
||||
186 => 111,
|
||||
243 => 111,
|
||||
211 => 111,
|
||||
242 => 111,
|
||||
210 => 111,
|
||||
244 => 111,
|
||||
212 => 111,
|
||||
246 => 111,
|
||||
214 => 111,
|
||||
245 => 111,
|
||||
213 => 111,
|
||||
248 => 111,
|
||||
216 => 111,
|
||||
339 => 111,
|
||||
338 => 111,
|
||||
80 => 112,
|
||||
81 => 113,
|
||||
82 => 114,
|
||||
83 => 115,
|
||||
353 => 115,
|
||||
352 => 115,
|
||||
223 => 115,
|
||||
84 => 116,
|
||||
254 => 116,
|
||||
222 => 116,
|
||||
85 => 117,
|
||||
250 => 117,
|
||||
218 => 117,
|
||||
249 => 117,
|
||||
217 => 117,
|
||||
251 => 117,
|
||||
219 => 117,
|
||||
252 => 117,
|
||||
220 => 117,
|
||||
86 => 118,
|
||||
87 => 119,
|
||||
88 => 120,
|
||||
89 => 121,
|
||||
253 => 121,
|
||||
221 => 121,
|
||||
255 => 121,
|
||||
376 => 121,
|
||||
90 => 122,
|
||||
382 => 122,
|
||||
381 => 122,
|
||||
);
|
||||
?>
|
105
dk-pdf/includes/mpdf60/collations/English_Republic_of_the_Philippines.php
Executable file
105
dk-pdf/includes/mpdf60/collations/English_Republic_of_the_Philippines.php
Executable file
@ -0,0 +1,105 @@
|
||||
<?php
|
||||
$collation = array (
|
||||
710 => 94,
|
||||
189 => 188,
|
||||
190 => 179,
|
||||
65 => 97,
|
||||
170 => 97,
|
||||
225 => 97,
|
||||
193 => 97,
|
||||
224 => 97,
|
||||
192 => 97,
|
||||
226 => 97,
|
||||
194 => 97,
|
||||
228 => 97,
|
||||
196 => 97,
|
||||
227 => 97,
|
||||
195 => 97,
|
||||
229 => 97,
|
||||
197 => 97,
|
||||
230 => 97,
|
||||
198 => 97,
|
||||
66 => 98,
|
||||
67 => 99,
|
||||
231 => 99,
|
||||
199 => 99,
|
||||
68 => 100,
|
||||
240 => 100,
|
||||
208 => 100,
|
||||
69 => 101,
|
||||
233 => 101,
|
||||
201 => 101,
|
||||
232 => 101,
|
||||
200 => 101,
|
||||
234 => 101,
|
||||
202 => 101,
|
||||
235 => 101,
|
||||
203 => 101,
|
||||
70 => 102,
|
||||
402 => 102,
|
||||
71 => 103,
|
||||
72 => 104,
|
||||
73 => 105,
|
||||
237 => 105,
|
||||
205 => 105,
|
||||
236 => 105,
|
||||
204 => 105,
|
||||
238 => 105,
|
||||
206 => 105,
|
||||
239 => 105,
|
||||
207 => 105,
|
||||
74 => 106,
|
||||
75 => 107,
|
||||
76 => 108,
|
||||
77 => 109,
|
||||
78 => 110,
|
||||
241 => 110,
|
||||
209 => 110,
|
||||
79 => 111,
|
||||
186 => 111,
|
||||
243 => 111,
|
||||
211 => 111,
|
||||
242 => 111,
|
||||
210 => 111,
|
||||
244 => 111,
|
||||
212 => 111,
|
||||
246 => 111,
|
||||
214 => 111,
|
||||
245 => 111,
|
||||
213 => 111,
|
||||
248 => 111,
|
||||
216 => 111,
|
||||
339 => 111,
|
||||
338 => 111,
|
||||
80 => 112,
|
||||
81 => 113,
|
||||
82 => 114,
|
||||
83 => 115,
|
||||
353 => 115,
|
||||
352 => 115,
|
||||
223 => 115,
|
||||
84 => 116,
|
||||
254 => 116,
|
||||
222 => 116,
|
||||
85 => 117,
|
||||
250 => 117,
|
||||
218 => 117,
|
||||
249 => 117,
|
||||
217 => 117,
|
||||
251 => 117,
|
||||
219 => 117,
|
||||
252 => 117,
|
||||
220 => 117,
|
||||
86 => 118,
|
||||
87 => 119,
|
||||
88 => 120,
|
||||
89 => 121,
|
||||
253 => 121,
|
||||
221 => 121,
|
||||
255 => 121,
|
||||
376 => 121,
|
||||
90 => 122,
|
||||
382 => 122,
|
||||
381 => 122,
|
||||
);
|
||||
?>
|
105
dk-pdf/includes/mpdf60/collations/English_Singapore.php
Executable file
105
dk-pdf/includes/mpdf60/collations/English_Singapore.php
Executable file
@ -0,0 +1,105 @@
|
||||
<?php
|
||||
$collation = array (
|
||||
710 => 94,
|
||||
189 => 188,
|
||||
190 => 179,
|
||||
65 => 97,
|
||||
170 => 97,
|
||||
225 => 97,
|
||||
193 => 97,
|
||||
224 => 97,
|
||||
192 => 97,
|
||||
226 => 97,
|
||||
194 => 97,
|
||||
228 => 97,
|
||||
196 => 97,
|
||||
227 => 97,
|
||||
195 => 97,
|
||||
229 => 97,
|
||||
197 => 97,
|
||||
230 => 97,
|
||||
198 => 97,
|
||||
66 => 98,
|
||||
67 => 99,
|
||||
231 => 99,
|
||||
199 => 99,
|
||||
68 => 100,
|
||||
240 => 100,
|
||||
208 => 100,
|
||||
69 => 101,
|
||||
233 => 101,
|
||||
201 => 101,
|
||||
232 => 101,
|
||||
200 => 101,
|
||||
234 => 101,
|
||||
202 => 101,
|
||||
235 => 101,
|
||||
203 => 101,
|
||||
70 => 102,
|
||||
402 => 102,
|
||||
71 => 103,
|
||||
72 => 104,
|
||||
73 => 105,
|
||||
237 => 105,
|
||||
205 => 105,
|
||||
236 => 105,
|
||||
204 => 105,
|
||||
238 => 105,
|
||||
206 => 105,
|
||||
239 => 105,
|
||||
207 => 105,
|
||||
74 => 106,
|
||||
75 => 107,
|
||||
76 => 108,
|
||||
77 => 109,
|
||||
78 => 110,
|
||||
241 => 110,
|
||||
209 => 110,
|
||||
79 => 111,
|
||||
186 => 111,
|
||||
243 => 111,
|
||||
211 => 111,
|
||||
242 => 111,
|
||||
210 => 111,
|
||||
244 => 111,
|
||||
212 => 111,
|
||||
246 => 111,
|
||||
214 => 111,
|
||||
245 => 111,
|
||||
213 => 111,
|
||||
248 => 111,
|
||||
216 => 111,
|
||||
339 => 111,
|
||||
338 => 111,
|
||||
80 => 112,
|
||||
81 => 113,
|
||||
82 => 114,
|
||||
83 => 115,
|
||||
353 => 115,
|
||||
352 => 115,
|
||||
223 => 115,
|
||||
84 => 116,
|
||||
254 => 116,
|
||||
222 => 116,
|
||||
85 => 117,
|
||||
250 => 117,
|
||||
218 => 117,
|
||||
249 => 117,
|
||||
217 => 117,
|
||||
251 => 117,
|
||||
219 => 117,
|
||||
252 => 117,
|
||||
220 => 117,
|
||||
86 => 118,
|
||||
87 => 119,
|
||||
88 => 120,
|
||||
89 => 121,
|
||||
253 => 121,
|
||||
221 => 121,
|
||||
255 => 121,
|
||||
376 => 121,
|
||||
90 => 122,
|
||||
382 => 122,
|
||||
381 => 122,
|
||||
);
|
||||
?>
|
105
dk-pdf/includes/mpdf60/collations/English_South_Africa.php
Executable file
105
dk-pdf/includes/mpdf60/collations/English_South_Africa.php
Executable file
@ -0,0 +1,105 @@
|
||||
<?php
|
||||
$collation = array (
|
||||
710 => 94,
|
||||
189 => 188,
|
||||
190 => 179,
|
||||
65 => 97,
|
||||
170 => 97,
|
||||
225 => 97,
|
||||
193 => 97,
|
||||
224 => 97,
|
||||
192 => 97,
|
||||
226 => 97,
|
||||
194 => 97,
|
||||
228 => 97,
|
||||
196 => 97,
|
||||
227 => 97,
|
||||
195 => 97,
|
||||
229 => 97,
|
||||
197 => 97,
|
||||
230 => 97,
|
||||
198 => 97,
|
||||
66 => 98,
|
||||
67 => 99,
|
||||
231 => 99,
|
||||
199 => 99,
|
||||
68 => 100,
|
||||
240 => 100,
|
||||
208 => 100,
|
||||
69 => 101,
|
||||
233 => 101,
|
||||
201 => 101,
|
||||
232 => 101,
|
||||
200 => 101,
|
||||
234 => 101,
|
||||
202 => 101,
|
||||
235 => 101,
|
||||
203 => 101,
|
||||
70 => 102,
|
||||
402 => 102,
|
||||
71 => 103,
|
||||
72 => 104,
|
||||
73 => 105,
|
||||
237 => 105,
|
||||
205 => 105,
|
||||
236 => 105,
|
||||
204 => 105,
|
||||
238 => 105,
|
||||
206 => 105,
|
||||
239 => 105,
|
||||
207 => 105,
|
||||
74 => 106,
|
||||
75 => 107,
|
||||
76 => 108,
|
||||
77 => 109,
|
||||
78 => 110,
|
||||
241 => 110,
|
||||
209 => 110,
|
||||
79 => 111,
|
||||
186 => 111,
|
||||
243 => 111,
|
||||
211 => 111,
|
||||
242 => 111,
|
||||
210 => 111,
|
||||
244 => 111,
|
||||
212 => 111,
|
||||
246 => 111,
|
||||
214 => 111,
|
||||
245 => 111,
|
||||
213 => 111,
|
||||
248 => 111,
|
||||
216 => 111,
|
||||
339 => 111,
|
||||
338 => 111,
|
||||
80 => 112,
|
||||
81 => 113,
|
||||
82 => 114,
|
||||
83 => 115,
|
||||
353 => 115,
|
||||
352 => 115,
|
||||
223 => 115,
|
||||
84 => 116,
|
||||
254 => 116,
|
||||
222 => 116,
|
||||
85 => 117,
|
||||
250 => 117,
|
||||
218 => 117,
|
||||
249 => 117,
|
||||
217 => 117,
|
||||
251 => 117,
|
||||
219 => 117,
|
||||
252 => 117,
|
||||
220 => 117,
|
||||
86 => 118,
|
||||
87 => 119,
|
||||
88 => 120,
|
||||
89 => 121,
|
||||
253 => 121,
|
||||
221 => 121,
|
||||
255 => 121,
|
||||
376 => 121,
|
||||
90 => 122,
|
||||
382 => 122,
|
||||
381 => 122,
|
||||
);
|
||||
?>
|
105
dk-pdf/includes/mpdf60/collations/English_Trinidad_and_Tobago.php
Executable file
105
dk-pdf/includes/mpdf60/collations/English_Trinidad_and_Tobago.php
Executable file
@ -0,0 +1,105 @@
|
||||
<?php
|
||||
$collation = array (
|
||||
710 => 94,
|
||||
189 => 188,
|
||||
190 => 179,
|
||||
65 => 97,
|
||||
170 => 97,
|
||||
225 => 97,
|
||||
193 => 97,
|
||||
224 => 97,
|
||||
192 => 97,
|
||||
226 => 97,
|
||||
194 => 97,
|
||||
228 => 97,
|
||||
196 => 97,
|
||||
227 => 97,
|
||||
195 => 97,
|
||||
229 => 97,
|
||||
197 => 97,
|
||||
230 => 97,
|
||||
198 => 97,
|
||||
66 => 98,
|
||||
67 => 99,
|
||||
231 => 99,
|
||||
199 => 99,
|
||||
68 => 100,
|
||||
240 => 100,
|
||||
208 => 100,
|
||||
69 => 101,
|
||||
233 => 101,
|
||||
201 => 101,
|
||||
232 => 101,
|
||||
200 => 101,
|
||||
234 => 101,
|
||||
202 => 101,
|
||||
235 => 101,
|
||||
203 => 101,
|
||||
70 => 102,
|
||||
402 => 102,
|
||||
71 => 103,
|
||||
72 => 104,
|
||||
73 => 105,
|
||||
237 => 105,
|
||||
205 => 105,
|
||||
236 => 105,
|
||||
204 => 105,
|
||||
238 => 105,
|
||||
206 => 105,
|
||||
239 => 105,
|
||||
207 => 105,
|
||||
74 => 106,
|
||||
75 => 107,
|
||||
76 => 108,
|
||||
77 => 109,
|
||||
78 => 110,
|
||||
241 => 110,
|
||||
209 => 110,
|
||||
79 => 111,
|
||||
186 => 111,
|
||||
243 => 111,
|
||||
211 => 111,
|
||||
242 => 111,
|
||||
210 => 111,
|
||||
244 => 111,
|
||||
212 => 111,
|
||||
246 => 111,
|
||||
214 => 111,
|
||||
245 => 111,
|
||||
213 => 111,
|
||||
248 => 111,
|
||||
216 => 111,
|
||||
339 => 111,
|
||||
338 => 111,
|
||||
80 => 112,
|
||||
81 => 113,
|
||||
82 => 114,
|
||||
83 => 115,
|
||||
353 => 115,
|
||||
352 => 115,
|
||||
223 => 115,
|
||||
84 => 116,
|
||||
254 => 116,
|
||||
222 => 116,
|
||||
85 => 117,
|
||||
250 => 117,
|
||||
218 => 117,
|
||||
249 => 117,
|
||||
217 => 117,
|
||||
251 => 117,
|
||||
219 => 117,
|
||||
252 => 117,
|
||||
220 => 117,
|
||||
86 => 118,
|
||||
87 => 119,
|
||||
88 => 120,
|
||||
89 => 121,
|
||||
253 => 121,
|
||||
221 => 121,
|
||||
255 => 121,
|
||||
376 => 121,
|
||||
90 => 122,
|
||||
382 => 122,
|
||||
381 => 122,
|
||||
);
|
||||
?>
|
104
dk-pdf/includes/mpdf60/collations/English_United_Kingdom.php
Executable file
104
dk-pdf/includes/mpdf60/collations/English_United_Kingdom.php
Executable file
@ -0,0 +1,104 @@
|
||||
<?php
|
||||
$collation = array (
|
||||
710 => 94,
|
||||
189 => 188,
|
||||
190 => 179,
|
||||
65 => 97,
|
||||
170 => 97,
|
||||
225 => 97,
|
||||
193 => 97,
|
||||
224 => 97,
|
||||
192 => 97,
|
||||
226 => 97,
|
||||
194 => 97,
|
||||
228 => 97,
|
||||
196 => 97,
|
||||
227 => 97,
|
||||
195 => 97,
|
||||
229 => 97,
|
||||
197 => 97,
|
||||
230 => 97,
|
||||
198 => 97,
|
||||
66 => 98,
|
||||
67 => 99,
|
||||
231 => 99,
|
||||
199 => 99,
|
||||
68 => 100,
|
||||
240 => 100,
|
||||
208 => 100,
|
||||
69 => 101,
|
||||
233 => 101,
|
||||
201 => 101,
|
||||
232 => 101,
|
||||
200 => 101,
|
||||
234 => 101,
|
||||
202 => 101,
|
||||
235 => 101,
|
||||
203 => 101,
|
||||
70 => 102,
|
||||
402 => 102,
|
||||
71 => 103,
|
||||
72 => 104,
|
||||
73 => 105,
|
||||
237 => 105,
|
||||
205 => 105,
|
||||
236 => 105,
|
||||
204 => 105,
|
||||
238 => 105,
|
||||
206 => 105,
|
||||
239 => 105,
|
||||
207 => 105,
|
||||
74 => 106,
|
||||
75 => 107,
|
||||
76 => 108,
|
||||
77 => 109,
|
||||
78 => 110,
|
||||
241 => 110,
|
||||
209 => 110,
|
||||
79 => 111,
|
||||
186 => 111,
|
||||
243 => 111,
|
||||
211 => 111,
|
||||
242 => 111,
|
||||
210 => 111,
|
||||
244 => 111,
|
||||
212 => 111,
|
||||
246 => 111,
|
||||
214 => 111,
|
||||
245 => 111,
|
||||
213 => 111,
|
||||
248 => 111,
|
||||
216 => 111,
|
||||
339 => 111,
|
||||
338 => 111,
|
||||
80 => 112,
|
||||
81 => 113,
|
||||
82 => 114,
|
||||
83 => 115,
|
||||
353 => 115,
|
||||
352 => 115,
|
||||
223 => 115,
|
||||
84 => 116,
|
||||
222 => 254,
|
||||
85 => 117,
|
||||
250 => 117,
|
||||
218 => 117,
|
||||
249 => 117,
|
||||
217 => 117,
|
||||
251 => 117,
|
||||
219 => 117,
|
||||
252 => 117,
|
||||
220 => 117,
|
||||
86 => 118,
|
||||
87 => 119,
|
||||
88 => 120,
|
||||
89 => 121,
|
||||
253 => 121,
|
||||
221 => 121,
|
||||
255 => 121,
|
||||
376 => 121,
|
||||
90 => 122,
|
||||
382 => 122,
|
||||
381 => 122,
|
||||
);
|
||||
?>
|
104
dk-pdf/includes/mpdf60/collations/English_United_States.php
Executable file
104
dk-pdf/includes/mpdf60/collations/English_United_States.php
Executable file
@ -0,0 +1,104 @@
|
||||
<?php
|
||||
$collation = array (
|
||||
710 => 94,
|
||||
189 => 188,
|
||||
190 => 179,
|
||||
65 => 97,
|
||||
170 => 97,
|
||||
225 => 97,
|
||||
193 => 97,
|
||||
224 => 97,
|
||||
192 => 97,
|
||||
226 => 97,
|
||||
194 => 97,
|
||||
228 => 97,
|
||||
196 => 97,
|
||||
227 => 97,
|
||||
195 => 97,
|
||||
229 => 97,
|
||||
197 => 97,
|
||||
230 => 97,
|
||||
198 => 97,
|
||||
66 => 98,
|
||||
67 => 99,
|
||||
231 => 99,
|
||||
199 => 99,
|
||||
68 => 100,
|
||||
240 => 100,
|
||||
208 => 100,
|
||||
69 => 101,
|
||||
233 => 101,
|
||||
201 => 101,
|
||||
232 => 101,
|
||||
200 => 101,
|
||||
234 => 101,
|
||||
202 => 101,
|
||||
235 => 101,
|
||||
203 => 101,
|
||||
70 => 102,
|
||||
402 => 102,
|
||||
71 => 103,
|
||||
72 => 104,
|
||||
73 => 105,
|
||||
237 => 105,
|
||||
205 => 105,
|
||||
236 => 105,
|
||||
204 => 105,
|
||||
238 => 105,
|
||||
206 => 105,
|
||||
239 => 105,
|
||||
207 => 105,
|
||||
74 => 106,
|
||||
75 => 107,
|
||||
76 => 108,
|
||||
77 => 109,
|
||||
78 => 110,
|
||||
241 => 110,
|
||||
209 => 110,
|
||||
79 => 111,
|
||||
186 => 111,
|
||||
243 => 111,
|
||||
211 => 111,
|
||||
242 => 111,
|
||||
210 => 111,
|
||||
244 => 111,
|
||||
212 => 111,
|
||||
246 => 111,
|
||||
214 => 111,
|
||||
245 => 111,
|
||||
213 => 111,
|
||||
248 => 111,
|
||||
216 => 111,
|
||||
339 => 111,
|
||||
338 => 111,
|
||||
80 => 112,
|
||||
81 => 113,
|
||||
82 => 114,
|
||||
83 => 115,
|
||||
353 => 115,
|
||||
352 => 115,
|
||||
223 => 115,
|
||||
84 => 116,
|
||||
222 => 254,
|
||||
85 => 117,
|
||||
250 => 117,
|
||||
218 => 117,
|
||||
249 => 117,
|
||||
217 => 117,
|
||||
251 => 117,
|
||||
219 => 117,
|
||||
252 => 117,
|
||||
220 => 117,
|
||||
86 => 118,
|
||||
87 => 119,
|
||||
88 => 120,
|
||||
89 => 121,
|
||||
253 => 121,
|
||||
221 => 121,
|
||||
255 => 121,
|
||||
376 => 121,
|
||||
90 => 122,
|
||||
382 => 122,
|
||||
381 => 122,
|
||||
);
|
||||
?>
|
105
dk-pdf/includes/mpdf60/collations/English_Zimbabwe.php
Executable file
105
dk-pdf/includes/mpdf60/collations/English_Zimbabwe.php
Executable file
@ -0,0 +1,105 @@
|
||||
<?php
|
||||
$collation = array (
|
||||
710 => 94,
|
||||
189 => 188,
|
||||
190 => 179,
|
||||
65 => 97,
|
||||
170 => 97,
|
||||
225 => 97,
|
||||
193 => 97,
|
||||
224 => 97,
|
||||
192 => 97,
|
||||
226 => 97,
|
||||
194 => 97,
|
||||
228 => 97,
|
||||
196 => 97,
|
||||
227 => 97,
|
||||
195 => 97,
|
||||
229 => 97,
|
||||
197 => 97,
|
||||
230 => 97,
|
||||
198 => 97,
|
||||
66 => 98,
|
||||
67 => 99,
|
||||
231 => 99,
|
||||
199 => 99,
|
||||
68 => 100,
|
||||
240 => 100,
|
||||
208 => 100,
|
||||
69 => 101,
|
||||
233 => 101,
|
||||
201 => 101,
|
||||
232 => 101,
|
||||
200 => 101,
|
||||
234 => 101,
|
||||
202 => 101,
|
||||
235 => 101,
|
||||
203 => 101,
|
||||
70 => 102,
|
||||
402 => 102,
|
||||
71 => 103,
|
||||
72 => 104,
|
||||
73 => 105,
|
||||
237 => 105,
|
||||
205 => 105,
|
||||
236 => 105,
|
||||
204 => 105,
|
||||
238 => 105,
|
||||
206 => 105,
|
||||
239 => 105,
|
||||
207 => 105,
|
||||
74 => 106,
|
||||
75 => 107,
|
||||
76 => 108,
|
||||
77 => 109,
|
||||
78 => 110,
|
||||
241 => 110,
|
||||
209 => 110,
|
||||
79 => 111,
|
||||
186 => 111,
|
||||
243 => 111,
|
||||
211 => 111,
|
||||
242 => 111,
|
||||
210 => 111,
|
||||
244 => 111,
|
||||
212 => 111,
|
||||
246 => 111,
|
||||
214 => 111,
|
||||
245 => 111,
|
||||
213 => 111,
|
||||
248 => 111,
|
||||
216 => 111,
|
||||
339 => 111,
|
||||
338 => 111,
|
||||
80 => 112,
|
||||
81 => 113,
|
||||
82 => 114,
|
||||
83 => 115,
|
||||
353 => 115,
|
||||
352 => 115,
|
||||
223 => 115,
|
||||
84 => 116,
|
||||
254 => 116,
|
||||
222 => 116,
|
||||
85 => 117,
|
||||
250 => 117,
|
||||
218 => 117,
|
||||
249 => 117,
|
||||
217 => 117,
|
||||
251 => 117,
|
||||
219 => 117,
|
||||
252 => 117,
|
||||
220 => 117,
|
||||
86 => 118,
|
||||
87 => 119,
|
||||
88 => 120,
|
||||
89 => 121,
|
||||
253 => 121,
|
||||
221 => 121,
|
||||
255 => 121,
|
||||
376 => 121,
|
||||
90 => 122,
|
||||
382 => 122,
|
||||
381 => 122,
|
||||
);
|
||||
?>
|
94
dk-pdf/includes/mpdf60/collations/Estonian_Estonia.php
Executable file
94
dk-pdf/includes/mpdf60/collations/Estonian_Estonia.php
Executable file
@ -0,0 +1,94 @@
|
||||
<?php
|
||||
$collation = array (
|
||||
189 => 188,
|
||||
190 => 179,
|
||||
65 => 97,
|
||||
257 => 97,
|
||||
256 => 97,
|
||||
229 => 97,
|
||||
197 => 97,
|
||||
261 => 97,
|
||||
260 => 97,
|
||||
230 => 97,
|
||||
198 => 97,
|
||||
66 => 98,
|
||||
67 => 99,
|
||||
263 => 99,
|
||||
262 => 99,
|
||||
269 => 99,
|
||||
268 => 99,
|
||||
68 => 100,
|
||||
69 => 101,
|
||||
233 => 101,
|
||||
201 => 101,
|
||||
279 => 101,
|
||||
278 => 101,
|
||||
275 => 101,
|
||||
274 => 101,
|
||||
281 => 101,
|
||||
280 => 101,
|
||||
70 => 102,
|
||||
71 => 103,
|
||||
291 => 103,
|
||||
290 => 103,
|
||||
72 => 104,
|
||||
73 => 105,
|
||||
299 => 105,
|
||||
298 => 105,
|
||||
303 => 105,
|
||||
302 => 105,
|
||||
74 => 106,
|
||||
75 => 107,
|
||||
311 => 107,
|
||||
310 => 107,
|
||||
76 => 108,
|
||||
316 => 108,
|
||||
315 => 108,
|
||||
322 => 108,
|
||||
321 => 108,
|
||||
77 => 109,
|
||||
78 => 110,
|
||||
324 => 110,
|
||||
323 => 110,
|
||||
326 => 110,
|
||||
325 => 110,
|
||||
79 => 111,
|
||||
243 => 111,
|
||||
211 => 111,
|
||||
333 => 111,
|
||||
332 => 111,
|
||||
248 => 111,
|
||||
216 => 111,
|
||||
80 => 112,
|
||||
81 => 113,
|
||||
82 => 114,
|
||||
343 => 114,
|
||||
342 => 114,
|
||||
83 => 115,
|
||||
347 => 115,
|
||||
346 => 115,
|
||||
223 => 115,
|
||||
352 => 353,
|
||||
90 => 122,
|
||||
378 => 122,
|
||||
377 => 122,
|
||||
380 => 122,
|
||||
379 => 122,
|
||||
381 => 382,
|
||||
84 => 116,
|
||||
85 => 117,
|
||||
363 => 117,
|
||||
362 => 117,
|
||||
371 => 117,
|
||||
370 => 117,
|
||||
86 => 118,
|
||||
119 => 118,
|
||||
87 => 118,
|
||||
213 => 245,
|
||||
196 => 228,
|
||||
214 => 246,
|
||||
220 => 252,
|
||||
88 => 120,
|
||||
89 => 121,
|
||||
);
|
||||
?>
|
105
dk-pdf/includes/mpdf60/collations/Faroese_Faroe_Islands.php
Executable file
105
dk-pdf/includes/mpdf60/collations/Faroese_Faroe_Islands.php
Executable file
@ -0,0 +1,105 @@
|
||||
<?php
|
||||
$collation = array (
|
||||
710 => 94,
|
||||
189 => 188,
|
||||
190 => 179,
|
||||
65 => 97,
|
||||
170 => 97,
|
||||
225 => 97,
|
||||
193 => 97,
|
||||
224 => 97,
|
||||
192 => 97,
|
||||
226 => 97,
|
||||
194 => 97,
|
||||
228 => 97,
|
||||
196 => 97,
|
||||
227 => 97,
|
||||
195 => 97,
|
||||
229 => 97,
|
||||
197 => 97,
|
||||
230 => 97,
|
||||
198 => 97,
|
||||
66 => 98,
|
||||
67 => 99,
|
||||
231 => 99,
|
||||
199 => 99,
|
||||
68 => 100,
|
||||
240 => 100,
|
||||
208 => 100,
|
||||
69 => 101,
|
||||
233 => 101,
|
||||
201 => 101,
|
||||
232 => 101,
|
||||
200 => 101,
|
||||
234 => 101,
|
||||
202 => 101,
|
||||
235 => 101,
|
||||
203 => 101,
|
||||
70 => 102,
|
||||
402 => 102,
|
||||
71 => 103,
|
||||
72 => 104,
|
||||
73 => 105,
|
||||
237 => 105,
|
||||
205 => 105,
|
||||
236 => 105,
|
||||
204 => 105,
|
||||
238 => 105,
|
||||
206 => 105,
|
||||
239 => 105,
|
||||
207 => 105,
|
||||
74 => 106,
|
||||
75 => 107,
|
||||
76 => 108,
|
||||
77 => 109,
|
||||
78 => 110,
|
||||
241 => 110,
|
||||
209 => 110,
|
||||
79 => 111,
|
||||
186 => 111,
|
||||
243 => 111,
|
||||
211 => 111,
|
||||
242 => 111,
|
||||
210 => 111,
|
||||
244 => 111,
|
||||
212 => 111,
|
||||
246 => 111,
|
||||
214 => 111,
|
||||
245 => 111,
|
||||
213 => 111,
|
||||
248 => 111,
|
||||
216 => 111,
|
||||
339 => 111,
|
||||
338 => 111,
|
||||
80 => 112,
|
||||
81 => 113,
|
||||
82 => 114,
|
||||
83 => 115,
|
||||
353 => 115,
|
||||
352 => 115,
|
||||
223 => 115,
|
||||
84 => 116,
|
||||
254 => 116,
|
||||
222 => 116,
|
||||
85 => 117,
|
||||
250 => 117,
|
||||
218 => 117,
|
||||
249 => 117,
|
||||
217 => 117,
|
||||
251 => 117,
|
||||
219 => 117,
|
||||
252 => 117,
|
||||
220 => 117,
|
||||
86 => 118,
|
||||
87 => 119,
|
||||
88 => 120,
|
||||
89 => 121,
|
||||
253 => 121,
|
||||
221 => 121,
|
||||
255 => 121,
|
||||
376 => 121,
|
||||
90 => 122,
|
||||
382 => 122,
|
||||
381 => 122,
|
||||
);
|
||||
?>
|
105
dk-pdf/includes/mpdf60/collations/Filipino_Philippines.php
Executable file
105
dk-pdf/includes/mpdf60/collations/Filipino_Philippines.php
Executable file
@ -0,0 +1,105 @@
|
||||
<?php
|
||||
$collation = array (
|
||||
710 => 94,
|
||||
189 => 188,
|
||||
190 => 179,
|
||||
65 => 97,
|
||||
170 => 97,
|
||||
225 => 97,
|
||||
193 => 97,
|
||||
224 => 97,
|
||||
192 => 97,
|
||||
226 => 97,
|
||||
194 => 97,
|
||||
228 => 97,
|
||||
196 => 97,
|
||||
227 => 97,
|
||||
195 => 97,
|
||||
229 => 97,
|
||||
197 => 97,
|
||||
230 => 97,
|
||||
198 => 97,
|
||||
66 => 98,
|
||||
67 => 99,
|
||||
231 => 99,
|
||||
199 => 99,
|
||||
68 => 100,
|
||||
240 => 100,
|
||||
208 => 100,
|
||||
69 => 101,
|
||||
233 => 101,
|
||||
201 => 101,
|
||||
232 => 101,
|
||||
200 => 101,
|
||||
234 => 101,
|
||||
202 => 101,
|
||||
235 => 101,
|
||||
203 => 101,
|
||||
70 => 102,
|
||||
402 => 102,
|
||||
71 => 103,
|
||||
72 => 104,
|
||||
73 => 105,
|
||||
237 => 105,
|
||||
205 => 105,
|
||||
236 => 105,
|
||||
204 => 105,
|
||||
238 => 105,
|
||||
206 => 105,
|
||||
239 => 105,
|
||||
207 => 105,
|
||||
74 => 106,
|
||||
75 => 107,
|
||||
76 => 108,
|
||||
77 => 109,
|
||||
78 => 110,
|
||||
241 => 110,
|
||||
209 => 110,
|
||||
79 => 111,
|
||||
186 => 111,
|
||||
243 => 111,
|
||||
211 => 111,
|
||||
242 => 111,
|
||||
210 => 111,
|
||||
244 => 111,
|
||||
212 => 111,
|
||||
246 => 111,
|
||||
214 => 111,
|
||||
245 => 111,
|
||||
213 => 111,
|
||||
248 => 111,
|
||||
216 => 111,
|
||||
339 => 111,
|
||||
338 => 111,
|
||||
80 => 112,
|
||||
81 => 113,
|
||||
82 => 114,
|
||||
83 => 115,
|
||||
353 => 115,
|
||||
352 => 115,
|
||||
223 => 115,
|
||||
84 => 116,
|
||||
254 => 116,
|
||||
222 => 116,
|
||||
85 => 117,
|
||||
250 => 117,
|
||||
218 => 117,
|
||||
249 => 117,
|
||||
217 => 117,
|
||||
251 => 117,
|
||||
219 => 117,
|
||||
252 => 117,
|
||||
220 => 117,
|
||||
86 => 118,
|
||||
87 => 119,
|
||||
88 => 120,
|
||||
89 => 121,
|
||||
253 => 121,
|
||||
221 => 121,
|
||||
255 => 121,
|
||||
376 => 121,
|
||||
90 => 122,
|
||||
382 => 122,
|
||||
381 => 122,
|
||||
);
|
||||
?>
|
103
dk-pdf/includes/mpdf60/collations/Finnish_Finland.php
Executable file
103
dk-pdf/includes/mpdf60/collations/Finnish_Finland.php
Executable file
@ -0,0 +1,103 @@
|
||||
<?php
|
||||
$collation = array (
|
||||
710 => 94,
|
||||
189 => 188,
|
||||
190 => 179,
|
||||
65 => 97,
|
||||
170 => 97,
|
||||
225 => 97,
|
||||
193 => 97,
|
||||
224 => 97,
|
||||
192 => 97,
|
||||
226 => 97,
|
||||
194 => 97,
|
||||
227 => 97,
|
||||
195 => 97,
|
||||
230 => 97,
|
||||
198 => 97,
|
||||
66 => 98,
|
||||
67 => 99,
|
||||
231 => 99,
|
||||
199 => 99,
|
||||
68 => 100,
|
||||
240 => 100,
|
||||
208 => 100,
|
||||
69 => 101,
|
||||
233 => 101,
|
||||
201 => 101,
|
||||
232 => 101,
|
||||
200 => 101,
|
||||
234 => 101,
|
||||
202 => 101,
|
||||
235 => 101,
|
||||
203 => 101,
|
||||
70 => 102,
|
||||
402 => 102,
|
||||
71 => 103,
|
||||
72 => 104,
|
||||
73 => 105,
|
||||
237 => 105,
|
||||
205 => 105,
|
||||
236 => 105,
|
||||
204 => 105,
|
||||
238 => 105,
|
||||
206 => 105,
|
||||
239 => 105,
|
||||
207 => 105,
|
||||
74 => 106,
|
||||
75 => 107,
|
||||
76 => 108,
|
||||
77 => 109,
|
||||
78 => 110,
|
||||
241 => 110,
|
||||
209 => 110,
|
||||
79 => 111,
|
||||
186 => 111,
|
||||
243 => 111,
|
||||
211 => 111,
|
||||
242 => 111,
|
||||
210 => 111,
|
||||
244 => 111,
|
||||
212 => 111,
|
||||
245 => 111,
|
||||
213 => 111,
|
||||
339 => 111,
|
||||
338 => 111,
|
||||
80 => 112,
|
||||
81 => 113,
|
||||
82 => 114,
|
||||
83 => 115,
|
||||
353 => 115,
|
||||
352 => 115,
|
||||
223 => 115,
|
||||
84 => 116,
|
||||
254 => 116,
|
||||
222 => 116,
|
||||
85 => 117,
|
||||
250 => 117,
|
||||
218 => 117,
|
||||
249 => 117,
|
||||
217 => 117,
|
||||
251 => 117,
|
||||
219 => 117,
|
||||
86 => 118,
|
||||
119 => 118,
|
||||
87 => 118,
|
||||
88 => 120,
|
||||
89 => 121,
|
||||
253 => 121,
|
||||
221 => 121,
|
||||
255 => 121,
|
||||
376 => 121,
|
||||
252 => 121,
|
||||
220 => 121,
|
||||
90 => 122,
|
||||
382 => 122,
|
||||
381 => 122,
|
||||
197 => 229,
|
||||
196 => 228,
|
||||
214 => 246,
|
||||
248 => 246,
|
||||
216 => 246,
|
||||
);
|
||||
?>
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user