This next one looks like you wrote it.
It feels more complete, but it seems like the script isn't responding
Try this:
makeDialog();
//the preset and page range
var pp, pr;
function makeDialog(){
var theDialog = app.dialogs.add({name:"Choose a Preset", canCancel:true});
with(theDialog.dialogColumns.add()){
staticTexts.add({staticLabel:"Export Preset:"});
staticTexts.add({staticLabel:"Page Range:"});
}
with(theDialog.dialogColumns.add()){
pp = dropdowns.add({stringList:app.pdfExportPresets.everyItem().name, selectedIndex:3});
pr = textEditboxes.add({editContents:""});
}
if(theDialog.show() == true){
//dialog results preset and page range
pp = app.pdfExportPresets.item(pp.selectedIndex);
pr = pr.editContents.split(',');
main();
theDialog.destroy();
}
}
function main(){
var doc = app.activeDocument;
//make sure the doc has been saved
if (!doc.saved) {
alert("Please Save")
return
}
//path for the PDF export
var fp = doc.filePath + "/" + doc.name.replace(/\.[^\.]+$/, '') + ".pdf"
//the selected preset to use
var pre = app.pdfExportPresets.itemByName(pp.name);
//the page range (needs to be a string)
app.pdfExportPreferences.pageRange = pr.toString()
//export PDF, file path, show dialog, preset
doc.exportFile(ExportFormat.pdfType, File(fp), false, pre);
}