PDF處理控件Aspose.PDF功能演示:使用C#實(shí)現(xiàn)PDF和TXT格式互轉(zhuǎn)
PDF文件之所以受歡迎,是因?yàn)樗鼈冎С治谋?,圖像,動(dòng)畫(huà),視頻和許多其他注釋。
但是,文本是大多數(shù)PDF文檔中最重要的部分。在本文中,我們將使用C#.NET將PDF轉(zhuǎn)換為T(mén)XT文件,并將TXT文件轉(zhuǎn)換為PDF格式。本文內(nèi)容包括:
- 使用C?;騐B.NET將PDF轉(zhuǎn)換為T(mén)XT文件而不進(jìn)行格式化
- 使用C?;騐B.NET使用格式化例程將PDF轉(zhuǎn)換為T(mén)XT文件
- 使用C?;騐B.NET以編程方式將TXT文件轉(zhuǎn)換為PDF
目前,.NET版Aspose.PDF升級(jí)到v20.9版,增強(qiáng)TIFF到PDF的轉(zhuǎn)換性能,修復(fù)LZW解碼器失敗等諸多Bug問(wèn)題,感興趣的朋友可點(diǎn)擊下方按鈕下載最新版。
點(diǎn)擊下載最新版Aspose.PDF for .NET
使用C?;騐B.NET將PDF轉(zhuǎn)換為T(mén)XT文件而不進(jìn)行格式化
首先,我們將無(wú)需任何格式設(shè)置例程即可將PDF轉(zhuǎn)換為文本。文本內(nèi)容將按原樣轉(zhuǎn)換。因此,從輸入的PDF文件開(kāi)始,輸出文本將不遵循任何格式。需要按照以下步驟將PDF高效且可靠地轉(zhuǎn)換為T(mén)XT。
- 加載輸入的PDF文檔
- 初始化StringBuilder類(lèi)的實(shí)例
- 遍歷PDF文檔的每一頁(yè)
- 使用TextDevice和Raw模式讀取文本
- 將輸出文本另存為T(mén)XT文件
下面的代碼段顯示了如何在.NET Framework中使用C?;騐B將PDF轉(zhuǎn)換為T(mén)XT文件:
// Open document Document pdfDocument = new Document(dataDir + "MultiColumnPdf.pdf"); StringBuilder builder = new StringBuilder(); // String to hold extracted text string extractedText = ""; foreach (Page pdfPage in pdfDocument.Pages) { using (MemoryStream textStream = new MemoryStream()) { // Create text device TextDevice textDevice = new TextDevice(); // Set different options TextExtractionOptions options = new TextExtractionOptions(TextExtractionOptions.TextFormattingMode.Raw); textDevice.ExtractionOptions = options; // Convert the page and save text to the stream textDevice.Process(pdfPage, textStream); // Close memory stream textStream.Close(); // Get text from memory stream extractedText = Encoding.Unicode.GetString(textStream.ToArray()); } builder.Append(extractedText); } dataDir = dataDir + "PDF_to_TXT_Raw.txt"; // Save the text file File.WriteAllText(dataDir, builder.ToString());
使用C?;騐B.NET使用格式化例程將PDF轉(zhuǎn)換為T(mén)XT文件
可以按照以下步驟,使用C#輕松地將PDF文檔的文本內(nèi)容呈現(xiàn)為T(mén)XT文件:
- 加載源PDF文件
- 啟動(dòng)一個(gè)字符串變量
- 使用TextFormattingMode.Pure通讀每個(gè)頁(yè)面
- 保存轉(zhuǎn)換后的TXT文件
以下代碼段顯示了如何使用C?;騐B.NET語(yǔ)言將PDF格式轉(zhuǎn)換為T(mén)XT文件:
// Open document Document pdfDocument = new Document(dataDir + "MultiColumnPdf.pdf"); StringBuilder builder = new StringBuilder(); // String to hold extracted text string extractedText = ""; foreach (Page pdfPage in pdfDocument.Pages) { using (MemoryStream textStream = new MemoryStream()) { // Create text device TextDevice textDevice = new TextDevice(); // Set different options TextExtractionOptions options = new TextExtractionOptions(TextExtractionOptions.TextFormattingMode.Pure); textDevice.ExtractionOptions = options; // Convert the page and save text to the stream textDevice.Process(pdfPage, textStream); // Close memory stream textStream.Close(); // Get text from memory stream extractedText = Encoding.Unicode.GetString(textStream.ToArray()); } builder.Append(extractedText); } dataDir = dataDir + "PDF_to_TXT_Pure.txt"; // Save the text file File.WriteAllText(dataDir, builder.ToString());
視覺(jué)比較PURE和RAW文本轉(zhuǎn)換
以下屏幕快照是我們剛剛討論的兩種方法的直觀比較。您會(huì)注意到,純模式(最右邊的窗口)以與PDF文件(最左邊的窗口)相同的格式顯示文本。
使用C?;騐B.NET以編程方式將TXT文件轉(zhuǎn)換為PDF
TXT文件通常包含大量文本內(nèi)容。您可以使用Aspose.PDF for .NET API輕松地將TXT文件轉(zhuǎn)換為PDF文件。只需按照以下步驟執(zhí)行文本到PDF的轉(zhuǎn)換:
- 創(chuàng)建一個(gè)TextReader類(lèi)的實(shí)例
- 初始化PDF文檔并添加空白頁(yè)
- 實(shí)例化TextBuilder對(duì)象
- 從輸入的TXT文件中讀取每一行文本
- 保存輸出PDF文件
下面的代碼段說(shuō)明了如何使用C?;騐B.NET語(yǔ)言以編程方式將包含文本的TXT文件轉(zhuǎn)換為PDF文檔:
// Read input TXT file System.IO.TextReader tr = new StreamReader(dataDir + "Test.txt", Encoding.UTF8, true); // Initialize new Document Document doc = new Document(); // Add blank page Page page = doc.Pages.Add(); String strLine; // Initiate TextBuilder object TextBuilder builder = new TextBuilder(page); double x = 100; double y = 100; while ((strLine = tr.ReadLine()) != null) { TextFragment text = new TextFragment(strLine); text.Position = new Position(x, y); if (y >= page.PageInfo.Height - 72) { y = 100; page = doc.Pages.Add(); builder = new TextBuilder(page); } else { y += 15; } builder.AppendText(text); } // Save output PDF file doc.Save(dataDir + "TexttoPDF.pdf"); tr.Close();
還想要更多嗎?您可以點(diǎn)擊閱讀【2020 · Aspose最新資源整合】,查找需要的教程資源。如果您有任何疑問(wèn)或需求,請(qǐng)隨時(shí)加入Aspose技術(shù)交流群(642018183),我們很高興為您提供查詢(xún)和咨詢(xún)。