From 79f38fac1fa4efb1edb2c4a7aa03074f2d83f0ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9drix?= Date: Sat, 16 May 2026 22:11:08 +0200 Subject: [PATCH] draft: Manipuler des PDF sous Linux ? --- .stats_cache.json | 2 +- _logs/not_found.jsonl | 1 + .../draft_overlay.json | 4 + .../draft_overlay.md | 95 +++++++++++++++++++ 4 files changed, 101 insertions(+), 1 deletion(-) create mode 100644 bd34b650-8713-4321-93df-fe2042d8e68c/draft_overlay.json create mode 100644 bd34b650-8713-4321-93df-fe2042d8e68c/draft_overlay.md diff --git a/.stats_cache.json b/.stats_cache.json index 4b00a4c..99ce27a 100644 --- a/.stats_cache.json +++ b/.stats_cache.json @@ -1 +1 @@ -{"readable":true,"books":{"\/book\/esp":5,"\/book\/les-commandes-linux":4,"\/book\/linux-architecture-des-dossiers":3,"\/book\/la-domotique-chez-soi":2},"as":[{"asn":"","name":"LAN","country":"","hits":13019},{"asn":"8075","name":"Cloud","country":"US","hits":845},{"asn":"14618","name":"AWS EC2 (us-east-1)","country":"US","hits":420},{"asn":"24940","name":"Hetzner","country":"FI","hits":396},{"asn":"32934","name":"Meta Platforms Ireland Limited","country":"US","hits":234},{"asn":"16276","name":"OVH","country":"FR","hits":150},{"asn":"48230","name":"LLC MONOLITH.NET","country":"UA","hits":83},{"asn":"15169","name":"Google LLC","country":"US","hits":78},{"asn":"36352","name":"HostPapa","country":"US","hits":18},{"asn":"12322","name":"ProXad network \/ Free","country":"FR","hits":15},{"asn":"174","name":"Code 200, UAB","country":"FR","hits":12},{"asn":"18779","name":"EGIHosting","country":"US","hits":10},{"asn":"46261","name":"BraveWay","country":"US","hits":10},{"asn":"3209","name":"Vodafone Kabel Deutschland GmbH","country":"DE","hits":9},{"asn":"51207","name":"Free Mobile","country":"FR","hits":7},{"asn":"16509","name":"Anthropic, PBC","country":"US","hits":7},{"asn":"210743","name":"Babbar SAS","country":"FR","hits":6},{"asn":"29695","name":"Lyse Tele AS","country":"NO","hits":5},{"asn":"41281","name":"KeFF Networks Ltd","country":"SE","hits":5},{"asn":"9443","name":"Vocus Retail","country":"AU","hits":5},{"asn":"37054","name":"Telma Madagascar","country":"MG","hits":4},{"asn":"396982","name":"Google Cloud (us-east5)","country":"US","hits":4},{"asn":"209366","name":"Crawlers","country":"US","hits":4},{"asn":"58087","name":"Datalix","country":"DE","hits":4},{"asn":"132203","name":"Tencent Cloud Computing","country":"DE","hits":2},{"asn":"136907","name":"Huawei Cloud","country":"SG","hits":2},{"asn":"51167","name":"Contabo GmbH","country":"FR","hits":2}]} \ No newline at end of file +{"readable":true,"books":{"\/book\/esp":5,"\/book\/les-commandes-linux":4,"\/book\/linux-architecture-des-dossiers":3,"\/book\/la-domotique-chez-soi":2},"as":[{"asn":"","name":"LAN","country":"","hits":13037},{"asn":"8075","name":"Cloud","country":"US","hits":844},{"asn":"14618","name":"AWS EC2 (us-east-1)","country":"US","hits":429},{"asn":"24940","name":"Hetzner","country":"FI","hits":396},{"asn":"32934","name":"Meta Platforms Ireland Limited","country":"US","hits":246},{"asn":"16276","name":"OVH","country":"FR","hits":150},{"asn":"15169","name":"Google LLC","country":"US","hits":84},{"asn":"48230","name":"LLC MONOLITH.NET","country":"UA","hits":83},{"asn":"36352","name":"HostPapa","country":"US","hits":18},{"asn":"12322","name":"ProXad network \/ Free","country":"FR","hits":15},{"asn":"174","name":"Code 200, UAB","country":"FR","hits":12},{"asn":"18779","name":"EGIHosting","country":"US","hits":10},{"asn":"46261","name":"BraveWay","country":"US","hits":10},{"asn":"3209","name":"Vodafone Kabel Deutschland GmbH","country":"DE","hits":9},{"asn":"51207","name":"Free Mobile","country":"FR","hits":7},{"asn":"16509","name":"Anthropic, PBC","country":"US","hits":7},{"asn":"29695","name":"Lyse Tele AS","country":"NO","hits":5},{"asn":"41281","name":"KeFF Networks Ltd","country":"SE","hits":5},{"asn":"9443","name":"Vocus Retail","country":"AU","hits":5},{"asn":"37054","name":"Telma Madagascar","country":"MG","hits":4},{"asn":"396982","name":"Google Cloud (us-east5)","country":"US","hits":4},{"asn":"209366","name":"Crawlers","country":"US","hits":4},{"asn":"58087","name":"Datalix","country":"DE","hits":4},{"asn":"210743","name":"Babbar SAS","country":"FR","hits":4},{"asn":"132203","name":"Tencent Cloud Computing","country":"DE","hits":2},{"asn":"136907","name":"Huawei Cloud","country":"SG","hits":2},{"asn":"45102","name":"Alibaba.com LLC","country":"SG","hits":2},{"asn":"51167","name":"Contabo GmbH","country":"FR","hits":2}]} \ No newline at end of file diff --git a/_logs/not_found.jsonl b/_logs/not_found.jsonl index cee3ab9..bc9f2e9 100644 --- a/_logs/not_found.jsonl +++ b/_logs/not_found.jsonl @@ -521,3 +521,4 @@ {"ts":"2026-05-16 20:06:58","url":"/informatique/bash/rechercher","ref":"","ua":"Mozilla/5.0 (compatible; SemrushBot/7~bl; +http://www.semrush.com/bot.html)"} {"ts":"2026-05-16 20:08:19","url":"/informatique/linux/commandes/free","ref":"https://abonnel.fr/informatique/linux/commandes/free","ua":"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; SleepBot/1.0; +http://sleepbot.com/) Chrome/131.0.0.0 Safari/537.36"} {"ts":"2026-05-16 20:08:23","url":"/electronique/esp/wifi-manager","ref":"","ua":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36"} +{"ts":"2026-05-16 20:09:06","url":"/informatique/cfp/recapitulatif_des_codes_gsm","ref":"https://www.google.com/","ua":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Mobile Safari/537.36"} diff --git a/bd34b650-8713-4321-93df-fe2042d8e68c/draft_overlay.json b/bd34b650-8713-4321-93df-fe2042d8e68c/draft_overlay.json new file mode 100644 index 0000000..c94a92f --- /dev/null +++ b/bd34b650-8713-4321-93df-fe2042d8e68c/draft_overlay.json @@ -0,0 +1,4 @@ +{ + "title": "Manipuler des PDF sous Linux", + "_updated_at": "2026-05-16 20:11:08" +} diff --git a/bd34b650-8713-4321-93df-fe2042d8e68c/draft_overlay.md b/bd34b650-8713-4321-93df-fe2042d8e68c/draft_overlay.md new file mode 100644 index 0000000..0f92bf5 --- /dev/null +++ b/bd34b650-8713-4321-93df-fe2042d8e68c/draft_overlay.md @@ -0,0 +1,95 @@ +# Manipuler des PDF sous Linux + +Fusionner, séparer, réorganiser ou extraire le contenu d'un PDF : sous Linux, plusieurs outils — graphiques ou en ligne de commande — couvrent ces besoins. Voici une sélection des plus utiles, avec leur installation sur Fedora et un aperçu de leur usage. + +## Vue d'ensemble des outils + +| Outil | Type | Usage principal | +|---|---|---| +| **pdfshuffler** | Graphique | Fusionner, séparer, réordonner des pages | +| **pdfmod** | Graphique | Modifier la structure d'un PDF | +| **poppler-utils** | Ligne de commande | Conversion, extraction, fusion, découpe | +| **pdftk** | Ligne de commande | Manipulation avancée (fusion, chiffrement, formulaires) | +| **PDF Chain** | Graphique | Interface graphique pour pdftk | + +## pdfmod + +Application graphique simple pour réorganiser, supprimer ou faire pivoter les pages d'un PDF. + +![](ico_pdfmod.png) + +Installation : + +``` +sudo dnf install pdfmod +``` + +L'installation tire quelques dépendances Mono/GTK# (`gtk-sharp2`, `gnome-sharp`, `poppler-sharp`, `hyena`, `nunit`), soit environ 8 Mo une fois installé. + +## pdfshuffler + +Outil graphique léger orienté glisser-déposer, idéal pour assembler ou réorganiser des pages issues de plusieurs fichiers. + +![](ico_pdfshuffler.png) + +Installation : + +``` +sudo dnf install pdfshuffler +``` + +Dépendances principales : `pyPdf` et `pypoppler`. + +### Utilisation + +L'interface affiche les pages sous forme de vignettes, qu'il suffit de faire glisser pour les réordonner, supprimer ou regrouper avant export. + +![](pdfshuffler_capture.png) + +## poppler-utils + +`poppler-utils` est une collection d'outils en ligne de commande s'appuyant sur l'API **poppler** pour manipuler les fichiers PDF. + +![](ico_poppler.gif) + +Installation : + +``` +sudo dnf install poppler-utils +``` + +### Les commandes fournies + +- **pdfdetach** — extrait les documents embarqués d'un PDF +- **pdffonts** — liste les polices utilisées +- **pdfimages** — extrait les images à leur résolution native +- **pdfinfo** — affiche les métadonnées du document +- **pdfseparate** — extrait des pages individuelles +- **pdftocairo** — convertit des pages en formats vectoriels ou bitmap via cairo +- **pdftohtml** — convertit un PDF en HTML en conservant la mise en forme +- **pdftoppm** — convertit une page PDF en bitmap +- **pdftops** — convertit un PDF au format PostScript imprimable +- **pdftotext** — extrait tout le texte +- **pdfunite** — fusionne plusieurs PDF + +### Exemples pratiques + +Les deux commandes les plus utiles au quotidien sont `pdfseparate` (découpe) et `pdfunite` (fusion). + +**Extraire toutes les pages d'un document** dans des fichiers séparés : + +``` +pdfseparate ColoringBook.pdf ColoringBook-page_%d.pdf +``` + +**Extraire une plage de pages** (ici les pages 3 à 9) : + +``` +pdfseparate -f 3 -l 9 ColoringBook.pdf ColoringBook-page_%d.pdf +``` + +**Fusionner plusieurs PDF** en un seul document (par exemple les pages 3 et 4 extraites précédemment) : + +``` +pdfunite ColoringBook-page_3.pdf ColoringBook-page_4.pdf NewColoringBook.pdf +``` \ No newline at end of file