使用 pdfpages 混合横向/纵向 pdf

使用 pdfpages 混合横向/纵向 pdf

我正在使用pdfpages将 PDF 包含在我的 LaTeX 文档中。

其中一些pdfs同时包含landscapeportrait页面,我不一定事先知道这些发生在哪里。

有没有办法处理pdfpages这种混合内容?目前,我只是将所有内容都作为纵向 ( [landscape=false]) 包含进去,这样确实可以生成可操作的文档,但横向页面会旋转并缩小。

或者,是否有与 pdfpages 不同的解决方案?

MWEone.pdf是一个(假设的)混合了横向和纵向页面的 PDF:

\documentclass[12pt,english]{article}
\usepackage{pdfpages}

\begin{document}

This is the text in the master file.

\includepdf[pages=-]{one}

\end{document}

答案1

让我们的第一步就是准备这样一本书(book.tex)。

%! *latex book.tex
\documentclass[a4paper]{article}
\pagestyle{empty}
\usepackage{pdflscape}
\begin{document}
\font\malfont=cmbx10 at 500pt \malfont
\def\insertpage{\mbox{}\vfil\hfil\thepage}
\insertpage
\begin{landscape}\insertpage\end{landscape}
\insertpage
\begin{landscape}\insertpage\end{landscape}
\end{document}

书

最快的方法可能是使用pdfpages包,http://www.ctan.org/pkg/pdfpages,并将选项rotateoversize切换为 true。这是示例及其结果。

%! *latex book-transform1.tex
\documentclass[a4paper]{article}
\usepackage{pdfpages}
\begin{document}
\includepdf[pages={-},fitpaper,rotateoversize]{book.pdf}
\end{document}

mwe 转型 1

唯一的问题是,如果我们想将横向页面旋转(或装饰、排版、签名、加水印等),那么就反过来了。这是一个改进的版本。我们正在测试每一页是否以纵向/横向模式排版。我们将在排版前在虚拟框中测量页面宽度和页面高度来发现这一点。

终端正在向我们告知调查结果。

第 1 页,纵向,597.50682pt,高度 845.04504pt,深度 0.0pt。
第 2 页,横向,845.04504pt,高度 597.50682pt,深度 0.0pt。
第 3 页,纵向,597.50682pt,高度 845.04504pt,深度 0.0pt。
第 4 页,横向,845.04504pt,高度 597.50682pt,深度 0.0pt。

我附上一个例子和我们努力的预览。

%! *latex book-transform2.tex
\batchmode
\documentclass[a4paper]{article}
\usepackage{pdfpages}
\def\malfile{book.pdf}
\pdfximage{\malfile}

\begin{document}
\newcount\malcount \malcount=0 % This is a page counter...
\newbox\malbox % This is a virtual box...

\loop % Let's test all the pages one by one...
\advance\malcount by 1%
% Measure a single page virtually...
\setbox\malbox=\hbox{\includegraphics[page={\the\malcount}]{\malfile}}%
% Send the information to the terminal...
\scrollmode
\message{Page \the\malcount, \ifnum\wd\malbox<\ht\malbox portrait\else landscape\fi, \the\wd\malbox, height \the\ht\malbox, depth \the\dp\malbox.}%
\batchmode

% Testing and inserting that particular single page into a document...
\ifnum\wd\malbox<\ht\malbox %Portrait; no changes please...
\includepdf[pages={\the\malcount}, fitpaper]{\malfile}
  \else % Landscape mode; rotate it, decorate it, draw something on it... :-)
\includepdf[pages={\the\malcount}, fitpaper, angle=270]{\malfile}% 90 degrees is the default value in pdfpages, 270 degrees is an experiment, if somebody is in need of it...
\fi

% Test all the pages from the input PDF file...
\ifnum\malcount<\pdflastximagepages\repeat

\end{document}

mwe 转型 2

相关内容