Word转pdf方法小结
前提条件:安装Acrobat Distillr,可以通过安装Acrobat Professional 版本实现。
1.在Winform下实现转换
很简单,需要引用COM组件 PDFMake
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组件中添加。
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方法小结相关推荐
- 毕业论文图片格式、分辨率选择及高质量Word转PDF方法
已知1:毕业论文盲评通常需要提交PDF文件. 已知2:PDF文件太大可能会导致翻页卡顿以及上传盲评网站失败. 已知3:Word转PDF方法不当可能会导致图像模糊. 已知4:打印机分辨率通常为300dp ...
- word转换pdf方法分享!word转换pdf软件合集。
word转换pdf方法分享!众所周知,将 Word 文档转换成 PDF 后,可以确保文档内容及格式在不同的设备.操作系统和软件中都能够保持一致,避免因为软件版本或者操作系统的差异而导致文档出现错乱等问 ...
- c 调用openoffice word转pdf_批量 Word 转 PDF 方法
- START -手上有近百个 Word 文档需要转为 PDF, 怎么办?难道要一个一个的导出吗?确实,Office2010 以后版本的 Word 可以直接导出 PDF,是时候让 Python 来替我 ...
- 总结几种常见的Word转换PDF方法
1.Microsoft Office 2010 .WPS Office 2010 环境 Word 2010.WPS Office 可以直接另存 Word 文档为 PDF,完美支持中文,具有极佳的质量和 ...
- Word怎么转换成PDF免费?分享适合你的Word转PDF方法
随着数字化时代的到来,将文件转换为PDF格式已经成为一个常见的需求.PDF文件格式的广泛应用使其在各个领域都非常重要,而Word文档则是最常见的文件类型之一.因此,将Word转换为PDF的方法备受关注 ...
- 转 安装 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 ...
- 微信公众号文章(HTML)转 Word、PDF 方法
事情是这样的,一个朋友需要把一个微信公众号文章导出,然后转成 PDF :之后又加了一个需求,需要转成 Word.遂记录一下解决方案. 解决方案 HTML 转 PDF 用 Chrome 打开微信公众号链 ...
- word转换为pdf的好方法
1.准备jar包:aspouse-word-14.11.0-jdk16.jar 2.代码示例: package com.utils; import java.io.File; import java. ...
- JAVA实现无损word转pdf文件完整代码教程
前言 本来想写word转pdf和pdf转word的代码呢,没想到word转pdf就写了很多很多行代码才实现,为了方便大家消化理解,先写了word转pdf方法实现作为一篇文章. word转pdf实现思路 ...
- Word转换pdf技巧:通过pdf虚拟打印机生成pdf
相信大部分人都有Word和PDF之间文件转换需求,就是找不到实用的转换技巧,今天小编就介绍几个转换方法,希望能帮到苦恼的朋友们. 一.Word转PDF方法 1. 在线转换PDF文件 在线转换文件是一种 ...
最新文章
- .Net 中如何测试静态方法
- 组装计算机的游戏,如何组装一台游戏电脑
- Silverlight Tips(1)
- 使用Ant实现打包jar包上传到服务器
- nginx1.10.3 php7.0,centos7.2源码安装php7.0.9和nginx1.10.3服务器
- 将数据转化成字符串时:用字符串的链接 还是 StringBuilder
- .net控件开发系列
- 传统人工势场法---经典算法
- 根的存在定理(零点存在定理)
- emacs常用配置-Hippie-expand自动补全
- python合并多个pdf_python使用PyPDF2把多个pdf文件合并成一个
- 【784. 字母大小写全排列】
- android必备软件!零基础如何成为高级Android开发,薪资翻倍
- 遥感影像目标检测:从CNN(Faster-RCNN)到Transformer(DETR)
- glob模块中的glob.glob和golb.iglob
- java垃圾回收简介
- 2种js动态绑定事件方法
- frida-ios-dump实现iOS应用砸壳
- 基于Inception v2实现判别mnist手写数据集
- 问题 E: 完美立方
热门文章
- 推荐《程序设计导引及在线实践》
- c语言程序设计 甘勇,C语言程序设计
- DSP数字信号处理实验一 常见离散信号的产生
- mysql 的时间函数
- 2020王道操作系统,数据结构,计算机网络,计算机组成原理PDF大合集+使用经验
- 基于Java的贪吃蛇游戏设计(含免费可用源代码)
- 超级详细:GOG游戏平台白嫖Steam巫师3游戏教程
- pycharm 改成中文亲测好用
- unhandled exception in MSDEV.EXE(DEVSHL.DLL) :0xC0000005
- 金蝶K/3WISE V14.0安装包下载地址,金蝶K3 WISE V14.0安装包资源包下载链接