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 <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.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9c25267c69db51e6d8c7be8f18b904c0460dec0203e654287842f2daa0c65e5f
|
|
| MD5 |
f7f0e75f699cadeef772eb48291ec198
|
|
| BLAKE2b-256 |
6c89900e6d450e247870ee8f28051e50ec6f0bc95bb31ad208762c61f913057e
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b7970122f7007c73bdb644075102067f9322d3b6729f5a9ed3dd84c7a4a187af
|
|
| MD5 |
63c897d9049f0de169b6bda3b846685b
|
|
| BLAKE2b-256 |
93aa2628631de6de4d10f4ce37dd3d9e5a6a780311b32d8f1eb1a74cd39c80e9
|