导航:首页 > 文档加密 > com组件pdf

com组件pdf

发布时间:2023-05-15 02:46:46

Ⅰ 如何使用.net C#编程pdf文件加密

pdf加密为什么要用C# NET之类的编程语言呢,为什么要用c#呢?
点击PDF Protection窗口左上角的“Single(单个)”按钮。打开单一PDF文档加密界面,选中要加密的PDF文件,点击“Encrypt(加密)”按钮打开加密设置页面。
在Encryption 按钮下的“Master Password(高级用户密码)”和“User Password(一般用户密码)”中可以分别
设置密码,以及加密的等级,包括不加密,40位加密,128位加密三种等级,大家可以根据文档的重要程度进行设置。下方的
“Set Permission”中可以设置当一般用户使用Adobe Reader打开加密PDF文档时所拥有的操作权限,包括是否允许打印、复制、修
改、增加注释等。

Ⅱ asp.net将PDF文件转换成图片,并且在网页上显示

本文采用Adobe Acrobat9.0的COM组件,将Pdf文件的每一页转换成对应的图片文件。
开发环境:VS2010,.Net Framework4.0,Adobe Acrobat9.0。
工程中添加COM引用:Adobe Acrobat 9.0 Type Library(必须装了Adobe Acrobat9.0才会有)。

思路:
1、需要用到的COM对象:
1)CAcroPDDoc:Acrobat文档对象。
2)者汪枝CAcroPDPage:页对象。
3)CAcroRect:用来描述页中一个矩形区域的对象。
4)CAcroPoint:实际上代表的是Size。

2、转换过程:
1)打开文档。首敏
2)取出每一页。
3)获取每一页的大小,生成一个表示该页的矩形区域。
4)将当前页的指定区域编码成图片,并且复制到剪贴板中。
5)将剪贴板中的图片取出,保存为图片文件。

转换函数代码:
public static void ConvertPdf2Image(string pdfFilePath, string imageDirectoryPath,
int beginPageNum, int endPageNum, ImageFormat format, double zoom = 1) {
Acrobat.CAcroPDDoc pdfDoc = null;
Acrobat.CAcroPDPage pdfPage = null;
Acrobat.CAcroRect pdfRect = null;
Acrobat.CAcroPoint pdfPoint = null;

//1)
//生成操作Pdf文件的Com对象
pdfDoc = (Acrobat.CAcroPDDoc)Microsoft.VisualBasic.Interaction.CreateObject("AcroExch.PDDoc", "");

//检查输入参数
if (!pdfDoc.Open(pdfFilePath)) {
throw new FileNotFoundException(string.Format("源文件{0}不存在!", pdfFilePath));
}

if (!Directory.Exists(imageDirectoryPath)) {
Directory.CreateDirectory(imageDirectoryPath);
}

if (beginPageNum <= 0) {
beginPageNum = 1;
}

if (endPageNum > pdfDoc.GetNumPages() || endPageNum <= 0) {
endPageNum = pdfDoc.GetNumPages();
}

if (beginPageNum > endPageNum) {
throw new ArgumentException("参陵毁数\"beginPageNum\"必须小于\"endPageNum\"!");
}

if (format == null) {
format = ImageFormat.Png;
}

if (zoom <= 0) {
zoom = 1;
}

//转换
for (int i = beginPageNum; i <= endPageNum; i++) {
//2)
//取出当前页
pdfPage = (Acrobat.CAcroPDPage)pdfDoc.AcquirePage(i - 1);

//3)
//得到当前页的大小
pdfPoint = (Acrobat.CAcroPoint)pdfPage.GetSize();
//生成一个页的裁剪区矩形对象
pdfRect = (Acrobat.CAcroRect)Microsoft.VisualBasic.Interaction.CreateObject("AcroExch.Rect", "");

//计算当前页经缩放后的实际宽度和高度,zoom==1时,保持原比例大小
int imgWidth = (int)((double)pdfPoint.x * zoom);
int imgHeight = (int)((double)pdfPoint.y * zoom);

//设置裁剪矩形的大小为当前页的大小
pdfRect.Left = 0;
pdfRect.right = (short)imgWidth;
pdfRect.Top = 0;
pdfRect.bottom = (short)imgHeight;

//4)
//将当前页的裁剪区的内容编成图片后复制到剪贴板中
pdfPage.CopyToClipboard(pdfRect, 0, 0, (short)(100 * zoom));

//5)
IDataObject clipboardData = Clipboard.GetDataObject();

//检查剪贴板中的对象是否是图片,如果是图片则将其保存为指定格式的图片文件
if (clipboardData.GetDataPresent(DataFormats.Bitmap)) {
Bitmap pdfBitmap = (Bitmap)clipboardData.GetData(DataFormats.Bitmap);

pdfBitmap.Save(
Path.Combine(imageDirectoryPath, i.ToString("0000") + "." + format.ToString()), format);

pdfBitmap.Dispose();
}
}

//关闭和释放相关COM对象
pdfDoc.Close();
Marshal.ReleaseComObject(pdfRect);
Marshal.ReleaseComObject(pdfPoint);
Marshal.ReleaseComObject(pdfPage);
Marshal.ReleaseComObject(pdfDoc);
}

