[Powershell] in Word plakken met Keep source formatting

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • Pater
  • Registratie: Oktober 2001
  • Laatst online: 30-09 15:46

Pater

Terry Tate

Topicstarter
Mijn vraag is wat de juiste command is via Powershell om iets te plakken in Word met Keep Source Formatting. Mijn script is nu als volgt:

$source1 = 'C:\Temp\LEAReport.doc'
$source2 = 'C:\Temp\UCIReport.doc'
$destination = 'C:\Temp\Done\archive.docx'
$word = New-Object -ComObject word.application
$word.visible = $true
$doc3 = $word.documents.open($destination)
$doc1 = $word.documents.open($source1)
$doc2 = $word.documents.open($source2)
$bookmark1 = $doc3.Bookmarks.Item("LEAreport")
$bookmark2 = $doc3.Bookmarks.Item("UCIreport")

$doc2.Range().Copy()
$bookmark2.Range.Paste()

$doc1.Range().Copy()
$bookmark1.Range.Paste()

$doc1.Close()
$doc2.Close()

$doc3.SaveAs("C:\Temp\Done\archive1.docx")
$doc3.Close()


Door de opmaak van doc3 gaat het bij het plakken van de content van doc2 niet goed. Als je het via Word doet, gaat het wel goed als je Keep Source Formatting gebruikt bij Paste Special. Maar ik weet niet wat de powershell command daarvoor is.

If we are all God's children, what makes Jesus so special?

Battle.net tag

Beste antwoord (via Pater op 24-12-2020 14:58)


  • Josk79
  • Registratie: September 2013
  • Laatst online: 07-10 19:24
Wellicht met PasteAndFormat 16

https://docs.microsoft.co....selection.pasteandformat

(wdFormatOriginalFormatting = 16)

Alle reacties


  • pnxsinned
  • Registratie: April 2011
  • Laatst online: 02-10 21:53
Ik zie dat Excel een pastespecial heeft.
Heeft Word dit ook niet toevallig?

https://docs.microsoft.co...vba/api/Excel.XlPasteType

PasteSpecial(-4122)

  • Pater
  • Registratie: Oktober 2001
  • Laatst online: 30-09 15:46

Pater

Terry Tate

Topicstarter
Je zou zeggen van wel, je hebt het inderdaad van Word ook: https://docs.microsoft.co.../api/word.wdpastedatatype
wdKeepSourceFormatting

Maar dit is meestal een VBA/macro script en ik wil het gewoon invoeren in een Powershell console. Dus hoe zou dat hier moeten?

If we are all God's children, what makes Jesus so special?

Battle.net tag


  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Ik ken er geen in powershell (omdat ik dat slechts licht gebruik). Zo te zien werkt Range().Pastespecial() gewoon, dan nog wel de juiste parameters invullen.

offtopic:
Gebruik je nog .doc files? :X Ik zou toch eens kijken of dat anders kan, de support daarop is niet eeuwig.

Ik heb het topic verplaatst van Windows Clients naar hier, omdat de focus licht op aansturen van Word.

[ Voor 19% gewijzigd door F_J_K op 24-12-2020 09:23 . Reden: juiste tags ]

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


  • Pater
  • Registratie: Oktober 2001
  • Laatst online: 30-09 15:46

Pater

Terry Tate

Topicstarter
Helaas, ik heb die Range().PasteSpecial() al geprobeerd, ook zelfs met code 2, maar hij blijft plakken in de verkeerde opmaak.

En die doc, tja, dat mag je tegen mijn organisatie zeggen. Ik bouw alleen maar een robot die de data en documenten uit systemen haalt en verzamelt in een hoofddocument.

If we are all God's children, what makes Jesus so special?

Battle.net tag


Acties:
  • Beste antwoord
  • 0 Henk 'm!

  • Josk79
  • Registratie: September 2013
  • Laatst online: 07-10 19:24
Wellicht met PasteAndFormat 16

https://docs.microsoft.co....selection.pasteandformat

(wdFormatOriginalFormatting = 16)

  • Pater
  • Registratie: Oktober 2001
  • Laatst online: 30-09 15:46

Pater

Terry Tate

Topicstarter
Yes! Dat is hem! :D

Uiteindelijk dit gebruikt: $bookmark2.Range.PasteAndFormat(16)

If we are all God's children, what makes Jesus so special?

Battle.net tag

Pagina: 1