Question Impression avancée des fichiers HTML

Plus d'informations
il y a 11 ans 6 mois #17972 par IDFNaute
Bonjour,

Dans la continuité de mon objectif d'imprimer une fiche de bienvenue personnalisée et la non-recommandation de Microsoft de passer par l'automatisation de Word coté serveur (ci fait ce topic : powershell-scripting.com/index.php?optio...id=17941&catid=5 ).

Je suis passé par la génération d'une page HTML.

Le script marche bien, mais lors de l'impression de la page, il y a la date, l'adresse du fichier et le numéro de page. En passant par l'interface graphique d'IE, il est possible de ne pas les imprimer en mettant ces champs par \"vide\".

J'ai cherché sur le msdn et internet pour trouver comment les paramétrer ces options par Powershell mais je ne rien trouvé.

Voici ce que j'ai fait :

[code:1]
function ImpressionFiche($FicheAMNA)
{
$ie = new-object -com InternetExplorer.Application
$ie.visible = $false
$ie.Navigate($FicheAMNA)
while ($ie.busy) {start-sleep -milliseconds 500}
$ie.ExecWB(6,2)
}
[/code:1]

Je me suis inspiré du post de Jdanel sur un autre sujet :

janel écrit:

Tu es sur la bonne voie en cherchant dans les méthodes d'internetexplorer.application :

[code:1]
$oIE.ExecWB(6, 2)
[/code:1]

Le premier paramètre spécifie la commande à exécuter ( OLECMDID ).

Le second paramètre spécifie les options de cette commande ( OLECMDEXECOPT ).

Enjoy ! :)


Avez vous une idée pour ne pas imprimer ces informations ?

merci d'avance

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 ans 6 mois #17976 par IDFNaute
Je m'auto-réponds car j'ai trouvé la solution ^^

C'est tout bête, lorsque l'on appelle IE, il utilise les paramètres par défaut de la mise en page.

Donc il faut configurer IE par son interface pour spécifier ce que l'on souhaite imprimer en plus du corps du fichier HTML (adresse, nombre de pages, date...).

Dans mon cas, il suffisait de mettre sur \"vide\".


Par contre je viens de quelque chose, lorsque je rajoute $ie.quit() à la suite de la ligne $ie.ExecWB(6,2) il ne se passe rien.

Par contre si je ne mets pas $ie.quit(), tout se fait correctement mais le process continue de tourner après.

Avez vous une idée pour fermer IE à la fin du script tout en permettant d'imprimer avant ?

J'ai essayer avec get-process iexplorer |stop-process (je retrouve le même problème qu'avec $ie.quit() )

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 ans 6 mois #17979 par Laurent Dardenne
IDFNAUTE écrit:

Avez vous une idée pour fermer IE à la fin du script tout en permettant d'imprimer avant ?

Pour la fermeture, tu peux consulter ce post .
Pour l'impression, à priori cette méthode n'est pas synchrone.

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 ans 6 mois #17980 par Laurent Dardenne
Laurent Dardenne écrit:

Pour l'impression, à priori cette méthode n'est pas synchrone.

Par curiosité j'ai regardé sur le net, essaie en passant un troisième argument (optionnel):
[code:1]
$PRINT_WAITFORCOMPLETION=2
$oIE.ExecWB(6, 2,$PRINT_WAITFORCOMPLETION)
[/code:1]
il y a une autre approche basée sur l'attente d'un event PrintTemplateTeardown, mais cela me semble un peu plus complexe.

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.045 secondes
Propulsé par Kunena