A size of 1 KB indicates that the created file is just an empty PDF.
You should insert checks in your code to see if each step is working as expected:
Are the files downloaded?
Which sizes have the existing file?
Are the files listed in your
pdf_files
?
Does PdfFileReader() reads files?
Is the content appended to the merger?
According to the
PdfFileMerger
documentation there should be no need to use a reader. Just pass the path to the
append
function (creating already the stream object here):
merger.append(file(os.path.join(files_dir, filename), 'rb'))