Thanks Owen. Your reply got me on the right track, combined with some help from Kevin at Esri who sent me the code pasted below. Have marked your answer as correct.
The step I was missing was setting the parameter to 'derived' in the script tool properties to make the arcpy.SetParameter line to work.
import arcpy, os
newName = arcpy.GetParameterAsText(0)
startFile = "e:/temp/Paul/start.zip"
#create file, do something, etc
outputFile = os.path.join(arcpy.env.scratchFolder, newName + ".zip")
arcpy.Copy_management(in_data=startFile, out_data=outputFile, data_type="File")
#Can also do shutil to copy, or just give the PDF the name you want when you originally create, thus you don’t need to rename
#Finally, set that file path as your derived output parameter
arcpy.SetParameterAsText(1, outputFile)