Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.11.2019, 17:19   #1
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию Создание PDF

Как с помощью PHP добавить надпись в существующий pdf?

Нашел такой пример: https://manuals.setasign.com/fpdi-ma...#output-demo-1
Код:
 <?php 
ob_start();
require_once('includes/fpdf/fpdf.php');
require_once('includes/pdfi/Fpdi.php');
$pdf = new Fpdi();
$pdf->AddPage();
$pdf->setSourceFile("media/Realizacja za 2019_44 (2019-11-04).pdf");
$idx=$pdf->importPage(1);
$pdf->useImportedPage($idx,10,10,100);
$pdf->SetFont('Arial','B',16);
$pdf->Cell(40,10,'Hello World!');
$pdf->Output();
ob_end_flush();
?>

в результате получаю ошибку
Код:
Fatal error: Class 'setasign\Fpdi\FpdfTpl' not found in D:\Server\data\htdocs\includes\pdfi\Fpdi.php on line 24

Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.

Последний раз редактировалось Aleksandr H.; 13.11.2019 в 17:25.
Aleksandr H. вне форума Ответить с цитированием
Старый 13.11.2019, 17:25   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Читаем документацию по используемым либам, хотя бы первые абзацы на сайте и грузим через autoload.php, а не fpdi.php
p51x вне форума Ответить с цитированием
Старый 13.11.2019, 17:30   #3
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

по замене начала на
Код:
 <?php 
ob_start();
use \setasign\Fpdi\Fpdi;
require_once('includes/fpdf/fpdf.php');
require_once('includes/src/autoload.php');
ошибка
Код:
Fatal error: Access level to setasign\Fpdi\FpdfTplTrait::_putimages() must be public (as in class FPDF) in D:\Server\data\htdocs\includes\src\FpdfTpl.php on line 19

update:
поместил в include/
FPDI
TCPDF
TFPDF
Код:
use \setasign\Fpdi\Fpdi;
require_once('includes/TFPDF/fpdf.php');
require_once('includes/FPDI/src/autoload.php');
работает.
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.

Последний раз редактировалось Aleksandr H.; 14.11.2019 в 10:14.
Aleksandr H. вне форума Ответить с цитированием
Старый 14.11.2019, 15:27   #4
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Читаем документацию по используемым либам
Как в той пословице "смотрю в книгу, вижу фигу" - не пойму как же использовать вывод пдф вместе с кирилицей.

Задание: по нажатию на ссылку, открыть pdf файл и чтоб было время открытия.

Код:
<?php 
use \setasign\Fpdi\Fpdi;

if ( isset($_GET['DOK']) && !empty($_GET['DOK']) ) 
{
	$file = 'media/' . url_decode($_GET['DOK']);
	if (pathinfo($file, PATHINFO_EXTENSION) == 'pdf') {
		require_once('includes/TFPDF/fpdf.php');
		require_once('includes/FPDI/src/autoload.php');
		require('includes/TFPDF/tfpdf.php');

		$pdf = new Fpdi();
		//$pdf = new TFPDF();
		
		$pdf->AddPage();
		$pdf->setSourceFile($file);
		$idx=$pdf->importPage(1);
		$pdf->useImportedPage($idx,10,10,210);
		$pdf->SetFont('Arial','',8);

		//$pdf->AddFont('DejaVuSansCondensed','','DejaVuSansCondensed.ttf',true);
		//$pdf->SetFont('DejaVuSansCondensed','',8);
		
		$pdf->SetTextColor(0,143,159);
		$str = 'Время.'. GetCurrentTime();
		//$str =  mb_convert_encoding($str, 'Windows-1251','UTF-8');
		$pdf->Cell(2,2,$str);
		$pdf->Output();
	}
}
?>
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание внутреннего и внешнего серверов. Создание серверов автоматизации. Ann_Sh Помощь студентам 3 09.10.2011 15:53
создание игр misher666 Компоненты Delphi 6 26.10.2009 21:33