2010-04-15 5 views
13

मुझे "सोर्स कोड दस्तावेज़ डब्ल्यू/लाइन नंबर" की आपूर्ति करने की आवश्यकता है जो अनिवार्य रूप से सिंटैक्स हाइलाइटिंग और लाइन नंबरों के साथ स्रोत कोड का एक पीडीएफ है। क्या विंडोज़ के लिए कोई मौजूदा कमांड लाइन टूल्स है जिसे मैं स्क्रिप्ट से "रिलीज रिलीज वर्जन" स्क्रिप्ट के रूप में कॉल कर सकता हूं?क्या सिंटैक्स हाइलाइटिंग के साथ पीडीएफ कनवर्टर के लिए एक कमांड लाइन सी ++ है?

अभी मैं इसे वीसी ++ का उपयोग करके मैन्युअल रूप से कर रहा हूं, जो कोड को एक टीआई प्रोसेसर के लिए भी dev devomoment नहीं है, और एक पीडीएफ प्रिंटर ड्राइवर है, जिसमें प्रत्येक फ़ाइल के लिए पॉप अप है।

+0

मैं उलझन में हूं, आप अपने पूरे स्रोत को क्यों प्रिंट करना चाहते हैं? –

+1

ग्राहक आवश्यकता। "पंक्ति संख्या सहित स्रोत कोड दस्तावेज़।" मैं सिर्फ फाइलों को स्वचालित रूप से उत्पन्न करना चाहता हूं। (कुछ मैं स्क्रिप्ट कर सकता हूं।) – NoMoreZealots

+0

ऐसा लगता है कि उत्तर आपके लिए काम नहीं कर रहे हैं, है ना? – baol

उत्तर

22

मेरे द्वारा उपयोग किए जाने वाले दो वाक्यविन्यास हाइलाइटर्स enscript और source-highlight हैं।

पहला पोस्टस्क्रिप्ट (जिसे आप पीएस 2 पीडीएफ का उपयोग करके पीडीएफ में परिवर्तित कर सकते हैं) को आउटपुट कर सकते हैं, दूसरा एचटीएमएल, लाटेक्स और अन्य प्रारूपों में आउटपुट का उत्पादन करता है। अपने सिस्टम पर निम्न आदेश वर्तमान सबट्री में सभी सीपीपी फ़ाइलों को मुद्रित होगा:

दोनों के माध्यम से Cygwin

संपादित उपलब्ध होना चाहिए।

find . -name "*.cpp" | xargs enscript -Ecpp -fCourier8 

निम्नलिखित एक ही सामग्री के साथ एक code.pdf फ़ाइल

find . -name "*.cpp" | xargs enscript -Ecpp -fCourier8 -o - | ps2pdf - code.pdf 

पी एस का उत्पादन करते हैं: और लाइन नंबर के लिए रंग उत्पादन के लिए --color=1 और -C दे।

find . -name "*.cpp" | xargs enscript --color=1 -C -Ecpp -fCourier8 -o - | ps2pdf - code.pdf 
+2

'आस्क्रिप्ट' डिफ़ॉल्ट मीडिया आकार ए 4 का उपयोग करता है। यदि आप अक्षर आकार का उपयोग करना चाहते हैं, तो 'आइस्क्रिप्ट' विकल्पों में '-एम पत्र' जोड़ें। –

3

मैं इसका उपयोग करता हूं। यह .ps उत्पन्न करता है। फिर आप ps2pdf चला सकते हैं।

# Copyright 2004 Rutger E.W. van Beusekom. 
# Distributed under the Boost Software License, Version 1.0. (See 
# accompanying file LICENSE_1_0.txt or copy at 
# http://www.boost.org/LICENSE_1_0.txt) 

outfile=$1 
shift 

a2ps -1 --highlight=normal --pretty-print=cxx --line-numbers=1 -M a4 -L80 -g \ 
-o $outfile $* --prologue=color --right-title=%p. --left-title \ 
--left-footer --right-footer --header --medium=a4 

आप स्रोत ब्राउज़िंग सक्षम के साथ डॉक्सीजन का भी उपयोग कर सकते हैं। Emacs के लिए Hrvoje Niksic द्वारा htmlize.el भी है।

0

मैंने कई विकल्पों का परीक्षण किया और आस्क्रिप्ट स्रोत कोड मुद्रित करने का सबसे अच्छा परिणाम था। तो, मैं इस बैश पटकथा लिखी कुछ मिनट पहले मौजूदा निर्देशिका में सभी स्रोतों इकट्ठा करने के लिए (बैश, enscript, ps2pdf, pdfjam की जरूरत है):

के उपयोग का उदाहरण: ./script। श * ज * ग

#!/bin/bash 
test "x$1" == "x" && echo "usage: $0 <sourcefiles>" && exit 0 

for f in "[email protected]" ; do enscript $f -o $f.ps -E -C ; done 

for f in *.ps ; do echo ps2pdf $f ; ps2pdf $f && rm $f ; done 

rm OUTPUT.pdf 2>/dev/null 
pdfjam *.pdf && mv *pdfjam.pdf OUTPUT.pdf 

echo 
echo DONE: 
echo OUTPUT.pdf 

चेतावनी: यह स्क्रिप्ट एक बुरा हैक है और मौजूदा निर्देशिका में * .ps और OUTPUT.pdf को नष्ट करेगा। यह मानता है कि सभी इनपुट फाइलें वर्तमान निर्देशिका में हैं।

संबंधित मुद्दे