10
votes

Conversion des fichiers Source ASCII en JPEG

Je publie des livres techniques, imprimés, PDF et Kindle / Mobi, avec EPUB sur le chemin.

Le Kindle ne prend pas en charge les polices monospace, qui sont un peu utiles pour les logiciels de code source. La seule façon de faire des polices monospace est de convertir le texte (Source Java, HTML, XML, etc.) en images JPEG. Plus précisément, en raison des problèmes de pagination, un fichier ASCII d'entrée donné doit être divisé en tranches de 6 lignes chacune, avec chaque tranche devenue dans une JPEG. Les annonces peuvent donc couvrir un écran. C'est une douleur royale.

Mon mécanisme actuel à faire implique:

  1. Exécution Développer Pour définir une taille de tabulation 2-Space cohérente, quels pipes à ...
  2. A2PS , quels pipes à ...
  3. Un petit extrait de perl pour ajouter un "%% languageelevel: 3 \ n" ligne, quels pipes à ...
  4. ImageMagick's Convert , pour prendre le (e) PS et créer un JPEG, avec un arrière-plan approprié, recadré sur 575x148 + 5 + 28 , etc. " / li>

    qui fonctionnait à 100% du temps. Cela fonctionne maintenant 95% du temps. Le reste du temps, je reçois convert: la géométrie ne contient pas d'image d'erreurs, que je ne peux pas sembler se débarrasser de, en partie parce que je ne comprends pas quel est le problème.

    Avant ce processus, j'avais l'habitude d'utiliser un moteur joli-impression ( Source-Hight-Might ) pour obtenir HTML hors du code source ... mais la seule chose que je pouvais trouver pour convertir le HTML dans les JPEG consistait à automatiser les accélérateurs d'un moteur gecko intégré. Fiabilité Stocké, c'est pourquoi je suis passé à mon mécanisme actuel.

    Donc, si vous étiez vous et que vous deviez transformer les listes de sources dans des images JPEG, de manière automatisée, comment le feriez-vous? Points bonus S'il offre une sorte de processus jolie-impression (par exemple, des mots-clés en caractères gras)!

    ou, si vous savez ce qui provoque généralement convert: la géométrie ne contient pas d'image , cela pourrait aider. Mon processus actuel est laid, mais si je pouvais le récupérer à 100% de la fiabilité, ce serait bien pour le moment.

    Merci d'avance!


5 Réponses :


9
votes

Vous pouvez envisager HTML2PS, puis ImageMagick's Convert.

Une pensée: si votre cible (Kindle?) Prend en charge PNG, utilisez-la de préférence à JPEG pour ce rendu de texte.


3 commentaires

Qui tient une promesse. Je suis à peu près sûr que je suis descendu sur cette voie avant et abandonnée, mais j'oublie pourquoi, et mes tests préliminaires suggèrent que cela pourrait commencer correctement. Je vais essayer de faire venir cela demain ou lundi pour confirmer cette solution fonctionne. Merci!


Pas de dé. Obtenir la même erreur ImageMagick à peu près la même fréquence. Doit être une chose d'entrée PostScript.


En réalité, d'autres expériences ont montré que l'erreur ne se produit qu'avec la solution HTML2PS, lorsque le fichier source avait suivi des espaces qui a provoqué la création d'une image effectivement vide. Alors, cela fonctionne! Merci beaucoup!



0
votes

Votre distribution Linux peut inclure la vue de pango et un assortiment de polices. Cela fonctionne sur mon système FC6:

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


0 commentaires

0
votes

N'utilisez pas JPEG. Il est optimisé pour des photographies et fait un travail terrible avec le texte et la ligne d'art. Utilisez gif ou png à la place. Je crois comprendre que GIF est maintenant sans brevets, alors je voudrais simplement l'utiliser.


1 commentaires

Aucune option sur Kindle - JPEG ou Buste.



1
votes

HTML2PS est un excellent programme - je l'ai utilisé pour produire un livre de 1300 pages une fois, mais il est excessivé si vous voulez juste un texte brut -> PostScript. Considérons à la place d'ensemble.


0 commentaires

1
votes

Parce que la question de la conversion de HTML en JPG a été répondue, je proposerai une suggestion sur la jolie imprimante. J'ai trouvé pycments pour être assez génial. Il soutient différents thèmes et a des lexers pour une langue à peu près n'importe quelle langue (ils annoncent le fait qu'il met même en évidence ). Il y a un outil de ligne de commande et il est disponible sur la plupart des distributions Linux.


0 commentaires