Necesito fusionar/combinar varios archivos PDF.
Lo que tengo son varios archivos PDF en una carpeta. Los archivos PDF que deben agruparse/combinarse tendrían un nombre de archivo parcial en común; Por ejemplo:
123456_ABCD.pdf
123456_EFGH.pdf
123456_IJKL.pdf
El nombre del archivo comenzaría con números, luego un guión bajo y luego el nombre del archivo. Voy a tener cientos de archivos PDF similares y estoy buscando una manera de fusionar estos archivos automáticamente usando un script por lotes, VBA en Excel o lo que sea.
La salida del nuevo archivo debe estar en una carpeta separada con el nombre 123456.pdf
. Utilizo un sistema operativo Windows. Tengo Adobe Reader, PDF995 y CutePDFwriter instalados en mi sistema.
Puedo conseguir todos los archivos PDF en una carpeta principal. Esa carpeta tendría varios archivos PDF como los que se muestran a continuación.
123456_ABCD.pdf
123456_EFGH.pdf
123456_IJKL.pdf
111111_ABCD.pdf
111111_EFGH.pdf
222222_IJKL.pdf
222222_WXYZ.pdf
En este escenario, los archivos PDF que espero en la carpeta de salida son:
123456.pdf
111111.pdf
222222.pdf
Respuesta1
(No probado)
- Descargarpdftk(enlace directo aquí).
- Extraerlo en alguna parte.
- Junte pdftk.exe y el lote.
- Luego abra
cmd
donde se encuentra el lote* y ejecútelo.
*(Mayús+Clic derecho abre el símbolo del sistema aquí)
El script debería funcionar si la estructura de carpetas es así:
|
+---111111
| 111111_ABCD.pdf
| 111111_EFGH.pdf
|
+---123456
| 123456_ABCD.pdf
| 123456_EFGH.pdf
| 123456_IJKL.pdf
|
\---222222
222222_IJKL.pdf
222222_WXYZ.pdf
Y no en una única carpeta donde están todos los archivos.
@echo off
setlocal enabledelayedexpansion
rem source root folder where to crawl pdfs.
set "source=c:\mydoc\pdf"
rem destination folder
set "destination=c:\mydoc\merged"
for /f "delims=" %%a in ('dir /b /s /ad /o:n "%source%"') do (
set _pdffiles=
for /f "delims=" %%i in ('dir /b /a-d /o:n "%%a\*.pdf"') do (
set _pdffiles=!_pdffiles! "%%i"
set "_outputpdf=%%~ni"
)
echo pdftk.exe !_pdffiles! cat output "%destination%\!_outputpdf:~0,6!.pdf"
)
Elimínelo echo
si cree que el lote está bien.
Respuesta inspirada en gran medida poreste
Actualizar: Hay dos respuestas que complementan mi post.