68 lines
2.2 KiB
Python
68 lines
2.2 KiB
Python
#!/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)
|
|
|
|
|
|
|
|
|