2011-02-27 23 views

Respuesta

1

Si esta herramienta aún no la realiza alguna herramienta PDF existente, aquí hay una lluvia de ideas de alto nivel sobre cómo abordaría el problema con CAM::PDF. No estoy seguro de si funcionaría.

  • duplicar la página
  • girar el contenido de
  • ajustar el cuadro de recorte para cada una de las páginas que sólo la mitad de interés

De la parte superior de mi cabeza que no sé si el contenido fuera de la caja de cultivo adicional sería invisible, o si afectaría el procesamiento ...

ACTUALIZÉ: Implementé una solución simplista que funciona en gran medida ción, como sigue. Duplica la página en cuestión, rota ambas copias y establece el CropBox en cada una, eligiendo la mitad izquierda de la primera página y la mitad derecha de la segunda página. Es posible que no necesite la rotación en su caso, no estoy seguro.

#!/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

La manera difícil: utilice ConTeXt/LuaTeX para reorganizar las páginas.

La manera razonable: una combinación de pdf shuffler, PDFjam y PDF Split & Merge debería hacer el trabajo.

+0

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

7

Pruebe con:

  • Briss (freeware) Fácil de usar, sólo el arrastrar y soltar rectángulos para crear nuevas páginas.
  • A-PDF Page Cut (shareware) No sé ... agrega marca de agua a las páginas nuevas.
+1

La solución de Briss funcionó perfectamente, ¡gracias! –

Cuestiones relacionadas