Ok Ron, let's see: Do you: a) create a HTML document and rely on your users M$ Word being able to read and interpret it or b) create a HTML doc, save and convert it to .doc on the server, finally presenting this .doc to your users? Case a): your quite busted, because besides tg's brilliant solution the history of M$ Words understanding of HTML is one of errors and really bad interpretation. So you won't ever know which version your user has and so you cannot be sure what s/he will see. So i'd consider it better to convert on the server, serving the .doc. This way you are sure about the final output. Said this, you might just insert ||pagebreak|| or anything else not incidentally valid text into your HTML where a page break should occur. Then, while converting on the server via COM, before $word->Document[n]->SaveAs(...) insert the following: // Parameters: // 1st: Match what // 2nd: Case sensitive ? // 3rd: Whole word only ? ( False -> there need not be word breaking chars around a match) // 4th: Wildcards ? (has to be true to let ^m be interpreted as a pagebreak) // 5th: Match soundslike ? (special: doesn't go with Wildcards = true) // 6th: Match all wordforms ? (special: doesn't go with Wildcards = true) // 7th: Forward ? // 8th: Wrap ? (we go thru doc just once) // 9th: Format ? (Is 1st or 10th Parm a formatting special char like paragraph, tab, ... ?) // 10th: Replace with: This is caret and small 'a' followed by caret and small 'm', the special formatting placeholder for a page break // 11th: How many times ? $word->Selection->Find->ClearFormatting(); $word->Selection->Find->Execute('||pagebreak||', False, False, True, False, False, True, wdFindStop, True, '^a^m', wdReplaceAll); Note ^a^m : These are four letters, the carets standing on their own. Being picky, this is a new paragraph followed by a pagebreak. But this is necessary because only automatic pagebreaks may occur within a paragraph. A forced pagebreak has to be preceeded by the end-of-paragraph. Note || as delimiters: One could be tempted to create a tag <pagebreak /> or the like (Should be ignored by any HTML processor not knowing what it's for. But not so M$ Word: Its converters, at least some, consider the text not valid HTML, - suppressing the tag (correctly, so far) and - preventing Word to store it as genuine .doc (it will be saved as plain text, showing the HTML tags even when told to be stored as .doc) HTH -- Sven > -----Ursprüngliche Nachricht----- > Von: tg-php@xxxxxxxxxxxxxxxxxxxxxx [SMTP:tg-php@xxxxxxxxxxxxxxxxxxxxxx] > Gesendet am: Freitag, 7. Januar 2005 15:51 > An: php-windows@xxxxxxxxxxxxx > Cc: Ron.Herhuth@xxxxxxxxxxxxxxxxx > Betreff: RE: AW: Word COM Object > > Creating a new document in Word, inserting Page Breaks then saving it as a web page revealed that Word seems to use CSS tags to show the line breaks in HTML. The only odditiy I see is that when I load the HTML back into Word, mine is still set to "View -> Web Page Layout" or something (Word 2003) which doesn't show the page breaks (since you don't have page breaks in HTML) but if you set it to "View -> Normal" the page breaks are in there. > > Anyway, generating HTML like the following should give you page breaks when loaded into Word: > > <html> > > <head> > <meta http-equiv=Content-Type content="text/html; charset=windows-1252"> > <meta name=Generator content="Microsoft Word 11 (filtered)"> > <title>Test 1</title> > <style> > <!-- > /* Style Definitions */ > p.MsoNormal, li.MsoNormal, div.MsoNormal > ~{margin:0in; > ~margin-bottom:.0001pt; > ~font-size:12.0pt; > ~font-family:"Times New Roman";} > @page Section1 > ~{size:8.5in 11.0in; > ~margin:1.0in 1.25in 1.0in 1.25in;} > div.Section1 > ~{page:Section1;} > --> > </style> > </head> > <body lang=EN-US> > > <div class=Section1> > > <p class=MsoNormal>Test 1</p> > > <span style='font-size:12.0pt;font-family:"Times New Roman"'><br clear=all > style='page-break-before:always'> > </span> > > <p class=MsoNormal>Test 2</p> > > <span style='font-size:12.0pt;font-family:"Times New Roman"'><br clear=all > style='page-break-before:always'> > </span> > > <p class=MsoNormal>Test 3</p> > > </div> > > </body> > > </html> > > > Really you probably just need this as the page break: > > <br clear=all style='page-break-before:always'> > > Not sure what "clear=all" does, but the "page-break-before" is standard CSS (CSS2 I believe) that's telling it to insert the page break before the <BR> tag (right? I think that's right). > > Maybe that helps.. if not, post again "Ask again later" - Magic 8 Ball :) > > -TG > > > = = = Original message = = = > > Thank you for reply. I figured out how to do that but now my issue is > that since my styling is all done in HTML...I'm trying to bring over the > HTML for each person's BIO, followed by a page break then the next > person's BIO followed by a page break...and so on... > > The obvious problem is that if I use the Word COM object to insert the > HTML...the HTML isnt parsed and all I get is the HTML source code...but > the page breaks work great. If I save the file first as HTML then open it > using the Word COM object then save it as a doc, it parses correctly...but > since there is no HTML page break function...all of the bios run one after > the other, when what I really need is each Bio starting on a new page. > > This is killing me! > Ron > > >From: Sven Schnitzke > >To: '' > >Sent: 01/07/2005 8:15 AM > >Hi, > >sorry for accidentally sending private mail first ! Now to the list: > > > >to insert a pagebreak just leave out the parameter entirely. It's > default: > > > >~$word->Selection->InsertBreak(); > > > >but for clarity you may want to specify it, so do it the positional way > (it's the 1st one): > > > >~$word->Selection->InsertBreak(wdPageBreak); > > > >Named parms don't seem to be supported by PHP COM. > > > >HTH > >-- > >Sven > > > >> -----Urspr~ngliche Nachricht----- > >> Von:~Ron.Herhuth@xxxxxxxxxxxxxxxxx [SMTP:Ron.Herhuth@xxxxxxxxxxxxxxxxx] > >> Gesendet am:~Mittwoch, 5. Januar 2005 18:55 > >> An:~php-windows@xxxxxxxxxxxxx > >> Betreff:~ Word COM Object > >> > >> > >> I have successfully made a PHP script that takes dynamically generated > >> HTML and creates a Word Doc then saves it to the server and creates a > link > >> to itself. This is fine and dandy but now I have to do a multipage > >> document using several dynamically generated pages...this isnt a > problem > >> BUT I need to put a page break following each dynamically generated > page. > >> Is there some MS WORD command that I could embed in the HTML I am > >> generating that will cause a page break? > >> > >> This seemingly simple task is killing me. > >> > >> Ron > >> > >> > >> > >> > >> > >> > > > >-- > >PHP Windows Mailing List (http://www.php.net/) > >To unsubscribe, visit: http://www.php.net/unsub.php > > > > > > > > > ___________________________________________________________ > Sent by ePrompter, the premier email notification software. > Free download at http://www.ePrompter.com. > > -- > PHP Windows Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > > -- PHP Windows Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php