Como converter arquivos pdf em múltiplas pastas em múltiplos arquivos pdf correspondentes aos nomes das pastas

2

Eu tenho várias pastas, cada uma contendo vários arquivos de imagem em pdf como este:

  Folder 1 
     file1.pdf
     file2.pdf
     file3.pdf
     ...
     file100.pdf
  Folder 2 
     file1.pdf
     file2.pdf
     file3.pdf
     ...
     file100.pdf
  Folder 3 
     file1.pdf
     file2.pdf
     file3.pdf
     ...
     file100.pdf
  ...
  Folder 94
     file1.pdf
     file2.pdf
     file3.pdf
     ...
     file100.pdf 

Existe alguma maneira de criar um tipo de script que produz de uma só vez cada pasta como um arquivo pdf como este:

Folder1.pdf
Folder2.pdf
Folder3.pdf
...
Folder94.pdf
    
por Blumer 14.07.2018 / 05:10

1 resposta

1

Mesclar arquivos PDF em uma pasta para um arquivo PDF que corresponde ao nome da pasta

Como você tem uma solução para converter todos os arquivos JPG em arquivos PDF, você precisa de uma solução que mescle todos os arquivos PDF em uma pasta em um único arquivo PDF mesclado cronologicamente com base nos nomes dos arquivos.

Você pode usar o PDFtk Free e seu CLI PDFtk com o parâmetro cat em um script em lote para automatizar as operações para converter todos os arquivos PDF dentro de uma pasta em um único PDF com o nome da pasta como o nome do arquivo.

"PDFtk Free is our friendly graphical tool for quickly merging and splitting PDF documents and pages. It is free to use for as long as you like."

"Power Users: PDFtk Free comes with our command-line tool, PDFtk Server. So you get both the GUI and the command-line interface to PDFtk!"

Script em lote

Note: The SourceParentDir= value will be the full path to the location where the subfolders with the PDF files reside which you need to merge.

@ECHO OFF

SET "SourceParentDir=C:\Root\Parent\Folder"
FOR /R "%SourceParentDir%" %%A IN (.) DO (
    IF /I NOT [%%~A]==[%SourceParentDir%\.] pdftk "%SourceParentDir%\%%~NA\*.pdf" cat output "%SourceParentDir%\%%~NA.pdf"
    )
PAUSE
EXIT

Script em lote (ordem inversa)

@ECHO OFF

SET "SourceParentDir=C:\Root\Parent\Folder"
FOR /R "%SourceParentDir%" %%A IN (.) DO (
    IF /I NOT [%%~A]==[%SourceParentDir%\.] pdftk "%SourceParentDir%\%%~NA\*.pdf" cat output "%SourceParentDir%\temp.pdf"
    IF EXIST "%SourceParentDir%\temp.pdf" pdftk "%SourceParentDir%\temp.pdf" cat end-1 output "%SourceParentDir%\%%~NA.pdf"
    IF EXIST "%SourceParentDir%\%%~NA.pdf" IF EXIST "%SourceParentDir%\temp.pdf" DEL /Q /F "%SourceParentDir%\temp.pdf"
    )
PAUSE
EXIT

Mais recursos

  • FOR / R

    FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]
    
        Walks the directory tree rooted at [drive:]path, executing the FOR
        statement in each directory of the tree.  If no directory
        specification is specified after /R then the current directory is
        assumed.  If set is just a single period (.) character then it
        will just enumerate the directory tree.
    
  • SE

  • Substituições em lote (FOR /?)

    In addition, substitution of FOR variable references has been enhanced. You can now use the following optional syntax:

    %~nI        - expands %I to a file name only
    
  • pdftk.exe --Help

          cat [<page ranges>]
                 Assembles (catenates) pages from input PDFs to create a new
                 PDF. Use cat to merge PDF pages or to split PDF pages from
                 documents. You can also use it to rotate PDF pages. Page
                 order in the new PDF is specified by the order of the given
                 page ranges. Page ranges are described like this:
    
                 <input PDF handle>[<begin page number>[-<end page num-
                 ber>[<qualifier>]]][<page rotation>]
    
por 15.07.2018 / 22:12