archivo de word->txt->perlazo->html

Este es un post sobre el fino arte de piratearse un ebook, aunque no voy a decir que me incrimine, excepto que se trata de una autora contemporanea, de la que hace poco comenté aquí mismo que leí cierta saga de 4 libros sobre vampiritos amables.

Bueno, la historia está así, tengo un archivo de word (.doc), entonces, lo primero que hice fue convertirlo a txt en el word (duh!), luego con el script que está abajo que además usa el programa “txt2html” se divide el texto en capítulos y se convierte a HTML para ser subido a mi iphone y pueda ser leído con el BookReader.

Si tuve que hacerle algunos cambios al “txt”, porque el script no es muy inteligente (como su dueño) (no es mío !!), pero nada que tome más de 1 minuto, al final tengo en mi iphone listo para leerse la más reciente novela de la susodicha misteriosa.

[codesyntax lang=’perl’ container=’pre’]#!/opt/local/bin/perl -w
use strict;
use warnings;

my $file = $ARGV[0];
open FILE, “< $file"; my $oldname = "CHAPTER 0"; open FILE_OUT, ">$oldname.txt”;
while () {
chop;
my $linea = $_;
if ( $_ =~ m/^CHAPTER [\d]+$/ ) {
print “$_ – “;
my $chap = $_;
my $name =
;
chop $name;
print “$name\n”;
close FILE_OUT;
open FILE_OUT, “>$chap-$name.txt”;
`txt2html “$oldname.txt” > “$oldname.html”`;
$oldname = “$chap-$name”;
$linea = “$chap – $name”;
} elsif ( $_ =~ m/^Page [\d]+$/ ) {
$linea =
;
$linea =
or $linea = “”;
}
print FILE_OUT “$linea\n” or warn “Fin de archivo?”;
}
`txt2html “$oldname.txt” > “$oldname.html”`;
[/codesyntax]

El documento original usa un par de patrones para los títulos de cada capítulo y para las páginas, entonces de eso me aproveché para poder dividir en archivos cada capítulo, y bueno, eliminar la molesta etiqueta de “Page 1… Page 2…”. Con lo cual doy el primer paso para dedicarme a convertidor de textos a ebooks 😛

SPOILER: El libro es “The host” o “La Huesped” creo se llama en español, de Stephenie Meyer de quien me declaro fans ! (en realidad esto es pa ayudarle a google a indexar el post 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *

Posted by: garaged on

Tags: , , ,