@Fs
Je me suis trompé de macro... c'est celle là la bonne:
Sub traiteFichier()
Dim oDoc as Object, searchDescriptor as Object, resultat as Variant
Dim i as Integer, range as Object, cursor as Object, valChamp as String
oDoc = thisComponent
searchDescriptor = oDoc.createSearchDescriptor()
With searchDescriptor
.SearchString = "Texte prof"
.searchStyles = True
End With
resultat = oDoc.findAll(searchDescriptor)
If resultat.hasElements() Then
For i = 0 To resultat.Count-1
range = resultat(i)
cursor = range.Text.createTextCursor()
cursor.goToRange(range, false)
cursor.collapsetostart()
cursor.goRight(len(range.string), true)
valChamp = String(len(range.string),"_")
cursor.String = valChamp
Next i
EndIf
End Sub
Cordialement.
Le 15 mai 2015 22:08, Cemoi Cemoi <matlane2014@gmail.com> a écrit :
@Fs
Texte prof c'est le nom du style
dans lequel tous les caractéres seront remplacé par des __
tu ouvres un doc de test tu crais un style Texte prof puis tu l'appliques
à une partie du texte. Apres ça tu charges et exécutes la macro.
Pour ma première partie du script sensé faire la meme chose que la version
en shell et bien ça ne marche pas et ça ne retourne aucune erreur... du
coup je tourne en rond :/
Le 10 mai 2015 15:56, Cemoi Cemoi <matlane2014@gmail.com> a écrit :
@ Pierre C
regarde plus haut la macro que j'ai mise elle fonctionne bien pour ce que
tu veux faire.
@ Pierre-Yves
j'ai commencé à faire ça;
post; sub main
repBase="/home/cemoi/owncloud/perso/test_macro/"
fichier = dir(repBase+"*_eleve*.odt")
while fichier<>""
call traiteFichier(repBase+fichier)
fichier = dir()
wend
end sub
Mais je ne comprends pas tout ce que je fais là ... :/
en fait je tente de faire ce que je fais deja en shell mais en basic...
En shell ça donne ça:
#! /bin/bash
find /home/cemoi/Documents/cible -type f -iname "*cours*.odt" |
while read name
do
new_name=$(echo $name|sed 's/\.odt$/_eleve.odt/')
if [ "$name" -nt "$new_name" ]
then
cp "$name" "$new_name"
fi
done
Ca parcours l'arborescense du repertoir cible en y cherchant tous les
fichier odt ayant le mot cours (sans prendre en compte la casse) ça y
ajoute le prefix _eleve au nom existant de chaque fichier trouvé puis ça
copie le fichier si le fichier source fait le même poids si non non.
à la suite dans la macro je voudrai ajouter le code
Option Explicit
Sub RemplacerStyle()
Dim oDoc As Object, searchDescriptor As Object
oDoc = ThisComponent
searchDescriptor = oDoc.createReplaceDescriptor
With searchDescriptor
.SearchString = "Texte prof"
.ReplaceString = "Blanc"
.SearchStyles = true
End With
oDoc.replaceAll(searchDescriptor)
End Sub
pour l'appliquer en recursif sur le repertoir cible sur chaque fichier
odt ayant le mot eleve et en fin faire l'export en pdf une fois les styles
modifié.
L'intéret de tout faire en basic c'est de pouvoir faire un .oxt une fois
que tout ça fonctionnera.
Merci pour votre aide precieuse!
Cordialement, cemoi.
Le 10 mai 2015 06:50, pierre-yves samyn <pierre-yves.samyn@laposte.net>
a écrit :
Bonjour
Cemoi Cemoi wrote
je comprends l'idée mais sans ... ou ___ ça va être moyen pour ecrire
sur les documents.
Oui... si je t'avais proposé d'utiliser le blanc. Or ma proposition
était de
recourir à un léger gris qui va créer l'équivalent visuel d'une zone de
saisie.
Je préfère cela à un souligné qui me rappelle trop les anciens documents
administratifs à remplir. Choix subjectif donc...
Par ailleurs j'ai le sentiment que cela sera plus rapide à l'exécution
que
le
remplacement du texte. Ce n'est qu'un sentiment, je n'ai fait aucun
essai,
mais, compte tenu du volume de documents à traiter cela peut entrer en
ligne de compte...
Cemoi Cemoi wrote
...je ne veux que le pdf de modifié et surtout pas le fichier source...
... La macro au depart doit parcourir l'arborescense pour trouver tous
les
...fichiers *.odt, ajouter le mot eleve au nom de chaque fichier
Si tu appelles ta macro dans un script, pourquoi ne pas simplement
copier en renommant tes documents dans le script puis manipuler
ces copies dans ta macro ?
Sinon, en basic tu peux utiliser la fonction GetFileNameWithoutExtension
de la bibliothèque Tools, par exemple :
dim sNomDoc as string, sNewNomDoc as string
GlobalScope.BasicLibraries.LoadLibrary("Tools")
sNomDoc = convertToUrl("c:\Tests\a.odt")
sNewNomDoc = GetFileNameWithoutExtension(sNomDoc)
sNewNomDoc = sNewNomDoc & "Eleve.odt"
Name sNomDoc As sNewNomDoc
Cordialement
Pierre-Yves
--
View this message in context:
http://nabble.documentfoundation.org/masquer-un-style-a-l-impression-tp4146314p4148299.html
Sent from the Users mailing list archive at Nabble.com.
--
Envoyez un mail à users+unsubscribe@fr.libreoffice.org pour savoir
comment vous désinscrire
Les archives de la liste sont disponibles Ã
http://listarchives.libreoffice.org/fr/users/
Tous les messages envoyés sur cette liste seront archivés publiquement
et ne pourront pas être supprimés
--
Envoyez un mail à users+unsubscribe@fr.libreoffice.org pour savoir comment vous désinscrire
Les archives de la liste sont disponibles à http://listarchives.libreoffice.org/fr/users/
Tous les messages envoyés sur cette liste seront archivés publiquement et ne pourront pas être
supprimés
Context
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.