UP | HOME |

Convertir un pdf para leerlo en un libro electrónico con LaTeX

Convertir un pdf para leerlo en un libro electrónico con LaTeX

Leer ficheros pdf en un libro electrónico resulta muy tedioso si el tamaño de las páginas no se corresponde con el tamaño de la pantalla del libro electrónico (ereader). Aquí se pone un ejemplo que transforma un mapa de tamaño din A1 en múltiples páginas de tamaño 9cmx12cm enlazadas entre sí formando un libro muy cómodo de manejar con el libro electrónico.

En este caso, dispongo de un libro con 253 páginas de tamaño din A4 y deseo convertirlo a tamaño 9cmx12cm, manteniendo una tamaño de letra adecuado. Como el tamaño del din A4 es 21cm×29.7cm he decidido imprimir en apaisado cada página en otras dos, recortando los márgenes para que se vea bien. Como las páginas pares e impares presentan diferentes maquetaciones (simétricas), proceso cada página en función de si es par o impar. Los recortes que hago los he estimado mediante ensayo y error.

El principal inconveniente que tiene este método reside en que se pierden los hiperenlaces. Pero el resultado merece la pena: queda muy bien en cuanto a comodidad de lectura y el libro electrónico no se bloquea en absoluto.

Aquí va el código en LaTeX.

\documentclass[a4paper,14pt]{extarticle}
\usepackage[paperwidth=9cm, paperheight=12cm, margin=0cm]{geometry}

\usepackage[utf8]{inputenc}     % Linux
\usepackage[spanish,es-tabla,es-nodecimaldot,es-noshorthands]{babel} % Spanish titles
\usepackage{fouriernc}          % Type of font
\usepackage[T1]{fontenc}        % To deal with non ascii characters
\usepackage{graphicx}           % To include graphs. See epslatex.pdf
\DeclareGraphicsExtensions{.pdf,.png,.jpg,.mps}
\graphicspath{{graphics/}}

\usepackage[export]{adjustbox}

\usepackage{forloop}
\usepackage{ifthen}


\newcommand{\filename}{madre.pdf}

\begin{document}

\newsavebox{\pagepdf}


\newcounter{loopcounter}
\forloop{loopcounter}{1}{\value{loopcounter} < 254}{%
\savebox{\pagepdf}{\includegraphics[page=\theloopcounter,rotate=90]{\filename}}%
\ifthenelse{\isodd{\value{loopcounter}}}{% odd
% The current number (\arabic{loopcounter}) is odd.\par
% left bottom right top,
\resizebox{\paperwidth}{\paperheight}{\adjustbox{trim=52mm 35mm 143mm 33mm}{\usebox{\pagepdf}}}%
\newpage%
\resizebox{\paperwidth}{\paperheight}{\adjustbox{trim=153mm 35mm 34mm 33mm}{\usebox{\pagepdf}}}%
\newpage%
}{% Even ========================================
\resizebox{\paperwidth}{\paperheight}{\adjustbox{trim=52mm 33mm 137mm 35mm}{\usebox{\pagepdf}}}%
\newpage%
\resizebox{\paperwidth}{\paperheight}{\adjustbox{trim=157mm 33mm 35mm 35mm}{\usebox{\pagepdf}}}%
\newpage%
% The current number (\arabic{loopcounter}) is even.\par
}
}


\end{document}