IPB

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> Copier des textes présents dans des PDF, et les coller dans LibreOffice Text
Options
brenda
posté 4 Jul 2018, 22:26
Message #1


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 485
Inscrit : 24 Jul 2003
Lieu : Ancien du Ch'Nord, nouveau en Breizh (22)
Membre no 8 750



Bonjour

J'ai une dizaine de dossiers contenant chacun 100 à 200 fichiers PDF contenant du texte.
Je souhaite transférer ces textes dans un document write de Libre office afin de pouvoir extraire des données qui m'intéressent.
Je n'ai jamais utilisé AppleScript ni automator mais c'est l'occasion d'essayer.

mon enregistrement ne comprends que l'ouverture, puis la fermeture du document, il n'y a pas la partie copier/coller des données sur le document Libre office (document déjà ouvert)

Est ce normal ?

Merci de votre aide

PS : je viens de recevoir les documents, attendus depuis 3 mois, et ma femme en a besoin afin de continuer la prospection pour son boulot, c'est pour celà que je viens demander de l'aide, alors qu'en parallèle je n'en suis qu'au début de la lecture de l'aide AppleScript


--------------------
Si tu te tapes la tête contre un vase et que ça sonne creux, n’en déduis pas pour autant que le vase est vide.
Sagesse asiatique
Go to the top of the page
 
+Quote Post
PBell
posté 5 Jul 2018, 06:23
Message #2


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 264
Inscrit : 7 Dec 2013
Lieu : Ile de France
Membre no 188 169



Bonjour,
Tu peux utiliser une astuce avec les logiciels gratuits fournis sur Mac, à savoir Aperçu et TextEdit.

Pour extraire le texte d'un fichier PDF, tu peux utiliser la méthode suivante:
1) ouvre le fichier PDF dans Aperçu
2) dans Aperçu, sélectionne tout les objects du PDF (textes, images,...) avec le menu Edition / Tout sélectionner (raccourci clavier Command a)
3) dans Aperçu, copier la sélection avec le menu Edition/Copier (raccourci = command c)
4) Ouvre Text Edit ce qui ouvre un nouveau document, converti en format text (Plain text pour les anglais) via le menu Format / Convertir au format texte (raccourci command maj. t)
5) menu Edition / Coller (raccourci command v)

Ton fichier TextEdit ne contient alors que le texte de ton PDF d'origine. La mise en page est nécessairement perturbée car les objets non texte du PDF d'origine ne sont plus là.

Essayer avec 1 ou 2 PDF pour voir si le résultat te convient avec les PDF que tu dois traiter. Si c'est le cas, alors tu pourras faire un script qui simule ces étapes sur tous les PDF d'un dossier.

Voici quelques pistes en attendant:
- pour parcourir les fichiers PDF d'un dossier, il faut les lister, puis une boucle repeat sur chaque fichier
- Aperçu n'est pas vraiment scriptable, c'est pourquoi j'ai indiqué les raccourcis que le script va simuler avec l'action Keystroke
- idem pour TextEdit, d'ou aussi les raccourci clavier

Je précise que pour TextEdit tu peux éviter l'étape 4 si, dans les préférences TextEdit, tu demandes format Text par défaut.

