Separar um arquivo PDF por páginas

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

kakamachado
Usuário Nível 1
Usuário Nível 1
Mensagens: 30
Registrado em: 07 Mar 2016 18:54
Localização: Rio de Janeiro

Separar um arquivo PDF por páginas

Mensagem por kakamachado »

Caros amigos, preciso de uma rotina/função em harbour que leia um arquivo PDF com várias páginas e grave diversos arquivos PDF, cada um correspondente a uma página do arquivo original. Alguém pode ajudar?
Avatar do usuário
developer
Usuário Nível 3
Usuário Nível 3
Mensagens: 149
Registrado em: 09 Nov 2024 23:45
Localização: Londrina/PR

Separar um arquivo PDF por páginas

Mensagem por developer »

E sobre usar um programa externo que faça isso? Não seria mais fácil?

O PDFill faz isso:

Código: Selecionar todos

You can start a batch job in Windows by issuing the execution command directly from the MS-DOS command prompt window without opening the PDFill GUI. 
Note: Please put "" on your file name with space. Make sure all command is in one line.

Split a PDF into a new PDF according to page number selection
"C:\Program Files\PlotSoft\PDFill\PDFill.exe" SPLIT "1,3-6,10,13,24" Input.pdf Output.pdf 

Extract a PDF into a serial of single or multiple pages:
"C:\Program Files\PlotSoft\PDFill\PDFill.exe" EXTRACT 3 Input.pdf Output.pdf 

Extract a PDF into a serial of pages using Top Level Bookmark
"C:\Program Files\PlotSoft\PDFill\PDFill.exe" EXTRACT BOOKMARK Input.pdf Output.pdf 

Extract a PDF into a serial of pages using File Size
"C:\Program Files\PlotSoft\PDFill\PDFill.exe" EXTRACT 1.50MB Input.pdf Output.pdf

Delete PDF Pages selected into a new PDF
"C:\Program Files\PlotSoft\PDFill\PDFill.exe" DELETE "1,3-6,10,13,24,last,4-last,even" Input.pdf Output.pdf 
Detalhe: (It is only available for the registered user of PDFill PDF Editor)

Alternativamente pode tentar também com PDF Toolkit, parece que este não precisa registrar.
Avatar do usuário
developer
Usuário Nível 3
Usuário Nível 3
Mensagens: 149
Registrado em: 09 Nov 2024 23:45
Localização: Londrina/PR

Separar um arquivo PDF por páginas

Mensagem por developer »

Fiz um teste aqui com Ghostscript (úlitma versão 64bits):

Código: Selecionar todos

PROC MAIN()

    CLS
    ? 'Rotina de testes Ghostscript'
    RUN gswin64c -dBATCH -dNOPAUSE -dQUIET -sDEVICE=pdfwrite -dFirstPage=2 -dLastPage=3 -sOUTPUTFILE=resultado1.pdf teste.pdf
    RUN gswin64c -dBATCH -dNOPAUSE -dQUIET -sDEVICE=pdfwrite -sOUTPUTFILE=resultado2.pdf teste.pdf resultado1.pdf
    WAIT 'Fim da rotina'

RETURN
O resultado para mim foi muito satisfatório, na instalação do Ghostscript já coloca o executável no PATH automaticamente.
kakamachado
Usuário Nível 1
Usuário Nível 1
Mensagens: 30
Registrado em: 07 Mar 2016 18:54
Localização: Rio de Janeiro

Separar um arquivo PDF por páginas

Mensagem por kakamachado »

Mário, obrigado pela sugestão. Vou avaliar, mas se alguém tiver algo no próprio Harbour e puder ajudar, agradeço.
Avatar do usuário
developer
Usuário Nível 3
Usuário Nível 3
Mensagens: 149
Registrado em: 09 Nov 2024 23:45
Localização: Londrina/PR

Separar um arquivo PDF por páginas

Mensagem por developer »

Pelo que eu tenha conhecimento, algo do próprio Harbour teria que ser desenvolvido, é possível, mas daria bastante trabaho.

O Ghostscript é gratuíto, muito usado e difundido, provavelmente já está até instalado na sua máquina pois outros programas usam o Ghostscript, como impressoras virtuais, etc...

Um detalhe, não haverá interferência no seu programa (não vai aparecer nada na tela), será transparente para o usuário final, realmente fiquei muito satisfeito.

O comando para extrair todas as paginas é este:

Código: Selecionar todos

gswin64c -sDEVICE=pdfwrite -dNOPAUSE -dBATCH -dSAFER -dQUIET -sOutputFile="output-%03d.pdf" "input.pdf"
Mas quem sabe alguém já desenvolveu algo assim? Vamos ver se alguém se pronuncia.
Responder