Вместо того, чтобы перенаправлять браузер на созданный файл, вы можете обработать файл самостоятельно, используя собственный HttpHandler. Затем вы можете удалить файл сразу после его обработки или даже создать файл в памяти.
Напишите файл PDF непосредственно клиенту:
public class MyHandler : IHttpHandler {
public void ProcessRequest(System.Web.HttpContext context) {
context.Response.ContentType = "application/pdf";
// ...
PdfWriter.getInstance(document, context.Response.OutputStream);
// ...
или прочитайте уже сгенерированный файл 'filename', обслужите файл, удалите его:
context.Response.Buffer = false;
context.Response.BufferOutput = false;
context.Response.ContentType = "application/pdf";
Stream outstream = context.Response.OutputStream;
FileStream instream =
new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.Read);
byte[] buffer = new byte[BUFFER_SIZE];
int len;
while ((len = instream.Read(buffer, 0, BUFFER_SIZE)) > 0) {
outstream.Write(buffer, 0, len);
}
outstream.Flush();
instream.Close();
// served the file -> now delete it
File.Delete(filename);
Я не пробовал этот код. Вот как я думаю, это будет работать ...