Je n'ai pas le temps d'aller plus loin ce matin (d'écrire le script) , mais je pense que ces indications vont te permettre de googler pour apprendre les merveilles d'Applescript.
Si tu es perdu, n'hésite pas !

Cordialement


--------------------
iiMac 24 M1 16Go/1To 13.5.1
iMac 27 i5 3,1GHz 8Go/1To 10.11.6 / 10.6.8
iMac 20 C.Duo 2,6Ghz 8Go/350Go 10.6.8 / 10.11
Mini C.Duo 2,0Ghz 2Go/500Go 10.6.8
Go to the top of the page
 
+Quote Post
brenda
posté 5 Jul 2018, 10:14
Message #3


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 485
Inscrit : 24 Jul 2003
Lieu : Ancien du Ch'Nord, nouveau en Breizh (22)
Membre no 8 750



Merci
Je regarde tout ça ce midi, ou, plus surement ce soir

Cdlt


--------------------
Si tu te tapes la tête contre un vase et que ça sonne creux, n’en déduis pas pour autant que le vase est vide.
Sagesse asiatique
Go to the top of the page
 
+Quote Post
PBell
posté 5 Jul 2018, 21:00
Message #4


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 264
Inscrit : 7 Dec 2013
Lieu : Ile de France
Membre no 188 169



Bonsoir,
Je rentre du travail et je viens de faire un petit script qui fait ce que j'ai indiqué, étape par étape.
J'ai mis des instructions "delay" pour laisser le temps à Aperçu d'ouvrir et fermer les documents. Selon la vitesse de ta machine il faudra peut être ralentir (delay 2 attends 2 secondes !).
A la fin tu obtiens un document texEdit qui contient tout les textes qui se suivent. Il faut penser à le sauvegarder ou le copier dans un document Libre Office.
(il devrait aussi être possible de se passer de TextEdit pour coller directement dans Libre Office...Je te laisse adapter si nécessaire !

CODE
set Dossier to choose folder "Sélectionner un dossier contenant les PDF à copier"

tell application "Finder" to set ListePDF to every file of Dossier whose name extension is "PDF"
tell application "TextEdit"
    activate
    make new document
    tell application "System Events" to tell process "TextEdit" to keystroke "T" using command down
end tell
repeat with unPDF in ListePDF
    tell application "Preview" to open unPDF
    activate
    delay 1
    tell application "System Events" to tell process "Preview"
        keystroke "a" using command down -- tout selectionner
        keystroke "c" using command down -- copier
        keystroke "w" using command down -- fermer la fenêtre du document
        delay 1
    end tell
    
    tell application "TextEdit" to activate -- met TextEdit au premier plan
    tell application "System Events" to tell process "TextEdit" to keystroke "v" using command down -- coller
end repeat


Cordialement


--------------------
iiMac 24 M1 16Go/1To 13.5.1
iMac 27 i5 3,1GHz 8Go/1To 10.11.6 / 10.6.8
iMac 20 C.Duo 2,6Ghz 8Go/350Go 10.6.8 / 10.11
Mini C.Duo 2,0Ghz 2Go/500Go 10.6.8
Go to the top of the page
 
+Quote Post
baron
posté 5 Jul 2018, 22:57
Message #5


Macbidouilleur d'Or !
*****

Groupe : Modérateurs
Messages : 19 312
Inscrit : 22 Jul 2004
Lieu : Louvain-la-Neuve (Gaule Gelbique)
Membre no 21 291



Euh… J'ai voulu tester le script (fort clair par ailleurs thumb.gif du coup, je me suis laissé tenter…) mais j'ai eu un résultat un peu inattendu :
• J'ai copié le code dans l'Editeur d'Applescript
• J'ai cliqué sur Exécuter
• Après avoir choisi un dossier avec deux PDF, le script s'est lancé, et a terminé avec un petit message d'erreur « Impossible de fermer le document tant que le script est en cours d'exécution » — mais là n'est pas la blague :
• Aperçu était ouvert avec le 2e document ouvert
• Et le document TextEdit contenait… le script, tel que tu l'as écrit ! huh.gif

Je soupçonne que c'est dû aux commandes
Code
tell application "System Events"
    keystroke "T" using command down
end tell
[…]
end tell
tell current application
    activate
end tell
(J'avais aussi plusieurs autres applications ouvertes.)

Lors d'un second essai, avec un autre dossier et trois documents PDF, j'ai eu droit à la copie du script (P.S. vérification faite, pas le script cette fois mais les événements enregistré par l'Editeur Applescript, tels que retranscrits ci-dessous) puis du deuxième document par ordre alphabétique mais pas du premier ni du dernier.
Pourtant quand je regarde la suite des événements dans l'Editeur, ça semble correct (sauf l'ordre dans lequel apparaissent les documents PDF, qui n'est pas alphabétique…?) :
CODE
tell application "AppleScript Editor"
choose folder
--> alias "AluSlim:Users:admin:Documents:Folklore:"
end tell
tell application "Finder"
get every file of alias "AluSlim:Users:admin:Documents:Folklore:" whose name extension = "PDF"
--> {document file "Cours-Tambour.pdf" of folder "Folklore"
⌐of folder "Documents" of folder "admin" of folder "Users" of startup disk,
⌐document file "Marches ESM - Brochure Unesco.pdf" of folder "Folklore"
⌐ of folder "Documents" of folder "admin" of folder "Users" of startup disk,
⌐document file "folk_mep_v12.pdf" of folder "Folklore"
⌐of folder "Documents" of folder "admin" of folder "Users" of startup disk}
end tell
tell application "TextEdit"
activate
make new document
--> document "Sans titre 3"
end tell
tell application "System Events"
keystroke "T" using command down
end tell
tell application "Finder"
open document file "Cours-Tambour.pdf" of folder "Folklore"
⌐of folder "Documents" of folder "admin" of folder "Users" of startup disk
end tell
tell current application
activate
end tell
tell application "System Events"
keystroke "a" using command down
keystroke "c" using command down
keystroke "w" using command down
end tell
tell application "TextEdit"
activate
end tell
tell application "System Events"
keystroke "v" using command down
end tell
tell application "Finder"
open document file "Marches ESM - Brochure Unesco.pdf" of folder "Folklore"
⌐of folder "Documents" of folder "admin" of folder "Users" of startup disk
end tell
tell current application
activate
end tell
tell application "System Events"
keystroke "a" using command down
keystroke "c" using command down
keystroke "w" using command down
end tell
tell application "TextEdit"
activate
end tell
tell application "System Events"
keystroke "v" using command down
end tell
tell application "Finder"
open document file "folk_mep_v12.pdf" of folder "Folklore"
⌐of folder "Documents" of folder "admin" of folder "Users" of startup disk
end tell
tell current application
activate
end tell
tell application "System Events"
keystroke "a" using command down
keystroke "c" using command down
keystroke "w" using command down
end tell
tell application "TextEdit"
activate
end tell
tell application "System Events"
keystroke "v" using command down
end tell

Le seul document copié après le script est "folk_mep_v12.pdf"
unsure.gif

Ce message a été modifié par baron - 5 Jul 2018, 23:11.


--------------------
MacBook Pro 14’’ 2021, M1 Pro, 16 Go/1 To – macOS  12.6 “Monterey”  MacBook Pro 15’’ mi-2010 Core i5 2,53 GHz, 8 Go/SSD Samsung 860EVO 1 To – Mac OSX 10.6.8  Power Macintosh G3 beige de bureau, rev.1 @ 233MHz, 288 Mo/4Go – MacOS 9.1 — + carte PCI IDE/ATA Tempo 66 Acard 6260 avec HD interne Maxtor 80 Go + graveur interne CDRW/DVD LG GCC-4520B + tablette A4 Wacom UD-0608-A + LaCie ElectronBlueIV 19" + HP ScanJet 6100C   B-Box 3 + HP LaserJet 4000 N  
La recherche dans MacBidouille vous paraît obscure ? J'ai rédigé une proposition de FAQ. Le moteur logiciel a un peu changé depuis mais ça peut aider quand même.
Les corsaires mettent en berne…
Go to the top of the page
 
+Quote Post
Jaypee
posté 6 Jul 2018, 06:32
Message #6


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 486
Inscrit : 29 Aug 2002
Membre no 3 340



Bonjour tous,
Une piste d'exploration qui peut être intéressante est de séparer les deux problèmes qu'on cherche à résoudre:
- Trouver tous les pdf sous un certains dossier
- Traiter un seul pdf

Pour cela, on peut utiliser un script shell (dans text édit par exemple ), parce que c'est son boulot premier d'interagir avec l'OS, avec les commandes comme 'find'
find /point/de/départ/ -nqme "*pdf"

Ensuite on va s'appuyer sur AppleScript comme indiqué ci-dessus, mais pour un seul pdf à la fois dont le nom est passé au script (pas de boucle)
Depuis le shell script on peut invoquer AppleScript avec la commande 'osascript'.

https://apple.stackexchange.com/questions/1...rom-bash-script

Il y a un commande aussi qui distribue le résultat d'une première commande pour l' injecter dans une autre command qui va faire le lien entre 'find' et 'osascript', c'est 'xargs', et ça évite d'écrire une boucle

donc au final il faut deux ingrédients
- le script shell principal de quelques lignes qui orchestre l'opération find + xargs + osascript.
- l' AppleScript qui fait le boulot pour un pdf dont le nom est passé en argument.

(On peut améliorer avec un autre Applescript pour choisir le dossier de départ pour passer son nom au script principal)

Je sais que je ne suis pas suffisant précis, (manque de temps, tôt le matin, prêt à partir au boulot...) mais je peux donner plus de détail si ça intéresse.

JP
Go to the top of the page
 
+Quote Post
ades
posté 6 Jul 2018, 08:29
Message #7


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 818
Inscrit : 23 Nov 2002
Membre no 4 808



et PdfZone ? cf : http://macbidouille.com/news/2018/06/22/pd...tions-attendues


--------------------
MBP 15 unibody 2,4 Ghz , 4Go ssd 256 Go, dual boot OSX10.9.5-Linux mint
MacMini late 2012, i7 2,3Ghz, 16Go, 2 ssd 1to, OSX Sonoma 14.4 (OpencoreLegacy 1.2.1 1.3.0 1.4.0 1.4.1 1.4.2)
Go to the top of the page
 
+Quote Post
PBell
posté 6 Jul 2018, 22:04
Message #8


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 264
Inscrit : 7 Dec 2013
Lieu : Ile de France
Membre no 188 169



Bonsoir,
J'ai eu ce type de comportement lors de mes tests pour le script, lorsque les temps d'attente (les fameux 'delay') étaient trop courts.
Je pense que c'est lié à la fois à la vitesse de la machine et à la complexité/ taille des PDF.

Dans un premier temps, il faut donc augmenter les delay avec 2 (secondes) cela devrait fonctionner (déjà avec 1 seconde cela fonctionne chez moi, avec des PDF simples).
En fait d'après ce que tu décris, le 'copier' se fait sur l'application ouverte (à savoir l'éditeur de script) et non sur le document PDF dans aperçu qui n'est pas encore ouvert.

Par ailleurs, tu sembles demander que les PDF soient dans l'ordre alphabétique. Ce n'est pas ce que j'avais compris de la demande...ce n'est pas ce que fait le script.
Le script prends tous les PDF du dossier sélectionné, mais dans l'ordre du "Finder"...qui n'est pas toujours l'alphabétique.
Tant que le nombre de PDF est restreint (moins de 100 ou 200), cela peut convenir.
Au delà, la proposition de Jaypee de passer par une commande Unix type 'find' est bien sûr plus rapide (Unix est toujours plu rapide que AS).
Cependant, cela ne résout pas le problème de l'ordre !

Je précise que l'ordre du Finder est "souvent" alphabétique, mais j'aie des exceptions parfois, sans que je puisse en expliquer l'origine.

Cordialement

Ce message a été modifié par PBell - 8 Jul 2018, 14:42.


--------------------
iiMac 24 M1 16Go/1To 13.5.1
iMac 27 i5 3,1GHz 8Go/1To 10.11.6 / 10.6.8
iMac 20 C.Duo 2,6Ghz 8Go/350Go 10.6.8 / 10.11
Mini C.Duo 2,0Ghz 2Go/500Go 10.6.8
Go to the top of the page
 
+Quote Post
baron
posté 7 Jul 2018, 03:03
Message #9


Macbidouilleur d'Or !
*****

Groupe : Modérateurs
Messages : 19 312
Inscrit : 22 Jul 2004
Lieu : Louvain-la-Neuve (Gaule Gelbique)
Membre no 21 291



Citation (PBell @ 6 Jul 2018, 23:04) *
Par ailleurs, tu semble demander que les PDF soient dans l'ordre alphabétique. Ce n'est pas ce que j'avais compris de la demande...ce n'est pas ce que fait le script.
Le script prend tous les PDF du dossier sélectionné, mais dans l'ordre que "Finder"...qui n'est pas toujours l'alphabétique.
Bonsoir PBell,

D'abord merci pour tes interventions, aussi serviables que pédagogiques. smile.gif
C'est d'ailleurs pour cela que l'idée m'est venue de tester ta proposition de script, juste pour voir et me frotter un peu aux scripts — chose qui m'intéresse mais m'a toujours quelque peu résisté.

Je ne suis toutefois pas l'auteur de la demande initiale, et donc la question de l'ordre des fichiers n'est vraisemblablement pas vraiment cruciale… wink.gif Je faisais juste part d'une interrogation qui m'était venue lors de mes tests « pour du beurre » : pourquoi le script traite-t-il les fichiers dans cet ordre, qui n'est ni celui de l'affichage Finder ni chronologique…

brenda repassera sûrement prochainement pour préciser ce qu'il espère… smile.gif


--------------------
MacBook Pro 14’’ 2021, M1 Pro, 16 Go/1 To – macOS  12.6 “Monterey”  MacBook Pro 15’’ mi-2010 Core i5 2,53 GHz, 8 Go/SSD Samsung 860EVO 1 To – Mac OSX 10.6.8  Power Macintosh G3 beige de bureau, rev.1 @ 233MHz, 288 Mo/4Go – MacOS 9.1 — + carte PCI IDE/ATA Tempo 66 Acard 6260 avec HD interne Maxtor 80 Go + graveur interne CDRW/DVD LG GCC-4520B + tablette A4 Wacom UD-0608-A + LaCie ElectronBlueIV 19" + HP ScanJet 6100C   B-Box 3 + HP LaserJet 4000 N  
La recherche dans MacBidouille vous paraît obscure ? J'ai rédigé une proposition de FAQ. Le moteur logiciel a un peu changé depuis mais ça peut aider quand même.
Les corsaires mettent en berne…
Go to the top of the page
 
+Quote Post
PBell
posté 7 Jul 2018, 09:45
Message #10


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 264
Inscrit : 7 Dec 2013
Lieu : Ile de France
Membre no 188 169



Bonjour Baron,
Je n'ai pas la réponse à ta question.
En général le 'get every file..' du Finder donne des listes qui sont effectivement dans l'ordre alphabétique des noms de fichiers, mais j'ai eu parfois des exceptions pour lesquelles je n'ai pas trouvé la cause.

Cordialement


--------------------
iiMac 24 M1 16Go/1To 13.5.1
iMac 27 i5 3,1GHz 8Go/1To 10.11.6 / 10.6.8
iMac 20 C.Duo 2,6Ghz 8Go/350Go 10.6.8 / 10.11
Mini C.Duo 2,0Ghz 2Go/500Go 10.6.8
Go to the top of the page
 
+Quote Post
Youlutin
posté 25 Sep 2018, 10:42
Message #11


Adepte de Macbidouille
*

Groupe : Membres
Messages : 40
Inscrit : 11 Sep 2018
Membre no 205 774



Bonjour

espérant que ça a marché mais si cela peut aider suivez ce lien aussi y a un tuto dessus avec des images https://fr.wikihow.com/copier-une-partie-d%...ouveau-document.
Bonne chance
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 28th March 2024 - 17:06