ASP.NET 调用COM Word 转Pdf 之我见

2024-04-17 01:38
文章标签 调用 pdf asp net com word 之我见

本文主要是介绍ASP.NET 调用COM Word 转Pdf 之我见,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

做项目中用到word转pdf 的功能 ,刚开始的要求是做一个应用程序来转 主要代码如下:
using  PDF  =  PDFMAKERAPILib;
    string  wordPath  =   string .Empty;
        
string  pdfPath  =   string .Empty;

        PDF.PDFMakerApp app 
=   new  PDFMAKERAPILib.PDFMakerApp();
       
int  iReslut =  app.CreatePDF(wordPath, pdfPath, PDF.PDFMakerSettings.kConvertAllPages,  true false true , System.Type.Missing);
       
if  (iReslut  ==   0 )
       
{
           
this.lblInfo.Text = "转换成功!";
       }

       
else
       
{
           
//转换失败!
           this.lblInfo.Text = Enum.GetName(typeof(PDF.PDFMakerRetVals), iReslut);
       }

后来要求改变 必须用ASP.NET 来调用 心想,代码复制到Web窗体里面不就行了吗?
在用WebDev.WebServer.exe 时候 OK,没问题,当用IIS时,就是转换不成功,花了点时间,发现原因是两个的用户不同,一个是管理员,一个是Asp.net 帐户或者是network Service 看IIS是5.0 还是6.0。想通过更改设置权限来解决,改了不少,效果是从一个错误,变成了另一个错误!
后来从网上查资料,受了点启发:(我做COM测试的时候喜欢用VB.NET  代码简练。)

Imports  Word  =  Microsoft.Office.Interop.Word
Imports  PDF  =  ACRODISTXLib
   Dim  Range  As   New   Object ()
        Range 
=  Word.WdPrintOutRange.wdPrintAllDocument
        
Dim  Item  As   New   Object ()
        Item 
=  Word.WdPrintOutItem.wdPrintDocumentContent
        
Dim  PageType  As   New   Object ()
        PageType 
=  Word.WdPrintOutPages.wdPrintAllPages
        
Dim  ManualDuplexPrint  As   New   Object ()
        ManualDuplexPrint 
=   False
        
Dim  OutPutFileName  As   String   =   " C:/Topdf/123456.ps "

        
Dim  wordApp  As   New  Word.Application()
        wordApp.Documents.Open(
" C:/Topdf/123456.doc " False False False "" "" False "" "" , Word.WdOpenFormat.wdOpenFormatAuto, , , , , ,  "" )
        wordApp.Documents.Save()

        wordApp.ActivePrinter 
=   " Adobe PDF "
      
        wordApp.PrintOut(
False , , Range, OutPutFileName, , , Item,  1 "" , PageType,  False True "" , ,  False 0 0 0 0 )

        wordApp.Quit()

      

        
Dim  pdftest  =   New  PDF.PdfDistiller()
        pdftest.bShowWindow 
=   0

        pdftest.FileToPDF(OutPutFileName, 
" C:/Topdf/123456.pdf " "" )
        pdftest 
=   Nothing
        
' '连续调用会出错,可以先杀掉进程 

思路是先用Word 将doc 转换为ps,然后用pdfDistiller 将ps转换为pdf,经过测试,可以在IIS下成功执行。
在此将代码写出来,希望碰到此类问题的,能够少走些弯路!
当然,最好是不调COM,方法是找到了,就是要花钱,先这样用着吧!

 

这篇关于ASP.NET 调用COM Word 转Pdf 之我见的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/910469

相关文章

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业

如何在页面调用utility bar并传递参数至lwc组件

1.在app的utility item中添加lwc组件: 2.调用utility bar api的方式有两种: 方法一,通过lwc调用: import {LightningElement,api ,wire } from 'lwc';import { publish, MessageContext } from 'lightning/messageService';import Ca

pdfmake生成pdf的使用

实际项目中有时会有根据填写的表单数据或者其他格式的数据,将数据自动填充到pdf文件中根据固定模板生成pdf文件的需求 文章目录 利用pdfmake生成pdf文件1.下载安装pdfmake第三方包2.封装生成pdf文件的共用配置3.生成pdf文件的文件模板内容4.调用方法生成pdf 利用pdfmake生成pdf文件 1.下载安装pdfmake第三方包 npm i pdfma

poj 1258 Agri-Net(最小生成树模板代码)

感觉用这题来当模板更适合。 题意就是给你邻接矩阵求最小生成树啦。~ prim代码:效率很高。172k...0ms。 #include<stdio.h>#include<algorithm>using namespace std;const int MaxN = 101;const int INF = 0x3f3f3f3f;int g[MaxN][MaxN];int n

如何在Visual Studio中调试.NET源码

今天偶然在看别人代码时,发现在他的代码里使用了Any判断List<T>是否为空。 我一般的做法是先判断是否为null,再判断Count。 看了一下Count的源码如下: 1 [__DynamicallyInvokable]2 public int Count3 {4 [__DynamicallyInvokable]5 get

2、PF-Net点云补全

2、PF-Net 点云补全 PF-Net论文链接:PF-Net PF-Net (Point Fractal Network for 3D Point Cloud Completion)是一种专门为三维点云补全设计的深度学习模型。点云补全实际上和图片补全是一个逻辑,都是采用GAN模型的思想来进行补全,在图片补全中,将部分像素点删除并且标记,然后卷积特征提取预测、判别器判别,来训练模型,生成的像

消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法

消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法   消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法 [转载]原地址:http://blog.csdn.net/x605940745/article/details/17911115 消除SDK更新时的“

【LabVIEW学习篇 - 21】:DLL与API的调用

文章目录 DLL与API调用DLLAPIDLL的调用 DLL与API调用 LabVIEW虽然已经足够强大,但不同的语言在不同领域都有着自己的优势,为了强强联合,LabVIEW提供了强大的外部程序接口能力,包括DLL、CIN(C语言接口)、ActiveX、.NET、MATLAB等等。通过DLL可以使用户很方便地调用C、C++、C#、VB等编程语言写的程序以及windows自带的大

C - Word Ladder题解

C - Word Ladder 题解 解题思路: 先输入两个字符串S 和t 然后在S和T中寻找有多少个字符不同的个数(也就是需要变换多少次) 开始替换时: tips: 字符串下标以0开始 我们定义两个变量a和b,用于记录当前遍历到的字符 首先是判断:如果这时a已经==b了,那么就跳过,不用管; 如果a大于b的话:那么我们就让s中的第i项替换成b,接着就直接输出S就行了。 这样

PDF 软件如何帮助您编辑、转换和保护文件。

如何找到最好的 PDF 编辑器。 无论您是在为您的企业寻找更高效的 PDF 解决方案,还是尝试组织和编辑主文档,PDF 编辑器都可以在一个地方提供您需要的所有工具。市面上有很多 PDF 编辑器 — 在决定哪个最适合您时,请考虑这些因素。 1. 确定您的 PDF 文档软件需求。 不同的 PDF 文档软件程序可以具有不同的功能,因此在决定哪个是最适合您的 PDF 软件之前,请花点时间评估您的