2009-07-25 71 views
8

Tôi xuất bản sách kỹ thuật, bản in, PDF và Kindle/MOBI, với EPUB trên đường.Chuyển đổi tệp ASCII nguồn sang dạng JPEG

Kindle không hỗ trợ phông chữ monospace, rất hữu ích cho danh sách mã nguồn. Cách duy nhất để làm phông chữ monospace là chuyển đổi văn bản (nguồn Java, HTML, XML, v.v.) thành hình ảnh JPEG. Cụ thể hơn, do các vấn đề về phân trang, một tệp ASCII đầu vào nhất định cần phải được chia thành các lát của mỗi dòng là 6 dòng, với mỗi lát biến thành một tệp JPEG, vì vậy các danh sách có thể mở rộng một màn hình. Đây là một nỗi đau của hoàng gia.

cơ chế hiện tại của tôi để làm điều đó bao gồm:

  1. Chạy expand để thiết lập một 2-không gian kích thước phù hợp tab, trong đó đường ống để ...
  2. a2ps, mà đường ống để ...
  3. Một đoạn mã Perl nhỏ để thêm một dòng "%%LanguageLevel: 3\n", đường ống này ...
  4. ImageMagick's convert, để lấy (E) PS và tạo ra một ảnh JPEG, với nền thích hợp, cắt thành 575x148+5+28, v.v ...

Điều đó được sử dụng để hoạt động 100% thời gian. Nó bây giờ hoạt động 95% thời gian. Phần còn lại của thời gian, tôi nhận được convert: geometry does not contain image lỗi, mà tôi không thể có vẻ để thoát khỏi, một phần vì tôi không hiểu vấn đề là gì.

Trước khi quá trình này, tôi đã sử dụng một công cụ in đẹp (source-highlight) để lấy HTML ra khỏi mã nguồn ... nhưng sau đó điều duy nhất tôi có thể tìm thấy để chuyển đổi HTML thành JPEG là tự động hóa màn hình- lấy từ một động cơ Gecko được nhúng. Độ tin cậy stank, đó là lý do tại sao tôi chuyển sang cơ chế hiện tại của tôi.

Vì vậy, nếu bạn là bạn và bạn cần chuyển danh sách nguồn thành hình ảnh JPEG, theo kiểu tự động, bạn sẽ làm như thế nào? Điểm thưởng nếu nó cung cấp một số loại quy trình in đẹp (ví dụ: từ khóa in đậm)!

Hoặc, nếu bạn biết nguyên nhân thường gây ra convert: geometry does not contain image, điều đó có thể hữu ích. Quá trình hiện tại của tôi là xấu, nhưng nếu tôi có thể làm cho nó trở lại độ tin cậy 100%, điều đó sẽ tốt cho đến bây giờ.

Cảm ơn trước!

Trả lời

8

Bạn có thể xem xét html2ps và sau đó là chuyển đổi của imagemagick.

Suy nghĩ: nếu mục tiêu của bạn (Kindle?) Hỗ trợ PNG, hãy sử dụng tùy chọn này để ưu tiên JPEG cho việc hiển thị văn bản này.

+0

Điều đó hứa hẹn một chút. Tôi khá chắc chắn rằng tôi đã đi xuống con đường đó trước và bỏ nó, nhưng tôi quên lý do tại sao, và các xét nghiệm sơ bộ của tôi cho thấy nó có thể làm việc ra OK. Tôi sẽ cố gắng thực hiện việc này vào ngày mai hoặc thứ Hai để xác nhận giải pháp này hoạt động. Cảm ơn! – CommonsWare

+0

Không súc sắc. Bắt cùng một lỗi ImageMagick với cùng tần suất. Phải là một điều đầu vào Postscript. – CommonsWare

+5

Trên thực tế, các thử nghiệm khác cho thấy lỗi chỉ xảy ra, với giải pháp html2ps, khi tệp nguồn có khoảng trống ở cuối tạo ra một hình ảnh trống có hiệu quả. Vì vậy, điều này hoạt động! Cảm ơn nhiều! – CommonsWare

0

Bản phân phối Linux của bạn có thể bao gồm chế độ xem pango và một loại phông chữ. này hoạt động trên hệ thống FC6 tôi:

pango-view --font=DejaVuLGCSansMono --dpi=200 --output=/tmp/text.jpg -q /tmp/text 

Bạn sẽ cần phải xác định một font chữ đơn được cài đặt trên hệ thống của bạn. Nhìn xung quanh /usr/share/fonts/.

Pango hỗ trợ Unicode.

Rời khỏi -q trong khi bạn đang thử nghiệm, nó sẽ hiển thị cửa sổ thay vì tệp.

0

Không sử dụng jpeg. Nó được tối ưu hóa cho các bức ảnh và làm một công việc khủng khiếp với văn bản và nghệ thuật dòng. Sử dụng gif hoặc png để thay thế.Sự hiểu biết của tôi là gif bây giờ là không có bằng sáng chế, vì vậy tôi sẽ chỉ sử dụng nó.

+2

Không có tùy chọn trên Kindle - JPEG hoặc bức tượng bán thân. – CommonsWare

1

html2ps là một chương trình tuyệt vời - Tôi sử dụng nó để tạo ra một cuốn sách 1300 trang một lần, nhưng đó là quá mức cần thiết nếu bạn chỉ muốn đồng bằng văn bản -> postscript. Thay vào đó, hãy xem xét mã số.

1

Bởi vì vấn đề chuyển đổi HTML sang JPG đã được trả lời, tôi sẽ đưa ra một gợi ý trên máy in khá. Tôi đã tìm thấy Pygments là khá tuyệt vời. Nó hỗ trợ các chủ đề khác nhau và có từ vựng cho khá nhiều bất kỳ ngôn ngữ ra khỏi đó (họ quảng cáo thực tế là nó thậm chí còn nổi bật brainfuck). Có một công cụ dòng lệnh và nó có sẵn trên hầu hết các bản phân phối Linux.

Các vấn đề liên quan