ECVP
Messages postés3Date d'inscriptionlundi 14 janvier 2008StatutMembreDernière intervention 9 avril 2008
-
8 avril 2008 à 18:20
ECVP
Messages postés3Date d'inscriptionlundi 14 janvier 2008StatutMembreDernière intervention 9 avril 2008
-
9 avril 2008 à 17:46
Bonsoir,
Est-il possible de piloter word (publipostage) à partir d'un intranet si oui comment ?
zuff
Messages postés79Date d'inscriptionlundi 28 octobre 2002StatutMembreDernière intervention21 octobre 2008 9 avril 2008 à 10:55
Tu peux utiliser word sur le serveur mais c'est vivement déconseillé par Microsoft.
Alors, pour ma société j'ai utilisé un activeX lancé en javascript mais pour que cela fonctionne il faut baisser la sécurité du navigateur pour l'Intranet local :
function
runword(CheminDot, FichierCSV) {
// lancement du dot avec le csv attaché
var wdApp;
wdApp =
new ActiveXObject(
"Word.Application");
wdApp.Visible =
"True";
wdApp.Activate();
wdApp.WindowState = 1;
MonDoc = wdApp.Documents.Open(CheminDot);
MonDoc.MailMerge.opendatasource(FichierCSV);
}
Mon fichier des destinataires est un fichier CSV créé dans ma page ASP.
Sinon, j'ai aussi réalisé des documents words (étiquettes) directement sur le serveur en créant mes modèles dans Word mais enregistré en html.
Je génére donc une page html mais je l'envoi ensuite comme un document Word :HttpContext.Current.Response.Clear()
HttpContext.Current.Response.Buffer =
True
HttpContext.Current.Response.Charset =
""
HttpContext.Current.Response.ContentType =
"application/msword"
HttpContext.Current.Response.Write(FichierTemp)Technique à utiliser que si tu n'as pas beaucoup de modèles .dot.
zuff
Messages postés79Date d'inscriptionlundi 28 octobre 2002StatutMembreDernière intervention21 octobre 2008 9 avril 2008 à 14:49
l'activeX est une technologie Microsoft qui ne fonctionne que sur IE donc uniquement utilisable dans un Intranet où tout le monde est en IE.
l'activeX c'est ça :
wdApp = new ActiveXObject("Word.Application");
Le sytème que j'utilise, c'est un bouton qui m'ouvre une page spéciale "Mailing".
Dans cette page j'ai une fonction javascript qui se lance à l'ouverture et si c'est du mailing Word, ça lance ma function runword avec CheminDot, le chemin http du fichier dot sur le serveur et FichierCSV est un chemin utilisateur du fichier CSV attaquable par un lecteur réseau.
mes 2 fonctions javascript dans le fichier Script.js :
function
runword(CheminDot, FichierCSV)
{
// lancement du dot avec le csv attaché
var wdApp;
wdApp = new ActiveXObject("Word.Application");
wdApp.Visible = "True";
wdApp.Activate();
wdApp.WindowState = 1;
MonDoc = wdApp.Documents.Open(CheminDot);
MonDoc.MailMerge.opendatasource(FichierCSV);
}
function
LanceMail()
{
// lancement automatique des mails à l'ouverture de la page MailingFACILE.aspx
if (document.form1.hdnMail.value != 0)
{
if (document.form1.hdnMail.value != "")
{
var PageMail;
PageMail = "mailto:&bcc=" + document.form1.hdnMail.value;
if(PageMail.length < 1000)
{
location.href = PageMail;
window.close();
}else{
document.getElementById("EMail").innerHTML = document.form1.hdnMail.value;
}
} else {
// Pas de mail donc message
}
}else {
// Word
if (lblMessage.Text != "")
{
runword(document.form1.hdnCheminDot.value, document.form1.hdnFichierCSV.value);
window.close();
}
}
}
La seule chose à développer, c'est que je lance pas automatiquement la fusion (mon .dot est vide) mais c'est possible de la faire : MonDoc.MailMerge.Execute;