旋转PDF';It’不到90度
我正在处理一堆PDF文件,其中一些文件已经从一个角度进行了扫描。Adobe Acrobat允许我将PDF文件旋转90或180度。但是有没有一种方法可以将PDF旋转几度,使其变得更直旋转PDF';It’不到90度,pdf,Pdf,我正在处理一堆PDF文件,其中一些文件已经从一个角度进行了扫描。Adobe Acrobat允许我将PDF文件旋转90或180度。但是有没有一种方法可以将PDF旋转几度,使其变得更直 我也许可以拍摄一张截图,在Photoshop中打开并旋转它,然后以某种方式将Photoshop文件转换为PDF。然而,这似乎是一个非常笨拙的过程。我曾经有过这样的经历。我不知道你有多少页。 我所做的是打印磨损的页面,使用切纸机将其对齐并重新扫描。希望这有帮助。 是的,我试图找到某种类型的程序来解决这个问题,但我仍然没
我也许可以拍摄一张截图,在Photoshop中打开并旋转它,然后以某种方式将Photoshop文件转换为PDF。然而,这似乎是一个非常笨拙的过程。我曾经有过这样的经历。我不知道你有多少页。 我所做的是打印磨损的页面,使用切纸机将其对齐并重新扫描。希望这有帮助。 是的,我试图找到某种类型的程序来解决这个问题,但我仍然没有找到 PDF仅支持90度的完整页面
/Rotate
值,因为这(当然)很简单。您需要做的是旋转内容,而不是页面。所以你需要使用一些可以为你重新制作PDF文件的东西
您可以使用Ghostscript或MuPDF来执行此操作。两者都需要一些编码:
- MuPDF需要用C编码
- Ghostscript将要求您执行一些PostScript编程
使用Ghostscript,您需要定义一个
BeginPage
过程,该过程将少量旋转内容并稍微移动内容的原点(因为旋转是围绕原点旋转的,原点位于左下角,而不是中心)。下面是一个用于旋转页面的简短实用程序脚本(用Perl编写)。它将输入PDF的每个页面转换为PDF XObject表单,旋转表单,然后输出旋转后的页面
#! /usr/bin/perl
use warnings; use strict;
use PDF::API2;
use Getopt::Long;
my $degrees = 3;
my $scale = 1.0;
my $x = 0;
my $y = 0;
GetOptions ("rotate=i" => \$degrees, "scale=f" => \$scale, "x=f" => \$x, "y=f" => \$y)
or die "usage: $0 IN_PDF OUT_PDF --rotate=DEG --scale=ALPHA --x=POINTS --y=POINTS";
my $infile = shift (@ARGV);
my $outfile = shift (@ARGV);
my $pdf_in = PDF::API2->open($infile);
my $pdf_out = PDF::API2->new;
foreach my $pagenum (1 .. $pdf_in->pages) {
my $page_in = $pdf_in->openpage($pagenum);
#
# create a new page
#
my $page_out = $pdf_out->page(0);
my @mbox = $page_in->get_mediabox;
$page_out->mediabox(@mbox);
my $xo = $pdf_out->importPageIntoForm($pdf_in, $pagenum);
#
# lay up the input page in the output page
# note that you can adjust the position and scale, if required
#
my $gfx = $page_out->gfx;
$gfx->rotate($degrees);
$gfx->formimage($xo, $x, $y, $scale);
}
$pdf_out->saveas($outfile);
您需要确保从CPAN安装PDF::API2
和Geopt::Long
模块
默认情况下,脚本逆时针旋转3度,这在--rotate
选项中是可配置的
还有
-x
、-y
和--scale
选项,允许对输出页面的位置和比例进行微调。上也提出了此问题
另一种选择是使用乳胶:
\documentclass{standalone}
\usepackage{graphicx}
\begin{document}
\includegraphics[angle=-1.5]{odd-scan}
\end{document}
在本例中,我将文件
odd scan.pdf
(稍微旋转一页的扫描)与具有上述内容的LaTeX文件rotated.tex
放在同一文件夹中,然后运行pdflatex rotated.tex
。输出是一个文件rotated.pdf
,pdf顺时针旋转1.5度。是的,如果我能找到原件,我可以重新扫描它们。然而,我确实有数千个PDF文件要处理,所以我希望找到一个更快的过程。令人惊讶的是,据我所知,没有软件程序能做到这一点。