2013-07-30 17 views
5

Mam program R, który wyprowadza broszurę z grafiką jako plik PDF na serwer lokalny. Jest oddzielny plik PDF, element wprowadzający, nie napisany w R, do którego chciałbym dołączyć do moich wyników.Jak dołączyć do plików PDF w R?

mogę zakończyć to w Adobe i R-blogerów ma tu procesu, z których oba obejmować łączenie plików przez strony, jak to było:

http://www.r-bloggers.com/splitting-and-combining-r-pdf-graphics/

Ale co ja naprawdę wolę do to po prostu uruchom mój kod i dołącz pliki. Nie znalazłem podobnych postów podczas wyszukiwania "[R] Pdf" i "dołącz", "scal", "import pdf", itp.

Moim zamiarem jest uruchomienie kodu dla innego ID numer ("lekarz") za każdym razem. Raport zostanie zapisany jako plik PDF oznaczony numerem identyfikacyjnym na serwerze, a do każdego dokumentu zostanie dołączone to samo uzupełnienie.

Oto aktualny kod tworzący raport R.

Physician<- 1 

#creates handle for file name and location using ID 
Jumanji<- paste ("X:\\Feedback_ID_", Physician, ".pdf", sep="") 

#PDF graphics device on, using file handle 
pdf(file=Jumanji,8.5, 11) 

Kilka działek dla tego identyfikatora występuje tutaj, a następnie plik PDF jest uzupełniany przez dev.off().

dev.off() 

myślę, że trzeba wyciągnąć dokument zewnątrz do R i odwoływać się między otwarciem i zamknięciem, ale nie udało się tutaj.

+8

Jeśli używasz systemu * nix, użyłbym pdftk w linii poleceń. możesz pisać funkcje owijki w R, które wywołują "system", jeśli wolisz. – Justin

+3

Poza 'pdftk', który (jak sugeruje @Justin) odpowiada na oryginalne pytanie, cały scenariusz brzmi jak typowa praca dla' Sweave' lub 'knitr'. – cbeleites

+0

@Justin pdftk działa również na Windows. – Thomas

Odpowiedz

7

Aby to zrobić w R, postępuj zgodnie z sugestią @cbeleites (która, jak sądzę, słusznie sugeruje, że przenosisz całą pracę do knitr), aby wykonać ten właśnie fragment w Sweave/knitr. dzianiny następujących do formatu PDF, gdzie „test.pdf” jest raport, który jesteś dołączanie do nich, a otrzymasz wynik chcesz:

\documentclass{article} 
\usepackage{pdfpages} 
\begin{document} 
\includepdf{test.pdf} % your other document 
<<echo=FALSE>>= 
x <- rnorm(100) 
hist(x) 
# or whatever you need to do to get your plot 
@ 
\end{document} 

Ponadto, po połączeniu się wydaje szalony, bo to łatwe łączenie działek w pojedynczy plik PDF w R (w rzeczywistości jest to opcja domyślna). Po prostu pozostaw urządzenie pdf otwarte z parametrem onefile=TRUE (domyślnie).

x <- rnorm(100) 
y <- rnorm(100) 
pdf("test.pdf") 
hist(x) 
hist(y) 
dev.off() 

Działki zostaną automatycznie podzielone na strony.

+1

+1 proste, ale świetne przykłady. – ptpaterson

Powiązane problemy