prompter: Dame el código Python para juntar dos ficheros PDF en uno.

assistant: Puedes usar la biblioteca PyPDF2 para unir dos o más archivos PDF en Python. Aquí te muestro un ejemplo de código para hacerlo:


from PyPDF2 import PdfFileMerger

pdfs = ["Archivo1.pdf", "Archivo2.pdf"]
nombre_archivo_salida = "ArchivoSalida.pdf"
fusionador = PdfFileMerger()

for pdf in pdfs:
    fusionador.append(open(pdf, 'rb'))

with open(nombre_archivo_salida, 'wb') as salida:
    fusionador.write(salida)


El código de este ejemplo, primero, importa la clase PdfFileMerger de PyPDF2. Luego, define una lista de los archivos PDF que desea unir y el nombre del archivo de salida. Después, crea un objeto de la clase PdfFileMerger y usa un bucle para agregar cada archivo PDF a este objeto. Finalmente, escribe el objeto en un archivo de salida.

Espero que esto te ayude a resolver tu problema. ¡Buena suerte!

assistant: Puedes usar la biblioteca 'os' nativa de Python para fusionar dos archivos PDF en uno. Aquí hay un ejemplo de código:

import os
 
# Nombres de los archivos que se van a fusionar
files_to_merge = ["file1.pdf", "file2.pdf"]
 
# Fusionar los archivos
os.system("pdftk {} cat output merged_file.pdf".format(" ".join(files_to_merge)))

Esto fusionará los dos archivos PDF en un solo archivo con el nombre "merged_file.pdf".

assistant: Para juntar dos ficheros PDF puedes utilizar las clase PdfMerger de la librería PyPDF que ofrece clases y funciones con las que juntar pdfs de manera sencilla.

Si lo que quieres es simplemente concatenar el contenido de un fichero en el otro puedes utilizar este código:

from PyPDF2 import PdfMerger

pdfs = ['fichero1.pdf', 'fichero2.pdf']

merger = PdfMerger()

for pdf in pdfs:
    merger.append(pdf)

merger.write("resultado.pdf")
merger.close()

Primero importamos PdfMerger de la librería PyPDF2.
Después definimos los nombres de los archivos pdf a juntar y los guardamos como lista en la variable pdfs.
Después inicializamos el objeto merger y le añadimos todos los pdfs de la lista de uno en uno y en el orden que hemos definido. Este método funcionaría también con más archivos.
Por último, escribimos el resultado en el archivo <<resultado.pdf>> y cerramos el merger para evitar fugas de recursos.

La librería también permite otros controles.

Por ejemplo si solo quisiésemos guardar parte de las páginas de los archivos pdf podríamos cambiar merger.append(pdf) por merger.append(pdf, pages=(0,6)). En este caso, tomaríamos solo las primeras 6 páginas de los pdfs. Los rangos se definen igual que al utilizar la función de python range.

Si se quisiese determinar un rango diferente de páginas por cada pdf, se podría definir otra lista con estos rangos y tenerlos en cuenta al hacer la mezcla:

from PyPDF2 import PdfMerger

pdfs = ['fichero1.pdf', 'fichero2.pdf']
# las primeras tres páginas, las páginas 0, 2, 4
rangos_paginas = [(0, 3), (0, 6, 2)]

merger = PdfMerger()

for pdf, rango in zip(pdfs, rangos_paginas):
    merger.append(pdf)

merger.write("resultado.pdf")
merger.close()

También se puede introducir el contenido de un pdf intercalado dentro de otro pdf utilizando la función merge de PdfMerger:
merger.append('fichero1.pdf')
merger.merge(2, 'fichero2.pdf')  # insertar <<fichero2.pdf>> entero en la página 2 del <<fichero1.pdf>>

Espero que estos ejemplos te hayan ayudado con tu caso.