如何防止横向页面打印时翻转?

如何防止横向页面打印时翻转?

当我想打印其中一页已转换为横向格式的 PDF 时,我遇到了一些问题。

在 PDF 中,我将其中一页转换为横向格式,以便于阅读图像(请注意,图像在twoside模式下朝外)。在 PDF 查看器上,我得到了以下结果,这与我的预期一致: 在此处输入图片描述

但是,当我打印文档时,页面被颠倒打印,并出现以下情况: 在此处输入图片描述

我希望将页面正面朝上打印并得到以下结果: 在此处输入图片描述

我不知道是不是我的打印机设置错误,但可以解决这个问题吗?我不知道 PDF 格式是如何工作的,但是否可以在 PDF 中指示横向打印页面的方向?

这是一个MWE(部分代码来自:如何使双面书籍的横向模式正确旋转?):

\documentclass{book}
\usepackage{mwe, pdflscape, lipsum}

\makeatletter % From : https://stackoverflow.com/questions/4982219/how-to-make-landscape-mode-rotate-properly-in-a-twoside-book
\global\let\orig@begin@landscape=\landscape%
\global\let\orig@end@landscape=\endlandscape%
\gdef\@true{1}
\gdef\@false{0}
\gdef\landscape{%
    \global\let\within@landscape=\@true%
    \orig@begin@landscape%
}%
\gdef\endlandscape{%
    \orig@end@landscape%
    \global\let\within@landscape=\@false%
}%
\@ifpackageloaded{pdflscape}{%
    \gdef\pdf@landscape@rotate{\PLS@Rotate}%
}{
    \gdef\pdf@landscape@rotate#1{}%
}
\let\latex@outputpage\@outputpage
\def\@outputpage{
    \ifx\within@landscape\@true%
        \if@twoside%
            \ifodd\c@page%
                \gdef\LS@rot{\setbox\@outputbox\vbox{%
                    \pdf@landscape@rotate{-90}%
                    \hbox{\rotatebox{90}{\hbox{\rotatebox{180}{\box\@outputbox}}}}}%
                }%
            \else%
                \gdef\LS@rot{\setbox\@outputbox\vbox{%
                    \pdf@landscape@rotate{+90}%
                    \hbox{\rotatebox{90}{\hbox{\rotatebox{0}{\box\@outputbox}}}}}%
                }%
            \fi%
        \else%
            \gdef\LS@rot{\setbox\@outputbox\vbox{%
                \pdf@landscape@rotate{+90}%
                \hbox{\rotatebox{90}{\hbox{\rotatebox{0}{\box\@outputbox}}}}}%
            }%
        \fi%
    \fi%
    \latex@outputpage%
}
\makeatother

\begin{document}
\chapter{My chapter}
\section{My section}

\lipsum[1-12]

\begin{landscape}
\includegraphics{example-image}
\end{landscape}

\lipsum[1-5]

\end{document}

答案1

lscape 包的横向环境适用于较长的文本,因此它始终逆时针旋转。使用您的代码,您试图更改此设置,但这会创建一个上下颠倒的页面,因此打印机正在执行正确的操作。

如果您想要交替旋转,旋转包中的 sidewaysfigure 通常更好(但我同意评论,如果图像总是旋转到同一侧,阅读起来会更舒服,因为这样只需要朝一个方向转动书本)。然后,您可以使用新 pdfmanagement 中的命令在 pdf 查看器中设置旋转(这需要最新的 latex!)

\DocumentMetadata{} %load pdfmanagement
\documentclass{book}
\usepackage{lipsum}
\usepackage{rotating}
\usepackage{refcount}

\begin{document}
\chapter{My chapter}
\section{My section}

\lipsum[1-12]

\begin{sidewaysfigure}
\ExplSyntaxOn
\label{fig:1}
\int_if_odd:nTF {\getpagerefnumber{fig:1}}
 {\pdfmanagement_add:nnn {ThisPage} {Rotate} {90}}
 {\pdfmanagement_add:nnn {ThisPage} {Rotate} {-90}}
\ExplSyntaxOff
\includegraphics{example-image}
\end{sidewaysfigure}


\begin{sidewaysfigure}
\ExplSyntaxOn
\label{fig:2}
\int_if_odd:nTF {\getpagerefnumber{fig:2}}
 {\pdfmanagement_add:nnn {ThisPage} {Rotate} {90}}
 {\pdfmanagement_add:nnn {ThisPage} {Rotate} {-90}}
\ExplSyntaxOff
\includegraphics{example-image}
\end{sidewaysfigure}

\lipsum[1-5]

\end{document}

在此处输入图片描述

相关内容