Home > Microsoft Office > Insert a Page Break in a Word Document using PowerShell

Insert a Page Break in a Word Document using PowerShell

I got this idea from “dmtelf” who posted a comment on a previous post I wrote regarding Microsoft Word and PowerShell. I ran through a few tests and this is the result.

First, lets Insert a Page Break after every Paragraph in a Word Document. The script will insert a Page break after each Paragraph. I’ve created a sample Word Document that has 5 Lorem Ipsum paragraphs.

word-03

Connecting to the Word Document is done through the Word.Application -Com Object. Then we use the Open() method to connect to our Word Document. Next we create a New Variable holding every Paragraph in the Word Document, Loop through the Paragraphs and set the PageBreak to -1. This sets a Pagebreak for each new Paragraph.


function Insert-PageBreak ([string]$File) {
	$Word = New-Object -Com Word.Application
	$OpenDoc = $Word.Documents.Open($File)
	$Paragraphs = $OpenDoc.Paragraphs

	$Paragraphs | ForEach {

		$_.PageBreakBefore = -1

	}

	$OpenDoc.Close()
}

Running the Function on a Word Document inserts a PageBreak after each Paragraph as shown below:


PS > Insert-PageBreak "C:\Documents\Lorem Ipsum.doc"

word-04

Now, what if i want to insert a Pagebreak after a “Heading 1″ instead of a paragraph, when I write Word documents i sometimes get a little sloppy and push “enter” a little too often so that i get lots of unwanted paragraphs.

word-05

We can solve this with a simple if statement as shown below.


function Insert-PageBreak ([string]$File) {
	$Word = New-Object -Com Word.Application
	$OpenDoc = $Word.Documents.Open($File)
	$Paragraphs = $OpenDoc.Paragraphs

	$Paragraphs | ForEach {

	$_.Style.NameLocal
		if ($_.Style.NameLocal -match "Heading 1") {
			$_.PageBreakBefore = -1
		}
	}

	$OpenDoc.Close()
}

Running the Function on a Word Document containing “Heading 1″ sets the PageBreak for each New “Heading 1″


PS > Insert-PageBreak "C:\Documents\Lorem Ipsum.doc"

word-06

Note that if the Headings are not correctly inserted in the Word Document, it might screw things up a little in the Document, so take a backup before trying this at home :)

Click Here to download a Script with a little more functionality

Rating 3.00 out of 5
[?]
Categories: Microsoft Office Tags:
  1. No comments yet.
  1. No trackbacks yet.

Spam Protection by WP-SpamFree