源代码敬上:http://files.cnblogs.com/kongxianghai/Pdf2ImageWithAcrobat.rar

网上有一篇搜集的非常全的将Pdf文件转换成图片的各种方法,拿出来分享:
http://topic.csdn.net/u/20120219/20/4888d128-3b77-47bc-aa21-cb02c014bc1f.html?84661

Ⅲ c# 打开pdf文件并跳到指定的页,这个可能实现么

C# WinForm打开脊猜敏PDF文件
其实WinForm打开PDF文件 有很多种方法 主要分为2个大的方法

一:使用Adobe reader提供的COM组件

1.添加引用

工具箱兆毕---右键---选择项--COM组件--Adobe PDF Reader

2.使用方法

OpenFileDialog openFile=new OpenFileDialog();

open..Filter = "PDF文件|*.pdf";
openFile.ShowDialog();

axAcroPDF1.src = openFile.FileName;

//axAcroPDF1.LoadFile(of.FileName); //使用方法二

二:不使用Adobe reader提供的COM组件

http://www.codeproject.com/KB/silverlight/BlendPDFwithSilverlight.aspx

http://www.codeproject.com/KB/applications/PDFViewerControl.aspx

我查樱枝询的结果试试有帮助么

Ⅳ 全球范围内windows系统支持打开pdf的com组件有哪些,求很全的com组件名字,知道几个的请您高台贵手

1、首先确保你的WIN7是管理员权限
2、下载comdlg32.ocx等控件,网上可搜到
3、把comdlg32.ocx放到c:\Windows\SysWOW64,注:需要管理员权限
4、开始-程序-附件-命令提示符,右键点击,管理员身份运行
5、regsvr32 c:\Windows\SysWOW64\comdlg32.ocx(相应控件名)
提示DllRegisterServer in C:\WINDOWS\SysWOW64\comdlg32.ocx succeeded
即表示控件注册成功。

Ⅳ c#winform 调用Adobe PDF Reader组件,没有找到Adobe PDF Reader组件怎么办

下载并安装免轮亏费的Adobe Reader,安装后,派亩Adode Reader以COM组件尘桐森方式提供Adobe PDF Reader组件,如下图所示

Ⅵ 对 COM 组件的调用返回了错误 HRESULT E_FAIL

看网上有个解决办法是这样的:
1. 开始--->管理工具--->服务 中,开启Distributed Transaction Coordinator 服务。
2. 开始--->管理工具--->本丛枣地安全策略--->高级安全windows防火墙--->高级安全windows防火墙-本塌迅地组策略对象--->右击团郑此属性--->进行允许出站、允许入站,添加出入站规则。
以上主要运用于编程实现创建域用户,对NTFS文件夹进行权限配置。当然也可以手工完成

