Pradeep_kaushik Ответов: 7

как я могу сохранить свою страницу aspx в pdf на событии нажатия кнопки


я хочу сохранить свою страницу в pdf файле как я могу это сделать

7 Ответов

Рейтинг:
50

Prasad_Kulkarni

Единственный способ сделать это-для пользователя иметь стороннее приложение, которое позволяет ему печатать в PDF-файл.

Большинство версий Adobe установят такой "принтер", и есть ряд других продуктов, таких как PDF Complete, которые хорошо работают.

Посмотрите на подобный ответ: Преобразование страницы aspx в PDF[^]

..и еще больше подобных нитей на КП[^]


Рейтинг:
37

Manas Bhardwaj

.Net не имеет встроенной поддержки PDF. Для этого вам нужно использовать сторонний компонент. Проверять Гугл[^], есть много бесплатных / платных компонентов.


Pradeep_kaushik

хорошо спасибо

Рейтинг:
1

Sandip.Nascar

Попробуйте url-адрес
http://csharp-source.net/open-source/pdf-libraries[^]

Более того, чтобы сэкономить ваше время, в codeproject уже есть статья с исходным кодом,

Учебники по созданию PDF-файлов с помощью C# 2.0[^]

chhers


Рейтинг:
1

ridoy

Вам нужно использовать iTextSharp.dll который легко преобразует вашу страницу в pdf.
Смотрите какой-нибудь код здесь..
http://www.velocityreviews.com/forums/t63572-convert-an-aspx-page-to-a-pdf-file-with-asp-net-c.html[^]
и тоже смотри..
Создание PDF-документов в ASP.NET[^]


Рейтинг:
1

prashant patil 4987

Эй хии,
Используйте приведенный ниже код

protected void lbtn_PDF_Click(object sender, EventArgs e) 
{ 
   Uri strurl = Request.Url; 
   string url = strurl.ToString(); 
   string text = GetPageText(url); 
   string filepath = Server.MapPath("test.html"); 
   StreamWriter writer = new StreamWriter(filepath); 
   writer.Write(text); 
   writer.Close(); 
   htmltopdf(text); 
} 

public string GetPageText(string url) 
{ 
   string htmlText = string.Empty; 
   string FILE_NAME = Server.MapPath("test.xml"); 
   try 
   { 
      HttpWebRequest requestIP = (HttpWebRequest)WebRequest.Create(url); 
      CookieContainer cc = new CookieContainer(); 
      requestIP.CookieContainer = cc; 
      requestIP.Timeout = 100000; 
      using (HttpWebResponse responseIP = (HttpWebResponse)requestIP.GetResponse()) 
      { 
         using (Stream streamIP = responseIP.GetResponseStream()) 
         { 
            using (StreamReader readerText = new StreamReader(streamIP)) 
            { 
               htmlText = readerText.ReadToEnd(); 
               string text = htmlText; 
               StreamWriter writer = new StreamWriter(FILE_NAME); 
               writer.Write(text); 
               writer.Close(); 
            } 
         } 
      } 
   } 
   return htmlText; 
} 

public void htmltopdf(string strHtml) 
{ 
   Document doc = new Document(); 
   StringWriter sw = new StringWriter(); 
   StringReader sr = new StringReader(sw.ToString()); 
   HTMLWorker HTMLParser = new HTMLWorker(doc); 
   PdfWriter.GetInstance(doc, new FileStream(Server.MapPath("test.pdf"), System.IO.FileMode.Create)); 
   HTMLParser.Parse(sr); 
   if (File.Exists(Server.MapPath("test.htm"))) 
      File.Delete(Server.MapPath("test.htm")); 
   if (File.Exists(Server.MapPath("test.xml"))) 
      File.Delete(Server.MapPath("test.xml")); 
} 


[no name]

А PdfWriter-это что именно?

Рейтинг:
0

prashant patil 4987

Инструкции
1
Откройте редактор C#.

2
Создайте файл C# и добавьте следующий код.

3
Используйте пространство имен для вызова библиотеки iTextSharp:

using iTextSharp.text;

using iTextSharp.text.pdf;


4
Вызовите встроенный класс в iTextSharp и установите StringBuilder пустым:

Document document = new Document(PageSize.A4, 80, 50, 30, 65);

StringBuilder strData = new StringBuilder(string.Empty);


5
Добавьте путь для Aspx, который будет сгенерирован из содержимого GridView:

string strASPXpath = Server.MapPath("MyASPX.aspx");


6
Задайте путь для создания PDF-файла:

string strPDFpath = Server.MapPath("MyPDF.pdf");


7
Вызовите данные из HTML-файла и визуализируйте файл:

StringWriter sw = new StringWriter();

sw.WriteLine(Environment.NewLine);

sw.WriteLine(Environment.NewLine);

sw.WriteLine(Environment.NewLine);

sw.WriteLine(Environment.NewLine);

HtmlTextWriter htw = new HtmlTextWriter(sw);

gvSerchResult.AllowPaging = false;

gvSerchResult.AllowSorting = false;

BindGridView();

gvSerchResult.RenderControl(htw);

StreamWriter strWriter = new StreamWriter(strASPXpath, false, Encoding.UTF8);

strWriter.Write("<html><head></head><body>" + htw.InnerWriter.ToString() + "</body></html>");

strWriter.Close();

strWriter.Dispose();

8
Используйте парсер для преобразования содержимого ASPX в PDF:

iTextSharp.текст.HTML-код.simpleparser.

StyleSheet styles = new iTextSharp.text.html.simpleparser.StyleSheet();

styles.LoadTagStyle("ol", "leading", "16,0");

PdfWriter.GetInstance(document, new FileStream(strPDFpath, FileMode.Create));

document.Open();

9
Установите стили шрифтов для элементов на странице и добавьте элементы страницы:

ArrayList objects;

styles.LoadTagStyle("li", "face", "garamond");

styles.LoadTagStyle("span", "size", "8px");

styles.LoadTagStyle("body", "font-family", "times new roman");

styles.LoadTagStyle("body", "font-size", "12px");

document.NewPage();

objects = iTextSharp.text.html.simpleparser.

HTMLWorker.ParseToList(new StreamReader(strASPXpath, Encoding.Default), styles);

for (int k = 0; k < objects.Count; k++)

{

document.Add((IElement)objects[k]);

}

10
Очистите все используемые переменные из памяти и закройте:

{

document.Close();

Response.Write(Server.MapPath("~/" + strPDFpath));

Response.ClearContent();

Response.ClearHeaders();

Response.AddHeader("Content-Disposition", "attachment; filename=" + strPDFpath);

Response.ContentType = "application/octet-stream";

Response.WriteFile(Server.MapPath("~/" + strPDFpath));

Response.Flush();

Response.Close();

if (File.Exists(Server.MapPath("~/" + strPDFpath)))

{

File.Delete(Server.MapPath("~/" + strPDFpath));

}

}

11
Запустите файл C#, чтобы создать PDF-файл из файла ASPX.


[no name]

Шаг 0: Загрузите и установите iTextSharp оттуда, откуда вы его получаете....