#asp.net #asp.net-core #pdf
#asp.net #asp.net-ядро #PDF
Вопрос:
Короче говоря, я хочу создать кнопку, которая распечатывает PDF-файл на компьютер пользователя, поэтому сначала я создаю PDF-файл в базе данных / файле сервера, а затем загружаю его пользователю.
С помощью этого кода я могу создать PDF-файл на сервере, затем я искал, как сделать его загружаемым для пользователя.. Пока не повезло, в большинстве ошибок говорилось: «… это физический путь, но ожидался виртуальный путь».
вот код
private void cetak_pdf(string s_id, string CompanyCode , string zpath)
{
bool SUCCESS = true;
string sErrMsg = "";
string sFileName = "";
DiskFileDestinationOptions diskOpts = null;
try
{
sFileName = s_id;
diskOpts = new DiskFileDestinationOptions();
diskOpts.DiskFileName = Server.MapPath("~" "\pdf\" zpath CompanyCode "_" sFileName ".pdf");
//Response.Write(diskOpts.DiskFileName);Response.End();
// this is the file created E:GIA_25pdfCompanyAddress00000003_003.pdf
rptDoc.ExportOptions.ExportFormatType = ExportFormatType.PortableDocFormat;
rptDoc.ExportOptions.ExportDestinationType = ExportDestinationType.DiskFile;
rptDoc.ExportOptions.DestinationOptions = diskOpts;
rptDoc.Export();
Response.ContentType = "application/pdf";
//Response.AppendHeader("Content-Disposition", "attachment; filename=MyFile.pdf");
Response.TransmitFile(Server.MapPath("E:\GIA_25\pdf\CompanyAddress00000003_003.pdf"));
Response.End();
}
catch (Exception ex)
{
SUCCESS = false;
sErrMsg = ex.Message;
throw new Exception(sErrMsg);
}
}
помогите, пожалуйста, что-то новое в этом языке
Ответ №1:
Извините за мою ошибку: (вот правильный код для того, чтобы сделать его загружаемым
Response.ContentType = "APPLICATION/OCTET-STREAM";
// String Header = "Attachment; Filename=XMLFile.xml";
String Header = "Attachment; Filename=" "CompanyAddress" CompanyCode "_" sFileName ".pdf";
Response.AppendHeader("Content-Disposition", Header);
System.IO.FileInfo Dfile = new System.IO.FileInfo(Server.MapPath("~" "\pdf\" "CompanyAddress" CompanyCode "_" sFileName ".pdf"));
Response.WriteFile(Dfile.FullName);