Ⅶ 如何在java中用javascript来打印pdf

纯Java的解决方案:
我们首先想到的自然就是JDK1.4提供的JPS(Java Printing Service)啦,不过,这东西虽然说支持PDF的Flavor,但是,不管是个人实验还是网上他人的评论,好像根本就是useless,可能如果说你 的打印机Driver支持PDF的Flavor的话,JPS会检测到你的driver的这个特性,能够成功的打印PDF文档出来,但是,大部分情况下,这 种情形是不成立的,故此JPS死路一条啦!
让我们看看PDF的老家Adobe那里有没有什么法宝,我们发现一个Viewer Bean的组件,说是可以将PDF以Bean组件的方式潜入到Swing中,哇,太爽了,不过慢着,协议上说不提供任何支持,也不保证不出任何问题,管那 么些,试过再说,一实验才知道,靠,Exception频发,而且这个组件较为陈旧,还是扔一边吧!
还有一个PDFBox,Open Source的,不过对中文支持不好,而且好像开发进度也不是很好,没有发布一个正式的版本,基本上不能用于生产环境;
最后,求助于Commercial的产品吧,实验了一下ActiveTree的JPrint,感觉不错,完全可以胜任我们的需求而且恰到好处,不过授权费 很贵,Email问过之后的答复是2000USD的最低购买,呵呵,虽然日本人很有钱,但也心疼这个银子啊,所以最终也得作罢!(ActiveTree的 授权其实挺令我ft的,他其实在2003年的时候是可以免费使用的,但之后就变卦了,呵呵,当时记得我还给提过一些bug之类,算了,人家做出这个东西也 不容易)
其他商业产品也是价格不菲,所以,基本上纯Java的solution到这里就否决了,让我们看Java-Com的解决方案吧!

Java-Com 的解决方案:
在前一条路走不通之后,我痛定思痛,决定转向自己不熟悉的领域,ms的领地,我打算从Java中调用Com组件,由Com组件来帮助我们实现PDF的打印 工作,不够这条路也不是一帆风顺那!
我们知道,Acrobat Reader在发布的时候会随同发布一个支持浏览器的com组件用来manipulate他的这个PDF文档格式,所以,我们想要本地调用这个随同发布的 Com组件来实现PDF打印。虽然Version5,6,7的这个组件格式不一样(5,6是以ocx的格式发布,7是以dll的格式发布),但是,不管那 么些,先从7开始吧!
要调用com,那么我们需要一个从java到com的Bridge,所以,jacob第一个跃入我的脑海,因为之前就用过嘛!但是麻烦来了,我们并不知道 这个com组件提供了那些调用接口啊!哎,没办法,回学校求教熟悉.net的同学,给好不容易弄出几个需要的调用方法(哎,可怜我的周末啊),星期一就回 来用jacob调用啦,可是左试右试就是一直抛异常,我那个气啊!难道是jacob的为问题?!我就又找了jcom和jcom2等类似的产品,但jcom 全是日文文档,没有办法,而jcom2估计也是一个德行(我忘了为什么当初否决了这个),所以就决定试一试商业产品吧!
这方面的商业产品主要有J-Integra,JPanel(好像叫这个名字)以及一个叫JNIWrapper的产品(这个是一个人用用来演示在java中 使用Acrobat5打印PDF的时候提到的)。这些商业产品好的地方就是他可以根据某个你要调用的com组件为你自动生成相应的Proxy对象java 代码,这样你就可以直接调用你熟悉的java代码了。像jacob等开源项目,如果给出一个类似的code generation工具的话,就完全不逊于这些商业产品啦。鉴于商业产品的价格,我最终还是否决了这些(日本人其实也听抠门的)。
这样,Java-com也对这个问题没辙了。
不过,最后在我的解决方案中,我还是使用了Jacob,这是后话,暂且不提...

