I have a nice word 2000 VBA code to get a single simple document, in
one unique section, and print it as a book (double faced paper, 2
pages per paper face, page number scheme 4-1, 2-3, 8-5, 6-7).

But when the document has more than 1 section, there is a terrible
mistake at printing pages.

If the document:
- 1st section has 4 pages (numbered 1-4)
- 2nd section more 10 pages (numbered 1-10)

When printing something like "4,1", it result in some pages, equal to
section 1 pages 1 to 4, section 2 page 4 (sort of random like :o)


What a hell this kind of stupid feature called "section print" (have a
look at "help printing sections") !!!


What I asked is:

1) in a single section document, is it possible to make an Index at
document 5th page, but showing there "page number = 1" ???

2) what is the correct / better way to handle/print multi section
documents ?


Thanks, yours,
Daniel, from Brazil

Re: VBA code to get page numbers and print multi section documents! by Jean-Guy

Jean-Guy
Mon Mar 12 10:31:30 CDT 2007

danieldc was telling us:
danieldc nous racontait que :

> I have a nice word 2000 VBA code to get a single simple document, in
> one unique section, and print it as a book (double faced paper, 2
> pages per paper face, page number scheme 4-1, 2-3, 8-5, 6-7).
>
> But when the document has more than 1 section, there is a terrible
> mistake at printing pages.
>
> If the document:
> - 1st section has 4 pages (numbered 1-4)
> - 2nd section more 10 pages (numbered 1-10)
>
> When printing something like "4,1", it result in some pages, equal to
> section 1 pages 1 to 4, section 2 page 4 (sort of random like :o)
>
>
> What a hell this kind of stupid feature called "section print" (have a
> look at "help printing sections") !!!

It is not because it is causing you grief that it is stupid ;-)

>
> What I asked is:
>
> 1) in a single section document, is it possible to make an Index at
> document 5th page, but showing there "page number = 1" ???

Insert a "Next Page" section break where the Index stars and restart page
numbering at 1.

> 2) what is the correct / better way to handle/print multi section
> documents ?

What code are you using now to print your pages?
In your caese, you mignt ned something like:

p4s1,p1s1, etc.

To make sure that Word prints the proper "Page 1" when you have more than
one "Page 1" in the document, use "pxsy" where p = "page" and s = "section".

--

Salut!
_______________________________________
Jean-Guy Marcil - Word MVP
jmarcilREMOVE@CAPSsympatico.caTHISTOO
Word MVP site: http://www.word.mvps.org



Re: VBA code to get page numbers and print multi section documents! by danieldc

danieldc
Mon Mar 12 14:41:53 CDT 2007

Hello, thanks for all.


> It is not because it is causing you grief that it is stupid ;-)

Oh, no, those puppy helpers (dog, mimi, clip, einsten) are so good,
the best ever made since the pre-windows BOB.
Too much I need to search at google to find what could really be
there, easy, at the "CHM" help system that has a search feature worst
than... well...


> Insert a "Next Page" section break where the Index stars and restart page
> numbering at 1.

Yes, using sections and all that mess, it works, but add some problem
to the code to print the pages (as below)


>
> What code are you using now to print your pages?
> In your caese, you mignt ned something like:
>
> p4s1,p1s1, etc.
>
> To make sure that Word prints the proper "Page 1" when you have more than
> one "Page 1" in the document, use "pxsy" where p = "page" and s = "section".
>


Yes, that I had just included at the code, but it makes range property
(wdPrintRangeOfPages) of the Print Dialog (wdDialogFilePrint) really a
long long string...

Is there another way?


Re: VBA code to get page numbers and print multi section documents! by Jean-Guy

Jean-Guy
Mon Mar 12 15:02:41 CDT 2007

danieldc was telling us:
danieldc nous racontait que :

> Hello, thanks for all.
>
>
>> It is not because it is causing you grief that it is stupid ;-)
>
> Oh, no, those puppy helpers (dog, mimi, clip, einsten) are so good,
> the best ever made since the pre-windows BOB.
> Too much I need to search at google to find what could really be
> there, easy, at the "CHM" help system that has a search feature worst
> than... well...
>
>
>> Insert a "Next Page" section break where the Index stars and restart
>> page numbering at 1.
>
> Yes, using sections and all that mess, it works, but add some problem
> to the code to print the pages (as below)
>
>
>>
>> What code are you using now to print your pages?
>> In your caese, you mignt ned something like:
>>
>> p4s1,p1s1, etc.
>>
>> To make sure that Word prints the proper "Page 1" when you have more
>> than one "Page 1" in the document, use "pxsy" where p = "page" and s
>> = "section".
>>
>
>
> Yes, that I had just included at the code, but it makes range property
> (wdPrintRangeOfPages) of the Print Dialog (wdDialogFilePrint) really a
> long long string...
>
> Is there another way?

