En cierta ocasión me encontré con ese problema y buscando información encontré una forma de hacerlo que en principio me pareció un poco "bruta" y que iba a ser lento, pero una vez probado funcionó bien y rápido.
Se trata de crear un bucle y comprobar si ya existe, algo así como:
Código:
for i=1 to 100
if not fileexists("documento"+inttostr(i)+".pdf") then
begin
tratarpdf(i)
break/exists
end;
Código:
tratarpdf( i :int )
begin
// aquí se crea, se abre y cuando termina se borra.
end;