Я пытаюсь объединить PDF-документы с PHP, много искал и пробовал несколько решений.Наиболее распространенным является использование библиотеки FPDI , а затем небольшого класса, например PDF-Merger .
Но проблема заключается в том, чточто эта библиотека зависит от других библиотек и этих библиотек других и так далее.И примеры установки в основном это как установить с помощью composer.Но я хочу быть в состоянии объединить PDF для сайта, который не использует композитор.И кажется, что это действительно трудно достичь.
Из-за руководства единственное, что нужно сделать, если я не хочу использовать компоновщик, это записать это в ваш код какустановка библиотеки:
require_once('path/to/src/autoload.php');
Конечно, с правильным путем.Но нет, это не сработало для меня.Не удалось найти класс fpdi.И если вы снова посмотрите руководство, вы увидите следующее предупреждение:
Не забудьте установить FPDF, TCPDF или tFPDF раньше!
Так что я вручную загрузил этитри библиотеки, а также те, которые было трудно установить без композитораИ все еще застряли в этом беспорядке.Я добился определенного успеха, изменив файл PDFMerger.php с use fpdi\FPDI;
на \setasign\Fpdi\Fpdi
.Итак, теперь класс Fpdi найден.Но все равно получаю ошибки.
Позвольте мне показать вам текущую ситуацию. Вот мой текущий код:
<?php
require_once get_stylesheet_directory().'/classes/fpdf/fpdf.php';
require_once get_stylesheet_directory().'/classes/tfpdf/tfpdf.php';
require_once get_stylesheet_directory().'/classes/tcpdf/src/Output.php';
require_once get_stylesheet_directory().'/classes/tcpdf/src/MetaInfo.php';
require_once get_stylesheet_directory().'/classes/tcpdf/src/ClassObjects.php';
require_once get_stylesheet_directory().'/classes/tcpdf/src/Tcpdf.php';
require_once get_stylesheet_directory().'/classes/FPDI/src/autoload.php';
require_once get_stylesheet_directory().'/classes/FPDI/src/Fpdi.php';
require_once get_stylesheet_directory().'/classes/PDFMerger/PDFMerger.php';
$pdf = new \Clegginabox\PDFMerger\PDFMerger;
$pdf->addPDF('path/to/file1.pdf', 'all', 'P');
$pdf->addPDF('path/to/file2.pdf', 'all', 'P');
$pdf->merge();
?>
А вот сообщения об ошибках в браузере:
Примечание: неопределенный индекс: w in / home /public_html / wp-content / themes / my-theme / classes / PDFMerger / PDFMerger.php в строке 85
Примечание: неопределенный индекс: h in / home / public_html / wp-content / themes / my-theme /classes / PDFMerger / PDFMerger.php в строке 85
Примечание: неопределенный индекс: w в /home/public_html/wp-content/themes/my-theme/classes/PDFMerger/PDFMerger.php в строке 85
Примечание: неопределенный индекс: h в /home/public_html/wp-content/themes/my-theme/classes/PDFMerger/PDFMerger.php в строке 85
Неустранимая ошибка: Uncaught Exception: ошибка FPDF: Некоторые данные уже выведены, не удается отправить файл PDF в /home/public_html/wp-content/themes/my-theme/classes/fpdf/fpdf.php:271 трассировки стека: # 0 / home / public_html / wp-content / themes / my-theme / classes / fpdf / fpdf.php (1063): FPDF-> Ошибка («Некоторые данные имеют ...») # 1 / home / public_html / wp-content / themes / my-тема / классы / FPDf / fpdf.php (999): FPDF -> _ checkoutput () # 2 /home/public_html/wp-content/themes/my-theme/classes/PDFMerger/PDFMerger.php(107): FPDF-> Output ('I',' newfile.pdf ') # 3 /home/public_html/wp-content/themes/my-theme/functions.php(269): Clegginabox \ PDFMerger \ PDFMerger-> merge () # 4 / home / public_html / wp-includes / class-wp-hook.php (286): cdon_woocommerce_loaded ('') # 5 / home / public_html / wp-includes / cla в / home / public_html / wp-content / themes / my-theme / classes / fpdf/fpdf.php в строке 271
И вы можете увидеть PDFMerger.php здесь и строка 85 такова:
$fpdi->AddPage($fileorientation, array($size['w'], $size['h']));
Я имею в виду, яЯ думаю, это немного преувеличено, чтобы все эти зависимости просто объединять PDF-файлы.Это действительно нужно?И если так, что не так с моей установкой?