TXT को PDF में कैसे बदलें?


45

मैं .txtफ़ाइलों को परिवर्तित करना चाहता हूं .pdf। मैं इसका उपयोग कर रहा हूं:

ls | while read ONELINE; do convert -density 400 "$ONELINE" "$(echo "$ONELINE" | sed 's/.txt/.pdf/g')"; done

लेकिन यह एक "त्रुटि" पैदा करता है - अगर पाठ फ़ाइल में एक बहुत लंबी रेखा है, तो यह लपेटा नहीं जाता है।

इनपुट टेक्स्ट

इनपुट फ़ाइल का स्क्रीनशॉट

आउटपुट पीडीएफ

आउटपुट पीडीएफ का स्क्रीनशॉट

-

साथ ही, यह भी बहुत अच्छा होगा अगर आउटपुट पीडीएफ में टेक्स्ट, चित्रों की जगह टेक्स्ट हो सकता है।

मेरे पास कई-कई TXT फाइलें हैं। इसलिए इसे हाथ से नहीं करना चाहते। मुझे एक स्वचालित समाधान की आवश्यकता है, जैसा कि मैंने ऊपर उल्लेख किया है।


1
आपको for ONELINE in *इसके बजाय उपयोग करना चाहिए ls | while read ONELINE। पढ़ें यह

मेरे पास जवाब देने के लिए पर्याप्त प्रतिनिधि नहीं है, लेकिन मैं सिर्फ केडीई कुबंटु में केट संपादक को जोड़ना चाहता हूं जिसे आप पीडीएफ "प्रिंटर" पर प्रिंट कर सकते हैं जो आपको फ़ाइल नाम का चयन करने देता है और यह एक .pdf का उत्पादन करता है।
मैथडेलर

जवाबों:


21

एक विधि CUPS और पीडीएफ psuedo- प्रिंटर का उपयोग एक पीडीएफ फाइल को "प्रिंट" करने के लिए है।

एक और पोस्टस्क्रिप्ट को एनकोड करने के लिए एनस्क्रिप्ट का उपयोग करना है और फिर भूतहास्क्रिप्ट पैकेज से ps2pdf फ़ाइल का उपयोग करके पोस्टस्क्रिप्ट से पीडीएफ में परिवर्तित करना है।



3
किसी के पास UTF-8 को एनस्क्रिप्ट के लिए समर्थन नहीं है?
लांसबाइन्स


34

पंडोक ऐसा कर सकता है। यह चिह्नित पाठ को विभिन्न स्वरूपों में परिवर्तित करने पर अधिक केंद्रित है, लेकिन इसमें सरल प्लेनटेक्स्ट के साथ कोई समस्या नहीं होनी चाहिए।

pandoc input.txt -o output.pdf

3
अच्छा लग रहा है, लेकिन भारी मात्रा में हेकेल निर्भरता पंडोक मुझे डराना चाहती है: /
लकराव

1
@ इकारव हां, यह इस उद्देश्य के लिए ओवरकिल है, लेकिन अगर आपके पास मार्कडाउन या एचटीएमएल (या किसी भी अन्य मार्कअप को इनपुट के रूप में स्वीकार कर सकते हैं) पंडोक जाने का रास्ता होगा। पीडीएफ को वास्तव में और भी अधिक निर्भरता की आवश्यकता होती है - आंतरिक रूप से, पीडीएफ में कनवर्ट करने के लिए पैंडोक लाटेक का उपयोग करता है, इसलिए आपको उस सामान को भी स्थापित करने की आवश्यकता है - लेकिन गुणवत्ता बहुत अच्छी है (मैं इसका उपयोग मुख्य रूप से पीडीएफ और ईपीयूबी के लिए मार्कडाउन को पाठ में बदलने के लिए करता हूं) )।
ईविल्स

pandoc (1.16.0.2) टैब के साथ मेरी नई सूचियों को प्रतिस्थापित करता है।
स्परहॉक

17

