Whew - I know it's been a while. Not sure if you have solved this problem or not!
Basically, since you are writing to disk, the problem you envision is correct - these users will overwrite one another (or try), and you will experience difficulties / problems.
The solution is writing the files with unique names. Also, and especially since these files do not need to persist, the classic way to do this is with base::tempfile() or fs::file_temp() (I prefer the latter, because the fs package makes OS file-munging stuff way easier).
What this does is it provides you with a unique filename in the R session's temp space (it gets cleaned up after the R session dies). You will also notice that it provides a unique location each time it is fired.
Note that paths will look different depending on your OS, and that you can specify tmpdir or tmp_dir to specify where the filenames are generated.
tempfile("myfile", tmpdir = tempdir(), fileext = ".pdf")
#> [1] "/var/folders/ry/3s4j_27s4snf2kpq08g_sblm0000gn/T//RtmpK8Z3t0/myfile7026575aa3a6.pdf"
tempfile("myfile", tmpdir = tempdir(), fileext = ".pdf")
#> [1] "/var/folders/ry/3s4j_27s4snf2kpq08g_sblm0000gn/T//RtmpK8Z3t0/myfile70267fae1417.pdf"
tempfile("myfile", tmpdir = tempdir(), fileext = ".pdf")
#> [1] "/var/folders/ry/3s4j_27s4snf2kpq08g_sblm0000gn/T//RtmpK8Z3t0/myfile70267da9337d.pdf"
fs::file_temp("myotherfile", tmp_dir = tempdir(), ext = ".pdf")
#> /var/folders/ry/3s4j_27s4snf2kpq08g_sblm0000gn/T/RtmpK8Z3t0/myotherfile70266f7393fe.pdf
fs::file_temp("myotherfile", tmp_dir = tempdir(), ext = ".pdf")
#> /var/folders/ry/3s4j_27s4snf2kpq08g_sblm0000gn/T/RtmpK8Z3t0/myotherfile7026cf941dc.pdf
fs::file_temp("myotherfile", tmp_dir = tempdir(), ext = ".pdf")
#> /var/folders/ry/3s4j_27s4snf2kpq08g_sblm0000gn/T/RtmpK8Z3t0/myotherfile70264052d92b.pdf
Created on 2018-08-06 by the reprex
package (v0.2.0).