Word转换PDF格式的C#第二版(不再使用WSH宿主脚本)

简介:

第一个版本,查看

为什么要写第二个版本呢,当时再完成项目时,比较赶,没有多考虑,就借用cscript方式写了个脚本,现在该项目已经开完评审会,有时间重新将该程序重写,直接使用纯C#来完成.

当时由于在使用ACRODISTXLib.PdfDistillerClass发生错误,主要是转换一篇文档后,无法释放,再次调用时发生错误.


同第一版一样,安装需要的环境,注意其中提到的安装打印机.以下代码并没有提供当前的打印机,而是使用系统默认的,即设置的"MS Publisher Color Printer".
注意必须添加引用Acrobat Distiller与WORD,本人使用的是WORD2003

 

using oWord = Microsoft.Office.Interop.Word;
private void WordConvert()
  {

    oWord.ApplicationClass word = new Microsoft.Office.Interop.Word.ApplicationClass();
    Type wordType= word.GetType();

    //打开WORD文档
    /*对应脚本中的
     var word = new ActiveXObject("Word.Application");
     var doc  = word.Documents.Open(docfile);
    */
    oWord.Documents docs = word.Documents;
    Type docsType = docs.GetType();
    object objDocName = @"c:\test.doc";
    oWord.Document doc = (oWord.Document)docsType.InvokeMember("Open", System.Reflection.BindingFlags.InvokeMethod, null, docs, new Object[] {objDocName, true, true});

    //打印输出到指定文件
    //你可以使用 doc.PrintOut();方法,次方法调用中的参数设置较繁琐,建议使用 Type.InvokeMember 来调用时可以不用将PrintOut的参数设置全,只设置4个主要参数
    Type docType = doc.GetType();
    object printFileName = @"c:\test.ps";
    docType.InvokeMember("PrintOut",System.Reflection.BindingFlags.InvokeMethod,null,doc,new object[]{false,false,oWord.WdPrintOutRange.wdPrintAllDocument,printFileName});
    //new object[]{false,false,oWord.WdPrintOutRange.wdPrintAllDocument,printFileName}
    //对应脚本中的word.PrintOut(false, false, 0, psfile);的参数

    //退出WORD
    //对应脚本中的word.Quit();
    wordType.InvokeMember("Quit", System.Reflection.BindingFlags.InvokeMethod,null, word, null);

   
    
   
    object o1= "c:\\test.ps";
    object o2= "c:\\test.pdf";
    object o3= "";

   //引用将PS转换成PDF的对象
   //try catch之间对应的是脚本中的 PDF.FileToPDF(psfile,pdffile,"");   //你可以使用 pdfConvert.FileToPDF("c:\\test.ps","c:\\test.pdf","");这样的转换方法,本人只是为了保持与WORD相同的调用方式
   try
   {
    ACRODISTXLib.PdfDistillerClass pdf = new ACRODISTXLib.PdfDistillerClass();
    Type pdfType = pdfConvert.GetType();
    pdfType.InvokeMember("FileToPDF",System.Reflection.BindingFlags.InvokeMethod,null,pdf,new object[]{o1,o2,o3});
    pdf = null;
   }
   catch{} //读者自己补写错误处理

    //为防止本方法调用多次时发生错误,必须停止acrodist.exe进程
    foreach(Process proc in System.Diagnostics.Process.GetProcesses())
    {
     int begpos;
     int endpos;

     string sProcName = proc.ToString();
     begpos = sProcName.IndexOf("(")+1;
     endpos = sProcName.IndexOf(")");
    
     sProcName=sProcName.Substring(begpos,endpos-begpos);

     if(sProcName.ToLower().CompareTo("acrodist")==0)
     {
      try
      {
       proc.Kill(); //停止进程
      }
      catch{}  //读者自己补写错误处理
      break;
     }
    }


  }

分类:  C# Asp.net

