2015-10-31 130 views
0

我想從GitHub上的特定存儲庫中取出所有文件,並將它們轉換爲PDF。我已經閱讀並看到一個例子here從GitHub將源代碼轉換爲PDF

但是,我仍然對如何去做這件事感到困惑。我必須把所有的文件都放到一個PDF文件中,然後把它上傳到大學的網站。

我不是非常熟悉UNIX命令,我試圖做到以下幾點:

for i in *.lua; do echo "$i"; echo "---"; cat "$i"; echo ; done > result.pdf 

然後我打算把所有的PDF文件,並把它們合併起來,但我希望有一個更好的這樣做的方式。我只專門處理.lua.md文件擴展名。

我個人認爲這可以通過使用一些UNIX命令來完成,但如前所述,我並不熟悉它們。總的來說,我的主要目標是在Github上的一個存儲庫中獲取一系列文件,並將它們合併到一個PDF文件中。即使獲得多個PDF文件是好吧這是最好的,可以做到。即使是.word文件格式也不錯。

操作系統:OSX或Windows 7 64位

+0

您不能只是將某些輸出重定向到PDF文件,並期望它是有效的PDF。 PDF具有特定的格式。 – ctc

+0

@ctc感謝您的迴應!你有什麼建議去做這件事?即使使用'.word'格式,也沒問題 –

回答

1

我建議尋找到一個語法高亮顯示。 Pygments能夠生成HTML,RTF等。如果您選擇輸出HTML文件,則可以使用像wkhtmltopdf這樣的工具將突出顯示語法的HTML文件轉換爲PDF文件。

或者,Pygments可以做LaTeX。如果您熟悉LaTeX,那麼您可以讓Pygments生成LaTeX輸出,並使用pdflatex生成您的PDF文件。

你說你是在OS X上安裝Pygments來做,打開一個終端,輸入:

sudo easy_install Pygments 

這將安裝一個程序pygmentize,你可以用它來改變代碼。

接下來,安裝wkhtmltopdf。現在

,你可以把一個文件,語法高亮顯示,並將其轉換爲PDF:

pygmentize -l ruby -f html -O full,style=vim test.rb > test.html 
wkhtmltopdf test.html test.pdf 

在這裏,我將展示一個Ruby腳本的轉換。當然,如果你正在轉換Lua腳本,你會想使用-l lua

然後,您可以將這些命令合併到一個shell腳本中,以遞歸方式遍歷目錄,例如,

#!/bin/bash 

# Change this to the repository directory 
REPOSITORY=/path/to/the/repo 

# Iterate over the repository 
while read source_file 
do 
    filename=$(basename $source_file) 
    dir=$(dirname $source_file) 

    # For each .lua file found, generate an HTML file in /tmp 
    pygmentize -l lua -f html -O full,style=vim $source_file > /tmp/${filename}.html 

    # Convert the HTML file to a PDF file in the same directory 
    # as the .lua file 
    wkhtmltopdf /tmp/${filename}.html ${dir}/${filename}.pdf 

done < <(find $REPOSITORY -type f -iname '*.lua') 

把它放在一個名爲​​的文件中。然後,鍵入:

chmod +x convert.sh 
./convert.sh 
+0

您尚未指定您正在使用的操作系統。這將有助於瞭解爲了建議使用適當的命令來安裝此軟件。 – ctc

+0

我有OSX和Windows 7 64位 –

+1

我編輯了答案,告訴你如何解決OS X上的問題。 – ctc