Split A3 PDF into A4 PDF (down the middle)

From n0r1sk software solutions
Jump to: navigation, search
Splitter

Abstract

So how to print single A4 pages from A3 PDFs? or How to print A3 PDFs with an A4 printer?

Well this small tool is what you need! If your pdf file contains scanned A3 (landscape) pages where the A3 pages contains 2 A4 sites and you want them split up to single A4 pages you are only two clicks away.

Take a look at our demo pdf files to see how it works and what the output will be.

Happy cutting!

General

This article describes how to create one DIN A4 PDF (with 2 or more pages) out of one DIN A3 PDF. The source A3 PDF is splitted down by the middle. In the output PDF the pages are sorted. See the example PDF files.

You can use this software for example to split a music sheet with DIN A3 pages to get splitted DIN A4 pages for easier printing! The program works with many A3 pages and also with mixed A3 & A4 pages in one PDF.

Version road map/progress

Currently there are no open bugs. If you find one or if you have suggestions please let us know!

<mantis>6</mantis>

JAVA GUI EDITION

Well, I've done a JAVA gui edition of this software. You can start it via Java Web Start by clicking the following button.

The latest version can now handle pdf documents that have mixed A4 and A3 pages inside like the example below. Also the output is now more usable.

Please be patient, I am not a developer so this software is, I would say, a rough hack.

If you like the software or want to get the source code, contact us or make a donation/flattr this! (see left menu)

Screenshots

SCRIPTED EDITION

Install the needed packages

At first you have to install the right packages which are needed for the converting script. (Debian example)

  • pdfinfo (in package poppler-utils)
  • bc (commandline calculator)
  • gs (ghostscript)
  • pdftk (pdf manipulation tool)
apt-get update
apt-get install poppler-utils ghostscript bc

Create the Script

Now you have to create the script, which converts the PDF. I'll name it "convert_pdf.sh".

#!/bin/bash
 
# Submitted change by Sebastian Matthias ERNST - Thanks!
# http://www.s-m-ernst.de/
WIDTH=$(pdfinfo $1 | grep -i "page size" | tail -n 1 | awk '{ print $3 }')
HEIGHT=$(pdfinfo $1 | grep -i "page size" | tail -n 1 | awk '{ print $5 }')
PAGES=$(pdfinfo $1 | grep -i pages | tail -n 1 | awk '{ print $2 }')
 
WIDTH2=`echo "$WIDTH/2" | bc`
WIDTH3=$WIDTH2"0"
 
HEIGHTFULL=`echo "$HEIGHT*10" | bc`
SIZEFULL="-g"$WIDTH3"x"$HEIGHTFULL
 
echo $WIDTH2
echo $SIZEFULL
echo $HEIGHT
 
gs -o left-sections.pdf -sDEVICE=pdfwrite -sPAPERSIZE=a4 $SIZEFULL -c "<</PageOffset [0 0]>> setpagedevice" -f $1
 
gs -o right-sections.pdf -sDEVICE=pdfwrite -sPAPERSIZE=a4 $SIZEFULL -c "<</PageOffset [-$WIDTH2 0]>> setpagedevice" -f $1
 
SORT=""
PAGE="1"
 
while [ $PAGE -le $PAGES ]
do
        SORT=$SORT"A"$PAGE" B"$PAGE" "
        PAGE=$[$PAGE+1]
done
 
echo $SORT
 
pdftk A=left-sections.pdf B=right-sections.pdf cat $SORT output $1_finish.pdf  verbose
 
rm left-sections.pdf
rm right-sections.pdf

Test the script

So, time has come to test the script above!  :)

./convert_pdf.sh example.pdf

The output should be one PDF with the name "example_finish.pdf" including two DIN A4 pages.

Example Files


last edit 24.02.2016 by Bernhard