LibreOffice / OpenOffice के साथ-साथ अधिकांश अन्य वर्ड प्रोसेसर (Abiword) इसे काफी आसानी से कर सकते हैं।

थोड़ी उपयोगिता है जिसे कहा जाता है unoconvकि कमांड लाइन पर फ़ाइल प्रारूप रूपांतरण करने के लिए लिब्रे ऑफिस कोड का उपयोग करता है। यह पढ़ सकते हैं और स्वरूपों कि लिब्रे ऑफिस कर सकते हैं के किसी भी संयोजन लिख सकते हैं और यह बहुत आसान जैसी चीज़ों के लिए बनाता है सकते हैं docकरने के लिए pdfकमांड लाइन पर रूपांतरण। सरल txtकरने के लिए pdfयह आसान नहीं होगा।


दिलचस्प। के बारे में पता नहीं unoconvथा और यह भी नहीं पता था कि ओओ के पास एपीआई थे।
फहीम मीठा

उच्च गुणवत्ता वाले परिणामों का उत्पादन करता है, लेकिन, मेरे लिए (मैं संस्करण 0.5-1 (डेबियन व्हीज़ी) का उपयोग कर रहा हूं), मुझे पहले एक unoconv --listener &कमांड चलाना होगा ।
खान में काम करनेवाला

12

आप विम का उपयोग करके पोस्टस्क्रिप्ट फ़ाइल में टेक्स्ट प्रिंट कर सकते हैं और फिर इसे पीडीएफ में बदल सकते हैं, जब तक कि विम +postscriptफीचर के साथ संकलित नहीं किया गया था ।

इसके लिए आप :hardcopy > {filename}कमांड का उपयोग करें । उदाहरण के लिए आप खोल सकते हैं example.txtऔर निष्पादित कर सकते हैं

:hardcopy > example.ps

जो example.psसभी पाठ में एक फ़ाइल का उत्पादन करेगा example.txt। पोस्टस्क्रिप्ट फ़ाइल के प्रत्येक पृष्ठ के शीर्षलेख में मूल फ़ाइल नाम और पृष्ठ संख्या होगी।

फिर आप निम्न कमांड का उपयोग करके पोस्टस्क्रिप्ट फ़ाइल को पीडीएफ में बदल सकते हैं

ps2pdf example.ps

जो पैदा करेगा example.pdf

आप निम्नलिखित आदेश का उपयोग करके टर्मिनल से सीधे (विम के साथ बातचीत किए बिना) कर सकते हैं

vim example.txt -c "hardcopy > example.ps | q"; ps2pdf example.ps

यह example.txtविम में खुलता है और -cविकल्प को पारित कमांड को निष्पादित करता है , जो इस मामले में एक hardcopyकमांड है जिसके बाद एक छोड़ दिया जाता है ( q) कमांड। फिर यह ps2pdfअंतिम फ़ाइल का उत्पादन करने के लिए निष्पादित करता है।

अधिक विकल्पों के लिए मदद फ़ाइलों को देखें :help :hardcopy


:hardcopyकोई पोस्टस्क्रिप्ट फ़ाइल पैदा नहीं करता है, जो मैं .pdf या .ps एक्सटेंशन जोड़ता हूं। मैंने किया :hardcpy > example.pdfऔर less example.pdfशेल में मैं देख सकता था कि फ़ाइल हेडर था %!PS-Adobe-3.0
तारो

@ सही, आप सही हैं। जिस समय मैंने यह लिखा था मैंने उस पर ध्यान नहीं दिया था। मैंने अपना उत्तर अपडेट कर दिया। अंतिम आदेश में सुधार किया जा सकता है, लेकिन मैं अभी ऐसा नहीं लिख सकता। बाद में कर सकते हैं।
गोनकेलो रिबेरो

10

बस text2pdf का उपयोग करें , जो मुफ़्त है और ओपनसोर्स है। लिंक पर आप विंडोज़, सोलारिस, डॉस के लिए स्रोत या पूर्व-संकलित बाइनरी डाउनलोड कर सकते हैं।

