前提条件:安装Acrobat Distillr,可以通过安装Acrobat Professional 版本实现。

1.在Winform下实现转换

很简单,需要引用COM组件 PDFMake

Code
        public static string ConvertPdf(string p_sFileSrc,string sTgtFile)
        {
            object missing = System.Type.Missing;
            try
            {
                PDFMAKERAPILib.PDFMakerApp app = new PDFMAKERAPILib.PDFMakerApp();
  
                if (File.Exists(sSrcFile))
                {
                    //获取PDF生成路径
                    int bSuccess = app.CreatePDF(sSrcFile, sTgtFile, PDFMAKERAPILib.PDFMakerSettings.kConvertAllPages, false, true, true, missing);
                    return Enum.GetName(typeof(PDFMAKERAPILib.PDFMakerRetVals), bSuccess);
                }
                else
                {
                    return "源文件不存在!";
                }
            }
            catch (Exception er)
            {
                return "文件转换失败!";
            }
        }
    }

2.在WebForm下转换

比上面复杂点,因为上面的代码在IIS时,就是转换不成功,花了点时间,发现原因是两个的用户不同,一个是管理员,一个是Asp.net 帐户或者是network Service 看IIS是5.0 还是6.0。想通过更改设置权限来解决,改了不少,效果是从一个错误,变成了另一个错误。

从网上搜索到下面这个办法,也是比较简单的。

前提条件:

(1)安装虚拟打印机:进入WINDOWS的控制面板,进入打印机,点击"添加打印机"图标,在安装对话框上"按一步",出现选择打印机时,在制造商一栏中选择"Generic",在打印机一栏中,选择"MS Publisher Color Printer",然后一路按下一步,知道安装结束。以下代码并没有提供当前的打印机,而是使用系统默认的,即设置的"MS Publisher Color Printer"。

(2)必须添加引用Acrobat Distiller与WORD,可以从COM组件中添加。

Code
private void WordConvert()
{
    oWord.ApplicationClass word = new Microsoft.Office.Interop.Word.ApplicationClass();
    Type wordType = word.GetType();

oWord.Documents docs = word.Documents;
    Type docsType = docs.GetType();
    object objDocName = @"c:\tmp\test.doc";
    oWord.Document doc = (oWord.Document)docsType.InvokeMember("Open", System.Reflection.BindingFlags.InvokeMethod, null, docs, new Object[] { objDocName, true, true });

//打印输出到指定文件
    Type docType = doc.GetType();
    object printFileName = @"c:\tmp\test.ps";
    docType.InvokeMember("PrintOut", System.Reflection.BindingFlags.InvokeMethod, null, doc, new object[] { false, false, oWord.WdPrintOutRange.wdPrintAllDocument, printFileName });
    wordType.InvokeMember("Quit", System.Reflection.BindingFlags.InvokeMethod, null, word, null);

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

//引用将PS转换成PDF的对象
    try
    {
        ACRODISTXLib.PdfDistillerClass pdf = new ACRODISTXLib.PdfDistillerClass();
        pdf.FileToPDF(o1, o2, o3);
    }
    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;
        }
    }
}

转载于:https://www.cnblogs.com/lne818/archive/2008/10/24/1318599.html

