Если вы хотите показать диалоговое окно «Сохранить как», чтобы пользователь мог выбрать место для сохранения PDF-файла на своем компьютере, вы можете использовать HTTP-заголовок Content-Disposition и установить его в качестве вложения. Также в приложении ASP.NET MVC вместо сохранения файла на сервере (что и делает ваш код в настоящее время), вы должны передать его клиенту:
public ActionResult DownloadPdf()
{
var mydoc = ...
mydoc.GenerateLetter(PdfData);
byte[] pdf = mydoc.DocumentBytes;
var reader = new PdfReader(pdf);
using (var encrypted = new MemoryStream())
{
PdfEncryptor.Encrypt(reader, encrypted, true, "abc123", "secret", PdfWriter.ALLOW_SCREENREADERS);
return File(encrypted.ToArray(), "application/pdf", PdfData.Name + ".pdf");
}
}
Теперь, когда пользователь переходит к этому действию контроллера /SomeController/DownloadPdf
, ему будет представлено диалоговое окно «Сохранить как», позволяющее ему загрузить зашифрованный файл PDF и сохранить его в выбранном месте на своем компьютере.