Recorta un PDF para que contenga solo las páginas seleccionadas.

library(pdftools)   # Cargas la libreria para leer pdf's.

# Defines tu directorio de trabajo
setwd("C:/Users/eagel/OneDrive/Escritorio/Lalo/Escuela/Servicio Social/Septiembre/Archivos Utilizados/25 sep/Region Actopan/")

Defines tu directorio

# Define tu archivo de entrada con la ruta completa
input_file = "C:/Users/eagel/OneDrive/Escritorio/Lalo/Escuela/Servicio Social/Septiembre/Archivos Utilizados/25 sep/Region Actopan/REGIÓN ACTOPAN.pdf"

# Define como se llamara tu archivo de salida
output_file = "C:/Users/eagel/OneDrive/Escritorio/Lalo/Escuela/Servicio Social/Septiembre/Archivos Utilizados/25 sep/Region Actopan/REGIÓN ACTOPAN_RegionTula.pdf"

Defines tu directorio

Este PDF de ejemplo tiene 48 páginas, pero solo queremos las páginas 1 a 4. Para eso, usamos lo siguiente:

# Das el numero de las paginas que quires mantener(El numero va respecto a la pagina del pdf no del libro o documento)
paginas = c(1:4)

Y guardas el documento

# Crea un nuevo archivo PDF que contiene solo un subconjunto de las páginas de un archivo PDF original.
pdf_subset(input_file, pages = paginas, output = output_file)
## [1] "C:\\Users\\eagel\\OneDrive\\Escritorio\\Lalo\\Escuela\\Servicio Social\\Septiembre\\Archivos Utilizados\\25 sep\\Region Actopan\\REGIÓN ACTOPAN_RegionTula.pdf"

Guardado

Recorta un PDF en varias partes.

library(pdftools)   # Cargas la librera para leer pdf's.

# Defines tu directorio de trabajo
setwd("C:/Users/eagel/OneDrive/Escritorio/Lalo/Escuela/Servicio Social/Septiembre/Archivos Utilizados/25 sep/Region Actopan/")

# Das tu archivo de entrada(el que vas a recortar)
input_file <- "C:/Users/eagel/OneDrive/Escritorio/Lalo/Escuela/Servicio Social/Septiembre/Archivos Utilizados/25 sep/Region Actopan/REGIÓN ACTOPAN.pdf"

Defines tu directorio

Observas tu pdf

Este PDF de ejemplo tiene \(48\) páginas. Queremos dividirlo en varios PDF más pequeños en este caso de \(4\) paginas. El primer PDF contendrá las páginas \(1\) a \(4\), el segundo las páginas \(5\) a \(8\), y así sucesivamente, hasta que el último PDF tenga las páginas \(45\) a \(48\). Para hacer esto, usamos lo siguiente:

La forma en que se construye el bucle for se pensó de la siguiente manera: se usa un rango de \(1\) a \(12\) porque \(48 ÷ 4 = 12\). Queremos obtener las páginas en grupos de 4, siguiendo este patrón:

En resumen, el patrón es el siguiente:

Por eso, se usara la siguiente linea de código en el bucle for:

paginas = c(((4*n) - 3):(4*n))

Continuacion del codigo

for (n in 1:12) {
  output_file = paste0("C:/Users/eagel/OneDrive/Escritorio/Lalo/Escuela/Servicio Social/Septiembre/Archivos Utilizados/25 sep/Region Actopan/Region_", n, ".pdf") # Defines como se llamara tu archivo de salida
  
  # Páginas que quieres extraer
  paginas = c( ((4*n) - 3):(4*n) ) #Aqui estoy tomando 1,2,3,4 y despues 5,6,7,8 asi de manera sucesiva 
  
  pdf_subset(input_file, pages = paginas, output = output_file) # Guarda los archivos
}

Observas tu pdf

Recorta un PDF en partes iguales.

Se hará uso de una función.

Descripción: Recortas un archivo PDF en partes iguales (uniformemente).

Uso: dividir_pdf(paginas_dividir = n, entrada = “Directorio_del_pdf”)

Argumentos:

Manera de usarlo en R

Debes compilar la siguiente función (sin cambiar nada).

dividir_pdf = function(paginas_dividir, entrada){
  library(pdftools)
  informacion = pdf_info(entrada)
  numero_paginas = informacion$pages
  directorio = dirname(entrada)
  if ((numero_paginas %% paginas_dividir) == 0) {
    print("Si se pudo realizar, observa tu carpeta en donde esta tu pdf")
    for (n in 1:(numero_paginas/paginas_dividir)) {
      output_file = paste0(dirname(entrada), "/",n, ".pdf") 
      paginas = c( ((paginas_dividir*n) - (paginas_dividir - 1)):(paginas_dividir*n) ) 
      pdf_subset(entrada, pages = paginas, output = output_file) 
    }
  } else{
    print("No se puede hacer porque la división no es entera, elija otro número para dividir el PDF.")
  }
}

Para usar esto, escribe dividir_pdf y coloca la información que necesitas en cada parte. Por ejemplo:

dividir_pdf(paginas_dividir = 5, entrada = "C:/Users/eagel/OneDrive/Escritorio/Lalo/Escuela/Servicio Social/Septiembre/Archivos Utilizados/25 sep/Region Actopan/REGIÓN ACTOPAN.pdf")
## [1] "No se puede hacer porque la división no es entera, elija otro número para dividir el PDF."