VS 2008 How To Export Gridview To Pdf Using ITextSharp
Jan 26, 2011
I'm trying to export my gridview to pdf but the html parsing of the iTextSharp control seems to be failing. I have to create an HtmlForm like below and add the gridview to it because the code is in a custom control, so I cant pass the gridview directly. I get an error saying "gridview must be in a form tag with runat=server"
If I don't insert the test header like i do below, I get an error saying "document has no pages"
At the moment the pdf is generated but it only has the text "testing".
The htmlform html doesn't get parsed i think. Here is a small portion of what the newHtml variable below contains when I create it.
The gridview has different column widths because of the information that is being displayed, those sizes are set .aspx file. But, the generated pdf file auto adjusts the width of each column to be the same size, therefore the information is shrinked and doesnt look good..
I tried the following:
gridview.Width =100; or gridview.Style.Add("width","100"); or gridview.Columns[3].ItemStyle.Width =Unit.Pixel(10);
And many more but haven't been able to adjust the gridview to it's original columns width. How can I do that?
This is the code I use to generate the PDF file:
Response.ContentType = "application/pdf"; Response.AddHeader("content-disposition", "attachment;filename=UserDetails.pdf"); Response.Cache.SetCacheability(HttpCacheability.NoCache); StringWriter sw = new StringWriter(); HtmlTextWriter hw = new HtmlTextWriter(sw);
I am using the iTextSharp library to export a gridview with images to pdf. Some of the image urls are not directly to an image, but rather direct you to a .aspx page which displays the image. (includes a parameter with the id, and when you view the url in a browser you can see the image.) When I run the below code, I get an error that the image url in not a recognized image format.
Code: Response.ContentType = "application/pdf"; Response.AddHeader("content-disposition", "attachment;filename=GridViewExport.pdf"); Response.Cache.SetCacheability(HttpCacheability.NoCache); StringWriter sw = new StringWriter(); HtmlTextWriter hw = new HtmlTextWriter(sw);
I have a question on the subject to export the contents of a panel to pdf, can export the panel even if it has some controls such as GridView, DropDownList, etc.? I have the following code:
I had to integrate the GridView to a form that is created at runtime because I said I should be in one, but even so when I export the file I get blank, really I do not know what I'm doing wrong and I have many controls that I have to export.
I am using ITextSharp to create a pdf. But when I am binding data to Gridview dynamically which was actually a result of ajax webmethod, its showing a blank PDF file. So how can I export dynamically binded data to GridView to PDF. Is there any other way to export dynamically binded gridview data to PDF?
I m doing a project to export the data from Gridview to PDF. Everything was fine and a new pdf document has been opened whenever I click the PDF image but there was no records displayed in it.
I have 15 records in Gridview and those records have displayed using Table Adapter. I used the Sand and Sky Auto Formatting option in Gridview and color, tablecell width, 15 rows are displayed perfectly in PDF without the text. what am I missing.
using System; using System.Collections; using System.Configuration; using System.Data; using System.Linq; using System.Web; using System.Web.Security;
I am running into a problem with the btnPdf.on pdfDoc.Close it gives me an IOException was unhandled by user code.. The detail is The document has no pages.. I have a populated grid.. The only changes I made were to change the filename to filename LotGrid.pdf and the grid name to the name of my gridview..
I'm working on dynamically filling in the fields on a pdf document using ITextSharp. I'd like to be able to determine the "export value" of the checkbox is from the codebehind in order to determine what value to send to this checkbox if it should be checked. Most of the documents I've worked with in the past had the same export value for every check box but the one I'm currently working with varies from checkbox to checkbox. I could go through all of the text boxes and make them consistent but it would save a lot of time in the future if I could just determine what the export value of these checkboxes are at runtime and set them accordingly.I tried to implement the solution below in C# and ended up with the following code:
When converting an aspx page to pdf using itextsharp external css is not working.I dont want to create tables for exporting to PDf as its a complex design .I am able to generate the pdf but css is not getting applied. I am using the latest relese of itextsharp.dll.
Protected Sub btnExport_Click(ByVal sender As Object, ByVal e As EventArgs)Response.ContentType = "application/pdf"Response.AddHeader("content-disposition", "attachment;filename=TestPage.pdf")Response.Cache.SetCacheability(HttpCacheability.NoCache)Dim sw As New StringWriter()Dim hw As New HtmlTextWriter(sw)Me.Page.RenderControl(hw)Dim sr As New StringReader(sw.ToString())Dim pdfDoc As New Document(PageSize.A4, 10.0F, 10.0F, 100.0F, 0.0F)Dim htmlparser As New HTMLWorker(pdfDoc)PdfWriter.GetInstance(pdfDoc, Response.OutputStream)pdfDoc.Open()htmlparser.Parse(sr)pdfDoc.Close()Response.Write(pdfDoc)Response.[End]()End Sub
I am using above code but getting error:
htmlparser.Parse(sr)
is not defining proper path for the images:
Exception Details: System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:ImagesLayoutan-Logo.png'.
I have a custom control gridview:I have a filter row in the header of each column with a textbox and a button to filter. when the user clicks the filter button this is one of the blocks of code that get executed
Code: Protected Overridable Sub ApplyFilterCommand(ByVal filterCommand As String) Dim dsv As DataSourceView = Me.GetData
If (TypeOf dsv Is SqlDataSourceView) Then
[code]....this works. However, all rows from the datasource are exported. say the initial number of rows where 54. I then filter a column, the number of rows in the gridview are now 29.I then export to excel, and all 54 rows are exported.
StringWriter sw = new StringWriter(); HtmlTextWriter hw = new HtmlTextWriter(sw); lblChemicalFormula.RenderControl(hw); StringReader sr = new StringReader(sw.ToString()); HTMLWorker htmlparser = new HTMLWorker(document);
I need to be able to export PDF's that I am creating to JPEG, so that users can have a screenshot/thumbnail of the end product, which is faster than opening the whole PDF.
I am running this on an ASP.NET website running in Medium Trust in the Rackspace Mosso Cloud.
I have yet to find a library that will either work in Medium trust, or in the case of ABC PDF, which works great locally, wont load in Mosso. Maybe Mosso has a custom trust level?
I know that iTextSharp works on Mosso, but I haven't been able to figure how to "screenshot" a single page of a PDF, or export a page to JPEG.
How to save webpage as pdf... Am using asp.net 4.0 and oracle 10g. and code behind language as vb.net.I have one button. that converts the web page to pdf.It shows Could not find file 'C:....' in htmlparser.Parse(sr) error...
Response.ContentType = "application/pdf" Response.AddHeader("content-disposition", "attachment;filename=psno.pdf") Response.Cache.SetCacheability(HttpCacheability.NoCache) Dim sw As New StringWriter()
I am creating a pdf document with fields from sql database using iTextsharp,after a client inputs information, the next button is pressed each page is saved in new row with page01,page02 etc as a column within that database. I would like iTextsharp to loop and create a new page based on this page number and have one pdf doc. my code is as below.
protected void GenerateReport(object sender, EventArgs e) { DataRow dr = GetData("SELECT * FROM OnSiteWorkTx where DocID = " + DropDownListPdf.SelectedItem.Value).Rows[0]; ;
how to export my aspx page (include buttons and Grids) to PDF? Searching the web I found this component, but it works only with normal html If my page has Grids or Buttons, these do not appear in PDF. My current code for export to PDF; This code exports only basic html (no buttons or grids)
string attachment = "attachment; filename=AllPage.pdf"; Response.ClearContent(); Response.AddHeader("content-disposition", attachment); Response.ContentType = "application/pdf"; StringWriter stw = new StringWriter(); HtmlTextWriter htextw = new HtmlTextWriter(stw); GridView1.AllowPaging = false; GridView1.DataBind(); GridView1.RenderControl(htextw); Document document = new Document(); PdfWriter.GetInstance(document, Response.OutputStream); document.Open(); StringReader str = new StringReader(stw.ToString()); HTMLWorker htmlworker = new HTMLWorker(document); htmlworker.Parse(str); document.Close(); Response.Write(document); Response.End();
I want to convert a repated contents of a repeater (binded from databse )to pdf using iTextSharp so that every repeated contents comes in new pdf page.. two or multiple unique records should come individually in new pdf page.
Server Error in '/POD/POMLNT' Application. --------------------------------------------------------------------------------
Could not find a part of the path 'c:windowssystem32inetsrvPOMLNTImagesPhotos333827.jpg'. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.IO.DirectoryNotFoundException: Could not find a part of the path 'c:windowssystem32inetsrvPOMLNTImagesPhotos333827.jpg'.
Source Error: Line 270: PdfWriter.GetInstance(pdfDoc, Response.OutputStream) Line 271: pdfDoc.Open() Line 272: htmlparser.Parse(sr) Line 273: pdfDoc.Close() Line 274: Response.Write(pdfDoc)
Im using Visual Studio 2008 and i have created a GridView which displays data from an SQL Table, how could i export this data into an Excel sheet on click of a button.
This is the first time I've worked with itextsharp. I'm maintaining existing code so most of the work was already done for me. I have a question on how to do this enhancement.
My code currently dynamically generates a PDF with n-pages. I want to remove the code that generates the nth page and instead pull in a static PDF document. So in other words I have these variable data that I'm creating cells and tables from, but my last page is non-changing and we want to move from dynamically generating it to just pulling it in from an existing file.
I think this is the relevant code you would want to see:
Code: // This method builds the PDF byte[] bytes = (byte[])BuildPdf(startDT, endDT); //Clear out the response Response.Clear(); Response.ClearContent(); //clear out the headers Response.ClearHeaders(); //add the new PDF headers
[Code] ...
BuildPDF() does all the work with the variably-occurring pages and ends with this:
Code: // Add footer page CreateFooterPage(); // Close the document to complete it PDFDocument.Close(); stream.Flush(); stream.Position = 0;
[Code] ....
It is CreateFooterPage() that I want to change to just open an existing pdf, read it into some object and append it to this.PDFDocument. I know I am way oversimplifying it but simply stated, that's it.