Может ли кто-нибудь сказать мне, как я могу создать файл PDF с помощью iTextSharp 7 и открыть диалоговое окно сохранения вместо сохранения его в определенном месте на диске?
Мой тестовый код следующий:
protected void btnPrint_OnClick(object sender, EventArgs e)
{
Document doc = new Document(PageSize.A4, 25f, 20f, 20f, 10f);
var output = new FileStream(Server.MapPath("MyFirstPDF.pdf"), FileMode.Create);
var writer = PdfWriter.GetInstance(doc, output);
doc.Open();
doc.Add(new Paragraph("test!"));
doc.Close();
}
@VDWWD На самом деле вы можете. Мое решение ниже





Обходной путь, который я нашел, заключается в следующем:
После создания документа:
string path = "C:\\...";
string fileName = "PdfFile.pdf";
FileInfo fileInfo = new FileInfo(path);
Byte[] FileBuffer = File.ReadAllBytes(fileInfo.FullName);
if (FileBuffer != null)
{
Response.ContentType = "application/pdf";
Response.AddHeader("Content-Disposition", "attachment; filename = " + fileName);
Response.AddHeader("content-length", FileBuffer.Length.ToString());
Response.BinaryWrite(FileBuffer);
Response.Flush();
//DELETE FILE AFTER DOWNLOAD
fileInfo.Delete();
Response.End();
}
Клиентский компьютер контролирует диалоговое окно сохранения. Вы не можете влиять на него с сервера с помощью кода.