Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| Conversion txt en rtf | |
| | Auteur | Message |
---|
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Conversion txt en rtf Sam 15 Déc 2012 - 17:35 | |
| Une SUB pour mettre en forme et imprimer par exemple le résultat d'un programme panoramic. Le fichier au format txt comporte des balises simples qui sont converties par la sub au format rtf pour impression par l'intermédiaire de Wordpad. Les balises concernent police, couleur et taille des caractères, les enrichissements (gras, italique, souligné), et le centrage de texte. Le source est simple et commenté, donc facilement modifiable. La sub est précédée d'un peu de code pour la démo. - Code:
-
LABEL Convert, Voir, Imprimer DIM f$, frt$
f$ = "C:\Temp\Test.txt" frt$ = "C:\Temp\Test.rtf"
WIDTH 0,120: HEIGHT 0,180: BORDER_SMALL 0: FONT_BOLD 0: COLOR 0,192,255,255 BUTTON 1: CAPTION 1, "Voir TXT": on_click 1, Voir BUTTON 2: TOP 2,30: CAPTION 2, "Convertir": on_click 2, Convert BUTTON 3: TOP 3,60: CAPTION 3, "Voir RTF": on_click 3, Voir BUTTON 4: TOP 4,90: CaPTION 4, "Aperçu": ON_CLICK 4, Voir BUTTON 5: TOP 5,120: CAPTION 5, "Imprimer": ON_CLICK 5, Imprimer ALPHA 6: TOP 6,36: LEFT 6,80: WIDTH 6,30: FONT_COLOR 6,192,0,0
END ' ============================================================================== Convert: Txt2Rtf(f$,frt$) CAPTION 6, "-> OK": COLOR 0,255,255,128 RETURN ' ------------------------------------------------------------------------------ Voir: IF CLICKED(1) = 1 EXECUTE "Notepad.exe " + f$ ELSE IF CLICKED(3) = 1 EXECUTE "Notepad.exe " + frt$ ELSE EXECUTE "Wordpad.exe " + frt$ END_IF END_IF RETURN ' ------------------------------------------------------------------------------ Imprimer: EXECUTE_WAIT "Wordpad.exe /p " + frt$: ' impression passante RETURN ' ------------------------------------------------------------------------------ SUB Txt2Rtf(f$,frt$) ' Conversion f$ (format .txt) -> frt$ (format .rtf) avec balises de formatage ' +------------------------- BALISES DU .TXT: ------------------------------+ ' | <C> et </C>: Centrage <B> </B> Gras <I> </I> Italique <S> </S> Souligné | ' | <Cx> Couleur texte avec x= N noir, R rouge, G vert, B bleu | ' | <F..fonte..> nom de police, <Tx> taille des caractères | ' +-------------------------------------------------------------------------+ DIM_LOCAL Rt_rc$, Rt_et$, Rt_ft$, Rt_en$(20), Rt_bf$(20), Rt_bc$(20) DIM_LOCAL RT_a$, Rt_a1$, Rt_a2$, Rt_b$, Rt_c$, Rt_q$, Rt_i%, Rt_j%, Rt_k%, Rt_k1% DIM_LOCAL Rt_er$, Rt_ne, Rt_nf, Rt_nc IF LABEL("Rt_Rebc") = 0 THEN LABEL Rt_Rebc Rt_rc$ = CHR$(13)+CHR$(10) ' TABLE DES FONTES UTILISÉES (arbitraires, ajustable) ************************** Rt_bf$(0) = "Calibri": Rt_bf$(1) = "Arial": Rt_bf$(2) = "Times New Roman" Rt_bf$(3) = "Lucida Console" Rt_nf = 4: ' nombre de fontes ' TABLE DES 4 COULEURS UTILISÉES (arbitraires, ajustable) ********************** Rt_bc$(0) = "N": Rt_bc$(1) = "R": Rt_bc$(2) = "G": Rt_bc$(3) = "B" Rt_nc = 4: ' nombre de couleurs (noir, rouge, vert, bleu) Rt_et$ = "{\rtf1\ansi\ansicpg1252\deff0\deflang1036": ' En-tête RTF ' table des fontes utilisables (cf ci-dessus) Rt_et$ = Rt_et$ + "{\fonttbl" Rt_et$ = Rt_et$ + "{\f0\fnil\fcharset0 "+Rt_bf$(0)+";}" Rt_et$ = Rt_et$ + "{\f1\fnil\fcharset0 "+Rt_bf$(1)+";}" Rt_et$ = Rt_et$ + "{\f2\fnil\fcharset0 "+Rt_bf$(2)+";}" Rt_et$ = Rt_et$ + "{\f3\fnil\fcharset0 "+Rt_bf$(3)+";}" Rt_et$ = Rt_et$ + "}" + Rt_rc$ ' table des couleurs utilisables Rt_et$ = Rt_et$ + "{\colortbl ;\red255\green0\blue0;\red0\green176\blue80;" Rt_et$ = RT_et$ + "\red0\green77\blue187;}" + Rt_rc$ ' généralités Rt_et$ = Rt_et$ + "{\*\generator Msftedit 5.41.21.2510;}" Rt_et$ = Rt_et$ + "\viewkind4\uc1\pard\sl240\slmult1\lang12\f0\fs22 " Rt_ft$ = "\pard\sa200\sl276\slmult1\par" + Rt_rc$ + "}" ' BALISES Rt_a$ = "<C,<B,<I,<S,<F,<T,</C,</B,</I,</S" Rt_ne = 0 Rt_k% = INSTR(RT_a$, ",") WHILE Rt_k% > 0 Rt_ne = Rt_ne+1: RT_en$(Rt_ne)= LEFT$(Rt_a$, Rt_k%-1) Rt_a$ = MID$(Rt_a$, Rt_k%+1,100): Rt_k% = INSTR(RT_a$, ",") END_WHILE Rt_ne = Rt_ne+1: Rt_en$(Rt_ne) = RT_a$ FILE_OPEN_READ 1, f$: FILE_OPEN_WRITE 2, frt$ FILE_WRITELN 2, Rt_et$ WHILE FILE_EOF(1) = 0 FILE_READLN 1, Rt_a$ Rt_Rebc: Rt_k% = INSTR(Rt_a$, "<") IF Rt_k% > 0 Rt_b$ = MID$(Rt_a$, Rt_k%+1, 500): Rt_k1% = INSTR(Rt_b$, ">") IF Rt_k1% > 0 Rt_a1$ = LEFT$(Rt_a$, Rt_k%-1): Rt_a2$ = MID$(Rt_b$, Rt_k1%+1,500) Rt_b$ = LEFT$(Rt_b$, Rt_k1%-1): ' balise Rt_q$ = "" IF LEN(Rt_b$) > 1 THEN Rt_q$ = UPPER$(RIGHT$(Rt_b$, LEN(Rt_b$)-1)): ' argument FOR Rt_i% = 1 TO Rt_ne Rt_c$ = MID$(Rt_en$(Rt_i%),2,2) IF UPPER$(LEFT$(Rt_b$, LEN(Rt_c$))) = Rt_c$ THEN EXIT_FOR NEXT Rt_i% Rt_er$ = "" SELECT Rt_i% CASE 1: ' <C> centrage ou <Cx> couleur IF Rt_q$ = "" Rt_er$ = "\pard\sl240\slmult1\qc ": ' centré ELSE FOR Rt_j% = 0 TO Rt_nc-1 IF UPPER$(Rt_q$) = Rt_bc$(Rt_j%) THEN EXIT_FOR NEXT Rt_j% Rt_er$ = "\cf"+STR$(Rt_j%)+" ": ' couleur caractères END_IF CASE 2: ' <B> gras Rt_er$ = "\b " CASE 3: ' <I> italique Rt_er$ = "\i " CASE 4: ' <S> souligné Rt_er$ = "\ul " CASE 5: ' <F..fonte..> police FOR Rt_j% = 0 TO Rt_nf-1 IF UPPER$(Rt_q$) = UPPER$(Rt_bf$(Rt_j%)) THEN EXIT_FOR NEXT Rt_j% Rt_er$ = "\f"+STR$(Rt_j%)+" " CASE 6: ' <Tx> taille fonte Rt_er$ = "\fs"+STR$(2*VAL(Rt_q$))+" " CASE 7: ' </C> fin de centrage Rt_i% = 37 Rt_er$ = "\par"+Rt_rc$+"\pard\sl240\slmult1 " CASE 8: ' </B> fin gras Rt_er$ = "\b0 " CASE 9: ' </I> fin italique Rt_er$ = "\i0 " CASE 10: ' </S> fin souligné Rt_er$ = "\ulnone " END_SELECT Rt_a$ = Rt_a1$ + Rt_er$ + Rt_a2$ GOTO Rt_Rebc END_IF END_IF IF Rt_i% <> 37 THEN RT_a$ = Rt_a$ + "\par" FILE_WRITELN 2, Rt_a$ END_WHILE FILE_CLOSE 1 FILE_WRITELN 2, Rt_ft$ FILE_CLOSE 2 END_SUB PS Wordpad admet également l'insertion d'images, mais elles sont converties dans un format inconnu (pour moi), certainement pas simple, et en tout cas très volumineux, alors je n'ai même pas essayé ! | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Conversion txt en rtf Sam 15 Déc 2012 - 18:21 | |
| Salut JL35.
Intéressant, mais … Le programme suppose que le répertoire C:\temp existe. Or ce n’est pas toujours le cas d’où une erreur à l’exécution. Supposons que le répertoire existe mais il ne contient aucun fichier .TXT, les menus Convertir, Voir RTF et Aperçus conduisent tous à des erreurs : Il faut donc les INACTIVEr au départ et les ACTIVEr ensuite.
Si je me suis exprimé correctement, tu comprendras ce que je voulais dire.
A+
| |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Conversion txt en rtf Sam 15 Déc 2012 - 18:25 | |
| Salut Papydall, là je pense que tu pinailles un peu... Bon, il suffit de rajouter - Code:
-
IF DIR_EXISTS("C:\TEMP") = 0 THEN DIR_MAKE "C:\TEMP" De plus, si le répertoire existe et ne contient pas de fichier .txt (c'était juste un exemple pour faire l'essai), je ne vois pas trop pourquoi on irait donner un nom de fichier qui n'existe pas à convertir... Comme toujours, les noms de répertoires de manoeuvre sont à adapter au goût de chacun. | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Conversion txt en rtf Sam 15 Déc 2012 - 18:47 | |
| Moi, il faudrait que je me fasse un petit programme pour convertir des documents au format Word en code HTML "propre" (sans toutes les balises de formats inutiles mais en gardant les puces, les titres, les liens et renvois, les format de bases (gras, italique, ...) Ca me servira pour intégrer des fiches dans ServiceNow en passant par un fichier d'import... Je peux le faire manuellement, mais je vais avoir plus d'un millier de docs à traiter en peu de temps ... il faut que j'automatise... | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Conversion txt en rtf Sam 15 Déc 2012 - 20:44 | |
| @Jicehel,
il me semble qu'avec Word (suivant la version) que tu peux directement enregistrer ton document au format HTML.
A+ | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Conversion txt en rtf Sam 15 Déc 2012 - 21:04 | |
| Tu as raison Jean-Claude, mais le code généré est très très lourd. Il y a plus de lignes déclarant les styles etc ... que de code HTML utile ... Ca ne convient pas à mon usage.
| |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Conversion txt en rtf Sam 15 Déc 2012 - 23:18 | |
| - Jicehel a écrit:
- Moi, il faudrait que je me fasse un petit programme pour convertir des documents au format Word en code HTML "propre" (sans toutes les balises de formats inutiles mais en gardant les puces, les titres, les liens et renvois, les format de bases (gras, italique, ...)
Ca me servira pour intégrer des fiches dans ServiceNow en passant par un fichier d'import... Je peux le faire manuellement, mais je vais avoir plus d'un millier de docs à traiter en peu de temps ... il faut que j'automatise... Le format Word est vraiment trop bor..lique pour que tu puisses en tirer quelque chose... A mon avis, tu perdras malheureusement moins de temps en sélectionnant toi meme le texte (CTRL+C) et de le copier dans des balises que tu auras écris à la mimine (CTRL+V) | |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Conversion txt en rtf Sam 15 Déc 2012 - 23:24 | |
| - Jean Claude a écrit:
- @Jicehel,
il me semble qu'avec Word (suivant la version) que tu peux directement enregistrer ton document au format HTML.
A+ Comme le dis Jicehel, le "code" html généré par Word est innommable... Microsoft a toujours trainé la patte quand il s'agit de technologie autre que la leur. Pour preuve, même leur navigateur ne respecte pas les standards du Web.... | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Conversion txt en rtf Dim 16 Déc 2012 - 0:40 | |
| Je suis d'accord avec toi Nardo, c'est pour ça que je pense faire Word => RTF => HTML "propre" en passant par un programme sans doute fait en panoramic pour traiter tout un répertoire d'un coup (après le top c'est que je mette le code dans une colonne d"un fichier d'import, mais bon ça je verrais plus tard ) | |
| | | Contenu sponsorisé
| Sujet: Re: Conversion txt en rtf | |
| |
| | | | Conversion txt en rtf | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |