Click here to Skip to main content
15,887,596 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
C#
protected void btnGeneratePDF_Click(object sender, EventArgs e)
{
        Document document = new Document(PageSize.A4, 80, 50, 30, 65);
        StringBuilder strData = new StringBuilder(string.Empty);
       
        try
        {
            string strHTMLpath = @"D:\Projects\PP.odt";
            string strPDFpath = @"D:\Projects\MyPDF4.pdf";
            StringWriter sw = new StringWriter();
            HtmlTextWriter htw = new HtmlTextWriter(sw);
            MemoryStream ms = new MemoryStream();
            StreamWriter strWriter = new StreamWriter(strHTMLpath, true, Encoding.Default);
            strWriter.WriteLine(htw.InnerWriter.ToString());
            strWriter.Close();
            strWriter.Dispose();
            iTextSharp.text.html.simpleparser.StyleSheet styles = new iTextSharp.text.html.simpleparser.StyleSheet();
            //styles.LoadTagStyle("ol", "leading", "16,0");

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

            document.Open();
            ArrayList objects = iTextSharp.text.html.simpleparser.HTMLWorker.ParseToList(new StreamReader(strHTMLpath, Encoding.Default), styles);

            //objects = iTextSharp.text.html.simpleparser.HTMLWorker.ParseToList(new StreamReader(strHTMLpath, Encoding.Default), styles);
            for (int k = 0; k < objects.Count; k++)
            {
                document.Add((IElement)objects[k]);
            }

            document.Close();
            //Response.Write(Server.MapPath(strPDFpath));
            Response.Write(strPDFpath);
            Response.ClearContent();
            Response.ClearHeaders();
            Response.ContentType = "application/pdf";
            Response.AddHeader("Content-Disposition", "attachment; filename=MyPDF.pdf");// + strPDFpath);
            //Response.ContentType = "application/octet-stream";
            Response.WriteFile(strPDFpath);
            Response.Flush();
            Response.Close();
            writer.Close();
        }
        catch (Exception ex)
        {
            document.Close();
            throw (ex);
        }
}

Pdf is generated but as a corrupted and .odt(openoffice file) is also getting corrupted. Any help is appreciated.
Posted
Updated 17-Nov-11 19:48pm
v2
Comments
JF2015 18-Nov-11 1:49am    
Edited to add code formatting.

1 solution

Actually I don't want to push my head into your code(on this weekend). But don't worry check these articles

HOW TO: Convert office documents to PDF using Open Office in C#[^]
Converting Microsoft Word Document to PDF format using OpenOffice.org (Portable)[^]
Generate PDF Using C#[^]
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900