RTF ke Teks: Lupuskan Perkataan Kawalan, Simpan Perkataan
Ramai orang menemui RTF dengan cara yang sukar. Anda mempunyai folder .rtf fail, anda memerlukan
kandungan dalam pangkalan data, dan memandangkan formatnya secara teknikalnya adalah ASCII biasa, anda fikir anda boleh membaca fail tersebut
dan dilakukan. Kemudian anda melihat apa yang anda muatkan dan ia {\rtf1\ansi\deff0{\fonttbl{\f0\froman Times
New Roman;}}{\colortbl;\red0\green0\blue0;}\viewkind4\uc1\pard\f0\fs24 Dear Sir,\par dan kira-kira empat
kilobait itu sebelum ayat kedua surat itu.
RTF ialah teks, tetapi ia adalah teks dengan bahasa penanda yang membalutinya, dan menarik perkataan keluar bermakna sebenarnya menghuraikan perkataan kawalan dan bukannya mengekstrak semula dengan harapan pada garis miring ke belakang. Itulah yang dilakukan oleh ini. Ekstrak teks daripada fail RTF dan anda mendapat prosa dalam susunan bacaan dan tidak ada yang lain. Percuma, tiada pendaftaran, had 50 MB, tiada apa yang disimpan di pihak kami.
Mengapa Pelucutan Naif Menjadi Salah
Sangat menggoda untuk menulis fungsi dua puluh baris yang memadamkan apa-apa yang bermula dengan garis miring ke belakang. Ia berfungsi pada tiga fail pertama dan kemudian secara senyap-senyap merosakkan yang lain. Cara-cara tertentu ia pecah patut diketahui jika anda tidak pernah menulis fungsi itu, kerana ia adalah perkara yang sama yang perlu dikendalikan oleh penghurai sebenar:
- Kumpulan pengepala tidak berpuas hati. Jadual fon, jadual warna, lembaran gaya dan meja semakan semuanya terletak di bahagian atas fail dalam pendakap. Potong perkataan kawalan tetapi simpan teks di dalam kumpulan tersebut dan output anda bermula dengan senarai nama muka taip.
- Braces membawa maksud. Pemformatan sarang dan skop kumpulan. Beberapa kumpulan -
\*\generator,\info, data objek terbenam — harus dibuang keseluruhannya, bukan terbongkar. - Melarikan diri kelihatan seperti kandungan.
\'92adalah watak sebenar, bukan kata kawalan untuk memadam. Alih keluarnya dan setiap tanda kutip dalam dokumen hilang di tengah-tengah perkataan. - Binari bersembunyi di dalam. Imej hidup dalam
\pictkumpulan sebagai larian hex yang panjang digit yang kelihatan sama seperti teks biasa kepada penapis bodoh. Begitulah cara anda mendapat 40,000 watak-watak daripada0100090000di tengah-tengah surat. - Penanda perenggan penting.
\parharus menjadi putus baris, bukan apa-apa, atau keseluruhan dokumen tiba sebagai satu perenggan run-on yang besar.
Tempat RTF Muncul Secara Pukal
Tiada siapa yang mempunyai tiga fail RTF. Orang ramai mempunyai tiga ribu, kerana beberapa sistem telah memancarkannya secara berterusan sejak 2004. Suspek biasa:
- Fail penemuan undang-undang dan kes. Transkrip, pemfailan dan surat-menyurat yang dieksport daripada sistem pengurusan kes, selalunya dalam satu direktori rata dengan nama fail samar.
- Dokumentasi klinikal. Nota didikte, ringkasan pelepasan dan surat rujukan disimpan sebagai gumpalan RTF dalam jadual EHR — biasanya kerana vendor memilihnya pada tahun 2003 dan tiada apa yang terpaksa tukar sejak.
- Rekod kerajaan. Dipilih atas sebab yang sama mahkamah memilihnya: terbuka, stabil spec yang masih akan dibuka dalam masa tiga puluh tahun.
- Arkib e-mel lama. Mod teks kaya Outlook ialah RTF di bawah kulit, jadi ia hilang Pengekstrakan e-mel MSG secara berterusan.
- Eksport aplikasi warisan. Sebarang alat CRM, meja bantuan atau barisan perniagaan dengan a medan teks kaya sebelum era editor web hampir pasti menyimpan RTF dalam lajur.
- dokumen WordPad. Dekad nota tidak rasmi dan prosedur disimpan oleh orang yang menggunakan apa sahaja Windows yang dibuka secara lalai.
Utas biasa: ini ialah arkib yang anda ingin cari, indeks atau ajukan soalan merentasi — iaitu betul-betul teks biasa kerja adalah untuk.
Pengekodan Adalah Bahagian Yang Sebenarnya Menggigit
Kebanyakan masalah RTF di alam liar adalah masalah pengekodan aksara, bukan masalah struktur. Format telah direka sebelum Unicode diselesaikan, dan fail lama membawa sejarah itu di dalamnya.
Pengepala mengisytiharkan halaman kod - \ansicpg1252 untuk Windows Eropah Barat adalah yang biasa,
tetapi anda akan bertemu \ansicpg1251 untuk Cyrillic, \ansicpg1250 untuk Eropah Tengah, dan
\mac untuk fail yang memulakan hidup pada Macintosh klasik. Aksara bukan ASCII kemudiannya muncul sebagai
hex melarikan diri seperti \'92 atau \'e9, yang maknanya bergantung sepenuhnya pada itu
pengisytiharan. Silap faham dan é menjadi huruf Cyrillic, atau apostrof kerinting menjadi kotak.
Penggunaan fail yang lebih baru \uN? — titik kod Unicode diikuti dengan aksara sandaran untuk pembaca juga
tua untuk mengendalikannya. Dihuraikan dengan betul anda mendapat watak sebenar; dihuraikan sembarangan anda mendapat sandaran, yang
selalunya menjadi tanda tanya literal. Itulah asal usul dokumen di mana setiap em dash dan petikan pintar mempunyai
bertukar menjadi ?.
Jadi: sebelum anda membuat satu kelompok ke pangkalan data, buka dua atau tiga fail yang ditukar dan lihat secara khusus apostrof, tanda petikan, sempang, dan sebarang nama dengan aksen. Empat perkara itu memberitahu anda sama ada pengekodan telah dibaca dengan betul. Jika mereka salah, mereka salah secara konsisten, dan mencari-dan-ganti di seluruh kumpulan membetulkannya sekali gus.
Teks atau Markdown? Soalan Penentu
Ia bergantung kepada sama ada dokumen itu mempunyai jadual yang penting untuk anda.
Jadual RTF ditakrifkan secara eksplisit dengan \trowd dan \cellx, jadi mereka membina semula
ke dalam meja paip dengan bersih jika anda meminta Markdown. Ratakan mereka untuk teks dan nilai semua bertahan tetapi
lajur setiap satu milik tidak — jadual pengebilan menjadi lajur nombor yang dipisahkan oleh ruang putih,
dan tiada jumlah gesaan yang mengembalikan lajur. Jika itu dokumen anda, gunakan
RTF kepada Markdown. Togol format
di bahagian atas halaman ini beralih dan menyimpan fail yang telah anda pilih.
Untuk segala-galanya — surat, nota, transkrip, memo, surat-menyurat, kebanyakan perkara yang sebenarnya digunakan oleh RTF
untuk — teks ialah output yang lebih baik. Itulah yang dimahukan oleh indeks carian teks penuh, apa yang digunakan untuk membenamkan saluran paip
lalai, apa grep dibaca, dan apa yang diharapkan oleh pengelas. Asterisk dan paip Markdown akan
jadilah watak yang anda buang semula pada langkah seterusnya.
Melewati Kumpulan Besar
- Zip folder. ZIP ke teks menukar setiap fail yang disokong di dalam arkib dalam satu laluan, yang jauh lebih baik daripada memuat naiknya satu persatu. Fikirkan siling 50 MB — RTF tidak dimampatkan dan fail dengan imej terbenam jauh lebih besar daripada jumlah perkataan mereka mencadangkan.
- Sampel sebelum anda membuat komitmen. Tukar lima fail dari tahun berbeza dahulu. Pengekodan kelompok masalah mengikut era dan oleh alat yang menghasilkannya, dan sampel akan menunjukkan kepada anda coraknya sebelum anda memproses tiga ribu.
- Kekalkan nama fail sebagai metadata. Sebaik sahaja ia menjadi teks rata, nama fail mungkin satu-satunya asal yang telah anda tinggalkan. Simpannya bersama setiap rekod.
- Jangkakan boilerplate. Kepala surat, pengaki dan penutup standard berulang di setiap fail dalam korpus. Mereka menjadi perbendaharaan kata yang kerap palsu dalam sebarang analisis kekerapan atau topik, jadi menanggalkannya sebaik sahaja anda melihat coraknya.
- Perhatikan pemotongan. Banyak alatan mengeluarkan sedikit RTF tidak selaras dengan tidak seimbang pendakap gigi. Jika fail yang ditukar berhenti pada pertengahan ayat, sumbernya adalah salah bentuk dan bukannya penukaran gagal secara senyap — buka yang asal dalam penyunting teks dan anda biasanya akan melihat di mana ia salah.
- Semak kiraan token. Kaunter di bawah output memberitahu anda kos dokumen sebelum anda menampalnya di mana-mana, yang berguna apabila anda memutuskan jumlah arkib yang sesuai dengannya segera.
RTF, DOCX, dan Mana Satu untuk Ditukar
Jika dokumen wujud sebagai kedua-duanya, ambil DOCX. Ia membawa hierarki gaya yang betul dan semantik yang lebih kaya, dan Perkataan ke teks adalah moden yang lebih dekat setara dengan halaman ini.
Tetapi RTF mempunyai satu kelebihan sebenar untuk pengekstrakan teks pukal, dan ia bukan nostalgia: ia adalah linear tunggal aliran tanpa lapisan mampatan. Tiada bekas zip yang akan rosak, tiada bahagian XML yang merujuk antara satu sama lain. Apabila sesuatu berlaku, anda boleh membuka fail dalam mana-mana editor dan membaca punca dengan mata anda sendiri. Merentasi beberapa ribu fail yang tidak diketahui asalnya, kebolehramalan itu bernilai jumlah yang mengejutkan.
Soalan Lazim
Bagaimanakah cara saya mengekstrak teks daripada fail RTF?
Lepaskan .rtf ke dalam penukar di atas. Kata kawalan dihuraikan dengan betul dan anda mendapat prosa dalam susunan bacaan tanpa sebarang penanda. Percuma, tiada pendaftaran, 50 MB setiap fail, tiada apa yang disimpan. Muat turun sebagai .txt atau menyalinnya.
Mengapa saya tidak boleh membuka RTF dalam penyunting teks?
Anda boleh, dan anda akan lihat {\rtf1\ansi\deff0{\fonttbl{\f0\froman Times New Roman;}} diikuti dengan beberapa kilobait lagi sebelum ayat kedua surat itu. RTF ialah ASCII, tetapi ia adalah ASCII yang dibungkus dalam bahasa penanda. Perkataan itu ada di sana, bersilang dengan jadual fon, jadual warna dan perkataan kawalan yang perlu dihuraikan dan bukannya dipadankan dengan corak.
Mengapakah saya sendiri menanggalkan garis miring ke belakang menghasilkan output yang rosak?
Kerana perkataan kawalan tidak dihadkan secara seragam dan sesetengahnya membawa data yang anda mesti simpan. Regex yang memadamkan apa-apa selepas garis miring ke belakang turut dipadamkan \'e9, iaitu cara RTF mengekod aksara beraksen — jadi setiap nama dengan diakritik kehilangan huruf secara senyap. Ia berfungsi pada tiga fail pertama dan secara senyap-senyap merosakkan yang lain.
Adakah aksara aksen dan bukan bahasa Inggeris bertahan?
Ya, apabila fail mengisytiharkan pengekodannya dengan betul, yang kebanyakannya melakukannya. RTF melepaskan aksara bukan ASCII sebagai jujukan hex yang terikat pada halaman kod yang diisytiharkan dan penghuraian yang betul menyelesaikannya kembali kepada Unicode sebenar. Ini adalah satu-satunya kegagalan yang paling biasa dalam pelucutan gulung tangan, dan kegagalan yang paling banyak merosakkan set data nama atau alamat.
Adakah jadual dalam dokumen RTF ditukar?
Kandungan sel datang, tetapi sebagai teks yang sedang berjalan dan bukannya sebagai grid — teks biasa tidak mempunyai cara untuk menyatakan lajur. Jika dokumen itu ialah laporan yang dibina di sekeliling jadual, RTF kepada Markdown sebaliknya menyimpan baris dan lajur sebagai jadual paip.
Selebihnya Kit Alat
RTF ialah salah satu daripada tiga belas format yang disokong. File2Txt mengendalikan kesemuanya daripada a muat naik tunggal jika anda lebih suka tidak memilih halaman. Berdekatan: PDF ke teks untuk susun atur tetap dokumen, EPUB kepada teks untuk e-buku, HTML kepada teks untuk halaman yang disimpan, dan XML kepada teks untuk jenis lain format pertukaran warisan.
Bekerja dengan kod atau web langsung? Ada GitHub repositori kepada penukar teks, a GitLab versi, a penukar folder tempatan, dan Web2Txt untuk mengikis URL. The panduan untuk menyediakan dokumen untuk LLM merangkumi versi umum ini.
Repo2Txt dibina dan diselenggara oleh v12hero, pembangun bebas membina apl asli dan web yang mengutamakan privasi.