可能重复:
Split A4 PDF page into two A5 and back again拆分A4页面的PDF文件,A5页面
我有一个PDF文件A4页面如下所示:
我怎么可能分裂的每个页A4纸两页A5?
可能重复:
Split A4 PDF page into two A5 and back again拆分A4页面的PDF文件,A5页面
我有一个PDF文件A4页面如下所示:
我怎么可能分裂的每个页A4纸两页A5?
如果此功能尚未通过一些现有的PDF工具执行,那么这里就是我如何与CAM::PDF处理这个问题的高级别头脑风暴。我不确定它是否会起作用。
半关闭我的头顶,我不知道如果多余的cropbox内容将不可见,或者它会影响渲染...
更新:我实施了一个大多数工作,简单的解决方案如下所示。它复制的页面有问题,旋转两个副本,并设置每个裁剪框,选择第一页的左半部分和第二页的右半边。你可能不需要轮换在你的情况下,不确定。
#!/usr/bin/perl
use strict;
use warnings;
use CAM::PDF;
my $pdffile = 't/sample1.pdf';
my $pdfout = 'temp2.pdf';
my $pagenum = 1;
my $pdf = CAM::PDF->new($pdffile) or die $CAM::PDF::errstr;
my ($objnum, $gennum) = $pdf->getPageObjnum($pagenum);
my $pagedict = $pdf->getPage($pagenum);
$pagedict->{Rotate} = CAM::PDF::Node->new('number', 90);
my $oldbox = $pdf->getValue($pagedict->{CropBox} || $pagedict->{MediaBox});
my @box = map {$pdf->getValue($_)} @{$oldbox};
$pagedict->{CropBox} = CAM::PDF::Node->new('array', [
map {CAM::PDF::Node->new('number', $_)} $box[0], $box[1], $box[2], ($box[3]+$box[1])/2
]);
my $duplicate = CAM::PDF->new($pdffile) or die $CAM::PDF::errstr;
$duplicate->extractPages($pagenum);
$pdf->appendPDF($duplicate); # appends at end instead of inserting
$pagedict = $pdf->getPage($pdf->numPages());
$pagedict->{Rotate} = CAM::PDF::Node->new('number', 90);
$pagedict->{CropBox} = CAM::PDF::Node->new('array', [
map {CAM::PDF::Node->new('number', $_)} $box[0], ($box[3]+$box[1])/2, $box[2], $box[3]
]);
if ($objnum) {
$pdf->{changes}->{$objnum} = 1;
}
$pdf->cleanoutput($pdfout);
困难的方法:使用ConTeXt/LuaTeX重新排列页面。
合理的方法:组合pdf shuffler,PDFjam和或PDF Split & Merge应该完成这项工作。
或[JPDF TWEAK(HTTP:// jpdftweak .sourceforge.net /),或者... – 2011-02-27 16:26:22
与尝试:
Briss解决方案非常完美,谢谢! – 2013-06-04 22:17:18
很喜欢http://stackoverflow.com/questions/3085930/split-a4-pdf-page-into-two-a5-and-back-again – 2011-08-03 05:45:52