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

相关文章

详解如何通过Python批量转换图片为PDF

《详解如何通过Python批量转换图片为PDF》:本文主要介绍如何基于Python+Tkinter开发的图片批量转PDF工具,可以支持批量添加图片,拖拽等操作,感兴趣的小伙伴可以参考一下... 目录1. 概述2. 功能亮点2.1 主要功能2.2 界面设计3. 使用指南3.1 运行环境3.2 使用步骤4. 核

Java调用C++动态库超详细步骤讲解(附源码)

《Java调用C++动态库超详细步骤讲解(附源码)》C语言因其高效和接近硬件的特性,时常会被用在性能要求较高或者需要直接操作硬件的场合,:本文主要介绍Java调用C++动态库的相关资料,文中通过代... 目录一、直接调用C++库第一步:动态库生成(vs2017+qt5.12.10)第二步:Java调用C++

Java利用docx4j+Freemarker生成word文档

《Java利用docx4j+Freemarker生成word文档》这篇文章主要为大家详细介绍了Java如何利用docx4j+Freemarker生成word文档,文中的示例代码讲解详细,感兴趣的小伙伴... 目录技术方案maven依赖创建模板文件实现代码技术方案Java 1.8 + docx4j + Fr

vue使用docxtemplater导出word

《vue使用docxtemplater导出word》docxtemplater是一种邮件合并工具,以编程方式使用并处理条件、循环,并且可以扩展以插入任何内容,下面我们来看看如何使用docxtempl... 目录docxtemplatervue使用docxtemplater导出word安装常用语法 封装导出方

使用C#代码在PDF文档中添加、删除和替换图片

《使用C#代码在PDF文档中添加、删除和替换图片》在当今数字化文档处理场景中,动态操作PDF文档中的图像已成为企业级应用开发的核心需求之一,本文将介绍如何在.NET平台使用C#代码在PDF文档中添加、... 目录引言用C#添加图片到PDF文档用C#删除PDF文档中的图片用C#替换PDF文档中的图片引言在当

详解C#如何提取PDF文档中的图片

《详解C#如何提取PDF文档中的图片》提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使用,下面我们就来看看如何使用C#通过代码从PDF文档中提取图片吧... 当 PDF 文件中包含有价值的图片,如艺术画作、设计素材、报告图表等,提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使

在C#中调用Python代码的两种实现方式

《在C#中调用Python代码的两种实现方式》:本文主要介绍在C#中调用Python代码的两种实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#调用python代码的方式1. 使用 Python.NET2. 使用外部进程调用 Python 脚本总结C#调

SpringCloud之LoadBalancer负载均衡服务调用过程

《SpringCloud之LoadBalancer负载均衡服务调用过程》:本文主要介绍SpringCloud之LoadBalancer负载均衡服务调用过程,具有很好的参考价值,希望对大家有所帮助,... 目录前言一、LoadBalancer是什么?二、使用步骤1、启动consul2、客户端加入依赖3、以服务

Java利用poi实现word表格转excel

《Java利用poi实现word表格转excel》这篇文章主要为大家详细介绍了Java如何利用poi实现word表格转excel,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 一、每行对象类需要针对不同的表格进行对应的创建。package org.example.wordToEx

Vue 调用摄像头扫描条码功能实现代码

《Vue调用摄像头扫描条码功能实现代码》本文介绍了如何使用Vue.js和jsQR库来实现调用摄像头并扫描条码的功能,通过安装依赖、获取摄像头视频流、解析条码等步骤,实现了从开始扫描到停止扫描的完整流... 目录实现步骤:代码实现1. 安装依赖2. vue 页面代码功能说明注意事项以下是一个基于 Vue.js