Come stampare un normale file in pdf dalla riga di comando


34

In gedit, la stampa di un file offre un'opzione di stampa su file in cui il file può essere salvato come pdf. Come posso fare la stessa cosa dalla riga di comando?

Risposte:


43

Ecco una soluzione che non coinvolge OpenOffice:

  1. sudo apt-get install enscript

  2. enscript my_text_file.txt -o - | ps2pdf - output.pdf

Esistono più opzioni enscript, ad esempio -Bper omettere l'intestazione della pagina. Vedi man enscriptper tutte le opzioni.


1
Una buona alternativa a Stefano specialmente per chiunque non usi open / libreoffice poiché unoconv dipende dall'installazione di uno di questi.
Allan,

+1 per la bella risposta, quella che stavo per dare, ho appena deciso di dare una che penso aggiungerà qualcosa a ciò che è già qui.
Sabacon,

Non esiste alcun programma o comando bash integrato per farlo?
Kashminder,

1
Grazie! Funziona per la maggior parte dei testi, tuttavia l'encript funziona solo con la vecchia codifica, non funziona con UTF-8 ad esempio, quindi non puoi convertire un testo se include il simbolo dell'euro (€) per esempio ...
Antoine Dusséaux

20

senza installare nessuno dei software sopra menzionati, si può semplicemente fare quanto segue con già installato cupsfilter:

cupsfilter foo.txt > foo.pdf

(per opzioni ecc., consultare le pagine man di cupsfilter :-))


2
L'unica risposta qui che ha gestito i miei file di testo UTF8 senza problemi :) più facile da fare praticamente senza dipendenze
Axel Advento,

13

IL MODO SEMPLICE ISCRITTO

sudo apt-get install cups-pdf enscript

Quindi eseguire enscript sul file con l'opzione -P e il PDF di descrizione della stampante in questo caso.

enscript -B -PPDF test.txt

Una stampante con descrizione PDF è stata creata durante l'installazione di cups-pdf, quando si utilizza enscript con quella stampante il documento verrà inviato alla stampante PDF e verrà stampato su file, creato come .pdf nella directory / home / PDF, il comando sopra stamperà il file di testo test.txt come pdf nella directory PDF.

USANDO UNOCONV

sudo apt-get install unoconv

Puoi usare unoconv in modalità standalone, questo significa che in assenza di un listener OpenOffice, inizierà il suo:

Nella directory in cui si trova il tuo file, esegui:

unoconv -f pdf test.txt

questo creerà un bel pdf di test.txt. nella directory corrente


enscript foo.txt -o bar.pdffunziona abbastanza bene; Grazie!
Giovedì

6

Esiste un programma da riga di comando che può convertire tra tutti i formati supportati open / libre office chiamato unoconv, quindi se hai bisogno di convertire in batch con uno script, ti tornerà utile.

sudo apt-get install unoconv

Non quello che ha richiesto l'OP.
enzotib,

2
? OPERAZIONE? chi è il PO e perché votarlo quando risponde alla domanda?
RolandiXor

5

paps è un'alternativa migliore di enscript

paps file.txt | ps2pdf - output.pdf

7
Benvenuti in Ask Ubuntu hwc! Mentre il tuo post risponde alla domanda, è sempre meglio includere ulteriori informazioni. Ad esempio, perché è papsun'alternativa migliore? E se papsnon è installato per impostazione predefinita, qual è il comando per installarlo? Puoi sempre modificare la tua risposta facendo clic sulla editdestra sotto il corpo della risposta. Grazie!
Alaa Ali,

5

Pandoc è uno strumento indispensabile per i coltelli svizzeri quando si tratta di conversione tra vari linguaggi di markup. Per iniziare, installa prima il convertitore pandoc:

sudo apt-get install pandoc

La sintassi generale e più utilizzata per pandoc è:

pandoc -f <from format> -t <to format> <source file>

Si noti che è necessario installare prima il pacchetto texlive-latex-base, prima di poter convertire in formato PDF. Altrimenti otterrai un seguente errore:

pandoc: pdflatex not found. pdflatex is needed for pdf output.

Per installarlo:

sudo apt-get install texlive-latex-base

Ora puoi facilmente convertire qualsiasi file in pdf.

pandoc -t txt -t pdf source.txt

sostituisci txt con il tuo formato di testo (odt - html - ....)


1
Rispetto alle altre risposte, pandoc plus texlive produce output scadenti (non rispettando le nuove righe) ed è eccessivo e confuso all'avvio. Sono necessari molti più pacchetti, inserendo texlive, texlive-fonts-consigliati, ruby, ecc. Ad esempio, ottengo pandoc: Unknown writer: pdffinché non installo texlive-latex-base. Questo è fidato. Vedi github.com/jgm/pandoc/issues/1155 Poi ho ricevuto un errore su un font mancante, poi uno su url.sty, ecc.
nealmcb

2

Come pubblicato sopra, enscriptè un modo popolare per convertire il testo in Postscript, che può quindi essere ulteriormente convertito in PDF.
Uno strumento simile, che esiste da molto tempo, lo è a2ps. Ha un gran numero di opzioni, incluso l'inserimento di più pagine su una pagina fisica. Installa ap2s con sudo apt-get install a2ps.

AFAIK, enscript e a2ps fanno lo stesso lavoro, ma la loro interfaccia è diversa e YMMV con ognuno di essi.


Un esempio dell'uso di a2ps sarebbe di aiuto. L'opzione --delegate sembra essere necessaria per il pdf, ma la pagina man non è di grande aiuto.
nealmcb,

2

Ho avuto dei problemi con il tedesco Umlaute (ÄÖÜ) con le soluzioni sopra menzionate. Oppure, nel caso di paps, il PDF risultante non ha un livello di testo.

La soluzione migliore per me era usare wkthmltopdf . Sembra non essere documentato, ma puoi facilmente convertire file di testo in file PDF usando questa sintassi:

wktmltopdf <textfile> <pdffile>

wkhtmltopdf è in grado di gestire file UTF-8 (a differenza di enscript). Tutti i caratteri problematici come ÄÖÜß ecc. Verranno visualizzati correttamente.


Questo problema è stato risolto nell'ultima versione di paps, che è in grado di produrre pdf selezionabili. Vedi: github.com/dov/paps .
Dov Grobgeld

1

Puoi usare a2x

a2x: converti file di testo Asciidoc in PDF, XHTML, Guida HTML, ODF, manpage o testo normale

Per installare a2x:

sudo apt-get install asciidoc

per esempio:

 a2x -f pdf testfile.txt

0

Puoi usare anche u2ps .

Questo genera sia ps che pdf. Questo accetta il testo UTF-8 e supporta l'evidenziazione della sintassi tramite markup Pango.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.