Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
前有許多在線轉(zhuǎn)檔工具可以解決使用者的格式轉(zhuǎn)換需求,共通性是通過(guò)瀏覽器開(kāi)啟網(wǎng)站即可進(jìn)行轉(zhuǎn)換,無(wú)需額外下載、安裝軟件或工具,因?yàn)檫@些服務(wù)多半將文件上傳遠(yuǎn)程服務(wù)器進(jìn)行處理,即使是移動(dòng)設(shè)備也能正常執(zhí)行,例如 Convertr 就整合音訊、影片和其他文件格式的在線轉(zhuǎn)檔:
本文要介紹的「cdkm」是一個(gè)免費(fèi)在線轉(zhuǎn)檔工具,號(hào)稱次世代轉(zhuǎn)換器、整合許多開(kāi)放原始碼項(xiàng)目建構(gòu)而成,支持各種常見(jiàn)常用文件類(lèi)型,包括文件、電子書(shū)、圖片、影片、音樂(lè)或是一些比較少用的格式,不過(guò)要注意的是 cdkm 每次轉(zhuǎn)換最多只能上傳 10 個(gè)文件(如果有開(kāi)啟廣告阻擋器就無(wú)法使用批次轉(zhuǎn)換功能)。
cdkm 可轉(zhuǎn)檔的文件文件最大 40 MB,其他格式文件最大 200 MB,雖然轉(zhuǎn)換速度快,若遇到文件過(guò)大就有很大的機(jī)會(huì)無(wú)法成功轉(zhuǎn)換。
cdkm 支持以下格式(完整列表):
轉(zhuǎn)換后文件可直接下載或是產(chǎn)生分享鏈接,提供給其他人下載、使用,有些文件格式還能直接在瀏覽器進(jìn)行預(yù)覽,如果臨時(shí)需要轉(zhuǎn)檔、但手邊又沒(méi)有合適的轉(zhuǎn)檔工具就可以試試看。
網(wǎng)站鏈接:https://cdkm.com/
使用教學(xué)
開(kāi)啟 cdkm 網(wǎng)站后點(diǎn)選「Choose Files」選擇要轉(zhuǎn)換的源文件或選擇「remote file URL」以遠(yuǎn)程文件鏈接方式輸入文件進(jìn)行轉(zhuǎn)換。
cdkm 不會(huì)自動(dòng)選擇可轉(zhuǎn)換的格式,使用者需要從右側(cè)的「Target Format」目標(biāo)格式選擇要轉(zhuǎn)換的文件新格式,依照不同類(lèi)型分類(lèi)更容易尋找。
選好后點(diǎn)選最右邊的紅色按鈕「Start Convertsion」開(kāi)始轉(zhuǎn)換,轉(zhuǎn)換時(shí)需要一段時(shí)間將文件上傳到遠(yuǎn)程服務(wù)器,完成后結(jié)果文件就會(huì)顯示在下方的 Output Files 字段,點(diǎn)選后方「Download」按鈕就能將轉(zhuǎn)換后的文件下載保存。
有些文件還可以直接在線預(yù)覽,如果要復(fù)制下載鏈接可點(diǎn)選「Copy to clipboard」就能將文件網(wǎng)址復(fù)制到剪貼簿。
值得一試的三個(gè)理由:
是編程樂(lè)趣,一個(gè)10年.Net開(kāi)發(fā)經(jīng)驗(yàn)老程序員,點(diǎn)擊右上方“關(guān)注”,每天為你分享開(kāi)源項(xiàng)目和編程知識(shí)。
在我們?nèi)粘m?xiàng)目開(kāi)發(fā)中,經(jīng)常需要解析操作文檔,比如Office文檔、Email文件、PDF、Xml、圖片、Mp3等音頻文件,操作Office、PDF文件我們需要用到IFilter,操作文本、圖片文件需要用到File,每一個(gè)文檔格式都需要用到不同接口,或者引入不同的第三方插件。
今天給大家推薦一個(gè)開(kāi)源庫(kù),這些文檔格式通通支持,一網(wǎng)打盡,讓我們不需要再關(guān)心這些文檔底層操作。
這是一個(gè)基于.Net開(kāi)發(fā)的數(shù)據(jù)/文本操作開(kāi)源項(xiàng)目,支持docx、xlsx、xls、pdf、csv、txt、epub、html等30多種格式,使用簡(jiǎn)單友好,是一個(gè)可以幫助我們識(shí)別文件格式,并將數(shù)據(jù)/文本提取為統(tǒng)一結(jié)構(gòu)的智能框架。
支持文檔格式有:
txt,xml,csv,xls,xlsx,ppt,vsd,pub,shw,sldprt,pptx,pubx,vsdx,doc,docx,rtf,pdf,html,htm,eml,msg,vcf,zip,mp3,ape,wma,flac,aif,jpeg,jpg,gif,tiff,png。
如上圖所示,該項(xiàng)目對(duì)各種文件格式進(jìn)行底層封裝,我們只需專(zhuān)注業(yè)務(wù)的開(kāi)發(fā),不需要了解底層細(xì)節(jié)。
1、跨平臺(tái):基于.Net Standard 2.0開(kāi)發(fā),支持Windows、Liunx、Mac。
通過(guò)項(xiàng)目引入的包,我們可以清晰的看到,該項(xiàng)目實(shí)際上是針對(duì)不同文件格式,通過(guò)引用第三方包進(jìn)行統(tǒng)一封裝,比如使用NPOI進(jìn)行解析Office文檔、使用iText來(lái)解析PDF,使用TagLib解析MP3、Wav等音頻文件。
Word文檔操作
//解析docx文檔
ParserContext context = new ParserContext(TestDataSample.GetWordPath("SampleDoc.docx"));
IDocumentParser parser = ParserFactory.CreateDocument(context);
ToxyDocument doc = parser.Parse();
//獲取段落的數(shù)量
Assert.AreEqual(7,doc.Paragraphs.Count);
//判斷第一段落的文本
Assert.AreEqual("I am a test document",doc.Paragraphs[0].Text);
Excel文件操作
//解析xlsx文檔
ParserContext context = new ParserContext(TestDataSample.GetExcelPath('text.xlsx'));
ISpreadsheetParser parser = ParserFactory.CreateSpreadsheet(context);
ToxySpreadsheet ss = parser.Parse();
//獲取Excel表格數(shù)量與名稱
Assert.AreEqual(3, ss.Tables.Count);
Assert.AreEqual("Sheet1", ss.Tables[0].Name);
Assert.AreEqual("Sheet2", ss.Tables[1].Name);
Assert.AreEqual("Sheet3", ss.Tables[2].Name);
//獲取總行數(shù)
Assert.AreEqual(5, ss.Tables[0].Rows.Count);
Assert.AreEqual(0, ss.Tables[1].Rows.Count);
Assert.AreEqual(0, ss.Tables[2].Rows.Count);
//獲取指定行數(shù)
ToxyTable table = ss.Tables[0];
Assert.AreEqual(1, table.Rows[0].RowIndex);
Assert.AreEqual(2, table.Rows[1].RowIndex);
Assert.AreEqual(3, table.Rows[2].RowIndex);
Assert.AreEqual(4, table.Rows[3].RowIndex);
Assert.AreEqual(5, table.Rows[4].RowIndex);
//獲取總表格數(shù)
Assert.AreEqual(1, table.Rows[0].Cells.Count);
Assert.AreEqual(0, table.Rows[1].Cells.Count);
Assert.AreEqual(2, table.Rows[2].Cells.Count);
Assert.AreEqual(2, table.Rows[3].Cells.Count);
Assert.AreEqual(2, table.Rows[4].Cells.Count);
//獲取指定表格的值
Assert.AreEqual("Employee Info", table.Rows[0].Cells[0].ToString());
Assert.AreEqual(1, table.Rows[0].Cells[0].CellIndex);
PDF文檔操作
//解析PDF文檔
string path = TestDataSample.GetPdfPath("Sample1.PDF");
var parser = new PDFDocumentParser(new ParserContext(path));
var result = parser.Parse();
//獲取段落數(shù)
Assert.AreEqual(1474, result.Paragraphs.Count);
//判斷第一段落的文本
Assert.AreEqual("LA MARCHE MONDIALE DES FEMMES", result.Paragraphs[0].Text);
圖片文件操作
//解析jpg圖片
string path = Path.GetFullPath(TestDataSample.GetImagePath("sample_sony1.jpg"));
ParserContext context = new ParserContext(path);
IMetadataParser parser = (IMetadataParser)ParserFactory.CreateMetadata(context);
ToxyMetadata x = parser.Parse();
//屬性數(shù)量
Assert.AreEqual(12, x.Count);
//圖片寬模式時(shí)間等信息
Assert.AreEqual(2592, x.Get("PhotoHeight").Value);
Assert.AreEqual(95, x.Get("PhotoQuality").Value);
Assert.AreEqual(3872, x.Get("PhotoWidth").Value);
Assert.AreEqual("DSLR-A200", x.Get("Model").Value);
Assert.AreEqual((uint)400, x.Get("ISOSpeedRatings").Value );
Assert.AreEqual(5.6, x.Get("FNumber").Value);
Assert.AreEqual((double)35, x.Get("FocalLength").Value );
Assert.AreEqual((uint)52, x.Get("FocalLengthIn35mmFilm").Value );
Assert.AreEqual(new DateTime(2009, 11, 21, 12, 39, 39), x.Get("DateTime").Value);
以上是部分文件格式的解析例子,更多功能,大家可以下載源碼學(xué)習(xí),針對(duì)每一種格式,都有非常詳細(xì)的單元測(cè)試?yán)樱赐昀油耆恍枰臋n。
https://github.com/nissl-lab/toxy
我是編程樂(lè)趣,一個(gè)10年.Net開(kāi)發(fā)經(jīng)驗(yàn)老程序員,專(zhuān)注開(kāi)源項(xiàng)目和編程知識(shí)分享。
私信回復(fù):【888】,領(lǐng)取.Net視頻教程。
- End -
推薦閱讀
一個(gè)簡(jiǎn)單、功能完整的WMS倉(cāng)庫(kù)管理系統(tǒng)
年度盤(pán)點(diǎn)10個(gè)最受歡迎的.Net開(kāi)源項(xiàng)目
一個(gè)強(qiáng)大、支持100多種格式.Net圖片操作庫(kù)
一個(gè).Net簡(jiǎn)單、易用的配置文件操作庫(kù)
基于.NetCore,前端Layui、React、Vue且前后端分離快速開(kāi)發(fā)框架
家工作、學(xué)習(xí)時(shí)間長(zhǎng)了,各類(lèi)文檔也多了,如何快速文檔中的某個(gè)特定字詞、語(yǔ)句呢?
Windows 10自帶的索引無(wú)法搜索文本中的文字,那么有沒(méi)有好用的免費(fèi)工具,可以幫助老師們解決這個(gè)難題呢?
胖胖老師推薦給大家一款GitHub上免費(fèi)開(kāi)源的小工具——AnyTXT Searcher。
官網(wǎng)地址:anytxt.net
AnyTXT Searcher是功能強(qiáng)大的本地?cái)?shù)據(jù)全文搜索引擎,就像本地磁盤(pán)Google搜索引擎一樣。它是您理想的桌面內(nèi)容搜索工具。
AnyTXT Searcher內(nèi)置了功能強(qiáng)大的文檔解析引擎,該引擎無(wú)需安裝任何其他軟件即可提取常用文檔的文本,并且結(jié)合了內(nèi)置的高速索引系統(tǒng)來(lái)存儲(chǔ)文本的元數(shù)據(jù)。
您可以使用AnyTXT Searcher快速找到計(jì)算機(jī)上存在的任何單詞。
它可以在Windows 10、8、7,Vista,XP,2008、2012、2016等操作系統(tǒng)上完美運(yùn)行。
支持的格式
特色功能
軟件下載安裝,選擇“中文”安裝,安裝后就會(huì)是中文界面。
點(diǎn)擊“工具”-“文件索引管理器”,可以自定義搜索文件類(lèi)型和目錄,默認(rèn)排除C:\windows系統(tǒng)根目錄搜索。
第一次使用會(huì)自動(dòng)生成索引文件,只要在搜索欄輸入想要查找的單詞或是短語(yǔ)就可以輕松找到。親測(cè)SSD上搜索文件中有“智慧教育”文本的文件只有0.093秒,找到了全部的177個(gè)文件。
當(dāng)然,我們還可以點(diǎn)擊右上角的“分類(lèi)顯示”按鈕,實(shí)現(xiàn)文檔類(lèi)型的精準(zhǔn)定位。
此外,軟件還能支持簡(jiǎn)單的文件復(fù)制移動(dòng)的管理操作。
之前胖胖老師也使用過(guò)谷歌桌面搜索、everything等軟件來(lái)搜索文本,不過(guò)如果只是臨時(shí)應(yīng)急查找的話,推薦試試AnyTXT Searcher,簡(jiǎn)單方便,還是免費(fèi)的。
胖胖老師給大家準(zhǔn)備了網(wǎng)盤(pán)下載地址,私信回復(fù)“文本”即可獲得。
*請(qǐng)認(rèn)真填寫(xiě)需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。