Основы PHP
  Что такое PHP?
  Возможности PHP
  Преимущества PHP
  История развития
  Что нового в PHP5?
  «Движок» PHP
  Переход на PHP 5.3
New Переход на PHP 5.6
  Введение в PHP
  Изучение PHP
  Основы CGI
  Синтаксис PHP
  Типы данных PHP
  Переменные в PHP
  Константы PHP
  Выражения PHP
  Операторы PHP
  Конструкции PHP
  Ссылки в PHP
  PHP и ООП
  Безопасность
  Функции PHP
  Функции по категориям
  Функции по алфавиту
  Стандартные функции
  Пользовательские
  PHP и HTTP
  Работа с формами
  PHP и Upload
  PHP и Cookies
  PHP и базы данных
  PHP и MySQL
  Документация MySQL
  Учебники
  Учебники по PHP
  Учебники по MySQL
  Другие учебники
  Уроки PHP
  Введение
  Самые основы
  Управление
  Функции
  Документация
  Математика
  Файлы
  Основы SQL
  Дата и время
  CURL
  Изображения
  Стили
  Безопасность
  Установка
  Проектирование БД
  Регулярные выражения
  Подготовка к работе
  Быстрый старт
  Установка PHP
  Установка MySQL
  Конфигурация PHP
  Download / Скачать
  Скачать Apache
  Скачать PHP
  Скачать PECL
  Скачать PEAR
  Скачать MySQL
  Редакторы PHP
  Полезные утилиты
  Документация
  PHP скрипты
  Скачать скрипты
  Инструменты
  PHP в примерах
  Новости портала
 Главная   »  Функции PHP
 
 

Функции ClibPDF

Введение

Библиотека ClibPDF даёт возможность создавать PDF-документы с помощью PHP. Её можно загрузить с FastIO, но необходимо приобрести лицензию для коммерческого использования. Функциональность и API ClibPDF аналогичны PDFlib.

Этот документ необходимо читать вместе с учебником ClibPDF, поскольку там библиотека рассматривается более детально.

Многие функции в модулях ClibPDF и PHP, а также в PDFlib, называются одинаково. Все функции, за исключением cpdf_open(), принимают в качестве первого параметра дескриптор документа.

В настоящее время этот дескриптор не используется внутренне, поскольку ClibPDF не поддерживает одновременное создание нескольких PDF-документов. И даже не пытайтесь сделать это - результат будет непредсказуем. Невозможно предсказать, какие последствия этого могут быть во многопоточной среде. По соглашению с автором ClibPDF мы изменим это в одном из последующих релизов (на момент написания имелась версия 1.10). Если вам нужна эта функциональность, используйте модуль pdflib.

Прекрасной возможностью ClibPDF (и PDFlib) является способность создавать pdf-документ полностью в памяти без использования временных файлов. Имеется также возможность передавать координаты в предопределённых единицах измерения. (Эта возможность симулируется также функцией pdf_translate() при использовании PDFlib -функций.)

Другим важным свойством ClibPDF является то, что любая страница может быть модифицирована в любое время, даже если уже открыта новая страница. Функция cpdf_set_current_page() позволяет оставить текущую страницу и продолжить модификацию другой страницы.

Большинство функций использовать довольно легко. Возможно, самое сложное - это создание самого простого PDF-документа. Следующий пример должен помочь вам начать. Он создаёт документ из одной страницы. Эта страница содержит текст "Times-Roman", выведенный шрифтом в 30pt. текст подчёркнут.

Предопределённые константы

Эти константы определены данным расширением и будут доступны только в том случае, если либо вкомпилированы в РНР, либо динамически загружены на этапе прогона.

CPDF_PM_NONE (integer)
CPDF_PM_OUTLINES (integer)
CPDF_PM_THUMBS (integer)
CPDF_PM_FULLSCREEN (integer)
CPDF_PL_SINGLE (integer)
CPDF_PL_1COLUMN (integer)
CPDF_PL_2LCOLUMN (integer)
CPDF_PL_2RCOLUMN (integer)

Примеры

Пример 1. Простой пример с использованием ClibPDF

