From: Vincent Vanwaelscappel Date: Thu, 21 Mar 2024 10:31:23 +0000 (+0100) Subject: wait #6814 @0.25 X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=61a08a9393bfc4158b644efdd74180b0ab63a2ed;p=fluidbook-toolbox.git wait #6814 @0.25 --- diff --git a/app/Http/Controllers/Admin/Operations/Tools/PDFLayers.php b/app/Http/Controllers/Admin/Operations/Tools/PDFLayers.php new file mode 100644 index 000000000..7cf418231 --- /dev/null +++ b/app/Http/Controllers/Admin/Operations/Tools/PDFLayers.php @@ -0,0 +1,70 @@ +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); + } +} diff --git a/app/Http/Controllers/Admin/ToolsController.php b/app/Http/Controllers/Admin/ToolsController.php index d297b584c..079549290 100644 --- a/app/Http/Controllers/Admin/ToolsController.php +++ b/app/Http/Controllers/Admin/ToolsController.php @@ -18,6 +18,7 @@ use App\Http\Controllers\Admin\Operations\Tools\ImagesResizer; use App\Http\Controllers\Admin\Operations\Tools\ImportFluidbookSettings; use App\Http\Controllers\Admin\Operations\Tools\JSON2Excel; use App\Http\Controllers\Admin\Operations\Tools\PDF2SVGOperation; +use App\Http\Controllers\Admin\Operations\Tools\PDFLayers; use App\Http\Controllers\Admin\Operations\Tools\SASSCompiler; use App\Http\Controllers\Admin\Operations\Tools\StaticSiteUploader; use App\Http\Controllers\Admin\Operations\Tools\SVGCleaner; @@ -45,6 +46,7 @@ class ToolsController extends Controller use PDF2SVGOperation; use ImportFluidbookSettings; use StaticSiteUploader; + use PDFLayers; protected function index($tool, $args = '') { diff --git a/resources/views/tools/sidebar.blade.php b/resources/views/tools/sidebar.blade.php index db68fc664..7a1082d93 100644 --- a/resources/views/tools/sidebar.blade.php +++ b/resources/views/tools/sidebar.blade.php @@ -3,6 +3,9 @@ + @@ -47,7 +50,7 @@ {{__('SVG Sprites')}} @can('webflow:admin') @endcan()