Como converter TXT para PDF?

38

Eu quero converter .txt arquivos para .pdf . Eu estou usando isso:

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

Mas isso produz um "erro" - se houver uma linha muito longa no arquivo de texto, ele não será quebrado.

Texto de entrada

PDFdesaída

-

Além disso, também seria ótimo se o PDF de saída contivesse texto, em vez de imagens de texto.

Eu tenho muitos e muitos arquivos TXT. Então não quero fazer isso manualmente. Preciso de uma solução automática, como a que mencionei acima.

    
por LanceBaynes 26.07.2011 / 08:03

8 respostas

20

Um método é usar o CUPS e a impressora psuedo PDF para "imprimir" o texto em um arquivo PDF.

Outra é usar o texto para codificar o postscript e depois converter de postscript para PDF usando o ps2pdf arquivo do pacote ghostscript.

    
por 26.07.2011 / 08:53
24

pandoc pode fazer isso. É mais focado na conversão de texto marcado em vários formatos, mas não deve ter problemas com texto simples.

pandoc input.txt -o output.pdf
    
por 06.04.2013 / 00:41
16

O LibreOffice / OpenOffice, assim como a maioria dos outros processadores de texto (Abiword), podem fazer isso com bastante facilidade.

Existe um pequeno utilitário chamado unoconv que usa a base de código do LibreOffice para fazer conversões de formato de arquivo na linha de comando. Ele pode ler e gravar qualquer combinação de formatos que o LibreOffice pode e torna muito fácil fazer coisas como doc to pdf conversões na linha de comando. O simples txt to pdf seria fácil para ele.

    
por 26.07.2011 / 09:55
11

Você pode imprimir texto em um arquivo PostScript usando o Vim e depois convertê-lo em PDF, contanto que o Vim tenha sido compilado com o recurso +postscript .

Para isso você usa o comando :hardcopy > {filename} . Por exemplo, você pode abrir example.txt e executar

:hardcopy > example.ps

, que produzirá um arquivo example.ps contendo todo o texto em example.txt . O cabeçalho de cada página no arquivo PostScript conterá o nome do arquivo original e o número da página.

Depois, você pode converter o arquivo PostScript em PDF usando o seguinte comando

ps2pdf example.ps

que criará example.pdf .

Você pode fazer o mesmo diretamente de um terminal (sem interagir com o Vim) usando o seguinte comando

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

Isso abre example.txt no Vim e executa o comando passado para a opção -c , que neste caso é um comando hardcopy seguido por um comando quit ( q ). Em seguida, ele executa ps2pdf para produzir o arquivo final.

Para mais opções, consulte os arquivos de ajuda com :help :hardcopy .

    
por 17.04.2016 / 03:05
10

Use apenas o text2pdf , que é gratuito e de código aberto. No link você pode baixar a fonte ou o binário pré-compilado para windows, solaris, dos.

Consigo usá-lo no sistema operacional AIX sem problemas. Muito simples de compilar, apenas salve os arquivos text2pdf.c e Makefile no mesmo diretório e digite make . (aqui eu configurei a variável CC = gcc no AIX, no linux isso não será um problema)

$ ./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
    
por 05.04.2013 / 16:02
7

Existe também um conversor de UTF-8 para PostScript chamado paps .

    
por 26.07.2011 / 13:23
5

Use o enscript para criar um arquivo .ps e, em seguida, ps2pdf (ou ps2pdfwr) para converter em .pdf

O script a seguir cria um arquivo .pdf com margens esquerda e direita de 10 pontos e usa uma fonte de courier de 7.3 pts de largura e 10 pts de altura, portanto, uma impressão de 132 col cabe em uma página de 8 1/2 X 11. Use o enscript para configurar sua página, fontes, etc.

$ enscript -B --margins=10:10: -o outputfile.ps -f [email protected]/10 inputfile
$ ps2pdfwr outputfile.ps newfile.pdf
$ rm outputfile.ps
    
por 08.06.2013 / 20:52
1

O LibreOffice funciona para isso. Uso:

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

A saída será chamada file.pdf .

    
por 01.02.2018 / 20:29