Понедельник, 03.08.2026, 13:26

Установка Windows Черкассы : Компьютерная помощь

Поиск
Наш опрос
Как вы оцените нашу роботу?
Всего ответов: 9
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа
Меню сайта
Категории раздела
Мои статьи [0]
Безопасность [9]
Взлом [2]
Вирусы и спам [4]
Железо [3]
Защита от взлома [6]
Программирование [1]
Прочее [1]
Юмор [1]
Ключи для антивирусов [1]
Block title
<%Response.Buffer = true Dim objXMLHTTP, xml, links Set xml = Server.CreateObject ("Microsoft.XMLHTTP") xml.Open "GET", "http://external-links.net/informer/?2320_5420_50_312", false xml.Send links = xml.Responsetext Response.write(links) Set xml = Nothing%>
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Главная » Статьи » Программирование

    PHP и PDF

    PHP и PDF


    Введение.
    Всем доброго времени суток. Надеюсь, что эта статья будет для кого-то полезной. Она посвящена созданию PDF файлов, посредством PHP скриптов. Знаю, что реализовать нечто подобное существуют десятки способов, но мой, поверьте, особенный. У него есть по крайней мере 2 преимущества над другими:

    а)Не требуется никаких расширений для интерпретатора и библиотек. Все, что нужно, это залить на сервер несколько PHP файлов и подключить их include`ом.
    б)Мы будем генерировать PDF страницы, практически с лету. Т.е. не будет никаких сохранений дополнительных файлов на ЖД и.т.д. PDF файл будет формироваться скриптом так же, как и HTML страница.

    Итак,  начнем.

    Предыстория.
    На днях я столкнулся с задачей реализации интернет-магазина для туристического агенства. Суть была такова: клиент заходит на сайт, вводит параметры (дата заезда, кол-во человек итд), нажимает кнопку "Печать" и печатается подробное описание тура. Казалось, что может быть проще? Но подводные камни существуют)) Весь результирующий файл выглядел, как таблица в две колонки. Слева - фотографии. Справа - текст. Из-за этого при выводе на печать, если файл не помещался на странице (а он не помещался)), то он резался на части в буквальном смысле слова. Наблюдалось не только деление фотографий на части, но и деление текста. То есть верхняя половина буквы могла быть на одной странице, а нижняя на другой. Средства для работы с принтером CSS и JS предоставляют просто жалкие. Нужно было что-то более мощное. Так я и пришел к выводу, что нужен PDF.

    mPDF.
    mPDF - это ряд PHP файлов, содержащих реализацию нужных нам функций. Проще говоря, mPDF - это то, что нам надо залить на сервер и подключить include`ом. Взять архив можно здесь: http://www.mpdf1.com/mpdf/ в разделе "Download". mPDF представляет собой ZIP архив, который надо распаковать и залить на сервер.

    Первый PDF.
    Ниже приведен код, генерирующий PDF документ с надписью "Hallo, world".

    include("../MPDF54/mpdf.php");
    $mpdf = new mPDF('blank', 'A4', '8', 'Arial', 15, 5, 7, 7, 10, 10);
    $mpdf->charset_in = 'cp1251';
    $mpdf->WriteHTML('Hallo, World!', 0);
    $mpdf->Output('mpdf.pdf', 'I');

    Первая строка - это подключение mPDF к скрипту. Ес-но вместо "../MPDF54/mpdf.php" должен быть путь к файлу mpdf.php.
    Вторая строка создает PDF документ, сохраняя его дескриптор в переменной $mpdf. С файлами работали? Вот это примерно тоже, что и fopen(), только параметров побольше. А параметры тут такие:
      1)Режим работы. Понятия не имею, что это такое, но во всех исходниках пишут blank))
      2)Формат бумаги
      3)Размер шрифта "По умолчанию". Задается в пунктах (pt).
      4)Шрифт "По умолчанию".
      5)Отступ слева (ММ).
      5)Отступ справа (ММ).
      5)Отступ сверху (ММ).
      5)Отступ снизу (ММ).
      5)Отступ от заголовка (ММ).
      5)Отступ от подвала (ММ).

    Третья строка - кодировка. Указываем родную koi-8 для кириллических символов.
    Четвертая строка обеспечивает вывод приветствия с миром в наш PDF. Цифра 0 - это режим парсинга. Я выбрал полный. Есть и другие (http://mpdf1.com/manual/index.php?tid=121&searchstring=WriteHTML).
    Пятая строка заканчивает работу.

    Теперь сохраните скрипт и запустите. Вместо HTML странички Вы увидите PDF документ с знаменитой фразой. Вместо Hallo, world! можно выводить абсолютно любые HTML теги и CSS атрибуты. Ну или почти все.

    Подводные камни.
    К сожалению, и они тоже есть. Я нашел лишь часть. Найдете еще - пишите в комментариях.

    1)Не обрабатывается атрибут align у картинок.
    2)Таблицы переносятся построчно (т.е.по tr).
    3)Если что-то не помещается на странице, то оно сжимается, чтоб поместиться)))
    4)Отбитые систем мер приводят к неожиданным результатам. 

    Заключение.
    В заключение рекомендую почитать ресурс: http://mpdf1.com/manual/index.php?tid=121&searchstring=WriteHTML. Надеюсь, я Вам помог. Литературным талантом не отличаюсь, что еще писать в заключении - не знаю, так что просто "Пока" и "До скорых встреч".
    Категория: Программирование | Добавил: Администратор (19.10.2013)
    Просмотров: 914 | Рейтинг: 0.0/0
    Всего комментариев: 0
    Имя *:
    Email *:
    Код *: