--- /dev/null
+<?php
+
+namespace App\Http\Controllers\Admin\Operations\Tools;
+
+use Cubist\Backpack\Magic\Fields\Checkbox;
+use Cubist\Backpack\Magic\Fields\Integer;
+use Cubist\Backpack\Magic\Fields\SelectFromArray;
+use Cubist\Backpack\Magic\Fields\StandardFile;
+use Cubist\Backpack\Magic\Fields\Text;
+use Cubist\Backpack\Magic\Form;
+use Cubist\PDF\PDFTools;
+use Cubist\Util\ArrayUtil;
+use Cubist\Util\Files\Files;
+use Cubist\Util\Str;
+use Cubist\Util\Zip;
+use Fluidbook\Tools\Document;
+use Fluidbook\Tools\Jobs\ProcessFile;
+use Fluidbook\Tools\Jobs\ProcessPage;
+use Symfony\Component\HttpFoundation\File\UploadedFile;
+
+trait PDFLayers
+{
+ public function pdflayers()
+ {
+ $form = new Form(backpack_url('tools/dopdflayers'));
+ $form->setEnctype('multipart/form-data');
+ $form->setTitle(__('Séparer les calques d\'un PDF'));
+ $form->setSubmitLabel(__('Séparer'));
+ $form->setSubmitIcon('las la-hand-scissors');
+ $form->addField('file', StandardFile::class, __('Fichier pdf'), ['accept' => '.pdf']);
+ return view('tools.form', ['form' => $form]);
+ }
+
+ public function dopdflayers($args = [])
+ {
+ set_time_limit(0);
+ $dir = Files::tmpdir();
+
+ /** @var UploadedFile $file */
+ $file = request()->file('file');
+
+ $n = $file->getClientOriginalName();
+ $e = explode('.', $n);
+ array_pop($e);
+ $n = Str::slug(implode('.', $e));
+
+ $variants = [
+ 'texts' => [false, false, true],
+ 'vectors' => [false, true, false],
+ 'images' => [true, false, false],
+ 'texts-vectors' => [false, true, true],
+ 'texts-images' => [true, false, true],
+ 'vectors-images' => [true, true, false],
+ 'texts-vectors-images' => [true, true, true],
+ ];
+
+ foreach ($variants as $name => $s) {
+ PDFTools::filter($file->getPathname(), $dir . '/' . $name . '.pdf', $s[0], $s[1], $s[2]);
+ }
+
+ $ext = 'zip';
+ $fname = $file->getClientOriginalName();
+ $tmpfile = Files::tempnam() . '.' . $ext;
+ Zip::archive($dir, $tmpfile);
+
+ Files::rmdir($dir);
+
+ return response()->download($tmpfile, $n . '.' . $ext)->deleteFileAfterSend(true);
+ }
+}
<li class='nav-item'><a class='nav-link' href='{{ backpack_url('opentools/pdf2svg') }}'><i
class='nav-icon la la-images'></i>
<span>{{__('Conversion de PDF en images')}}</span></a></li>
+ <li class='nav-item'><a class='nav-link' href='{{ backpack_url('tools/pdflayers') }}'><i
+ class="las la-hand-scissors"></i>
+ <span>{{__('Séparer les couches d\'un PDF')}}</span></a></li>
<li class='nav-item'><a class='nav-link' href='{{ backpack_url('tools/resizer') }}'><i
class="nav-icon las la-compress-arrows-alt"></i>
<span>{{__('Redimensionner des images')}}</span></a></li>
<span>{{__('SVG Sprites')}}</span></a></li>
@can('webflow:admin')
<li class='nav-item'><a class='nav-link' href='{{ backpack_url('tool-webflow') }}'><i class="nav-icon la"><img
- src="/images/icons/icon-webflow.svg" /></i>
+ src="/images/icons/icon-webflow.svg"/></i>
<span>{{__('Sites Webflow')}}</span></a></li>
@endcan()
<li class='nav-item'><a class='nav-link' href='{{ backpack_url('opentools/sasscompiler') }}'><i