導航:首頁 > 文檔加密 > 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相關的資料

熱點內容
電腦文件夾還原方法 瀏覽:526
安卓包如何成為文檔 瀏覽:944
繼承類如何實例化python 瀏覽:767
逆戰加密武器鑰匙 瀏覽:261
php取小數後兩位 瀏覽:354
單片機編程魔法師 瀏覽:834
帝豪gs怎麼下載影視app軟體 瀏覽:511
程序員去山中泡溫泉 瀏覽:38
安卓手機怎麼恢復出廠系統版本 瀏覽:361
高三倒計時緩解壓力 瀏覽:621
一捏就變形的解壓玩具怎麼折 瀏覽:198
易融貸app借錢怎麼 瀏覽:941
單片機側重點 瀏覽:869
江蘇惠普伺服器虛擬化設計雲主機 瀏覽:649
在歐拉app好貓充電樁怎麼申請 瀏覽:451
反編譯代碼教程 瀏覽:800
linuxio阻塞 瀏覽:973
8腳單片機pic 瀏覽:821
如何看彩色塗鴉遮住的字安卓 瀏覽:688
擺渡機器人編程 瀏覽:654