Hi sushma123,
Refer below sample.
Database
CREATE TABLE [dbo].[Language](
[ID] INT PRIMARY KEY IDENTITY,
[Language] [VARCHAR](MAX) NULL,
[Content] [NVARCHAR](MAX) NULL
)
INSERT INTO [dbo].[Language] VALUES('English',N'World is beautiful.')
INSERT INTO [dbo].[Language] VALUES('Hindi',N'दुनिया सुंदर है।')
INSERT INTO [dbo].[Language] VALUES('Marathi',N'जग सुंदर आहे.')
INSERT INTO [dbo].[Language] VALUES('Gujarati',N'વિશ્વ સુંદર છે.')
INSERT INTO [dbo].[Language] VALUES('Urdu',N'دنیا خوبصورت ہے.')
INSERT INTO [dbo].[Language] VALUES('Persian',N'جهانی زیبا است.')
INSERT INTO [dbo].[Language] VALUES('Arabic',N'العالم هو جميل.')
INSERT INTO [dbo].[Language] VALUES('Tamil',N'உலக அழகாக இருக்கிறது.')
INSERT INTO [dbo].[Language] VALUES('Telugu',N'ప్రపంచ అందమైన ఉంది.')
Namespaces
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.tool.xml;
using System.Text;
Controller
public class HomeController : Controller
{
// GET: Home
public ActionResult Index()
{
LanguageEntities entities = new LanguageEntities();
List<Language> languages = entities.Languages.ToList();
return View(languages);
}
[HttpPost]
[ValidateInput(false)]
public FileResult Export(string GridHtml)
{
FontOverrider fontOverrider = new FontOverrider(Environment.GetEnvironmentVariable("windir") + @"\fonts\ARIALUNI.TTF");
using (MemoryStream stream = new MemoryStream())
{
Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 100f, 0f);
PdfWriter writer = PdfWriter.GetInstance(pdfDoc, stream);
pdfDoc.Open();
using (var msCss = new MemoryStream(Encoding.UTF8.GetBytes("")))
{
using (var msHtml = new MemoryStream(Encoding.UTF8.GetBytes(GridHtml)))
{
XMLWorkerHelper.GetInstance().ParseXHtml(writer, pdfDoc, msHtml, msCss, Encoding.UTF8, fontOverrider);
}
}
pdfDoc.Close();
return File(stream.ToArray(), "application/pdf", "Grid.pdf");
}
}
public class FontOverrider : FontFactoryImp
{
private readonly BaseFont baseFont;
public FontOverrider(string path, string encoding = BaseFont.IDENTITY_H, bool embedded = BaseFont.EMBEDDED)
{
if (!System.IO.File.Exists(path))
{
throw new FileNotFoundException("Could not find the supplied font file", path);
}
baseFont = BaseFont.CreateFont(path, encoding, embedded);
}
public override Font GetFont(string fontname, string encoding, bool embedded, float size, int style, BaseColor color, bool cached)
{
return new Font(baseFont, size, style, color);
}
}
}
View
@model IEnumerable<HTML_PDF_Language_MVC.Language>
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
</head>
<body>
<div id="Grid">
<table cellpadding="5" cellspacing="0" style="border: 1px solid #ccc;font-size: 9pt;">
<tr>
<th style="background-color: #B8DBFD;border: 1px solid #ccc">Language</th>
<th style="background-color: #B8DBFD;border: 1px solid #ccc">Content</th>
</tr>
@foreach (Language language in Model)
{
<tr>
<td style="width:120px;border: 1px solid #ccc">@language.Language1</td>
<td style="width:120px;border: 1px solid #ccc">@language.Content</td>
</tr>
}
</table>
</div>
<br />
<br />
@using (Html.BeginForm("Export", "Home", FormMethod.Post))
{
<input type="hidden" name="GridHtml" />
<input type="submit" id="btnSubmit" value="Export" />
}
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
$(function () {
$("#btnSubmit").click(function () {
$("input[name='GridHtml']").val($("#Grid").html());
});
});
</script>
</body>
</html>