Skip to main content

Easily convert RTF to plain text format - Supports Javascript, Python, CSharp and PHP.

Project description

Python, Javascript, PHP and C-Sharp RTF-Converter
RTF-Converter is a function that allows users to convert Rich Text Format (RTF) files into plain text using regular expressions.






Features:

Lightweight
Fast and efficient
Pure code, no external dependencies



Installation

Clone the repository:
git clone https://github.com/ClankDev/RTF-Converter.git
cd RTF-Converter

Install using pip:
pip install rtf-converter

Install using npm:
npm i rtf-converter

Install using composer:
composer require clank-ai/rtf-converter



Python - Example Usage

Convert a simple RTF string to plain text:

from rtf_converter import rtf_to_txt

# Sample RTF text
rtf_text = r"{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fswiss\fcharset0 Helvetica;}}{\colortbl ;\red255\green0\blue0;}\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural\f0\fs24 \cf0 Hello, World!}"

# Convert RTF to plain text
plain_text = rtf_to_txt(rtf_text)
print(plain_text)  # Output: Hello, World!




Python - Example Usage #2

Convert an RTF File to Plain Text
Read file from the disk, convert its content to plain text using the rtf_to_txt function, and then save the result to a new text file:

from rtf_converter import rtf_to_txt

# Read RTF file
with open('sample.rtf', 'r', encoding='utf-8') as file:
    rtf_content = file.read()

# Convert RTF content to plain text
plain_text = rtf_to_txt(rtf_content)

# Save plain text to a new file
with open('output.txt', 'w', encoding='utf-8') as file:
    file.write(plain_text)

print("RTF has been successfully converted to plain text and saved as output.txt.")




Python - Handling RTF Conversion Errors

In case the RTF content is not formatted correctly, the rtf_to_txt function might raise an exception. Here is how you can handle such errors gracefully:

from rtf_converter import rtf_to_txt

# Sample RTF text (potentially incorrect format)
rtf_text = r"{\rtf1\ansi\Hello, World!}"

# Attempt to convert RTF to plain text
try:
    plain_text = rtf_to_txt(rtf_text)
    print(plain_text)
except Exception as e:
    print("An error occurred during the conversion:", str(e))




JavaScript - Example Usage

Convert a simple RTF string to plain text:

// Start test server (http-server)
// Save test javascript file as a module (.mjs)
// Import the rtfToTxt function from the rtf-converter npm package
import { rtfToTxt } from './node_modules/rtf-converter/rtf_converter.js';
    
// Sample RTF text
var rtfText = "{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fswiss\\fcharset0 Helvetica;}}{\\colortbl ;\\red255\\green0\\blue0;}\\pard\\tx720\\tx1440\\tx2160\\tx2880\\tx3600\\tx4320\\tx5040\\tx5760\\tx6480\\tx7200\\tx7920\\tx8640\\ql\\qnatural\\pardirnatural\\f0\\fs24 \\cf0 Hello, World!}";

// Convert RTF to plain text
var plainText = rtfToTxt(rtfText);
console.log(plainText);  // Output: Hello, World!




JavaScript - Example Usage #2 (With error handling)

Convert an RTF File to Plain Text
Read file from the disk (or fetch from a server), convert its content to plain text using the rtfToTxt function, and then save the result to a new text file:

<!-- Start test server (http-server) -->
<!-- Save test javascript file as a module (.mjs) -->


<!-- TEST.HTML -->

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>RTF Converter</title>

</head>
<body>
    <h1>RTF Converter</h1>
    <input type="file" id="rtfFile" accept=".rtf" />
    <button onclick="convertRTF()">Convert RTF to Text</button>
    <script src="script.mjs" type="module"></script>
</body>
</html>




<!-- SCRIPT.MJS -->

// Import the rtfToTxt function from the rtf-converter npm package
import { rtfToTxt } from './node_modules/rtf-converter/rtf_converter.js';