Word转pdf方法小结相关推荐

  1. 毕业论文图片格式、分辨率选择及高质量Word转PDF方法

    已知1:毕业论文盲评通常需要提交PDF文件. 已知2:PDF文件太大可能会导致翻页卡顿以及上传盲评网站失败. 已知3:Word转PDF方法不当可能会导致图像模糊. 已知4:打印机分辨率通常为300dp ...

  2. word转换pdf方法分享!word转换pdf软件合集。​

    word转换pdf方法分享!众所周知,将 Word 文档转换成 PDF 后,可以确保文档内容及格式在不同的设备.操作系统和软件中都能够保持一致,避免因为软件版本或者操作系统的差异而导致文档出现错乱等问 ...

  3. c 调用openoffice word转pdf_批量 Word 转 PDF 方法

    - START -手上有近百个 Word 文档需要转为 PDF, 怎么办?难道要一个一个的导出吗?确实,Office2010 以后版本的 Word 可以直接导出 PDF,是时候让 Python 来替我 ...

  4. 总结几种常见的Word转换PDF方法

    1.Microsoft Office 2010 .WPS Office 2010 环境 Word 2010.WPS Office 可以直接另存 Word 文档为 PDF,完美支持中文,具有极佳的质量和 ...

  5. Word怎么转换成PDF免费?分享适合你的Word转PDF方法

    随着数字化时代的到来,将文件转换为PDF格式已经成为一个常见的需求.PDF文件格式的广泛应用使其在各个领域都非常重要,而Word文档则是最常见的文件类型之一.因此,将Word转换为PDF的方法备受关注 ...

  6. 转 安装 Microsoft Office 环境下,几种常见的Word转换PDF方法

    PDF转WORD请参见:http://www.portablesoft.org/tags/pdf%E8%BD%AC%E6%8D%A2%E5%99%A8/ 1.Microsoft Office 2010 ...

  7. 微信公众号文章(HTML)转 Word、PDF 方法

    事情是这样的,一个朋友需要把一个微信公众号文章导出,然后转成 PDF :之后又加了一个需求,需要转成 Word.遂记录一下解决方案. 解决方案 HTML 转 PDF 用 Chrome 打开微信公众号链 ...

  8. word转换为pdf的好方法

    1.准备jar包:aspouse-word-14.11.0-jdk16.jar 2.代码示例: package com.utils; import java.io.File; import java. ...

  9. JAVA实现无损word转pdf文件完整代码教程

    前言 本来想写word转pdf和pdf转word的代码呢,没想到word转pdf就写了很多很多行代码才实现,为了方便大家消化理解,先写了word转pdf方法实现作为一篇文章. word转pdf实现思路 ...

  10. Word转换pdf技巧:通过pdf虚拟打印机生成pdf

    相信大部分人都有Word和PDF之间文件转换需求,就是找不到实用的转换技巧,今天小编就介绍几个转换方法,希望能帮到苦恼的朋友们. 一.Word转PDF方法 1. 在线转换PDF文件 在线转换文件是一种 ...

最新文章

  1. .Net 中如何测试静态方法
  2. 组装计算机的游戏,如何组装一台游戏电脑
  3. Silverlight Tips(1)
  4. 使用Ant实现打包jar包上传到服务器
  5. nginx1.10.3 php7.0,centos7.2源码安装php7.0.9和nginx1.10.3服务器
  6. 将数据转化成字符串时:用字符串的链接 还是 StringBuilder
  7. .net控件开发系列
  8. 传统人工势场法---经典算法
  9. 根的存在定理(零点存在定理)
  10. emacs常用配置-Hippie-expand自动补全
  11. python合并多个pdf_python使用PyPDF2把多个pdf文件合并成一个
  12. 【784. 字母大小写全排列】
  13. android必备软件!零基础如何成为高级Android开发,薪资翻倍
  14. 遥感影像目标检测:从CNN(Faster-RCNN)到Transformer(DETR)
  15. glob模块中的glob.glob和golb.iglob
  16. java垃圾回收简介
  17. 2种js动态绑定事件方法
  18. frida-ios-dump实现iOS应用砸壳
  19. 基于Inception v2实现判别mnist手写数据集
  20. 问题 E: 完美立方

热门文章

  1. 推荐《程序设计导引及在线实践》
  2. c语言程序设计 甘勇,C语言程序设计
  3. DSP数字信号处理实验一 常见离散信号的产生
  4. mysql 的时间函数
  5. 2020王道操作系统,数据结构,计算机网络,计算机组成原理PDF大合集+使用经验
  6. 基于Java的贪吃蛇游戏设计(含免费可用源代码)
  7. 超级详细:GOG游戏平台白嫖Steam巫师3游戏教程
  8. pycharm 改成中文亲测好用
  9. unhandled exception in MSDEV.EXE(DEVSHL.DLL) :0xC0000005
  10. 金蝶K/3WISE V14.0安装包下载地址,金蝶K3 WISE V14.0安装包资源包下载链接