PDF處理控件Aspose.PDF功能演示:使用C#實現PDF和TXT格式互轉
PDF文件之所以受歡迎,是因為它們支持文本,圖像,動畫,視頻和許多其他注釋。
但是,文本是大多數PDF文檔中最重要的部分。在本文中,我們將使用C#.NET將PDF轉換為TXT文件,并將TXT文件轉換為PDF格式。本文內容包括:
- 使用C#或VB.NET將PDF轉換為TXT文件而不進行格式化
- 使用C#或VB.NET使用格式化例程將PDF轉換為TXT文件
- 使用C#或VB.NET以編程方式將TXT文件轉換為PDF
目前,.NET版Aspose.PDF升級到v20.9版,增強TIFF到PDF的轉換性能,修復LZW解碼器失敗等諸多Bug問題,感興趣的朋友可點擊下方按鈕下載最新版。
使用C#或VB.NET將PDF轉換為TXT文件而不進行格式化
首先,我們將無需任何格式設置例程即可將PDF轉換為文本。文本內容將按原樣轉換。因此,從輸入的PDF文件開始,輸出文本將不遵循任何格式。需要按照以下步驟將PDF高效且可靠地轉換為TXT。
- 加載輸入的PDF文檔
- 初始化StringBuilder類的實例
- 遍歷PDF文檔的每一頁
- 使用TextDevice和Raw模式讀取文本
- 將輸出文本另存為TXT文件
下面的代碼段顯示了如何在.NET Framework中使用C#或VB將PDF轉換為TXT文件:
// 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#或VB.NET使用格式化例程將PDF轉換為TXT文件
可以按照以下步驟,使用C#輕松地將PDF文檔的文本內容呈現為TXT文件:
- 加載源PDF文件
- 啟動一個字符串變量
- 使用TextFormattingMode.Pure通讀每個頁面
- 保存轉換后的TXT文件
以下代碼段顯示了如何使用C#或VB.NET語言將PDF格式轉換為TXT文件:
// 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());
視覺比較PURE和RAW文本轉換
以下屏幕快照是我們剛剛討論的兩種方法的直觀比較。您會注意到,純模式(最右邊的窗口)以與PDF文件(最左邊的窗口)相同的格式顯示文本。

使用C#或VB.NET以編程方式將TXT文件轉換為PDF
TXT文件通常包含大量文本內容。您可以使用Aspose.PDF for .NET API輕松地將TXT文件轉換為PDF文件。只需按照以下步驟執行文本到PDF的轉換:
- 創建一個TextReader類的實例
- 初始化PDF文檔并添加空白頁
- 實例化TextBuilder對象
- 從輸入的TXT文件中讀取每一行文本
- 保存輸出PDF文件
下面的代碼段說明了如何使用C#或VB.NET語言以編程方式將包含文本的TXT文件轉換為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();
還想要更多嗎?您可以點擊閱讀【2020 · Aspose最新資源整合】,查找需要的教程資源。如果您有任何疑問或需求,請隨時加入Aspose技術交流群(642018183),我們很高興為您提供查詢和咨詢。