Basically it can be done in InDesign with this script:
var doc = app.activeDocument;
if (doc.pages.length < 2) doc.pages.add();
// put image on page 2
var file = 'd:/temp/back_page.psd';
place_image_on_page(file, doc.pages[1]);
// get PSD files for page 1
var files = Folder('d:/temp/front').getFiles('*.psd');
var output_folder = Folder('d:/temp/pdf');
// show progress bar
var bar = new Window("palette", "Progress...");
var stat = bar.add("statictext", undefined, "");
var progressbar = bar.add("progressbar", [15,15,400,35], 0, 100);
stat.characters = 50;
bar.center();
bar.show();
// loop through the files
for (var f in files) {
// delete old and put new image on page 1
try { doc.pages[0].rectangles[0].remove() } catch(e) {}
place_image_on_page(files[f], doc.pages[0]);
// export the doc in PDF
var preset = app.pdfExportPresets.item("[High Quality Print]");
var file_name = parseInt(f) + 1 + '.pdf';
var pdf_file = File(output_folder + '/' + file_name);
// update the progress bar
progressbar.value = ++f/files.length*100;
stat.text = 'Make ' + file_name;
bar.update();
doc.exportFile(ExportFormat.pdfType, pdf_file, false, preset);
}
bar.close()
alert('Done!');
// ----------------------------------------------------------------------------
function place_image_on_page(file, page) {
var img = page.place(File(file));
doc.align(img, AlignOptions.HORIZONTAL_CENTERS, AlignDistributeBounds.PAGE_BOUNDS);
doc.align(img, AlignOptions.VERTICAL_CENTERS, AlignDistributeBounds.PAGE_BOUNDS);
img[0].parent.fit(FitOptions.FRAME_TO_CONTENT);
}
Put your files in these folders:
d:/temp/back_page.psd
-- PSD for page 2 (back page)
d:/temp/front/*.psd
-- PSD files for page 1 (front page)
d:/temp/pdf/
-- folder for PDF files
Create empty InDesign document with correct size and run the script. It saves two-side PDFs in the folder d:/temp/pdf
. Names of these pdf files will be 1.pdf
, 2.pdf
, 3.pdf
etc.