What's wrong with long strings?
Post your code.

--

Salut!
_______________________________________
Jean-Guy Marcil - Word MVP
jmarcilREMOVE@CAPSsympatico.caTHISTOO
Word MVP site: http://www.word.mvps.org



Re: VBA code to get page numbers and print multi section documents! by danieldc

danieldc
Mon Mar 12 15:20:22 CDT 2007


>
> What's wrong with long strings?
> Post your code.
>

Long strings result in error message at print dialog (9105: length
>255)


This is the code to call the printer dialog.
The "p" paramter is a list of pages like "4,1,2,3,8,5,6,7,...."
limited to 255.

If I'm going to use the sectionXpageY scheme, then, the string will be
longer!

Thanks for all attention,
yours, Daniel

Private Sub dprint(ByRef p As String)
Dim myd As Dialog
Set myd = Dialogs(wdDialogFilePrint)
myd.Range = wdPrintRangeOfPages
myd.pages = p

myd.FileName = ""
myd.Collate = True
myd.Background = True
myd.PrintToFile = False
myd.PrintZoomColumn = 2
myd.PrintZoomRow = 1
myd.PrintZoomPaperWidth = 0
myd.PrintZoomPaperHeight = 0
End Sub




Re: VBA code to get page numbers and print multi section documents! by Jean-Guy

Jean-Guy
Mon Mar 12 18:09:56 CDT 2007

danieldc was telling us:
danieldc nous racontait que :

>> What's wrong with long strings?
>> Post your code.
>>
>
> Long strings result in error message at print dialog (9105: length
>> 255)
>
>
> This is the code to call the printer dialog.
> The "p" paramter is a list of pages like "4,1,2,3,8,5,6,7,...."
> limited to 255.
>
> If I'm going to use the sectionXpageY scheme, then, the string will be
> longer!

In that case you can only specify about 50 pages in your string.

> Thanks for all attention,
> yours, Daniel
>
> Private Sub dprint(ByRef p As String)
> Dim myd As Dialog
> Set myd = Dialogs(wdDialogFilePrint)
> myd.Range = wdPrintRangeOfPages
> myd.pages = p
>
> myd.FileName = ""
> myd.Collate = True
> myd.Background = True
> myd.PrintToFile = False
> myd.PrintZoomColumn = 2
> myd.PrintZoomRow = 1
> myd.PrintZoomPaperWidth = 0
> myd.PrintZoomPaperHeight = 0
> End Sub

But if the goal is to print as a book, I guess you are using a printer that
can handle duplex printing, right? In that case I do not understand why you
need to specify each page in a specific order like you are doing.

--

Salut!
_______________________________________
Jean-Guy Marcil - Word MVP
jmarcilREMOVE@CAPSsympatico.caTHISTOO
Word MVP site: http://www.word.mvps.org



Re: VBA code to get page numbers and print multi section documents! by danieldc

danieldc
Tue Mar 13 07:27:38 CDT 2007

>
> But if the goal is to print as a book, I guess you are using a printer th=
at
> can handle duplex printing, right? In that case I do not understand why y=
ou
> need to specify each page in a specific order like you are doing.
>


If I had a printer that can handle duplex, or if I had found a printer
driver that could handle it, well, of course I would not having all
this trouble about VBA, Word page numbers, sections, and so on...

Using a simple printer, not too much, only capable of print at only
one paper page, then, get all papers, put face down, print again, and
voil=E0, the 4 pages format A5 in a A4 sheet looks like a book...


Let me ask about the code "doc.PrintOut Range:=3DwdPrintRangeOfPages,
pages:=3D"4,1,2,3"
Is the "pages" paramter limited to 255 chars?
Well, this could be a solution... not user friendly, as is direct
print, but it's ok...

Thanks!


Re: VBA code to get page numbers and print multi section documents! by Jean-Guy

Jean-Guy
Tue Mar 13 09:39:31 CDT 2007

danieldc was telling us:
danieldc nous racontait que :

