OVH Cloud OVH Cloud

Entete et Pied de Page d'Internet Explorer

2 réponses
Avatar
KPITN
Salut,


Je cherche a modifier l'entete et le pied page lors d'une impression sous
Internet explorer, par programation.

Est ce que quelqu'un a trouvé une solution ?


Pierre

2 réponses

Avatar
KPITN
J'ai chercher un peu sur le net voila ce que j'ai trouver de mieux mais
difficilement integrable dans windev avec mes connaissances.


-------------------------------------------
int Browser::Print()
{
SAFEARRAYBOUND psabBounds[1];

SAFEARRAY *psaHeadFoot;

HRESULT hr = S_OK;

long rgIndices;

VARIANT vHeadStr,
vFootStr,
vArg;


try{
// Initialize header and footer parameters to send to ExecWB().
psabBounds[0].lLbound = 0;
psabBounds[0].cElements = 3;
psaHeadFoot = SafeArrayCreate(VT_VARIANT, 1, psabBounds);
if(NULL==psaHeadFoot) throw 1000;

VariantInit(&vHeadStr);
VariantInit(&vFootStr);

// Argument 1: Header
vHeadStr.vt = VT_BSTR;
vHeadStr.bstrVal = SysAllocString(L"This is my header
string.");
if(vHeadStr.bstrVal == NULL) throw 1001;

// Argument 2: Footer
vFootStr.vt = VT_BSTR;
vFootStr.bstrVal = SysAllocString(L"This is my footer
string.");
if(vFootStr.bstrVal == NULL) throw 1002;

rgIndices = 0;
SafeArrayPutElement(psaHeadFoot, &rgIndices, static_cast<void
*>(&vHeadStr));
rgIndices = 1;
SafeArrayPutElement(psaHeadFoot, &rgIndices, static_cast<void
*>(&vFootStr));

// SAFEARRAY must be passed ByRef or else MSHTML transforms it
into NULL.
VariantInit(&vArg);
vArg.vt = VT_ARRAY | VT_BYREF;
vArg.parray = psaHeadFoot;
hr = pBrowser->ExecWB(OLECMDID_PRINT,
OLECMDEXECOPT_DONTPROMPTUSER, &vArg, NULL);
if(hr!=S_OK) throw 1003;
}catch(int retVal){
VariantClear(&vHeadStr);
VariantClear(&vFootStr);
if(psaHeadFoot) SafeArrayDestroy(psaHeadFoot);
return retVal;
}

return 1; //WebBrowser control will clean up the SAFEARRAY after
printing.
}
-------------------------------


J'utilise la commande ExecWB pour imprimer et dans ce code l'en tete et
le pied page sont dans &vArg.

Comment je peux faire ca en Windev ?
Avatar
KPITN
Finalement j'ai trouver plus simples :
Avec les clés de registres

On sauve les valeur initial et on les remets apres :


Footer est une chaîne
Header est une chaîne
MarginB est une chaîne
MarginL est une chaîne
MarginR est une chaîne
MarginT est une chaîne


Footer=RegistreLit("HKEY_CURRENT_USERSoftwareMicrosoftInternet
ExplorerPageSetup","Footer")
Header=RegistreLit("HKEY_CURRENT_USERSoftwareMicrosoftInternet
ExplorerPageSetup","Header")
MarginB=RegistreLit("HKEY_CURRENT_USERSoftwareMicrosoftInternet
ExplorerPageSetup","Margin_bottom")
MarginL=RegistreLit("HKEY_CURRENT_USERSoftwareMicrosoftInternet
ExplorerPageSetup","Margin_left")
MarginR=RegistreLit("HKEY_CURRENT_USERSoftwareMicrosoftInternet
ExplorerPageSetup","Margin_right")
MarginT=RegistreLit("HKEY_CURRENT_USERSoftwareMicrosoftInternet
ExplorerPageSetup","Margin_top")

RegistreEcrit("HKEY_CURRENT_USERSoftwareMicrosoftInternet Explorer
PageSetup","Footer", "&bCopyright retour&b")
RegistreEcrit("HKEY_CURRENT_USERSoftwareMicrosoftInternet Explorer
PageSetup","Header", "")
RegistreEcrit("HKEY_CURRENT_USERSoftwareMicrosoftInternet Explorer
PageSetup","Margin_bottom", "0.25")
RegistreEcrit("HKEY_CURRENT_USERSoftwareMicrosoftInternet Explorer
PageSetup","Margin_left", "0.25")
RegistreEcrit("HKEY_CURRENT_USERSoftwareMicrosoftInternet Explorer
PageSetup","Margin_right", "0.25")
RegistreEcrit("HKEY_CURRENT_USERSoftwareMicrosoftInternet Explorer
PageSetup","Margin_top", "0.25")


MonIe:imprime()


RegistreEcrit("HKEY_CURRENT_USERSoftwareMicrosoftInternet Explorer
PageSetup","Footer", Footer)
RegistreEcrit("HKEY_CURRENT_USERSoftwareMicrosoftInternet Explorer
PageSetup","Header", Header)
RegistreEcrit("HKEY_CURRENT_USERSoftwareMicrosoftInternet Explorer
PageSetup","Margin_bottom",MarginB)
RegistreEcrit("HKEY_CURRENT_USERSoftwareMicrosoftInternet Explorer
PageSetup","Margin_left", MarginL)
RegistreEcrit("HKEY_CURRENT_USERSoftwareMicrosoftInternet Explorer
PageSetup","Margin_right", MarginR)
RegistreEcrit("HKEY_CURRENT_USERSoftwareMicrosoftInternet Explorer
PageSetup","Margin_top", MarginT)