那我们考虑一下,如果PDF打印不行,打印其他格式行不行?!比如图片,这个JPS可以完全打印,所以,我们找一下有没有将PDF格式转换为其他格式的工 具吧!

PDF格式转换的解决方案:
在这个领域,主要的就是有GhostScript/GView和ImageMagick,前者可以将PDF格式转换为PostScript格式,但是好像 GhostScript也不能用JPS完全打印出来;而后者是一个将PDF转换为Image的API工具,他的Java实现叫JMagick,但他有一个 跟GhostScript同样的问题,就是要转换,就必须在本地安装,然后通过命令行的方式调用,这个显然也不是很好,而且集成性很差,还是作罢!

剩下的一个是命令行调用啦,这是从itext网站找到的,你可以通过在命令行运行AcroRd32 /p /h "path to PDF file"这样的命令来打印你要打印的PDF文件,当然,你可以在PDF文件生成后就将他们依次放入一个批处理文件来执行这些打印命令,但是这个方案唯一 的问题就是,每打印一个文件都会启动一个Acrobat Reader窗口而且必须手动关闭,这现在不能满足目前的系统要求。
好了,所有的方案基本上都罗列完了,也没有找到一个可行的方案:-(
(没有银子嘛,不然Activetree的JPrint不错的说)

这些东西差不多郁闷了我3,4天吧,那几天简直就是bored to death.

不过,在郁闷的这几天的结尾,却有一道灵光闪过我的脑海...
能不能说启动一个打印service,当文档要打印的时候,直接发送给它就行了那?!而恰好我发现一段在网页中加载PDF文档的Javascript代 码,而且完全可以使用js来控制PDF的打印,所以,最终的这个方案就浮出水面了 ...
1-使用jacob启动一个IE进程,并隐藏IE窗口;
if(ieAutomation == null)
ieAutomation = new ActiveXComponent("InternetExplorer.Application");
ieAutomation.setProperty("Visible",new Variant(false));
2-PDF前端在生成PDF文件之后发送生成后的文件到JacobPDFPrinter,JacobPDFPrinter根据出入的PDF文件的全路径使 用Velocity模板引擎动态生成一个包含使用Javascript代码实现的PDF打印逻辑的HTML文档(当然,使用Velocity生成文档这部 分逻辑我们单独抽出到VeloIEPrinterGenerator类中);
3-在HTML生成之后,在JacobPDFPrinter中就可以使用jacob调用IE的Navigate2,将IE重定向到刚才生成的这个HTML 文件啦,这样,IE就会在后台调用JS代码将PDF打印到默认打印机;
4-打印成功之后,清除临时动态生成的HTML文件;
5-当主程序退出之前,Quit后台IE进程。
以上就是我能给出的一个solution,并不完美,但it works.
需要注意的几个问题是:
(1)需要设置IE的一个高级选项,运行本地脚本运行;
(2)因为Java和Com线程模型的不一致,导致在最终Quit后台IE进程的时候会抛出Com调用异常,因为对于Win平台API以及相关编程模型不 是很熟悉,所以,这个问题需要求助于别人帮忙解决;
(3)IE在执行JS打印PDF的时候,同样会后台启动Acrobat的一个进程,而这个进程我们程序中无法控制其生命周期,所以,主程序退出后,我们没 有办法同时kill这个进程,好在不管我们运行多少次,这个进程在后台只有一个,所以,性能负担不是很大;
转载

Ⅷ C#怎么在WebBrowser中打开PDF文档

C#显示PDF文件,winform打开PDF文件并在窗体中显示
1.在工具箱中添加Adobe提供的ActiveX控件,如图所示:

选择com组件,我用的是7.0版本

打勾点确定,在控件工具栏就有了,见下图:

拖一个Adobe PDF Reader控件到窗体上,双击窗体,在窗体加瞎亩载时,弹出对中神笑话框,加载PDF文件:
string fileName = MyOpenFileDialog();
axAcroPDF1.LoadFile(fileName);
MyOpenFileDialog()函数为:
string MyOpenFileDialog()
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "PDF文档(*.pdf)|*.pdf";
if (ofd.ShowDialog() == DialogResult.OK)
{
return ofd.FileName;
}
else
{
return null;
}
}
也可以用代码创建Adobe PDF Reader组件:
string fileName = MyOpenFileDialog();
AxAcroPDFLib.AxAcroPDF axAcroPDF = new AxAcroPDFLib.AxAcroPDF();
axAcroPDF.Location = new System.Drawing.Point(0, 24);
axAcroPDF.Size = new System.Drawing.Size(292, 242);
axAcroPDF.Dock = DockStyle.Fill;
Controls.Add(axAcroPDF);
axAcroPDF.LoadFile(fileName);
不过要注意,在我们把Adobe PDF Reader组件拖到窗体上的时候,它会自动引用2个dll:AcroPDFLib和AcroPDFLib,如图:

