it-swarm-vi.com

Làm cách nào để chuyển đổi TXT thành PDF?

Tôi muốn chuyển đổi .txt tập tin vào .pdf. Tôi đang sử dụng cái này:

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

Nhưng điều này tạo ra một "lỗi" - nếu có một dòng rất dài trong tệp văn bản, nó sẽ không được gói.

Nhập ký tự

Screenshot of the input file

PDF đầu ra

Screenshot of the output PDF

-

Ngoài ra, cũng sẽ rất tuyệt nếu đầu ra PDF có thể chứa văn bản, thay vì hình ảnh của văn bản.

Tôi có nhiều tệp rất nhiều-nhiều TXT. Vì vậy, tôi không muốn làm bằng tay. Tôi cần một giải pháp tự động, giống như giải pháp tôi đã đề cập ở trên.

45
LanceBaynes

Một phương pháp là sử dụng CUPS và PDF máy in psuedo để "in" văn bản thành tệp PDF.

Một cách khác là sử dụng constcript để mã hóa thành postcript và sau đó chuyển đổi từ postcript thành PDF bằng cách sử dụng tệp ps2pdf từ gói ghostscript.

22
Keith

pandoc có thể làm điều này. Nó tập trung hơn vào việc chuyển đổi văn bản được đánh dấu sang các định dạng khác nhau, nhưng nó không có vấn đề gì với văn bản đơn giản.

pandoc input.txt -o output.pdf
39
evilsoup

LibreOffice/OpenOffice cũng như hầu hết các bộ xử lý Word khác (Abiword) có thể thực hiện việc này khá dễ dàng.

Có một tiện ích nhỏ gọi là unoconv sử dụng cơ sở mã LibreOffice để thực hiện chuyển đổi định dạng tệp trên dòng lệnh. Nó có thể đọc và viết bất kỳ sự kết hợp các định dạng nào mà LibreOffice có thể và làm cho nó rất dễ thực hiện những việc như chuyển đổi doc sang pdf trên dòng lệnh. Đơn giản txt đến pdf sẽ dễ dàng cho nó.

18
Caleb

Bạn có thể in văn bản thành tệp PostScript bằng Vim và sau đó chuyển đổi nó thành PDF, miễn là Vim được biên dịch với +postscript đặc tính.

Đối với điều này, bạn sử dụng :hardcopy > {filename} chỉ huy. Ví dụ: bạn có thể mở example.txt và thực thi

:hardcopy > example.ps

sẽ tạo ra một tệp example.ps chứa tất cả văn bản trong example.txt. Tiêu đề của mỗi trang trong tệp PostScript sẽ chứa tên tệp gốc và số trang.

Sau đó, bạn có thể chuyển đổi tệp PostScript thành PDF bằng cách sử dụng lệnh sau

ps2pdf example.ps

cái sẽ tạo ra example.pdf.

Bạn có thể làm tương tự trực tiếp từ một thiết bị đầu cuối (mà không tương tác với Vim) bằng cách sử dụng lệnh sau

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

Điều này mở example.txt trong Vim và thực thi lệnh được truyền cho -c tùy chọn, trong trường hợp này là lệnh hardcopy theo sau là lệnh thoát (q). Sau đó, nó thực thi ps2pdf để tạo tập tin cuối cùng.

Để biết thêm tùy chọn, hãy xem các tệp trợ giúp với :help :hardcopy.

15
Gonçalo Ribeiro

Chỉ cần sử dụng text2pdf , miễn phí và mã nguồn mở. Tại liên kết, bạn có thể tải xuống nguồn hoặc nhị phân được biên dịch sẵn cho windows, solaris, dos.

Tôi có thể sử dụng nó vào hệ điều hành AIX mà không gặp vấn đề gì. Rất đơn giản để biên dịch, chỉ cần lưu text2pdf.c và Makefile vào cùng thư mục và gõ make. (ở đây tôi đặt biến CC = gcc trên AIX, trên linux điều này sẽ không thành vấn đề)

$ ./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
9
ceinmart

Ngoài ra còn có một trình chuyển đổi UTF-8 sang PostScript được gọi là paps .

7
tunit

Sử dụng bản ghi để tạo tệp .ps và sau đó ps2pdf (hoặc ps2pdfwr) để chuyển đổi sang .pdf

Kịch bản sau đây tạo tệp .pdf với lề trái và phải 10 pt và sử dụng phông chữ chuyển phát rộng rộng 7,3 điểm và cao 10 điểm, do đó, bản in 132 col phù hợp với trang 8 1/2 X 11. Sử dụng ký hiệu để thiết lập trang, phông chữ, v.v.

$ enscript -B --margins=10:10: -o outputfile.ps -f [email protected]/10 inputfile
$ ps2pdfwr outputfile.ps newfile.pdf
$ rm outputfile.ps
5
Dan Walker

LibreScript hoạt động cho việc này. Sử dụng:

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

Đầu ra sẽ được gọi là file.pdf.

3
jbrock

Vì nó được bao gồm theo mặc định trong nhiều bản phân phối, nên một cách ngắn hơn để gọi libreoffice từ cli:

soffice --convert-to pdf input.txt

Các tiện ích mở rộng được hỗ trợ bởi soffice, chúng tôi có thể chuyển đổi từ/sang:

ODF Spreadsheet                   .ods
ODF Spreadsheet Template          .ots
Flat XML ODF Spreadsheet          .fods
Unified Office Format Spreadsheet .uos
Microsoft Excel 2007-2013 XML     .xlsx
Microsoft Excel 2003 XML          .xml
Microsoft Excel 97-2003           .xls
Microsoft Excel 97-2003 Template  .xlt
Data Interchange Format           .dif
dBase                             .dbf
HTML Document (Calc)              .html
SYLK                              .slk
Text CSV                          .csv
Office Open XML Spreadsheet       .xlsx
Microsoft Excel 2007-2016 XML     .xlsm
2
NVRM