misc python code
This commit is contained in:
67
code/misc/python/scripts/pdfmerge.py
Normal file
67
code/misc/python/scripts/pdfmerge.py
Normal file
@@ -0,0 +1,67 @@
|
||||
#!/usr/bin/env python
|
||||
import sys
|
||||
try:
|
||||
from PyPDF2 import PdfFileReader, PdfFileWriter,PdfFileMerger
|
||||
except ImportError:
|
||||
from pyPdf import PdfFileReader, PdfFileWriter
|
||||
|
||||
def pdf_merge(input_files, output_stream, rotation=0):
|
||||
input_streams = []
|
||||
try:
|
||||
# First open all the files, then produce the output file, and
|
||||
# finally close the input files. This is necessary because
|
||||
# the data isn't read from the input files until the write
|
||||
# operation. Thanks to
|
||||
# https://stackoverflow.com/questions/6773631/problem-with-closing-python-pypdf-writing-getting-a-valueerror-i-o-operation/6773733#6773733
|
||||
for input_file in input_files:
|
||||
input_streams.append(open(input_file, 'rb'))
|
||||
writer = PdfFileWriter()
|
||||
for reader in map(PdfFileReader, input_streams):
|
||||
for n in range(reader.getNumPages()):
|
||||
page=reader.getPage(n)
|
||||
page.rotateClockwise(rotation)
|
||||
writer.addPage(page)
|
||||
writer.write(output_stream)
|
||||
finally:
|
||||
for f in input_streams:
|
||||
f.close()
|
||||
|
||||
def fileslist (directorypath):
|
||||
import glob, os
|
||||
files= glob.glob(directorypath+'/*.pdf')
|
||||
return files
|
||||
|
||||
|
||||
def pdf_cat(input_files, outputfilename="results.pdf"):
|
||||
pdfs = input_files
|
||||
merger = PdfFileMerger()
|
||||
|
||||
for pdf in pdfs:
|
||||
merger.append(PdfFileReader(pdf, 'rb'))
|
||||
|
||||
merger.write(outputfilename)
|
||||
merger.close()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
if sys.platform == "win32":
|
||||
import os, msvcrt
|
||||
msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY)
|
||||
|
||||
#pdf_cat(sys.argv[1:], sys.stdout)
|
||||
output_path=r'/home/dl92/Documents/DigitalPaper/Upload/merged.pdf'
|
||||
output_path2=r'/home/dl92/Documents/DigitalPaper/Upload/Firework Maker.pdf'
|
||||
files=fileslist(r'/home/dl92/Documents/DigitalPaper/Upload')
|
||||
files.sort()
|
||||
output_stream = open(output_path, 'wb')
|
||||
pdf_merge(files[0:5] ,output_stream,90)
|
||||
output_stream.close()
|
||||
|
||||
output_stream = open(output_path2, 'wb')
|
||||
pdf_merge([output_path]+files[5:7] ,output_stream,0)
|
||||
output_stream.close()
|
||||
#pdf_merge(fileslist(r'/home/dl92/Documents/DigitalPaper/Upload'),output_stream)
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user