zoukankan      html  css  js  c++  java
  • <转>C#读取doc,pdf,ppt文件

    doc  pdf ppt与 txt之间的转换 :

    组件的作用一般是将文件读出成字符格式,并不是单纯的转换文件名后缀,所以需要将读出的东西写入txt文件 。

     

    添加office引用

    .net中对office中的word及ppt进行编程时,确保安装office时已经安装了word,ppt可编程组件(自定义安装时可查看)或者安装“Microsoft Office 2003 Primary Interop Assemblies”

    安装后,在编程页面添加引用:

    添加引用-com—microsoft powerpoint object 11.0 libaray/word 11.0 object library;

    还得添加office组件

    using Microsoft.Office.Interop.Word;

    using Microsoft.Office.Interop.PowerPoint;

     

    using org.pdfbox.pdmodel;                    

    using org.pdfbox.util;

     

    using Microsoft.Office.Interop.Word;

    using Microsoft.Office.Interop.PowerPoint;

    public void pdf2txt(FileInfo file,FileInfo txtfile)

        {

            PDDocument doc = PDDocument.load(file.FullName);

            PDFTextStripper pdfStripper = new PDFTextStripper();

            string text = pdfStripper.getText(doc);

                StreamWriter swPdfChange = new StreamWriter(txtfile.FullName, false, Encoding.GetEncoding("gb2312"));

            swPdfChange.Write(text);

            swPdfChange.Close();

        }

     

    对于doc文件中的表格,读出的结果是去除掉了网格线,内容按行读取。

        public void word2text(FileInfo file,FileInfo txtfile)

        {

     

            object readOnly = true;

            object missing = System.Reflection.Missing.Value;

            object fileName = file.FullName;

            Microsoft.Office.Interop.Word.ApplicationClass wordapp = new Microsoft.Office.Interop.Word.ApplicationClass();

            Document doc = wordapp.Documents.Open(ref fileName,

        ref missing, ref readOnly, ref missing, ref missing, ref missing,

        ref missing, ref missing, ref missing, ref missing, ref missing,

        ref missing, ref missing, ref missing, ref missing, ref missing);

            string text = doc.Content.Text;

            doc.Close(ref missing, ref missing, ref missing);

            wordapp.Quit(ref missing, ref missing, ref missing);

            StreamWriter swWordChange = new StreamWriter(txtfile.FullName, false, Encoding.GetEncoding("gb2312"));

            swWordChange.Write(text);

            swWordChange.Close();

     

        }

     

        public void ppt2txt(FileInfo file, FileInfo txtfile)

        {

             Microsoft.Office.Interop.PowerPoint.Application pa = new Microsoft.Office.Interop.PowerPoint.ApplicationClass();

            Microsoft.Office.Interop.PowerPoint.Presentation pp = pa.Presentations.Open(file.FullName,

                            Microsoft.Office.Core.MsoTriState.msoTrue,

                            Microsoft.Office.Core.MsoTriState.msoFalse,

                            Microsoft.Office.Core.MsoTriState.msoFalse);

            string pps = "";

            StreamWriter swPPtChange = new StreamWriter(txtfile.FullName, false, Encoding.GetEncoding("gb2312"));

     

            foreach (Microsoft.Office.Interop.PowerPoint.Slide slide in pp.Slides)

            {

                foreach (Microsoft.Office.Interop.PowerPoint.Shape shape in slide.Shapes)

     

                    pps += shape.TextFrame.TextRange.Text.ToString();

     

            }

            swPPtChange.Write(pps);

            swPPtChange.Close();

     

     

        }

     

    读取不同类型的文件

        public StreamReader text2reader(FileInfo file)

        {

            StreamReader st = null;

            switch (file.Extension.ToLower())

            {

                case ".txt":

                    st = new StreamReader(file.FullName, Encoding.GetEncoding("gb2312"));

                    break;

                case ".doc":

                    FileInfo wordfile = new FileInfo(@"E:\my programs\200807program\FileSearch\App_Data\word2txt.txt");//不能使用相对路径,想办法改进

                    word2text(file, wordfile);

                    st = new StreamReader(wordfile.FullName, Encoding.GetEncoding("gb2312"));

                    break;

                case ".pdf":

                    FileInfo pdffile = new FileInfo(@"E:\my programs\200807program\FileSearch\App_Data\pdf2txt.txt");

                    pdf2txt(file, pdffile);

                    st = new StreamReader(pdffile.FullName, Encoding.GetEncoding("gb2312"));

                    break;

                case".ppt":

                    FileInfo pptfile = new FileInfo(@"E:\my programs\200807program\FileSearch\App_Data\ppt2txt.txt");

                    ppt2txt(file,pptfile);

                    st = new StreamReader(pptfile.FullName,Encoding.GetEncoding("gb2312"));

                    break;

            }

            return st;

        }

  • 相关阅读:
    MySQL 50条必练查询语句
    Spring MVC
    macaron 根目录默认为templates文件夹,所以如果启动目录同目录下有templates目录,要给它指定另一个文件夹
    table 表格配色
    应用连接数瓶颈解决方案
    idea修改文件的打开方式
    golang template使用
    childnode的after()方法失效问题
    vue双循环或者多循环作用于同一元素时,在外套template标签
    vue遇到组件数据变更了,但是不渲染的问题
  • 原文地址:https://www.cnblogs.com/qingshan/p/2642626.html
Copyright © 2011-2022 走看看