vishal goyal Ответов: 1

Как скачать pdf файл в MVC


общественного недействительными в формате PDF()
{
MemoryStream workStream = новый MemoryStream();
Документ = новый документ();
PdfWriter.GetInstance (документ, рабочий поток).CloseStream = ложь;

документ.Открыть();

документ.Добавить (новый абзац ("msg"));
документ.Добавить (новый абзац (DateTime. Now. ToString()));
документ.Закрывать();

byte[] byteInfo = рабочий поток.Метод toArray();
рабочий поток.Write(byteInfo, 0, byteInfo.Длина);
рабочий поток.Позиция = 0;
Ответ.Буфер = true;

Ответ.AddHeader ("Content-Disposition", "attachment; filename=" + Server.HtmlEncode ("doc. pdf"));
Ответ.ContentType = " приложение / pdf";
Ответ.BinaryWrite(byteInfo);
//return new FileStreamResult(workStream, " application / pdf");
}

Что я уже пробовал:

когда я попробую это ... его скачать pdf и показать в этом pdf "msg".... но я хочу показать
таблица сотрудников в этом pdf-файле... как я могу это сделать?

F-ES Sitecore

Обратитесь к документации для любого pdf-писателя, который вы используете. Как кто-то может помочь, если вы используете стороннее программное обеспечение, но не говорите, что это за программное обеспечение? Кроме того, название темы вводит в заблуждение, это помощь в создании нужного вам PDF-файла, а не его загрузка.

1 Ответов

Рейтинг:
0

RAVI RANJAN OJHA

Привет,
  Проверьте этот код, он будет работать в соответствии с вашими требованиями.
Объект " PdfPTable "создается в виде таблицы с пятью столбцами, а затем используется" AddCell " для добавления заголовка и значений.

public void pdf()
        {
 
            Employees emp = new Employees();

            MemoryStream workStream = new MemoryStream();
            Document document = new Document();
            PdfWriter.GetInstance(document, workStream).CloseStream = false;

            document.Open();

            document.Add(new Paragraph("msg"));
            document.Add(new Paragraph(DateTime.Now.ToString()));

            
            
            PdfPTable table = new PdfPTable(5); 
            // To show data in table.
            // "5" total number of columns.


            // Here I have set width of every columns.
            float[] widths = new float[] { 100f, 80f, 100f, 90f, 130f };
            table.SetWidths(widths);

            // Name of the header for each column.
            table.AddCell("Employee Name");
            table.AddCell("Experience in Months");
            table.AddCell("Band");
            table.AddCell("Designation");
            table.AddCell("Current Project");

            // Adding value in the table.
            // If you are getting list values the use FOREACH loop to show all data in                                                     table  
            table.AddCell(emp.Name);
            table.AddCell(emp.Experience.ToString());
            table.AddCell(emp.Band);
            table.AddCell(emp.Designation);
            table.AddCell(emp.Project);
            
            // Here I am adding table to the document.
            document.Add(table);
            document.Close();

            byte[] byteInfo = workStream.ToArray();
            workStream.Write(byteInfo, 0, byteInfo.Length);
            workStream.Position = 0;
            Response.Buffer = true;

            Response.AddHeader("Content-Disposition", "attachment; filename= " + Server.HtmlEncode("doc.pdf"));
            Response.ContentType = "APPLICATION/pdf";
            Response.BinaryWrite(byteInfo);
        }


Это класс, в котором я извлекаю данные из базы данных. Здесь я сделал жесткое кодирование, если вы хотите, вы можете получить данные из базы данных с помощью Sqlconnection и все такое.

public class Employees
    {
        // Here I have done hard coding if you want, you can retrieve data from database. 
        public string Name = "Smith";
        public int Experience = 0;
        public string Band = "B4";
        public string Designation = "Software Engineer";
        public string Project = "XYZ";
    }


Prateek Dalbehera

Простой &усилителя; прямой вперед решение...

RAVI RANJAN OJHA

Спасибо Prateek для обратной связи.