• Booklet printing (2003, SP1)

    Author
    Topic
    #410867

    Does anyone know of a good way to reduce the size of the contents of a whole document? I created a document (about 45 pages) with styles, columns, page headings and tables and I want to print it as a booklet. I know that Word’s help says to create a blank document and format it that way, but I didn’t do that. I need to reduce font sizes, headers and footers, column widths, table column widths and row heights by 50%. Does anyone know of a macro or some other way to accomplish this? I feel that I’m going to have to recreate the whole document, which is a nightmarish prospect.

    Viewing 6 reply threads
    Author
    Replies
    • #886724

      You can specify that you want to print two document pages on one physical page, in the ‘Zoom’ section in the lower right part of the File | Print… dialog. This effectively reduces the printed size by 50%.

      • #886810

        Hans,

        That doesn’t work. It just prints the pages in order. A booklet will print page 1 on the right side of the first sheet and page 32 on the left side. pages 3 and 30 on the second sheet, etc. Then you turn the sheets over and print the second sides, pages 2 and 31, 4 and 29, etc. That’s what happens if you select “Book fold” in the “Pages” field of the margins tab in page setup. When I select that for my existing document it creates the correct format, but does not reduce any column or table widths or font sizes, so all my fonts are too large and the columns and tables extend outside the margins.

        • #886835

          Sorry, no idea then (apart from adjusting everything manually). Hopefully someone else has a suggestion.

        • #886836

          Sorry, no idea then (apart from adjusting everything manually). Hopefully someone else has a suggestion.

      • #886811

        Hans,

        That doesn’t work. It just prints the pages in order. A booklet will print page 1 on the right side of the first sheet and page 32 on the left side. pages 3 and 30 on the second sheet, etc. Then you turn the sheets over and print the second sides, pages 2 and 31, 4 and 29, etc. That’s what happens if you select “Book fold” in the “Pages” field of the margins tab in page setup. When I select that for my existing document it creates the correct format, but does not reduce any column or table widths or font sizes, so all my fonts are too large and the columns and tables extend outside the margins.

    • #886971

      This is best done by sending the Word doc to Acrobat and then using a PDF tool to do the saddle-stitching imposition for you. You could try FinePrint which combines the two steps together.

      It can be done in Word without spending money if you specify the print order and use the 2per page option to print. For example if your document was 44 pages (it must be a multiple of 4) then the page order would be 44,1,2,43,42,3,4,41…

      • #887044

        That looks like such a good idea that I knocked up this quick macro to automate it. I have no idea what maximum number of pages it will handle before the string gets too long, but it worked for the samples I offered it. I set my printer up to do default 2 sided printing before running the macro.

        StuartR


        Sub PrintBooklet()
        Dim iNumPages As Integer
        Dim iNextPage As Integer
        Dim strPageList As String

        iNumPages = ActiveDocument.Content.Information(wdActiveEndPageNumber)
        If iNumPages Mod 4 0 Then
        MsgBox "This macro will only work if you have a multiple of 4 pages in your document", vbCritical, vbOKOnly
        Exit Sub
        End If
        strPageList = ""
        For iNextPage = iNumPages To (iNumPages / 2 + 2) Step -2
        If strPageList "" Then strPageList = strPageList & ","
        strPageList = strPageList & _
        Str$(iNextPage) & "," & _
        Str$(iNumPages - iNextPage + 1) & "," & _
        Str$(iNumPages - iNextPage + 2) & "," & _
        Str$(iNextPage - 1)
        Next iNextPage

        Application.PrintOut FileName:="", Range:=wdPrintRangeOfPages, Item:= _
        wdPrintDocumentContent, Copies:=1, Pages:=strPageList, PageType:= _
        wdPrintAllPages, ManualDuplexPrint:=False, Collate:=True, Background:= _
        True, PrintToFile:=False, PrintZoomColumn:=2, PrintZoomRow:=1, _
        PrintZoomPaperWidth:=0, PrintZoomPaperHeight:=0
        End Sub

      • #887045

        That looks like such a good idea that I knocked up this quick macro to automate it. I have no idea what maximum number of pages it will handle before the string gets too long, but it worked for the samples I offered it. I set my printer up to do default 2 sided printing before running the macro.

        StuartR


        Sub PrintBooklet()
        Dim iNumPages As Integer
        Dim iNextPage As Integer
        Dim strPageList As String

        iNumPages = ActiveDocument.Content.Information(wdActiveEndPageNumber)
        If iNumPages Mod 4 0 Then
        MsgBox "This macro will only work if you have a multiple of 4 pages in your document", vbCritical, vbOKOnly
        Exit Sub
        End If
        strPageList = ""
        For iNextPage = iNumPages To (iNumPages / 2 + 2) Step -2
        If strPageList "" Then strPageList = strPageList & ","
        strPageList = strPageList & _
        Str$(iNextPage) & "," & _
        Str$(iNumPages - iNextPage + 1) & "," & _
        Str$(iNumPages - iNextPage + 2) & "," & _
        Str$(iNextPage - 1)
        Next iNextPage

        Application.PrintOut FileName:="", Range:=wdPrintRangeOfPages, Item:= _
        wdPrintDocumentContent, Copies:=1, Pages:=strPageList, PageType:= _
        wdPrintAllPages, ManualDuplexPrint:=False, Collate:=True, Background:= _
        True, PrintToFile:=False, PrintZoomColumn:=2, PrintZoomRow:=1, _
        PrintZoomPaperWidth:=0, PrintZoomPaperHeight:=0
        End Sub

      • #887241

        That doesn’t work unless you have a printer that prints the second side of a sheet immediately after the first side, rather than print all the first sides and then reloads for the second sides. You need to print the first sides, specifying the order as 44, 1, 42, 3, etc. then print the second sides in reverse order, specifying pages 2, 43, 4, 41, etc. That’s a lot of work! Maybe StuartR can revise his macro for this scenario.

        One of the problems with any solution like this is that the pages don’t get filled. The original 8 1/2 x 11 in portrait mode becomes 5 1/2 x 8 1/2 in landscape. This gives a width to height ratio of approx 0.65:1., whereas 8 1/2 x 11 gives a width to height ratio of approx 0.77:1, so in booklet mode the top and bottom margins are bigger

        • #887255

          (Edited by HansV to make URL clickable – see Help 19)

          This may not be what you want, but I have used the utility Clickbook for years. It scales the regular page to fit the different proportions of the side-by-side landscape. This means that the font is usually stretched slightly in height, however the result is that the top and bottom margins are similar to the sides.

          Here is the URL: http://www.clickbook.com[/url%5D

          There are other utilities like this one available, but some that I have tried do not do the type of shrinking that I have described.

          • #887285

            I use ClickBook, too, and love it. However the problem with it is that it does exactly as you describe, which is usually OK, but this particular document has a circular logo in it, which ClickBook stretched into an ellipse. It looked horrible so in ClickBook’s Layouts menu I selected Modify Layout, and chose “One to One” for the scaling option. This returned the logo to a circular shape but produced the margin problem I described.

            • #887569

              One option for the distorted logo in ClickBook is to resize the logo so that it is flatter. Then when printed through ClickBook the One-to-one option does not have to be used and the printout of the flattened logo will be round.

            • #887570

              One option for the distorted logo in ClickBook is to resize the logo so that it is flatter. Then when printed through ClickBook the One-to-one option does not have to be used and the printout of the flattened logo will be round.

          • #887286

            I use ClickBook, too, and love it. However the problem with it is that it does exactly as you describe, which is usually OK, but this particular document has a circular logo in it, which ClickBook stretched into an ellipse. It looked horrible so in ClickBook’s Layouts menu I selected Modify Layout, and chose “One to One” for the scaling option. This returned the logo to a circular shape but produced the margin problem I described.

        • #887256

          (Edited by HansV to make URL clickable – see Help 19)

          This may not be what you want, but I have used the utility Clickbook for years. It scales the regular page to fit the different proportions of the side-by-side landscape. This means that the font is usually stretched slightly in height, however the result is that the top and bottom margins are similar to the sides.

          Here is the URL: http://www.clickbook.com[/url%5D

          There are other utilities like this one available, but some that I have tried do not do the type of shrinking that I have described.

        • #892061

          I tried to modify my VBA to handle manual duplexing (see attachment) but I have a problem working out how to pause so the user can turn the output paper round and re-insert it in the printer.

          I tried DoEvents between the ActiveDocument.Printout and the next MsgBox, but the printout doesn’t appear until after I dismiss the dialog box.

          Does anyone have an idea how to pause long enough for the first sides to come out of the printer? Otherwise I may have to create a real userform to ask whether you want to print Odd Sides, Even Sides or both.

          StuartR

          Attachment removed by StuartR as there is a better version lower down in this thread

          • #892091

            Does VBA wait longer if you set Background:=False?

            • #892096

              Thanks, that did the trick.

              I have included that, and corrected a small page order error, in this version – which works perfectly for the way pages come out of my HP Deskjet 999cxi, but who knows what it will do on anyone else’s printer.

              StuartR

            • #1177232

              Thanks, that did the trick.

              I have included that, and corrected a small page order error, in this version – which works perfectly for the way pages come out of my HP Deskjet 999cxi, but who knows what it will do on anyone else’s printer.

              StuartR

              Hi Stuart,

              I haven’t had that close a look at your coding yet, but it looks semi-complex at the moment. I’ve been doing VBA coding in Access for a number of years with reasonable success, usually with the help of our illustrious Hans. However, and don’t laugh, I don’t even know where to stick this code. And please, everyone, no rude remarks. As I said, I do want to study your code over the next couple of days. Thanks again for your suggestions,

            • #1177274

              I don’t even know where to stick this code.

              It can go in any Global template, or you could include it into the specific document that needs to be a bullet.

              Easiest is probably to include it in Normal.dot. Assuming you are running Office 2003 on Windows XP you can find this at C:Documents and SettingsApplication DataMicrosoftTemplatesNormal.dot

              Right click Normal.dot and choose edit (don’t double click it as this will create a new blank document). Then type Alt-F11 to get to the Visual Basic environment. Then Insert Module to create a code module where you can store the code. Then copy all the code from the text file and paste it into the newly created module.

              To run the code you can either put the cursor in the code and click the run button, or you can type Alt-F8 in Word, select the PrintBooklet macro and click Run.

            • #1177282

              It can go in any Global template, or you could include it into the specific document that needs to be a bullet.

              Easiest is probably to include it in Normal.dot. Assuming you are running Office 2003 on Windows XP you can find this at C:Documents and SettingsApplication DataMicrosoftTemplatesNormal.dot

              Right click Normal.dot and choose edit (don’t double click it as this will create a new blank document). Then type Alt-F11 to get to the Visual Basic environment. Then Insert Module to create a code module where you can store the code. Then copy all the code from the text file and paste it into the newly created module.

              To run the code you can either put the cursor in the code and click the run button, or you can type Alt-F8 in Word, select the PrintBooklet macro and click Run.

              Just to add confusion to my own life in the last couple of days, I got myself turned around between two adjacent posts re booklets. I clicked onto yours and replied when I hit your submission. My comment still holds that I really should get into VBA coding in Word and not just in Access.

              In the meantime, if you have a look at the last couple of entries in my “real” post, you’ll find that Ian Wilson very kindly set me on the right and easy path. All my booklet problems are now solved.

              Thanks again for your help,

            • #1177654

              Stuart’s code would go into a standard module (the type that you create by selecting Insert | Module in the Visual Basic Editor). You can run it by selecting Tools | Macro | Macros, selecting PrintBooklet and clicking Run. Or you could assign the macro to a custom toolbar button or keyboard shortcut (make sure changes will be saved in the active document or template when customizing toolbars and/or the keyboard).

            • #1177675

              Stuart’s code would go into a standard module (the type that you create by selecting Insert | Module in the Visual Basic Editor). You can run it by selecting Tools | Macro | Macros, selecting PrintBooklet and clicking Run. Or you could assign the macro to a custom toolbar button or keyboard shortcut (make sure changes will be saved in the active document or template when customizing toolbars and/or the keyboard).

              Thanks kindly, Hans. VBA in Word is a whole new area for me to investigate. If you have a look at my other “Booklet” post, for which I can’t seem to find a reference number, you’ll see that my problem was easily solved by using Booklet Fold and “All”. I, heaven help me, lost faith in Word’s ability to read my mind, such as it is, and give me the correctly formatted printout.
              Thanks again to all for your help,

            • #892097

              Thanks, that did the trick.

              I have included that, and corrected a small page order error, in this version – which works perfectly for the way pages come out of my HP Deskjet 999cxi, but who knows what it will do on anyone else’s printer.

              StuartR

          • #892092

            Does VBA wait longer if you set Background:=False?

        • #892062

          I tried to modify my VBA to handle manual duplexing (see attachment) but I have a problem working out how to pause so the user can turn the output paper round and re-insert it in the printer.

          I tried DoEvents between the ActiveDocument.Printout and the next MsgBox, but the printout doesn’t appear until after I dismiss the dialog box.

          Does anyone have an idea how to pause long enough for the first sides to come out of the printer? Otherwise I may have to create a real userform to ask whether you want to print Odd Sides, Even Sides or both.

          StuartR

          Attachment removed by StuartR as there is a better version lower down in this thread

      • #887242

        That doesn’t work unless you have a printer that prints the second side of a sheet immediately after the first side, rather than print all the first sides and then reloads for the second sides. You need to print the first sides, specifying the order as 44, 1, 42, 3, etc. then print the second sides in reverse order, specifying pages 2, 43, 4, 41, etc. That’s a lot of work! Maybe StuartR can revise his macro for this scenario.

        One of the problems with any solution like this is that the pages don’t get filled. The original 8 1/2 x 11 in portrait mode becomes 5 1/2 x 8 1/2 in landscape. This gives a width to height ratio of approx 0.65:1., whereas 8 1/2 x 11 gives a width to height ratio of approx 0.77:1, so in booklet mode the top and bottom margins are bigger

      • #887291

        I should also add that this problem would not arise if in the US we used the same size paper that the rest of the world uses, where the height-to-width ratio of all pages is the square root of two (1.4142 : 1). See http://www.cl.cam.ac.uk/~mgk25/iso-paper.html%5B/url%5D. Maybe I should bring some A4 paper back with me next time I visit Europe (sigh).

        • #887301

          Hi Andrew

          I have checked my printer and it is a HP Laser jet 2200 with duplexing option.

          See attached screen dump.

          Kerry

          • #887307

            Hi Kerry,

            Thanks for the info, but I’m not quite sure how it helps me. Here in the insular USA we don’t care what the rest of the world does, so although your scheme works with A4 paper, it won’t work with our non-standard paper sizes. See my little rant on this in post 416238 in this thread. A5 would indeed be the size I wanted if we actually used A4!

            • #887309

              Oh – well – never mind. Thought it was worth a try.

              Good luck.

              Kerry

            • #887310

              Oh – well – never mind. Thought it was worth a try.

              Good luck.

              Kerry

          • #887308

            Hi Kerry,

            Thanks for the info, but I’m not quite sure how it helps me. Here in the insular USA we don’t care what the rest of the world does, so although your scheme works with A4 paper, it won’t work with our non-standard paper sizes. See my little rant on this in post 416238 in this thread. A5 would indeed be the size I wanted if we actually used A4!

        • #887302

          Hi Andrew

          I have checked my printer and it is a HP Laser jet 2200 with duplexing option.

          See attached screen dump.

          Kerry

      • #887292

        I should also add that this problem would not arise if in the US we used the same size paper that the rest of the world uses, where the height-to-width ratio of all pages is the square root of two (1.4142 : 1). See http://www.cl.cam.ac.uk/~mgk25/iso-paper.html%5B/url%5D. Maybe I should bring some A4 paper back with me next time I visit Europe (sigh).

    • #886972

      This is best done by sending the Word doc to Acrobat and then using a PDF tool to do the saddle-stitching imposition for you. You could try FinePrint which combines the two steps together.

      It can be done in Word without spending money if you specify the print order and use the 2per page option to print. For example if your document was 44 pages (it must be a multiple of 4) then the page order would be 44,1,2,43,42,3,4,41…

    • #887013

      I have dealt with this by using the printer settings. Usually a printer will have a booklet setting. Using this method you dont have to change anything about your current document to make into a booklet. I am assuming you want to make it A5 size?

      I am at home at the moment, but tomorrow at work I can check the actual settings.

      What sort of printer do you have?

      Kerry

    • #887014

      I have dealt with this by using the printer settings. Usually a printer will have a booklet setting. Using this method you dont have to change anything about your current document to make into a booklet. I am assuming you want to make it A5 size?

      I am at home at the moment, but tomorrow at work I can check the actual settings.

      What sort of printer do you have?

      Kerry

    • #887072

      Hi Andrew,

      Maybe this article might provide some clues for you?

      Bob

    • #887073

      Hi Andrew,

      Maybe this article might provide some clues for you?

      Bob

    Viewing 6 reply threads
    Reply To: Reply #887014 in Booklet printing (2003, SP1)

    You can use BBCodes to format your content.
    Your account can't use all available BBCodes, they will be stripped before saving.

    Your information:




    Cancel