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
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))
// 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
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();
}
?>
#include <iostream>
#include <string>
#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 << 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 <iostream>
#include <fstream>
#include <string>
#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<char>(rtfFile)), std::istreambuf_iterator<char>());
// 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 << plainText;
std::cout << "RTF has been successfully converted to plain text and saved as output.txt." << 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 <iostream>
#include <string>
#include <exception>
#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 << plainText;
} catch (const std::exception& e) {
std::cout << "An error occurred during the conversion: " << e.what() << 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.