// Function to handle the conversion process
function convertRTF() {
    var fileInput = document.getElementById('rtfFile');
    var file = fileInput.files[0];
    if (!file) {
    alert('Please select an RTF file to convert.');
    return;
    }

    // Read the RTF content from the uploaded file
    var reader = new FileReader();
    reader.onload = function(event) {
    var rtfContent = event.target.result;

    // Convert RTF content to plain text using the rtfToTxt function
    var plainText = rtfToTxt(rtfContent);

    // Save plain text to a new file
    var blob = new Blob([plainText], { type: 'text/plain' });
    var link = document.createElement('a');
    link.href = window.URL.createObjectURL(blob);
    link.download = 'output.txt';
    link.click();

    console.log("RTF has been successfully converted to plain text and saved as output.txt.");
    };
    reader.readAsText(file);
}

// Make the convertRTF function globally accessible so that it can be called from the HTML file
window.convertRTF = convertRTF;




PHP - Example Usage

Convert a simple RTF string to plain text:

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);

require_once 'vendor/autoload.php';

use RtfConverter\RtfConverter;

$rtfText = "{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033
    {\\fonttbl{\\f0\\fswiss\\fcharset0 Helvetica;}{\\f1\\fswiss\\fcharset0 Arial;}}
    {\\colortbl ;\\red255\\green0\\blue0;\\red0\\green0\\blue255;}
    Hello, {\\f1\\b World}! This is {\\i italic} text. The — dash and the – dash are different.
    ‘ Quotes ’ are special too. Unicode: \\u8364 is the Euro symbol.
    Nested {\\b\\i bold and italic} text. Here's a list:
    \\list\\listtemplateid1\\listhybrid
    {\\listlevel\\levelnfc0\\leveljc0\\levelfollow0\\levelstartat1\\levelspace0\\levelindent0
    {\\*\\levelmarker\\fi-360\\li720\\jclisttab\\tx720 }{\\leveltext\\leveltemplateid1'\\uc0\\u8226 ;}
    {\\levelnumbers\\leveltemplateid2'\\u-3999 \\u8197 ;}}Hello from nested list!
    }";
    


echo "Before conversion\n";
$plainText = RtfConverter::rtfToTxt($rtfText);
echo "After conversion:\n";
echo $plainText . "\n";
echo "Type of output: " . gettype($plainText) . "\n";
echo "Length of output: " . strlen($plainText) . "\n";
?>




PHP - Example Usage #2

Convert an RTF File to Plain Text
Read file from the disk, convert its content to plain text using the rtfToTxt function, and then save the result to a new text file:

<?php
// Include the RtfConverter class
require_once 'vendor/autoload.php';

use RtfConverter\RtfConverter;

// Read RTF file
$rtfContent = file_get_contents('sample.rtf');

// Convert RTF content to plain text
$plainText = RtfConverter::rtfToTxt($rtfContent);

// Save plain text to a new file
file_put_contents('output.txt', $plainText);

echo "RTF has been successfully converted to plain text and saved as output.txt.";
?>




PHP - Handling RTF Conversion Errors

In case the RTF content is not formatted correctly, the rtfToTxt function might raise an exception. Here is how you can handle such errors gracefully:

<?php
// Include the RtfConverter class
require_once 'vendor/autoload.php';

use RtfConverter\RtfConverter;

// Sample RTF text (potentially incorrect format)
$rtfText = "{\\rtf1\\ansi\\Hello, World!}";

try {
    // Attempt to convert RTF to plain text
    $plainText = RtfConverter::rtfToTxt($rtfText);
    echo $plainText;
} catch (Exception $e) {
    echo "An error occurred during the conversion: " . $e->getMessage();
}
?>




C++ - Example Usage

Convert a simple RTF string to plain text:

#include &lt;iostream&gt;
#include &lt;string&gt;
#include "rtf_converter.cpp" // Assume this header contains the declaration of rtf_to_txt function

int main() {
    // Sample RTF text
    std::string rtfText = "{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fswiss\\fcharset0 Helvetica;}}{\\colortbl ;\\red255\\green0\\blue0;}\\pard\\tx720\\tx1440\\tx2160\\tx2880\\tx3600\\tx4320\\tx5040\\tx5760\\tx6480\\tx7200\\tx7920\\tx8640\\ql\\qnatural\\pardirnatural\\f0\\fs24 \\cf0 Hello, World!}";

    // Convert RTF to plain text
    std::string plainText = rtf_to_txt(rtfText);
    
    std::cout &lt;&lt; plainText;  // Output: Hello, World!
    
    return 0;
}




C++ - Example Usage #2

Convert an RTF File to Plain Text
Read file from the disk, convert its content to plain text using the rtf_to_txt function, and then save the result to a new text file:

#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;string&gt;
#include "rtf_converter.cpp" // Assume this header contains the declaration of rtf_to_txt function

int main() {
    // Read RTF file
    std::ifstream rtfFile("sample.rtf");
    std::string rtfContent((std::istreambuf_iterator&lt;char&gt;(rtfFile)), std::istreambuf_iterator&lt;char&gt;());
    
    // Convert RTF content to plain text
    std::string plainText = rtf_to_txt(rtfContent);
    
    // Save plain text to a new file
    std::ofstream outFile("output.txt");
    outFile &lt;&lt; plainText;
    
    std::cout &lt;&lt; "RTF has been successfully converted to plain text and saved as output.txt." &lt;&lt; std::endl;

    return 0;
}




C++ - Handling RTF Conversion Errors

In case the RTF content is not formatted correctly, the rtf_to_txt function might throw an exception. Here is how you can handle such errors gracefully:

#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;exception&gt;
#include "rtf_converter.cpp" // Assume this header contains the declaration of rtf_to_txt function

int main() {
    // Sample RTF text (potentially incorrect format)
    std::string rtfText = "{\\rtf1\\ansi\\Hello, World!}";

    // Attempt to convert RTF to plain text
    try {
        std::string plainText = rtf_to_txt(rtfText);
        std::cout &lt;&lt; plainText;
    } catch (const std::exception&amp; e) {
        std::cout &lt;&lt; "An error occurred during the conversion: " &lt;&lt; e.what() &lt;&lt; std::endl;
    }
    
    return 0;
}




Contributing
Contributions, issues, and feature requests are welcome!



License
This project is licensed under the MIT License - see the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rtf-converter-0.1.22.tar.gz (8.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rtf_converter-0.1.22-py3-none-any.whl (10.1 kB view details)

Uploaded Python 3

File details

Details for the file rtf-converter-0.1.22.tar.gz.

File metadata

  • Download URL: rtf-converter-0.1.22.tar.gz
  • Upload date:
  • Size: 8.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.0

File hashes

Hashes for rtf-converter-0.1.22.tar.gz
Algorithm Hash digest
SHA256 9c25267c69db51e6d8c7be8f18b904c0460dec0203e654287842f2daa0c65e5f
MD5 f7f0e75f699cadeef772eb48291ec198
BLAKE2b-256 6c89900e6d450e247870ee8f28051e50ec6f0bc95bb31ad208762c61f913057e

See more details on using hashes here.

File details

Details for the file rtf_converter-0.1.22-py3-none-any.whl.

File metadata

  • Download URL: rtf_converter-0.1.22-py3-none-any.whl
  • Upload date:
  • Size: 10.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.0

File hashes

Hashes for rtf_converter-0.1.22-py3-none-any.whl
Algorithm Hash digest
SHA256 b7970122f7007c73bdb644075102067f9322d3b6729f5a9ed3dd84c7a4a187af
MD5 63c897d9049f0de169b6bda3b846685b
BLAKE2b-256 93aa2628631de6de4d10f4ce37dd3d9e5a6a780311b32d8f1eb1a74cd39c80e9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page