Bonjour à tous,
Confronté au problème de la mise en oeuvre des FAX intégrés aux imprimantes multi-fonctions de marque Brother,
je pense utile de faire profiter la communauté du résultat de mes recherches et solutions.
La "doc" pour le moins spartiate disponible sur le site Brother décrit une solution que je vous laisse le soin de découvrir par vous-mêmes. Vu le nombre de questions sans réponses disponibles sur le Net à ce sujet, j'en déduis que beaucoup d'autres, comme moi, n'ont pas tout compris du premier coup. Nombreux sont ceux qui ont du renoncer.
Les utilitaires pour le monde Linux sont franchement pauvres au regard de l'arsenal disponible sous Windows.
Faisons l'inventaire :
- 2 fichiers rpm (valables aussi pour les OS en 64 bits) :
+ brmfcfaxlpd-1.0.0-1.i386.rpm pour la file d'attente
+ brmfcfaxcups-1.0.0-1.i386.rpm pour l'interface sous cups
- l'installation du second rpm met à disposition 2 éléments essentiels
+ le script "brpcfax" qui se charge de collationner les éléments nécessaires à l'élaboration du FAX
+ l'utilitaire java "brmfcfax.jar" qui permet la saisie sous interface graphique du numéro de FAX du/des destinataires
Après recherches longues et fastidieuses, j'ai fini par comprendre le processus d'élaboration et d'envoi des FAX :
- utiliser l'interface de cups pour définir l'URL d'accès à la file d'attente BRFAX et les paramètres généraux de mise en forme des FAX
- depuis toute application, créer un fichier d'impression de type postscript (il paraît que d'autres types comme PDF ou JPEG sont acceptés, mais je n'ai pas testé)
- le donner à manger au script brpcfax qui n'oublie pas de lire certains paramètres dans /usr/local/Brother/inf/brFAXrc
- en l'absence du paramètre "fax-number", le script appelle automatiquement l'outil brmfcfax.jar
- le script envoie le tout sur la file d'attente BRFAX gérée par cups
- et là, miracle, la MFC-xxx balance la purée sur le RTC
Miracle au rabais cependant puisque l'envoi se fait sans retour d'information (est-ce bien arrivé ?) et sans bandeau d'identification de l'émetteur narcissique que je suis.
Bref un peu frustrant au regard de cette déjà grande victoire.
Grand utilisateur d'OpenOffice désormais en version 3.x, j'ai besoin de faxer fréquemment des documents de type texte ou calc.
J'ai donc laborieusement écrit une macro qui sache FAXer un document en lui ajoutant le bandeau d'identification que Brother n'a pas prévu.
La macro écrite, il suffit d'enrichir menus et barres d'outils pour l'appeler d'un simple clic.
Pour ajouter le bandeau, j'utilise tout simplement un style de page dérivé du type standard mais enrichi d'un en-tête personnalisé. La macro se charge d'appliquer ce style le temps de la génération du fichier postscript.
Le contenu de la macro est le suivant :
sub Envoyer_FAX
dim document as object
dim dispatcher as object
dim fichier as String
dim header as Boolean
rem Recherche la présence d'un style de page FAX_Header
document = ThisComponent
Dim Famille_de_Styles As Object
Dim Les_Styles_de_Page As Object
Dim Un_Style_de_Page As Object
Dim I As Integer
Famille_de_Styles = document.StyleFamilies
Les_Styles_de_Page = Famille_de_Styles.getByName("PageStyles")
header = false
for I = 0 To Les_Styles_de_Page.Count - 1
Un_Style_de_Page = Les_Styles_de_Page(I)
if (Un_Style_de_Page.Name = "FAX_Header") then
header = true
exit for
end if
Next I
if (not header) then
MsgBox("sans identification de l'émetteur",," envoi du FAX ")
end if
fichier = environ("HOME") & "/___DERNIER_FAX_PREPARE___.ps"
if FileExists(fichier) then
Kill(fichier)
end if
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
if header then
dim args1(1) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Template"
args1(0).Value = "FAX_Header"
args1(1).Name = "Family"
args1(1).Value = 8
dispatcher.executeDispatch(document, ".uno:StyleApply", "", 0, args1())
end if
dim args2(3) as new com.sun.star.beans.PropertyValue
args2(0).Name = "FileName"
args2(0).Value = fichier
args2(1).Name = "Copies"
args2(1).Value = 1
args2(2).Name = "Collate"
args2(2).Value = false
args2(3).Name = "Wait"
args2(3).Value = true
dispatcher.executeDispatch(document, ".uno:Print", "", 0, args2())
if header then
dim args3(1) as new com.sun.star.beans.PropertyValue
args3(0).Name = "Template"
args3(0).Value = "Standard"
args3(1).Name = "Family"
args3(1).Value = 8
dispatcher.executeDispatch(document, ".uno:StyleApply", "", 0, args3())
end if
WaitUntil Now + TimeValue("00:00:02")
if FileExists(fichier) then
Shell("brpcfax " & fichier)
else
MsgBox("Rien à faxer !",," envoi FAX annulé ")
end if
end sub
Pour que tous mes documents disposent du style de page FAX_Header, je l'ai tout simplement intégré dans mes documents modèles par défaut.
Pour la rédaction des styles et modèles, voir l'excellentissime documentation
au format PDF disponible sur le site français d'OpenOffice (une grand bravo à tous ses rédacteurs).
Le tout est largement perfectible : à vos claviers !