मैं समस्या के बिना AIX OS में इसका उपयोग करने में सक्षम हूं। संकलन करने के लिए बहुत सरल है, बस text2pdf.c और Makefile को एक ही डायरेक्टरी और प्रकार में सहेजें make। (यहाँ मैंने चर पर CC = gcc को AIX पर सेट किया है, लिनक्स पर यह कोई समस्या नहीं होगी)

$ ./text2pdf  -h

text2pdf [options] [filename]

  text2pdf makes a 7-bit clean PDF file (version 1.1) from any input file.
  It reads from standard input or a named file, and writes the PDF file
  to standard output.

  There are various options as follows:

  -h            show this message
  -f<font>      use PostScript <font> (must be in standard 14, default: Courier)
  -I            use ISOLatin1Encoding
  -s<size>      use font at given pointsize (default 10)
  -v<dist>      use given line spacing (default 12 points)
  -l<lines>     lines per page (default 60, determined automatically
                if unspecified)
  -c<chars>     maximum characters per line (default 80)
  -t<spaces>    spaces per tab character (default 8)
  -F            ignore formfeed characters (^L)
  -A4           use A4 paper (default Letter)
  -A3           use A3 paper (default Letter)
  -x<width>     independent paper width in points
  -y<height>    independent paper height in points
  -2            format in 2 columns
  -L            landscape mode

  Note that where one variable is implied by two options, the second option
  takes precedence for that variable. (e.g. -A4 -y500)
  In landscape mode, page width and height are simply swapped over before
  formatting, no matter how or when they were defined.

text2pdf v1.1 (c) Phil Smith, 1996
$ ./text2pdf  -f"Courier" -s6 -c216 -v6 -L -A4 ./rep3.txt >rep3.pdf

3
वहाँ एक utf8 इस का सक्षम कांटा है?
वोल्फगैंग फाहल

7

यूटीएफ -8 से लेकर पोस्टस्क्रिप्ट कनवर्टर भी कहा जाता है paps


3
यह काम करता है, और ट्रू टाइप फोंट के साथ, लेकिन यह ध्यान दिया जाना चाहिए कि यह फोंट को मूल रूप से उपयोग करने के बजाय, बिटमैप के साथ एक दस्तावेज़ का उत्पादन करता है। (मुझे लगता है कि पोस्टस्क्रिप्ट की वजह से है?)
njsg

मेरे विंडोज़ पर Cygwin32 पर इसे संकलित नहीं किया जा सका ...
टेक्सनेज़ियो

5

.Ps फ़ाइल बनाने के लिए एनस्क्रिप्ट का उपयोग करें, और फिर .pdf कन्वर्ट करने के लिए ps2pdf (या ps2pdfwr)।

निम्न स्क्रिप्ट 10 pt बाएँ और दाएँ हाशिये के साथ एक .pdf फ़ाइल बनाता है, और एक कूरियर फ़ॉन्ट का उपयोग करता है जो 7.3 pts चौड़ा और 10 pts ऊँचा है, इसलिए 8 1/2 X 11 पृष्ठ पर 132 col printout फिट बैठता है। अपने पेज, फोंट आदि को सेटअप करने के लिए एनस्क्रिप्ट का उपयोग करें।

$ enscript -B --margins=10:10: -o outputfile.ps -f Courier@7.3/10 inputfile
$ ps2pdfwr outputfile.ps newfile.pdf
$ rm outputfile.ps

5
ध्यान देने वाली बात: एनस्क्रिप्ट अंडर -8 का समर्थन नहीं करता है।
मैक्सक्लेपजिग

3

लिबरऑफिस इसके लिए काम करता है। उपयोग:

libreoffice --convert-to "pdf" file.txt

आउटपुट कहा जाएगा file.pdf


क्या परिणामी PDF में फ़ॉन्ट आकार बदलने का कोई तरीका है?
Evg

@ ईवीजी मुझे लिब्रेऑफिस के उपयोग की इस पद्धति के साथ ऐसा करने का तरीका नहीं पता है।
जुबांक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.