@Pryore, I found some part of the solution from the link:
link
Here is the code for header and footer.
Hope this works!
makeHeader <- function(headerText= "your header", size= 1, color= grey(.5))
{
require(grid)
pushViewport(viewport())
grid.text(label= headerText,
x = unit(1,"npc") - unit(110, "mm"),
y = unit(270.8, "mm"),
gp=gpar(cex= size, col=color))
popViewport()
}
makeFootnote <- function(footnoteText= "your footnote",
size= 1, color= grey(.5))
{
require(grid)
pushViewport(viewport())
grid.text(label= footnoteText ,
x = unit(1,"npc") - unit(27, "mm"),
y = unit(3, "mm"),
gp=gpar(cex= size, col=color))
popViewport()
}
library(grid)
library(gridExtra)
df <- data.frame(replicate(10,sample(0:1,1000,rep=TRUE)))
dim(df)
maxrow = 35
npages = ceiling(nrow(df)/maxrow)
pdf("trial.pdf", height = 11, width = 8.5)
idx = seq(1, maxrow)
grid.table(df[idx,],rows = NULL)
for(i in 1:npages){
grid.newpage();
makeFootnote()
makeHeader()
if(i*maxrow <= nrow(df)){
idx = seq(1+((i-1)*maxrow), i * maxrow)
}
else{
idx = seq(1+((i-1)*maxrow), nrow(df))
}
grid.table(df[idx, ],rows = NULL)
}
dev.off()