代码从C#.net中的openoffice文件(.odt)生成PDF [英] code to generate PDF from openoffice file(.odt) in C#.net

查看:323
本文介绍了代码从C#.net中的openoffice文件(.odt)生成PDF的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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已生成,但由于已损坏,.odt(openoffice文件)也已损坏.感谢您的帮助.


Pdf is generated but as a corrupted and .odt(openoffice file) is also getting corrupted. Any help is appreciated.

推荐答案

实际上,我不想在您的代码中投入精力(在这个周末).但不要担心,请查看这些文章

如何:使用C#中的Open Office将Office文档转换为PDF [使用OpenOffice.org(便携式)将Microsoft Word文档转换为PDF格式 [使用C#生成PDF [
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#[^]


这篇关于代码从C#.net中的openoffice文件(.odt)生成PDF的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