Sunday, October 20, 2013

This script will work with the attached template in Linux.  It can probably be edited fairly easily to work with other OSes and templates with a bit of hacking...

#! /usr/bin/env python

import os

PAGEWIDTH = 3300
PAGEHEIGHT = 2550



# Chop up the pages to be comicified
filelist = os.listdir(".")
filelist.sort()
os.system ("rm -r /tmp/comicpages")
os.system("mkdir /tmp/comicpages")
i=0
for item in filelist:
  print item
  i=i+1
  os.system("convert " + item + " -gravity west -crop " + \
                     str(PAGEWIDTH/2) + "x" + str(PAGEHEIGHT) + \
                     " +repage /tmp/comicpages/com" + str(i) + "_%d.png")


# Stitch together so printing doublesided will make a book

filelist = []
filelist = os.listdir("/tmp/comicpages")
filelist.sort()
#os.system("mkdir /tmp/comicpages/finalpages")

finalpagecount = int(len(filelist)/2)

if not len(filelist)%2 == 0:
  print "Warning! You did not pick a multiple of 2 pages! Everything will be horrible!"

for i in range(0,finalpagecount):
  print "Merging pages " + str(filelist[i]) + " and " + str(filelist[-(i+1)])
  if (i%2)==0:
    os.system("convert +append /tmp/comicpages/" + filelist[i] + \
                      " /tmp/comicpages/" + filelist[-(i+1)] + " /tmp/comicpages/finalpage" + str(i) +".png")
  else:
    os.system("convert +append /tmp/comicpages/" + filelist[-(i+1)] + \
                      " /tmp/comicpages/" + filelist[i] + " /tmp/comicpages/finalpage" + str(i) +".png")

#os.system("rm /tmp/comicpages/com*.png")

print "Making Book"
os.system("convert /tmp/comicpages/finalpage*.png comicbook.pdf")
print "Done!"

No comments:

Post a Comment