>> But if the goal is to print as a book, I guess you are using a
>> printer that can handle duplex printing, right? In that case I do
>> not understand why you need to specify each page in a specific order
>> like you are doing.
>>
>
>
> If I had a printer that can handle duplex, or if I had found a printer
> driver that could handle it, well, of course I would not having all
> this trouble about VBA, Word page numbers, sections, and so on...
>
> Using a simple printer, not too much, only capable of print at only
> one paper page, then, get all papers, put face down, print again, and
> voilà, the 4 pages format A5 in a A4 sheet looks like a book...

Are you printing on A4?
If so, why can't you just print all the odd pages, then turn the stack
around and print the even pages?
Sorry, but unless you are printing two pages at once on an A5 page and then
folding them to get a "bound" book that only needs to be stapled.... I do no
understand why you are going through all this trouble.

And even if you are doing this folding technique, if you have too many pages
(I'd say more than 16), when you fold them, they do not fit as the inner
pages (7-8,9-10) stick out more than the outer pages (1-2,15-16), you then
have to trim those, thus reducing the outside margin space. So overall, the
look is far from professional.
Also, if you are printing two A4 pages per A4 page, isn't the typo a bit too
small to be readable without causing strain on the reader's eyes?


>
> Let me ask about the code "doc.PrintOut Range:=wdPrintRangeOfPages,
> pages:="4,1,2,3"
> Is the "pages" paramter limited to 255 chars?

Afraid so.

> Well, this could be a solution... not user friendly, as is direct
> print, but it's ok...

--

Salut!
_______________________________________
Jean-Guy Marcil - Word MVP
jmarcilREMOVE@CAPSsympatico.caTHISTOO
Word MVP site: http://www.word.mvps.org



Re: VBA code to get page numbers and print multi section documents! by Ed

Ed
Tue Mar 13 11:58:14 CDT 2007

On Mar 13, 7:39 am, "Jean-Guy Marcil" <DontEvenTry@NoSpam> wrote:
> danieldc was telling us:
> danieldc nous racontait que :
>
> >> But if the goal is to print as a book, I guess you are using a
> >> printer that can handle duplex printing, right? In that case I do
> >> not understand why you need to specify each page in a specific order
> >> like you are doing.
>
> > If I had a printer that can handle duplex, or if I had found a printer
> > driver that could handle it, well, of course I would not having all
> > this trouble about VBA, Word page numbers, sections, and so on...
>
> > Using a simple printer, not too much, only capable of print at only
> > one paper page, then, get all papers, put face down, print again, and
> > voil=E0, the 4 pages format A5 in a A4 sheet looks like a book...
>
> Are you printing on A4?
> If so, why can't you just print all the odd pages, then turn the stack
> around and print the even pages?
> Sorry, but unless you are printing two pages at once on an A5 page and th=
en
> folding them to get a "bound" book that only needs to be stapled.... I do=
no
> understand why you are going through all this trouble.
>
> And even if you are doing this folding technique, if you have too many pa=
ges
> (I'd say more than 16), when you fold them, they do not fit as the inner
> pages (7-8,9-10) stick out more than the outer pages (1-2,15-16), you then
> have to trim those, thus reducing the outside margin space. So overall, t=
he
> look is far from professional.
> Also, if you are printing two A4 pages per A4 page, isn't the typo a bit =
too
> small to be readable without causing strain on the reader's eyes?
>
>
>
> > Let me ask about the code "doc.PrintOut Range:=3DwdPrintRangeOfPages,
> > pages:=3D"4,1,2,3"
> > Is the "pages" paramter limited to 255 chars?
>
> Afraid so.
>
> > Well, this could be a solution... not user friendly, as is direct
> > print, but it's ok...
>
> --
>
> Salut!
> _______________________________________
> Jean-Guy Marcil - Word MVP
> jmarcilREM...@CAPSsympatico.caTHISTOO
> Word MVP site:http://www.word.mvps.org

Don't know if this would work, but it might be a thought worth
exploring:
You didn't show us how you set your string p to set up your pages to
print.
Could you use an array instead, loading each array position with the
"PxSy"
parameter? Then read it backin manageable chunks into your print
dialog?

If you're printing only half of the pages, then turning them over, you
could
use two arrays, one for each half. That might give you more
manageable strings.

Again, just a thought.
Ed


Re: VBA code to get page numbers and print multi section documents! by danieldc

danieldc
Tue Mar 13 14:29:10 CDT 2007

Hi, thanks for you comments.

Well, the "p" string was made of number pages in a scheme
"4,1,2,3" (then 8,5,6,7, then 12,9,10,11).
Of course I was alread printing first the pages up: 4,1, 8,5,
12,9... Then after the pages down: 2,3, 6,7, 10,11...
The code to generate strings already had done with the limited 255
length, working in chunks.

Now, at a document with sections, the problem is that page "1" could
be not so clear (section 1 page 1, section 2 page 1).
Then I must convert the code to use pageXsectionY scheme at the
strings, and because this, strings get longer and longer.

Unfortunately, the code ActiveDocument.PrintOut
Range:=wdPrintRangeOfPages, pages:=p also has the 255 length
limitation at string "p" to pages paramter.

Well... I'm still thinking about it...

----------------------------------------------------------------

To make clear what I'm just printing:
I get a long word document unformatted or bad formatted (no
consistency at use of styles).
Then I have a code to list all paragraphs and styles. This another
code is capable of automatic applying styles to titles1-5, normal and
textblock paragraphs. After this I create an index at page 1.

But, if I want to make some pages to be the "1st/front page" and "last
page", without page numbers, I tried using sections. And with
sections, the print simple scheme goes down! I could also create
another document, easy, but then I must stay with 2 files and not a
single one...

The document is formatted as "page size: A5, 2 pages per sheet,
margins less than 1 inch, font size something like arial/times 10-12".
There is no resizing/zoom done by printer, as the WYSIWYG is perfect
and working well.


Then, you may ask, what do I get printing 2x A5 pages into a single
A4 ?

If the paper upper face has pages 4,1 and the down face has pages 2,3,
when folded it looks like a book, really! :o)
This is far better to read than a big size A4 page full of text. I can
join all pages and make a small pack (what is not true with big A4/
letter sheets).


Thanks again for all support,
and sorry for my bad english...

Yours, Daniel
from Brazil



Re: VBA code to get page numbers and print multi section documents! by Ed

Ed
Tue Mar 13 16:08:51 CDT 2007

On Mar 13, 12:29 pm, "danieldc" <danielgud...@gmail.com> wrote:
> Hi, thanks for you comments.
>
> Well, the "p" string was made of number pages in a scheme
> "4,1,2,3" (then 8,5,6,7, then 12,9,10,11).
> Of course I was alread printing first the pages up: 4,1, 8,5,
> 12,9... Then after the pages down: 2,3, 6,7, 10,11...
> The code to generate strings already had done with the limited 255
> length, working in chunks.
>
> Now, at a document with sections, the problem is that page "1" could
> be not so clear (section 1 page 1, section 2 page 1).
> Then I must convert the code to use pageXsectionY scheme at the
> strings, and because this, strings get longer and longer.
>
> Unfortunately, the code ActiveDocument.PrintOut
> Range:=wdPrintRangeOfPages, pages:=p also has the 255 length
> limitation at string "p" to pages paramter.
>
> Well... I'm still thinking about it...
>
> ----------------------------------------------------------------
>
> To make clear what I'm just printing:
> I get a long word document unformatted or bad formatted (no
> consistency at use of styles).
> Then I have a code to list all paragraphs and styles. This another
> code is capable of automatic applying styles to titles1-5, normal and
> textblock paragraphs. After this I create an index at page 1.
>
> But, if I want to make some pages to be the "1st/front page" and "last
> page", without page numbers, I tried using sections. And with
> sections, the print simple scheme goes down! I could also create
> another document, easy, but then I must stay with 2 files and not a
> single one...
>
> The document is formatted as "page size: A5, 2 pages per sheet,
> margins less than 1 inch, font size something like arial/times 10-12".
> There is no resizing/zoom done by printer, as the WYSIWYG is perfect
> and working well.
>
> Then, you may ask, what do I get printing 2x A5 pages into a single
> A4 ?
>
> If the paper upper face has pages 4,1 and the down face has pages 2,3,
> when folded it looks like a book, really! :o)
> This is far better to read than a big size A4 page full of text. I can
> join all pages and make a small pack (what is not true with big A4/
> letter sheets).
>
> Thanks again for all support,
> and sorry for my bad english...
>
> Yours, Daniel
> from Brazil

Daniel, it would seem that if
> Of course I was alread printing first the pages up: 4,1, 8,5,
> 12,9... Then after the pages down: 2,3, 6,7, 10,11...
then you simply need to print smaller batches of pages.
Using "p11,s11-p11,s11;" you have 14 characters per print
range. That gives you batches of 18 pages per string
(252 characters total). Running the print command a few
more times may take extra time, but if you've got a
small basic printer, it may be glad for a bit of a break!

That's all I've got to think of. Good luck.
Ed