<?php
$cpdf 
cpdf_open(0);
cpdf_page_init($cpdf105958421.0);
cpdf_add_outline($cpdf0001"Page 1");
cpdf_begin_text($cpdf);
cpdf_set_font($cpdf"Times-Roman"30"WinAnsiEncoding");
cpdf_set_text_rendering($cpdf1);
cpdf_text($cpdf"Times Roman outlined"5050);
cpdf_end_text($cpdf);
cpdf_moveto($cpdf5050);
cpdf_lineto($cpdf740330);
cpdf_stroke($cpdf);
cpdf_finalize_page($cpdf1);
cpdf_finalize($cpdf);
Header("Content-type: application/pdf");
cpdf_output_buffer($cpdf);
cpdf_close($cpdf);
?>

Дистрибутив pdflib содержит   более сложный пример, в котором создаются серии страниц с аналоговыми часами. Здесь приведён пример, конвертированный в PHP с использованием расширения ClibPDF:

Пример 2. pdfclock из дистрибутива pdflib 2.0

<?php
$radius 
200;
$margin 20;
$pagecount 40;

$pdf cpdf_open(0);
cpdf_set_creator($pdf"pdf_clock.php");
cpdf_set_title($pdf"Analog Clock");
  
while (
$pagecount-- > 0) {
  
cpdf_page_init($pdf$pagecount+10* ($radius $margin), * ($radius $margin), 
  1.0
);
  
  
cpdf_set_page_animation($pdf40.5000);  /* wipe */
  
  
cpdf_translate($pdf$radius $margin$radius $margin);
  
cpdf_save($pdf);
  
cpdf_setrgbcolor($pdf0.00.01.0);
  
  
/* minute strokes */
  
cpdf_setlinewidth($pdf2.0);
  for (
$alpha 0$alpha 360$alpha += 6) {
    
cpdf_rotate($pdf6.0);
    
cpdf_moveto($pdf$radius0.0);
    
cpdf_lineto($pdf$radius-$margin/30.0);
    
cpdf_stroke($pdf);
  }
  
  
cpdf_restore($pdf);
  
cpdf_save($pdf);
 
  
/* 5 minute strokes */
  
cpdf_setlinewidth($pdf3.0);
  for (
$alpha 0$alpha 360$alpha += 30) {
    
cpdf_rotate($pdf30.0);
    
cpdf_moveto($pdf$radius0.0);
    
cpdf_lineto($pdf$radius-$margin0.0);
    
cpdf_stroke($pdf);
  }

  
$ltime getdate();

  
/* draw hour hand */
  
cpdf_save($pdf);
  
cpdf_rotate($pdf, -(($ltime['minutes']/60.0) + $ltime['hours'] - 3.0) * 30.0);
  
cpdf_moveto($pdf, -$radius/10, -$radius/20);
  
cpdf_lineto($pdf$radius/20.0);
  
cpdf_lineto($pdf, -$radius/10$radius/20);
  
cpdf_closepath($pdf);
  
cpdf_fill($pdf);
  
cpdf_restore($pdf);

  
/* draw minute hand */
  
cpdf_save($pdf);
  
cpdf_rotate($pdf, -(($ltime['seconds']/60.0) + $ltime['minutes'] - 15.0) * 6.0);
  
cpdf_moveto($pdf, -$radius/10, -$radius/20);
  
cpdf_lineto($pdf$radius 0.80.0);
  
cpdf_lineto($pdf, -$radius/10$radius/20);
  
cpdf_closepath($pdf);
  
cpdf_fill($pdf);
  
cpdf_restore($pdf);

  
/* draw second hand */
  
cpdf_setrgbcolor($pdf1.00.00.0);
  
cpdf_setlinewidth($pdf2);
  
cpdf_save($pdf);
  
cpdf_rotate($pdf, -(($ltime['seconds'] - 15.0) * 6.0));
  
cpdf_moveto($pdf, -$radius/50.0);
  
cpdf_lineto($pdf$radius0.0);
  
cpdf_stroke($pdf);
  
cpdf_restore($pdf);

  
/* draw little circle at center */
  
cpdf_circle($pdf00$radius/30);
  
cpdf_fill($pdf);

  
cpdf_restore($pdf);

  
cpdf_finalize_page($pdf$pagecount+1);
}

cpdf_finalize($pdf);
Header("Content-type: application/pdf");
cpdf_output_buffer($pdf);
cpdf_close($pdf);
?>

См. также

документацию расширения PDFlib.

