Преобразование pod в pdf, perl old documentation, text, latex, postscript, pdf


Для преобразование pod в pdf понадобятся некоторые системы. Проще всего воспользоваться системой LaTeX.

Сперва делаем PostScript:

#!/bin/sh
f=DBI
pod2latex -out $f.t $f.pm
( cat doc-head-12pt.tex
perl -pe 's/section\*/section/g' $f.t.tex
cat doc-tail.tex ) > $f.tex
latex $f.tex
latex $f.tex
dvips -o $f.ps $f.dvi

Совет: если вы создаёте русский POD-документ и вам выдаётся странная ошибка, что POD не обнаружен, то поправьте в модуле Pod::Find строчку unless(-f $file && -T _ && ($file =~ /\.(pod|pm|plx?)\z/i || -x _ )). Выкиньте из неё проверку -T — она не воспринимает файл, как текстовый, если в нём есть не-ASCII символы, коими являются русские буквы.

Здесь предполагается, что DBI.pm (или любой другой файл с POD-документацией) находится в текущей директории, а файлы doc-head-12pt.tex и doc-tail.tex имеют примерно следующее содержание:

файл doc-head-12pt.tex:

% Задаём глобальные атрибуты документа
%\documentclass[11pt, twocolumn]{article}
\documentclass[11pt]{article}
%\usepackage[magstep2]{scale}

%\usepackage[a3paper]{geometry}

% Изменяем поля
\addtolength{\hoffset}{-.9in}
\addtolength{\textwidth}{1.8in}
\addtolength{\voffset}{-1.1in}
\addtolength{\textheight}{2.2in}
% Отступ абзацев
\setlength{\parindent}{1cm}
% Расстояние между абзацами
\setlength{\parskip}{0pt}
% Русский стиль оформления абзацев
%\usepackage{indentfirst}

% Оговариваем кодировку документа
% (обычно POD-документы англоязычны, но вы можете создать
% свой собственный на любом языке)
%\usepackage[cp866]{inputenc}
% \usepackage[koi8-r]{inputenc}
% \usepackage[russian]{babel}
% \selectlanguage{russian}
%\usepackage{draftcopy}

% Включаем графический пакет
% (это только для опытных пользователей, которые
% сами разрабатывают документацию в POD)
%\usepackage[dvips]{graphicx}
%\graphicspath{{ps/}}
% Макрос для вставки картинок
%\newcommand{\inspsfig}[3]{
%\begin{figure}[!htbp]
%\begin{center}
%\includegraphics[angle=0, width=#2\textwidth]{#1}
%\end{center}
%\caption{#3}
%\label{text}
%\end{figure}
%}

% Задаём межстрочный интервал
\linespread{1}

% Документ начался
\begin{document}
% В начале документа генерируем оглавление и …
\tableofcontents
% … список иллюстраций
%\listoffigures
% Можно начать документ со следующей страницы
\newpage
% а можно просто задать отступ
%\vspace{50mm}

Большинство директив здесь закомментированны, но они могу оказать полезны. А иные вам, возможно, захочется закомментировать.

файл doc-tail.tex:

\end{document}

Скрипт создаёт PS-файл с которым можно сделать любые преобразования. Например, если на выходе нужен буклет, то это можно сделать так:

#/bin/sh
f=DBI
pstops '4:-3L@.7(21cm,0)+0L@.7(21cm,14.85cm)' $f.ps $f-up.ps
pstops '4:1L@.7(21cm,0)+-2L@.7(21cm,14.85cm)' $f.ps $f-down.ps

Получатся два файла (у нас: DBI-up.ps и DBI-down.ps). Это все верхние и все нижние странички. То есть печатаете сперва верхние, потом переворачиваете всю пачку и печатаете нижние. Потом складываете пачку пополам, прошиваете, и буклет готов.

Все полученные PSы можно переделать в PDFы:

#/bin/sh
gs -sOutputFile=${1%.ps}.pdf \
-dBATCH -dNOPAUSE \
-sPAPERSIZE=a4 \
-sDEVICE=pdfwrite \
$1


Комментарии запрещены.




Статистика