Spire.Pdf 的各種操作總結(jié)
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
簡(jiǎn)介 試驗(yàn)新產(chǎn)品總是給我?guī)?lái)許多挑戰(zhàn),當(dāng)然這也是一個(gè)引進(jìn)創(chuàng)新技術(shù)的好方法。在這里我要跟大家分享的是使用Spire.Pdf的過(guò)程,它是來(lái)自E-iceblue公司的輕便PDF程序庫(kù)。 設(shè)計(jì)情節(jié) 我以前經(jīng)常沒(méi)事就搞搞PDF。Spire.Pdf是用C# 寫(xiě)的PDF組件。他們自己聲稱(chēng): 先決條件 首先,從這下載它的免費(fèi)版:http://freepdf.codeplex.com/ 安裝下載的軟件,結(jié)果你會(huì)得到兩個(gè)dll文件(Spire.License.dll和 Spire.Pdf.dll),如下圖所示在你的程序中添加他們的引用: 創(chuàng)建PDF并設(shè)置它的格式 創(chuàng)建PDF和使用Spire.Pdf一樣簡(jiǎn)單。這就意味著,僅僅用Spire.Pdf寫(xiě)幾行代碼就可以實(shí)現(xiàn)了。參照以下代碼:
以上代碼創(chuàng)建了一個(gè)單頁(yè)的PDF文件
現(xiàn)在我們?cè)谕粋€(gè)PDF文件中再加點(diǎn)料,像邊框啊,水印啦,再加一些有格式設(shè)置的圖片。我為了讓我這篇教程看上去比較簡(jiǎn)潔,就把所有代碼附在了示例中。它是一個(gè)包含了所有代碼的小型windows窗口程序,你可以從這里下載。 轉(zhuǎn)換成其它格式并設(shè)置相應(yīng)的格式: 基本上每個(gè)程序員都被這類(lèi)的需求困擾過(guò)。從一種格式轉(zhuǎn)換成另一種格式在開(kāi)發(fā)模式中是一件痛苦的事情。舉例來(lái)說(shuō),現(xiàn)在有很多程序員會(huì)問(wèn)如何把HTML頁(yè)面轉(zhuǎn)換為PDF?Spire.Pdf對(duì)這個(gè)問(wèn)題給出了簡(jiǎn)單的解決方法。不僅僅如此,SPIRE.PDF還提供了如下的轉(zhuǎn)換: HTML To PDF · XPS to PDF · PDF to XPS · PDF to Image HTML到PDF的轉(zhuǎn)換: 我上面說(shuō)的,這是幾乎每個(gè)開(kāi)發(fā)人員都需要的功能。用 Spire.Pdf的話(huà),轉(zhuǎn)換簡(jiǎn)直是飛一般的感覺(jué)。Spire.Pdf包含創(chuàng)建方法“LoadFromHTML”,它可以用URL做為參數(shù)而返回一個(gè)PDF文件。 //create PdfDocument instance PdfDocument doc = new PdfDocument(); //load html from URL string url = "http://www.google.com"; var thread = new Thread(() => { doc.LoadFromHTML(url, false, true, true); }); //set to single thread thread.SetApartmentState(ApartmentState.STA); thread.Start(); thread.Join(); //save to PDF document doc.SaveToFile("FromHTML.pdf", FileFormat.PDF); doc.Close(); System.Diagnostics.Process.Start("FromHTML.pdf"); 從上面的幾行代碼中,你可以觀(guān)察到我嘗試從URL中創(chuàng)建一個(gè)PDF文件,只是一行叫做LoadFromHTML的方法就可以實(shí)現(xiàn)神奇的轉(zhuǎn)換,下面幾行為保存文件。下面在轉(zhuǎn)換中有趣的事情就是SPIRE.PDF將鏈接地址的頁(yè)面自動(dòng)轉(zhuǎn)換為PDF鏈接。 PDF到XPS的轉(zhuǎn)換: XPS,是另外一個(gè)Microsoft在2006年開(kāi)發(fā)的流行文件格式。 Spire.Pdf也提供了將目標(biāo)文件保存為XPS格式的選擇。看下面代碼, Spire.Pdf僅僅是加載了PDF文件并使用SaveToFile方法將文件保存為需要的格式。 //Input pdf file String file = @"G:\FromHTML.pdf"; //open pdf document PdfDocument doc = new PdfDocument(); doc.LoadFromFile(file); //convert to xps file. doc.SaveToFile(@"G:\PDFToXPS.xps", FileFormat.XPS); doc.Close(); XPS到PDF的轉(zhuǎn)換: Spire.Pdf 也提供了上述方法的逆向轉(zhuǎn)換,那就是從XPS到PDF的轉(zhuǎn)換,有所不同的是加載文件方法的不同。這里我們使用方法LoadFromXPS就可以了。//open xps document PdfDocument doc = new PdfDocument(); doc.LoadFromXPS(file); //convert to pdf file. doc.SaveToFile("XPSToPDF.pdf"); 在Spire.Pdf使用枚舉FileFormat,我們可以有4種格式的輸出文件:DOC, HTML, PDF 和XPS。 擷取PDF –從PDF中擷取文本/圖片 在平常工作中,我遇到過(guò)需要單獨(dú)從PDF文件中擷取圖片或文本的問(wèn)題。 Spire.Pdf也給出了簡(jiǎn)潔的解決方案。它做的很好的地方是,提供一個(gè)單行的代碼就是調(diào)用“that”就搞定了。//Create a pdf document. PdfDocument doc = new PdfDocument(); // Load the PDF Document doc.LoadFromFile(@"G:\sample.pdf"); // Image collection to hold IList<Image> images = new List<Image>(); // Loop thru each pages foreach (PdfPageBase page in doc.Pages) { // Check that page contains any images if (page.ExtractImages() != null) { foreach (Image image in page.ExtractImages()) { images.Add(image); } } } //close the document doc.Close(); //save image int index = 0; foreach (Image image in images) { String imageFileName = String.Format("Image-{0}.png", index++); image.Save(imageFileName, ImageFormat.Png); } 在以上代碼中圖片被保存為png格式,輸出界面如下圖:
從PDF中擷取文本也是很簡(jiǎn)單。每個(gè)編程人員的職業(yè)生涯都會(huì)面對(duì)的擷取。Spire.Pdf可以用以下代碼來(lái)解決: //Create a pdf document. PdfDocument doc = new PdfDocument(); // Load the PDF Document doc.LoadFromFile(@"G:\sample.pdf"); // String for hold the extracted text StringBuilder buffer = new StringBuilder(); foreach (PdfPageBase page in doc.Pages) { buffer.Append(page.ExtractText()); } doc.Close(); //save text String fileName = "TextInPdf.txt"; File.WriteAllText(fileName, buffer.ToString()); buffer = null; 上面的程序片段就將文本提取出來(lái)并生成名為TextInPdf.txt的文本文檔。結(jié)論 綜上所述,換句話(huà)說(shuō),它用簡(jiǎn)單有效的方法處理PDF文件。SPIRE.PDF是一個(gè)很好的解決PDF 的API。該文章在 2018/1/23 15:19:48 編輯過(guò) |
關(guān)鍵字查詢(xún)
相關(guān)文章
正在查詢(xún)... |