Всем привет!
Сегодня будем конвертировать изображение формата jpg в pdf — формат документов, разработанный Adobe. Заметьте, совершенно бесплатно.
Вопрос, для чего это может понадобиться, обсуждать не буду: если задача возникла, значит, нужно.
Если попали на сайт с целью онлайн конвертирования в pdf, воспользуйтесь бесплатной формой под рисунком. Для тех, кому интересно, как это можно сделать с помощью PHP — читайте информацию дальше.
Онлайн форма для бесплатного конвертирования jpg в pdf
Для получения документа pdf достаточно выбрать имеющееся на компьютере изображение формата jpg. Загружаемое изображение должно быть размером не более 2000×2000 пикселей, и не «тяжелее» 1,5 мегабайт. Вертикальная ориентация (она же книжная) вписывает рисунок в формат A4 (размер 210×297 мм), горизонтальная (альбомная) — делает то же самое, но формат A4 повёрнут на 90° (297×210 мм).
Опция Растянуть по размеру «натягивает» загружаемый jpg на лист. Лучший вариант получается, когда загружаемое изображение кратно сторонам прямоугольника формата A4 (с учётом книжной/альбомной ориентации).
Важно! Файлы не сохраняются на сервере. Получаемый pdf выводится сразу в браузер. Если не позаботиться о сохранении (например, с помощью комбинации клавиш Ctrl-S — сейчас браузеры интеллектуальны, позволяют просматривать файл на той же вкладке) на свой компьютер, в следующий раз файл придётся конвертировать заново.
О каких-либо глюках просьба отписывать в комментарии либо по иным каналам связи. Если бесплатный онлайн конвертер и правда полезен и востребован, давайте вместе избавим его от возможных ошибок!
Создание pdf файлов
Несколько лет назад, когда по работе встала надобность создания pdf файлов на лету, нашёл отличный бесплатный скрипт TCPDF. Для начала, переходим по ссылке и скачиваем архив — на данный момент это ссылка в меню GitHub, потом кнопка Clone or download → Download ZIP. Архив довольно большой, 16+ МБ.
Распаковываем архив. В моём случае получилась одна папка — TCPDF-master, внутри которой содержатся все необходимые (и не только) файлы. Заливаем эту директорию на свой хост и начинаем тренироваться.
В моём примере подразумевается, что файл с указанным содержимым лежит рядом с TCPDF-master (не в ней!). Там же находится файл img.jpg, который и нужно конвертировать в pdf. Код с комментариями ниже:
<?php
// Путь к файлу изображения
$img_fn = __DIR__ . DIRECTORY_SEPARATOR . 'img.jpg';
// Ширина и высота изображения будут вычисляться автоматически
$w = 0;
$h = 0;
// Подключить главный файл библиотеки
require __DIR__ . DIRECTORY_SEPARATOR . 'TCPDF-master/tcpdf.php';
// Создать документ вертикальной ориентации, размерами будут миллиметры,
// формат — A4, для вывода текста использовать юникод, кодировку UTF-8
$pdf = new TCPDF('L', 'mm', 'A4', true, 'UTF-8');
// Не печатель шапку и подвал
$pdf->setPrintHeader(false);
$pdf->setPrintFooter(false);
// Установить нулевые отступы для шапки и подвала документа
$pdf->SetHeaderMargin(0);
$pdf->SetFooterMargin(0);
// Установить нулевые отступы слева, сверху и справа
$pdf->SetMargins(0, 0, 0);
// Авторазрывы страниц не нужны
$pdf->SetAutoPageBreak(false);
// Добавить страницу (обязательно!)
$pdf->AddPage();
// Несколько необходимых параметров
$ismask = false;// true, если изображения является маской
$resize = true; // изменять ли размер изображения
$dpi = 300; // число точек на дюйм
$palign = 'C'; // выравнивание изображения по центру строки
$fitonpage = true; // изменять размеры изображение, дабы оно не выходило за размеры страницы
// Разместить изображение
$pdf->Image($img_fn, 0, 0, $w, $h, '', '', '', $resize, $dpi, $palign, $ismask, false, 0, false, false, $fitonpage);
// Вывод результирующего файла в браузер
$pdf->Output(NULL, 'I');
// Подчистить
unset($pdf);
Ничего сверх того, что делает веб-программист с навыками «выше начального». Это простой пример, в архиве библиотеки содержатся вещи сложнее. С помощью TCPDF можно делать многое, например:
- выводить текст разными цветами и размером;
- делать это с помощью подключённых шрифтов (вы не ограничены только предустановленным набором);
- точечно позиционировать изображения и картинки;
- создавать полотно разных форматов (смотрите в файле /include/tcpdf_static.php массив $page_formats, там не только привычные Ax/Bx, но и многие другие);
- и прочее, прочее…;
- и главное, совершенно бесплатно!
Библиотека может быть полезной для формирования онлайн аттестатов, грамот и тому подобное. Вы заранее подготавливаете картинку-шаблон, которая будет являться фоном (пример выше), а затем размещаете на ней необходимые данные, например, ФИО и дату.
На этом всё. Добра!
днём интернета
шоколадкой для работы мозга
коробочкой ароматного чая для бодрости
продлением хостинга на +1 месяц
Анди, привет! Я сразу так и подумал, что ты готовишься скоро выдавать онлайн аттестаты: «Участник вебинара Верный Веб Путь».
Ну кто в нашей стране еще может выдавать сертификаты ВВП ? Ну, я имею ввиду Веб сертификаты… А Вы что подумали?
А про вывод текста с картинками на своем блоге в режиме он-лайн, у тебя планируется цикл таких же подробных статей? Или эту тематику ты оставишь только для посвященных?
В любом случае, статья многодельная получилась и заслуживает своей пятерки! Вот не зря я у тебя на блоге зарегистрировался, могу звездочки ставить и «пальцы большие» нажимать.
И все участники вебинара гордо выкинут у себя в блогах, на всеобщее обозрение, полученные аттестаты!
Наталья, доброе утро!
Про выкинут даже не подумал)
Денис, доброго утра!
Ох, и ничего себе, уже́ целая идея по раздаче сертификатов ВВП
Про картинки хотелось бы в общих чертах понять, что более всего интересует. Как бы просто текст на просто картинках вряд ли кому интересны будут
Никогда ещё не приходилось пользоваться подобным приёмом… Как раз сейчас грамоты рисую для конкурса))) Так что спасибо большое, вовремя! — буду разбираться)))
Елена, в принципе, можно и с помощью Word или OpenOffice сохранить в pdf. Автоматизировать проще, когда хочется сразу, после каких-то действий, «вручить» человеку похвальную грамоту или благодарность) Или же участников целый ворох, поэтому желательно минимизировать телодвижения.
Полностью согласна — минимизировать телодвижения чуть ли не основная цель)))
Елена, а ещё есть основная цель: ничего не делать и быть богатыми. Вот это достойная цель и к ней можно стремиться в любой момент, даже когда лежишь на диване и плюёшь в потолок, шальная нет-нет, да и залетит: «вот бы…»
Крутая онлайн тулза у тебя появилась!
Павел, да бывает иногда, надо. А лазить, искать среди старых сорцов, как-то не всегда сподручно.
Спасибо
Андрей, вот это ты хорошо написал! Замечательная статья. Даже я поняла. Надо теперь идти от обратного. Поняла, как грамоты делать — буду придумывать, где это применить ;)
Жанна, приветствую!
Если пригодится — замечательно.
В случае возникновения вопросов — обращайся, постараюсь помочь по мере своих скромных знаний)
Я, как не сведующий человек в данных вопросах (даже без начальных навыков) и то поняла полезность этого скрипта. А моя знакомая, учитель делает примитивные листочки — благодарности родителям (в черно-белом варианте). Вот ей и дам ссылку на вашу статью. Спасибо.
Людмила, здравствуйте!
Лень позволяет создавать удивительные вещи. Если постоянно приходится делать однотипную работу, ленивому непременно захочется её автоматизировать. Увы, слишком усердному человеку некогда думать о таких вещах, ему надо работать.