5

PROBLEM:

  • I have been manually copy-pasting pages in sets of 4
    • i.e. 1-4, 5-8, 9-12..so on, while trying to print pages.
  • I haven't found a way to do this automatically.
    • (If there is a command for this) Say, If I have to print 12 pages, I should be able to just enter 12 and the document-name.pdf to start printing 1-4, 5-8, 9-12..in succession.

GIF for clarification:

Printjob-gif See ^this gif fullscreen

REQUIREMENTS:

  • Printing should be done in booklet form
    • a booklet is 4 pages of document in 1 sheet of paper; two pages in front, two at the back.

CONTEXT:

Printing all pages into a booklet makes a bulky booklet. Cutting and clipping is time consuming. Therefore, I print in sets of 4 pages, so that they can be neatly folded. Currently, I have been manually copy/pasting page numbers. Obviously, this is time-consuming but it still saves me time compared to cutting and clipping. Therefore, I still stick to it.

  • I am fond of using Foxit Reader because it is extremely easy to make booklets with it. So, while making booklets, I've been printing sets of 4 pages manually for a while now. This is because the A4 sheet folds neatly into two, giving me 4 pages of print of a document from a single physical sheet. I don't like to use sets of 8 pages or, above(i.e. all pages at once), because then I cannot fold the pages right in the middle. I could cut the whole stack and clip them together, but it is too much work for regular printing.

To clarify further

Image representation of layout View ^this image in fullscreen

What I tried?

  • I tried sending print commands like 1-4,5-8 but I guess the command is equivalent to 1-8 because that's what I got.

Can this be solved?

I feel like there should be a solution to this simple problem. But is it unsolvable due to some weird quirk? * i.e. the sort of thing that makes "Replace All" in Adobe Acrobat unavailable even in 2018?

Any answer would be appreciated, on that front.

I am using

  • Application: Foxit Reader
  • OS: Windows 10 Pro
  • Printer: Samsung M3320ND (Has it's own booklet mode, but I don't use it*)

    * it messes up with foxit's booklet mode.
  • I don't understand your problem. Maybe you could draw a diagram or something? – gronostaj Jul 12 '18 at 11:58
  • I understand your problem. However, on what OS are you using Foxit? – Fanatique Jul 12 '18 at 11:59
  • I am using Windows 10. Sorry, I did not realise it'd be relevant. – Siddhant Rimal Jul 12 '18 at 11:59
  • @gronostaj disregard everything up there. The core requirement is: I need to somehow print 4 pages at a time(in a booklet: so that's 4 pages per sheet). If I print 8 pages, the 3rd and 4th page get printed on the 2nd sheet, which I don't want. Basically, I just need to send the printer "print 1-4" then "print 5-8" then "print 9-12" and so on. – Siddhant Rimal Jul 12 '18 at 12:02
  • 1
    @Seth , hopefully, it is a lot more understandable now. I've included gif and pic. – Siddhant Rimal Jul 12 '18 at 15:35
0

First off is seems a bit strange that you'd go from page 2 to page 5 of a document but you probably have your reasons. It might be easier to change the page arrangement of the original document rather than doing fancy printing. But it does look like you have several options.

To print an 8 page document the way you want to, you could use the following printing order for a booklet print: 1,2,5,6,7,8,3,4 => (4,1) (2,3) (8,5) (6,7)

As you can see you'd not be using ranges but rather individual pages. If you look at what actually happens you'd be stacking your page pairs from the outside to the inside and reverse the order for every front page. In the following example FP stands for front page and BP for back page:

  • FP 1 (4,1) => 1 , 4
  • BP 1 (2,3) => 1,2 , 3,4
  • FP 2 (8,5) => 1,2,5 , 8,3,4
  • BP 2 (6,7) => 1,2,5,6 , 7,8,3,4

If you want to take this route, you might be able to prepare a string for your usual document length and for shorter documents you might be able to just cut out some of it.

An alternative approach, that is similar but might give you less of a headache, is to use the "Multiple Pages Per Sheet" option in which case you'd just name the pairs in the order you want them printed. So you'd not have to change the order for your front pages and would just name them in the order you want. So for the 8 page example it would be: 4,1,2,3,8,5,6,7

Again you could see a pattern here. Divide the number of pages by the number of sheets and move the last number of the range to the front of it.

  • 8/2 => 1-4,5-8
  • (1-4) (5-8) => 4,1-3 , 8,5-7

If carefully look at it the booklet option the page pairs are the same but building the string is more complex.

An example for 16 pages:

To get the pairs we're going to use the second option because we need them anyway for the booklet option.

  • 16/4 => 1-4, 5-8, 9-12, 13-16
  • (1-4) (5-8) (9-12) (13-16) => 4,1-3 , 8,5-7 , 12,9-11 , 16,13-15

The booklet transformation would look like the following.

  • FP 1 (4,1) => 1 , 4
  • BP 1 (2,3) => 1,2 , 3,4
  • FP 2 (8,5) => 1,2,5 , 8,3,4
  • BP 2 (6,7) => 1,2,5,6 , 7,8,3,4
  • FP 3 (12,9) => 1,2,5,6,9 , 12,7,8,3,4
  • BP 3 (10,11) => 1,2,5,6,9,10 , 11,12,7,8,3,4
  • FP 4 (16,13) => 1,2,5,6,9,10,13 , 16,11,12,7,8,3,4
  • BP 4 (14,15) => 1,2,5,6,9,10,13,14 , 15,16,11,12,7,8,3,4

With the approach presented in this answer you will have issue if you have a number of pages that is not divisible by 4 without a remainder. If you do have a remainder like with your 78 page document (78/4 => 19,5) you will end up with some empty pages in the middle of your document. You might be able to write a simple script to generate the order of pages. For the "Multiple Pages Per Sheet" option it might look like this in PowerShell:

$pageNumbers = @(1..16)
$numberOfPages = $pageNumbers.length/4
$i = 0;

while($i -lt $pageNumbers.length){
    $lastPage = $pageNumbers[$i+$numberOfPages-1];

    # Shift all the numbers by one to the right
    for($j = $i+$numberOfPages-1; $j -gt $i; $j--){
        $pageNumbers[$j] = $pageNumbers[$j-1];
    }

    $pageNumbers[$i] = $lastPage;
    $i += $numberOfPages;
}

Write-Output ($pageNumbers -join ',')
  • This is not the solution I was looking for, but I get the gist of it. I think this has pushed me to look for better solutions. Thanks. – Siddhant Rimal Jul 21 '18 at 4:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.