Содержание

 
cpdf_add_annotation - добавляет аннотацию
cpdf_add_outline - добавляет закладку на текущей странице
cpdf_arc - прорисовывает дугу
cpdf_begin_text - начинает текстовый раздел
cpdf_circle - прорисовывает круг
cpdf_clip - обрезает текущий путь
cpdf_close - закрывает pdf-документ
cpdf_closepath_fill_stroke - закрывает, заполняет и выравнивает текущий путь/path
cpdf_closepath_stroke - закрывает путь и прорисовывает линию вдоль пути
cpdf_closepath - закрывает путь
cpdf_continue_text - выводит текст в следующей строчке
cpdf_curveto - прорисовывает кривую
cpdf_end_text - заканчивает текстовый раздел
cpdf_fill_stroke - заполняет и выравнивает текущий путь
cpdf_fill - заполняет текущий путь
cpdf_finalize_page - заканчивает страницу
cpdf_finalize - заканчивает документ
cpdf_global_set_document_limits - устанавливает границы для любого pdf-документа
cpdf_import_jpeg - открывает JPEG-изображение
cpdf_lineto - прорисовывает линию
cpdf_moveto - устанавливает текущую точку
cpdf_newpath - начинает новый путь
cpdf_open - открывает pdf-документ
cpdf_output_buffer - выводит pdf-документ в буфере памяти
cpdf_page_init - начинает новую страницу
cpdf_place_inline_image - помещает изображение на страницу
cpdf_rect - прорисовывает прямоугольник
cpdf_restore - восстанавливает ранее сохранённое окружение
cpdf_rlineto - прорисовывает линию
cpdf_rmoveto - устанавливает текущую точку
cpdf_rotate_text - устанавливает угол поворота текста
cpdf_rotate - устанавливает поворот
cpdf_save_to_file - записывает pdf-документ в файл
cpdf_save - сохраняет текущее окружение
cpdf_scale - устанавливает масштабирование
cpdf_set_action_url - устанавливает гиперссылку
cpdf_set_char_spacing - устанавливает расстояние между символами/character spacing
cpdf_set_creator - устанавливает поле автора/creator в pdf-документе
cpdf_set_current_page - устанавливает текущую страницу
cpdf_set_font_directories - устанавливает директории для поиска при использовании внешних шрифтов
cpdf_set_font_map_file - устанавливает fontname в filename карты отображения при использовании внешних шрифтов
cpdf_set_font - выбирает текущий шрифт и его размер
cpdf_set_horiz_scaling - устанавливает масштабирование текста по горизонтали
cpdf_set_keywords - устанавливает поле keywords в pdf-документе
cpdf_set_leading - устанавливает расстояние между строчками текста
cpdf_set_page_animation - устанавливает интервал между страницами
cpdf_set_subject - устанавливает поле subject в pdf-документе
cpdf_set_text_matrix - устанавливает текстовую матрицу
cpdf_set_text_pos - устанавливает позицию текста
cpdf_set_text_rendering - определяет отображение текста
cpdf_set_text_rise - устанавливает возвышение текста
cpdf_set_title - устанавливает поле title в pdf-документе
cpdf_set_viewer_preferences - как показывать документ в просмотрщике/viewer
cpdf_set_word_spacing - устанавливает расстояние между словами
cpdf_setdash - устанавливает патэрн из тире
cpdf_setflat - устанавливает ровность
cpdf_setgray_fill - устанавливает цвет заполнения - значение gray
cpdf_setgray_stroke — устанавливает цвет прорисовки - значение gray
cpdf_setgray — устанавливает цвет прорисовки и заполнения - значение gray
cpdf_setlinecap - устанавливает параметр linecap
cpdf_setlinejoin - устанавливает параметр linejoin
cpdf_setlinewidth - устанавливает ширину линии
cpdf_setmiterlimit - устанавливает miter-границу
cpdf_setrgbcolor_fill - устанавливает цвет заполнения - значение rgb
cpdf_setrgbcolor_stroke — устанавливает цвет прорисовки - значение rgb
cpdf_setrgbcolor — устанавливает цвет прорисовки и заполнения - значение rgb
cpdf_show_xy - выводит текст в данной позиции
cpdf_show - выводит текст в текущей позиции
cpdf_stringwidth - Возвращает ширину текста при текущем шрифте
cpdf_stroke - прорисовывает линию вдоль пути
cpdf_text - выводит текст с параметрами
cpdf_translate - устанавливает исходную току системы координат
 
 
 Функции по алфавиту 
   Содержание   
 Функции по категориям 
Есть еще вопросы или что-то непонятно - добро пожаловать на наш  форум портала PHP.SU 
 

 
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS