2011-02-27 17 views

Odpowiedz

1

Jeśli ta funkcja nie jest jeszcze wykonywana przez niektóre istniejące narzędzia PDF, to tutaj jest burza mózgów na wysokim poziomie, w jaki sposób podchodzę do problemu z CAM::PDF. Nie jestem pewien, czy to zadziała.

  • powielać stronę
  • obracać zawartość
  • ustawić pole przycinania dla każdej ze stron, aby tylko połowa odsetek

Off górze mojej głowie Nie wiem jeśli dodatkowa zawartość out-of-cropbox byłaby niewidoczna lub mogłaby wpłynąć na render ...

AKTUALIZACJA: Wdrożyłem głównie działający, uproszczony solu w następujący sposób. Powtarza daną stronę, obraca obie kopie i ustawia CropBox na każdej z nich, wybierając lewą połowę na pierwszą stronę i prawą połowę drugiej strony. Możesz nie potrzebować rotacji w swojej sprawie, nie wiesz.

#!/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); 
2

Trudny sposób: użyj ConTeXt/LuaTeX, aby zmienić układ stron.

Rozsądny sposób: należy wykonać kombinację pdf shuffler, PDFjam i lub PDF Split & Merge.

+0

lub [jPDF Tweak] (http: // jpdftweak .sourceforge.net /), lub ... –

7

Spróbuj z:

  • Briss (freeware) jest łatwy w użyciu, tylko przeciągnij i upuść prostokątów do tworzenia nowych stron.
  • A-PDF Page Cut (shareware) Nie wiem ... dodaje znak wodny do nowych stron.
+1

Rozwiązanie Briss działało idealnie, dzięki! –

Powiązane problemy