Как мы можем сжать и уменьшить размер файла PDF с помощью PHP? Можете ли вы поделиться примером кода для сжатия.
Я тестировал с помощью «tcpdf». Но это не работает.
<?php
// include TCPDF library
require_once('tcpdf/tcpdf.php');
$pdf = new TCPDF();
$pdfFile = 'example.pdf';
$pdfContent = file_get_contents($pdfFile);
// set compression
$pdf->setCompression(true);
// output compressed PDF
$pdf->Output('compressed.pdf', 'F');
@ Anant-Alivetodie Мне нужно веб-решение. Приведенная выше ссылка кажется решением на основе Linux.
Хорошо, Ирфан. Будем надеяться, что кто-то может вам помочь. Вот почему я не отметил его дубликатом
Прошу прощения за путаницу. Метод setSourceFile() не является частью основной библиотеки FPDF и требует дополнительной библиотеки под названием FPDI (FPDF Template-Parser и -Processor для PHP).
-Сначала вы должны установить его через композитор:
composer require setasign/fpdi
- Во-вторых, вы должны включить файл автозагрузки в свой код:
require_once('vendor/autoload.php');
- В-третьих, расширьте класс FPDI вместо класса FPDF в своем коде:
require_once('vendor/autoload.php');
use setasign\Fpdi\Fpdi;
// Extend the FPDI class instead of the FPDF class
class PDF extends Fpdi {
// Add your custom functions here
}
// code for compress pdf
$pdf = new PDF();
$pdf->setSourceFile('original.pdf');
// add a new page
$pdf->AddPage();
// import the pages from the original PDF
$tplIdx = $pdf->importPage(1);
$pdf->useTemplate($tplIdx);
// set the compression to true
$pdf->SetCompression(true);
// output the compressed PDF to a new file
$pdf->Output('compressed.pdf', 'F');
Спасибо за ответ. Но я не смог реализовать код. Я установил FPDF, используя packagist.org/packages/setasign/fpdf . При запуске вашего скрипта я получил ошибку Uncaught Error: Call to undefined method FPDF::setSourceFile(). Документ FPDF fpdf.org предлагает установить Zlib. Нужен ли нам Zlib? Как мы можем установить этот FPDF?
Я отредактировал предложение, чтобы оно отвечало на вопросы
Большое спасибо. Ваше решение сработало для меня. Я обновил код с опцией сжатия pdf.
Дайте мне знать, если вам нужна дополнительная помощь, так как я много работал с pdf!
О, это здорово. Я сомневаюсь. При использовании SetCompression(true); размер PDF уменьшается лишь немного. Что мы делаем, если нам нужна более сжатая версия? Можем ли мы установить уровень сжатия, чтобы уменьшить размер?
Возможный дубликат: Как уменьшить размер файла PDF