本文转自快乐就好博客园博客,原文链接:http://www.cnblogs.com/happyday56/archive/2008/01/04/1026020.html,如需转载请自行联系原作者
相关文章
|
1月前
|
机器学习/深度学习 人工智能 文字识别
Zerox:AI驱动的万能OCR工具,精准识别复杂布局并输出Markdown格式,支持PDF、DOCX、图片等多种文件格式
Zerox 是一款开源的本地化高精度OCR工具,基于GPT-4o-mini模型,支持PDF、DOCX、图片等多种格式文件,能够零样本识别复杂布局文档,输出Markdown格式结果。
138 4
Zerox:AI驱动的万能OCR工具,精准识别复杂布局并输出Markdown格式,支持PDF、DOCX、图片等多种文件格式
|
1月前
|
人工智能 文字识别 自然语言处理
Vision Parse:开源的 PDF 转 Markdown 工具,结合视觉语言模型和 OCR,识别文本和表格并保持原格式
Vision Parse 是一款开源的 PDF 转 Markdown 工具,基于视觉语言模型,能够智能识别和提取 PDF 中的文本和表格,并保持原有格式和结构。
210 19
Vision Parse:开源的 PDF 转 Markdown 工具,结合视觉语言模型和 OCR,识别文本和表格并保持原格式
|
2月前
|
人工智能 JSON Linux
利用阿里云GPU加速服务器实现pdf转换为markdown格式
随着AI模型的发展,GPU需求日益增长,尤其是个人学习和研究。直接购置硬件成本高且更新快,建议选择阿里云等提供的GPU加速型服务器。
利用阿里云GPU加速服务器实现pdf转换为markdown格式
|
2月前
|
人工智能 文字识别 数据挖掘
MarkItDown:微软开源的多格式转Markdown工具,支持将PDF、Word、图像和音频等文件转换为Markdown格式
MarkItDown 是微软开源的多功能文档转换工具,支持将 PDF、PPT、Word、Excel、图像、音频等多种格式的文件转换为 Markdown 格式,具备 OCR 文字识别、语音转文字和元数据提取等功能。
382 9
MarkItDown:微软开源的多格式转Markdown工具,支持将PDF、Word、图像和音频等文件转换为Markdown格式
|
3月前
|
安全 Java C#
Unreal Engine C# 脚本编写浅谈
本文介绍了在 Unreal Engine 中使用 C# 编写脚本的方法,涵盖环境搭建、基础概念、常见问题及代码案例。从安装插件到处理输入事件和加载蓝图,详细讲解了如何在 Unreal Engine 中高效利用 C# 进行开发。
78 3
|
3月前
|
XML C# 开发工具
C# 删除Word文档中的段落
【11月更文挑战第3天】本文介绍了两种方法来操作 Word 文档:一是使用 `Microsoft.Office.Interop.Word` 库,适用于 Windows 环境下操作 Word 文档,需引用相应库并在代码中引入命名空间;二是使用 Open XML SDK,适用于处理 .docx 格式的文档,通过引用 `DocumentFormat.OpenXml` 库实现。文中提供了示例代码,展示了如何打开、删除段落并保存文档。
|
4月前
|
Java Apache Maven
将word文档转换成pdf文件方法
在Java中,将Word文档转换为PDF文件可采用多种方法:1) 使用Apache POI和iText库,适合处理基本转换需求;2) Aspose.Words for Java,提供更高级的功能和性能;3) 利用LibreOffice命令行工具,适用于需要开源解决方案的场景。每种方法都有其适用范围,可根据具体需求选择。
|
4月前
|
Java Apache Maven
Java将word文档转换成pdf文件的方法?
【10月更文挑战第13天】Java将word文档转换成pdf文件的方法?
1350 1
|
4月前
|
JSON 数据格式
LangChain-20 Document Loader 文件加载 加载MD DOCX EXCEL PPT PDF HTML JSON 等多种文件格式 后续可通过FAISS向量化 增强检索
LangChain-20 Document Loader 文件加载 加载MD DOCX EXCEL PPT PDF HTML JSON 等多种文件格式 后续可通过FAISS向量化 增强检索
326 2
|
4月前
|
XML JSON 前端开发
C#使用HttpClient四种请求数据格式:json、表单数据、文件上传、xml格式
C#使用HttpClient四种请求数据格式:json、表单数据、文件上传、xml格式
949 0

热门文章

最新文章