"Imprima" usando o pdfcreator (driver de impressora virtual de código aberto).
// edit: Outra opção é usar o pdftk ( link ), mas eu mesmo não testei.
Eu tenho um PDF (gerado pelo PowerPoint) contendo páginas retrato de 8.5 × 5.5 polegadas.
Eu preciso convertê-lo em páginas de paisagem de 8,5 × 11 polegadas, onde cada página de paisagem contém duas cópias da página de retratos original (menor) lado a lado.
Em arte ASCII:
Original | Desired | |---| | |---| |---| | 1 | | | 1 | | 1 | | 1 | | | 1 | | 1 | |---| | |---| |---| | |---| | |---| |---| | 2 | | | 2 | | 2 | | 2 | | | 2 | | 2 | |---| | |---| |---|
Existe alguma maneira gratuita de fazer isso, ou eu precisarei fazer isso em C #?
"Imprima" usando o pdfcreator (driver de impressora virtual de código aberto).
// edit: Outra opção é usar o pdftk ( link ), mas eu mesmo não testei.
OK, você resolveu ter acesso ao arquivo de origem dos seus PDFs, o arquivo do Powerpoint. O que você poderia fazer se quisesse alcançar a mesma coisa sem acesso às fontes?
Deixe-me dar uma chance. Eu vou estar usando ...
Aqui está o que queremos alcançar com a ajuda de Ghostscript neste passo:
+-----------+-----------------------+
| Original | Ghostscript-output |
+===========+=======================+
| +---+ | +---+---+ (right |
| | p | | | p | | half |
| | 1 | | | 1 | | of sheet |
| +---+ | +---+---+ empty) |
| | |
| +---+ | +---+---+ (left |
| | p | | | | p | half |
| | 2 | | | | 2 | of sheet |
| +---+ | +---+---+ empty) |
+-----------+-----------------------+
Este é o primeiro comando a usar:
gswin32c.exe ^
-o left-side-outputs.pdf ^
-sDEVICE=pdfwrite ^
-g7920x6120 ^
-dPDFSETTINGS=/prepress ^
-c "<</PageOffset [0 0]>>setpagedevice" ^
-f powerpoint.pdf
Eu mudei todas as imagens de página por ... nada, mas as coloquei em uma folha maior. Estou com preguiça de digitar e explicar todas as opções necessárias para selecionar apenas os números de páginas ímpares, então, por enquanto, simplesmente faço isso para todas as páginas. - Então é isso que nós fizemos alcançar por agora:
+-----------------------+
| Ghostscript-output |
+=======================+
| +---+---+ (right |
| | p | | half |
| | 1 | | of sheet |
| +---+---+ empty) |
| |
| +---+---+ (right |
| | p | | half |
| | 2 | | of sheet |
| +---+---+ empty) |
| |
| +---+---+ (right |
| | p | | half |
| | 3 | | of sheet |
| +---+---+ empty) |
| ......... |
+-----------------------+
(left-side-outputs.pdf)
Agora, coloque todas as imagens à direita:
gswin32c.exe ^
-o right-side-outputs.pdf ^
-sDEVICE=pdfwrite ^
-g7920x6120 ^
-dPDFSETTINGS=/prepress ^
-c "<</PageOffset [396 0]>>setpagedevice" ^
-f powerpoint.pdf
Isso é o que conseguimos com o segundo comando:
+-----------------------+
| Ghostscript-output |
+=======================+
| +---+---+ (left |
| | | p | half |
| | | 1 | of sheet |
| +---+---+ empty) |
| |
| +---+---+ (left |
| | | p | half |
| | | 2 | of sheet |
| +---+---+ empty) |
| |
| +---+---+ (left |
| | | p | half |
| | | 3 | of sheet |
| +---+---+ empty) |
| ......... |
+-----------------------+
(right-side-outputs.pdf)
Caso ainda não o tenha instalado, faça o download aqui Não requer uma instalação real. É um arquivo .exe que é executado em todos os locais. Queremos que o resultado seja assim:
+---------------------+-------------+
| pdftk input | pdftk output|
+=====================+=============+
| +---+---+ (right | +---+---+ |
| | p | | half | | p | p | |
| | 1 | | of sheet | | 1 | 2 | |
| +---+---+ empty) | +---+---+ |
| | |
| +---+---+ (left | |
| | | p | half | |
| | | 2 | of sheet | |
| +---+---+ empty) | |
+---------------------+-------------+
Nós usaremos estes comandos:
pdftk.exe ^
A=left-side-outputs.pdf ^
B=right-side-outputs.pdf ^
cat A1 B2 ^
output 2up-powerpoint-page-1.pdf ^
verbose
pdftk.exe ^
A=left-side-outputs.pdf ^
B=right-side-outputs.pdf ^
cat A3 B4 ^
output 2up-powerpoint-page-2.pdf ^
verbose
OK, até agora só criamos as duas primeiras páginas duplas ... No entanto, agora quero concatenar essas duas páginas duplas em um único arquivo:
pdftk.exe ^
A=2up-powerpoint-page-1.pdf ^
B=2up-powerpoint-page-2.pdf ^
cat A B ^
output 2up-powerpoint-all.pdf
Agora você deve ter inspiração suficiente para processar as páginas restantes ... se você for super ambicioso, você mesmo escreverá com uma única linha de comando, usando dois for /l ...
loops aninhados ;-)
Resolvi isso gerando uma segunda apresentação do PowerPoint com duas cópias de cada slide, salvando-a em PDF e imprimindo o PDF com duas páginas por folha.
Tags pdf manipulation