编译的时候,VS会Adobe PDF Reader ActiveX组件转换为2个.net组件:AxInterop.AcroPDFLib.dll和Interop.AcroPDFLib.dll,如图:

所以在写代码创建Adobe PDF Reader 组件的时候,需要手动把Adobe PDF Reader ActiveX组件转换为.net组件并引用!最好卖含的办法是,托一个Adobe PDF Reader 组件到窗体上,然后删除,这样就不需要手动了!

Ⅸ winform 怎么将页面直接打印成pdf

利用Adobe PDF Reader 控件,在Winform中实现打印PDF文档。 实现方法如下:

(1)前提条件

必须事先在计算机安装Adobe Reader软件。Adobe Reader是免费软件,可以从Adobe官网下载安装

(2)在Visual Studio中新建一个“Windows 窗体应用程序”项目

(3)在工具箱上点鼠标右键-->选择项 -->COM组件-->Adobe PDF Reader

(5)Form1窗体代码Form1.cs


usingSystem;usingSystem.Windows.Forms;usingSystem.IO;{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();锋伏槐button1.Text="打开PDF文档...";//没有载入PDF文档时,禁用打印功能button2.Text="打印...";button2.Enabled=false;}privatevoidbutton1_Click(objectsender,EventArgse){厅兄OpenFileDialogopenDlg=newOpenFileDialog();openDlg.Filter="PDF文档|*.pdf";if(openDlg.ShowDialog()==DialogResult.OK){axAcroPDF1.LoadFile(openDlg.FileName);//有载入PDF文档时,允许打印功能button2.Enabled=true;银友}}privatevoidbutton2_Click(objectsender,EventArgse){//显示打印PDF文档对话框axAcroPDF1.printWithDialog();}}}

(6)运行效果

Ⅹ IIS7调用COM WORD转换PDF,使用过程中经常出现检索组件时失败,8000401a

这是资源没有回收的原因导致的。

阅读全文

与com组件pdf相关的资料

热点内容
程序员那么可爱第几集在重庆相遇 浏览:673
上班两公里源码 浏览:817
南宁溯源码燕窝订制 浏览:933
在个人文件夹中新建文件 浏览:445
中国国家地理pdf下载 浏览:107
几套房子抵押可以解压其中一套吗 浏览:569
微爱app室外地板怎么装饰 浏览:231
辽宁省医保如何用app转 浏览:311
钟表cNc编程招聘 浏览:546
均线pdf 浏览:921
手机破解加密的压缩包 浏览:429
dnf程序员分析 浏览:365
外星人适合编程吗 浏览:205
phpcurl302跳转 浏览:843
奔放的程序员我的 浏览:714
服务器磁盘满了文件删不掉该如何处理 浏览:847
压缩弹簧展开长度 浏览:509
如何共享国外app 浏览:687
淘宝app如何扫描图片 浏览:594
反编译作业帮 浏览:856