Question creation plaquette images word en Powershell

Plus d'informations
il y a 9 ans 1 semaine #23271 par Arnaud Petitjean
Hello !

Il n'existe pas de commandes natives PowerShell pour manipuler Word proposées par Microsoft.
Ce que te proposes Laurent - à juste titre et dans la continuité de ce que tu as commencé - c'est de manipuler directement le composant COM Word grâce à son modèle objet qui a l'air correctement documenté.

Par ailleurs je sais que la communauté PowerShell a travaillé sur le sujet, et ce sera peut-être plus simple d'accès pour toi.

Regarde ici :
- WordDoc - Create Word Documents directly from PowerShell

Une fois ta mise en page faite correctement, je te conseillerais de sauvegarder le tout en PDF pour t'éviter des surprises à l'impression.

Arnaud<br><br>Message édité par: Arnaud, à: 9/03/17 10:25

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

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

Plus d'informations
il y a 9 ans 1 semaine #23272 par L
Bonjour Arnaud,

Merci pour le conseil du pdf je verrai ça à la fin ;)

J'essaye de \&quot;bricoler\&quot; en faisant un tableau de 4 colonnes (par rapport aux dimensions des qrcodes).

J'essaye donc de générer automatiquement les 3 premières lignes sont identiques à chaque fois :
logo
qrcode
texte

mais le tout sur 4 colonnes. Je sais pas si je suis assez clair...

Mais je n'arrive pas, pour le moment le résultat est en ligne, c'est à dire que le logo se place toujours dans la colonne 1, le qrcode dans la colonne 2 et le texte dans la colonne 3..

Auriez-vous une indication ?

Je sens que je suis pas loin de mon objectif mais je peine à réussir...:side:

Voici mon code actuel :
[code:1]$word = New-Object -ComObject word.application
$word.visible = $true
$doc = $word.documents.add()
$selection = $word.selection
$logo=\&quot;chemin logo\&quot;
$rep=Get-ChildItem -Path \&quot;Chemin qrcodes\&quot;

$MemoryTable =$Word.ActiveDocument.Tables.Add($Word.Selection.Range, 3, 4)
$TableRowPosition = 0

foreach ($f in $rep){
$fullname =$f.FullName
$name=$f.Name
$name_splitted=$name.Split('.')

$MemoryTable.Rows.Add()
$MemoryTable.Cell($TableRowPosition,1).Range.inLineShapes.AddPicture($logo)
$MemoryTable.Cell($TableRowPosition,2).Range.inLineShapes.AddPicture($fullname)
$MemoryTable.Cell($TableRowPosition,3).Range.Text = $name_splitted[0]
$TableRowPosition = $TableRowPosition + 1

}

[/code:1]<br><br>Message édité par: pxllls, à: 9/03/17 11:17

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

Plus d'informations
il y a 9 ans 1 semaine #23276 par Laurent Dardenne
pxllls écrit:

Cependant je n'arrive pas à utiliser les objets, tous les exemples sont en VBA

Oui c'est le langage ciblé à l'origine.
Il faut déjà connaitre les objets pour rechercher des exemples :-)
Exemples qui peuvent être en C# ou autre.

Dans les projets pouvant aider tu as aussi celui-ci .
Je te conseille tout de même de persévérer dans la voie que tu as prises, avec les outils tiers il faut déjà le temps de comprendre comment les utiliser et en cas de bug tu peux te retrouve coincer.
Avec les ojbets COM c'est plus long, mais tu gardes la main sur ce que tu manipules.

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