Basculer un tableau et convertir chaque ligne en feuille PDF
en langage R
Librairies pour gérer la mise en forme de tableau ou de texte
Librairies pour gérer la mise en forme de tableau ou de texte
install.packages("grid")
install.packages("gridExtra")
library("openxlsx")
library("grid") ; library(gridExtra)
Ouvrir le tableau et le basculer
Ouvrir le tableau et le basculer
data = read.xlsx(file.choose())
data = t(data)
Exécuter l'écriture d'un pdf format A4 en définissant une taille de référence (hauteur)
Exécuter l'écriture d'un pdf format A4 en définissant une taille de référence (hauteur)
taille = 30
pdf(file = "multipass.pdf", onefile = TRUE, width=taille/29.7*21,heigh=taille)
Une boucle d'écriture convertissant chaque colonne en une page en reprenant les en-têtes de chaque colonne pour en faire le début de chaque ligne
Une boucle d'écriture convertissant chaque colonne en une page en reprenant les en-têtes de chaque colonne pour en faire le début de chaque ligne
for (i in c(1:ncol(data))) {
# remplacer certains caractères
item <- gsub("\\."," ",names(data[,i]))
# Mettre des retours à la lignes régulièrement pour s'adapter à la largeur de la page, pour les titres puis pour les contenus
item= sapply(lapply(item, strwrap, width=taille*7/3), paste, collapse="\n")
data_tp <- unname(data[,i])
data_tp= sapply(lapply(data_tp, strwrap, width=taille*7/2), paste, collapse="\n")
df.temp <- data.frame("Item"=item,"Résultats"=data_tp) # grid.table
# thème de mise en forme
tt3 <- ttheme_minimal(
core=list(bg_params = list(fill = blues9[1:4], col=NA),
fg_params=list(hjust=0, x=0.1,fontface=3)),
colhead=list(fg_params=list(col="navyblue", fontface=4L)),
rowhead=list(fg_params=list(hjust=0, x=0,col="orange", fontface=3L)))
g <- tableGrob(df.temp, theme=tt3)
# Fixer la largeur du tableau
g$widths <- unit (c(0.01,0.35, .6),"npc") # 3 colonnes
grid.newpage()
grid.draw(g)
}
Fermeture du pdf
Fermeture du pdf
dev.off()
getwd()