4

テキストが希望どおりに正確に配置された文字列があります。それは一種のアスキーアートプロジェクトです。このテキストをPDFに変換して、地元のプリントショップでテキスト付きのポスターを印刷できるようにします。

フォントは固定幅である必要があり、タブなどはありません。行は「\n」文字で終わります。いくつかのスペース文字があります。

画像は幅数百文字、高さ数百文字です。したがって、通常のページのスペースには収まりません。

Pythonでこれを行うにはどうすればよいですか?

4

3 に答える 3

4

モジュールpyPdfを試してみてください、あなたのためにトリックをするかもしれません!

または、新しいPDFファイルを作成するときにフォントを設定できるpyfPdf ( setFontの例

pyfPdfチュートリアルページから:

from fpdf import FPDF

pdf=FPDF()
pdf.add_page()
pdf.set_font('Courier','B',16)
pdf.cell(40,10,'Hello World!')
pdf.output('tuto1.pdf','F')
于 2012-08-13T17:49:30.857 に答える
2

ASCIIアートから印刷可能なファイルを作成できる方法は他にもいくつかあります。

まず、ImageMagick:

方法を示すために...

  • ...まず、という名前のテキストファイルを作成しmy.mvg、次のコンテンツを入力します。

    text 8,8 "
    
        _    ____   ____ ___ ___        _         _   
       / \  / ___| / ___|_ _|_ _|      / \   _ __| |_ 
      / _ \ \___ \| |    | | | |_____ / _ \ | '__| __|
     / ___ \ ___) | |___ | | | |_____/ ___ \| |  | |_ 
    /_/   \_\____/ \____|___|___|   /_/   \_\_|   \__|
    
    "
    
  • ...次に、次のいずれかのコマンドを実行します。

    convert                 \
      -font "Courier"       \
      -size 800x200 xc:none \
      -box yellow           \
      -pointsize 12         \
      -gravity center       \
      -draw @my.mvg         \
       my-ascii-art.pdf
    

    PDFを出力ファイルとして取得するには、または

    convert                           \
      -font "Liberation-Mono-Regular" \
      -size 800x200 xc:none           \
      -box orange                     \
      -pointsize 14                   \
      -gravity center                 \
      -draw @my.mvg                   \
       my-ascii-art.png
    

    PNG出力用。もちろん、2つのコマンドのそれぞれについて、心ゆくまで遊んでください-size...-box-pointsize

  • \nただし、行末から文字を削除する必要があるかもしれません...

  • ImageMagickメソッドは、出力がPDF(およびおそらくかなり大きなファイル)であっても、ラスターグラフィックスを作成することに注意してください。**

次に、a2ps+ Ghostscript:

この方法を示すために...

  • ...まず、次のhenryb.txtコンテンツで名前が付けられたテキストファイルを作成します。

                     _   
      |_| _ ._ ._   |_)  
      | |(/_| || \/ |_)o 
                 /       
    
  • ...次に、次のコマンドを実行してa2ps、Ghostscriptと協力してPDFファイルを作成します。

    a2ps                      \
      --output=-              \
      --columns=1             \
      --borders=0             \
      --no-header             \
      --landscape             \
      --medium=a5             \
        henryb.txt            \
    |                         \
    gs                        \
      -o henryb.pdf           \
      -sDEVICE=pdfwrite       \
      -g1000x2500             \
      -dAutoRotatePages=/None \
      -
    

    または、PNG出力の場合:

    a2ps                      \
      --output=-              \
      --columns=1             \
      --borders=0             \
      --no-header             \
      --landscape             \
      --medium=a5             \
        henryb.txt            \
    |                         \
    gs                        \
      -o henryb.png           \
      -sDEVICE=pngalpha       \
      -g100x250               \
      -
    

    -gNNNxMMM出力寸法をピクセル単位で示します。GhostscriptはデフォルトでPDF距離の計算に1インチあたり720ピクセルを使用しますが、解像度設定でオーバーライドされない限り、ラスター画像の計算には72 ppiを使用し-rNNNます...)

第三に、enscript+ Ghostscript:

この方法を示すために...

  • ...まず、次のhenryb-2.txtコンテンツで名前が付けられたテキストファイルを作成します。

    m    m                                    mmmmm        
    #    #  mmm   m mm    m mm  m   m         #    #       
    #mmmm# #"  #  #"  #   #"  " "m m"         #mmmm"       
    #    # #""""  #   #   #      #m#          #    #       
    #    # "#mm"  #   #   #      "#           #mmmm"   #   
                                 m"                        
                                ""                         
    
  • ...次に、次のコマンドを実行してenscript、Ghostscriptと協力してPDFファイルを作成します。

    enscript                  \
      --output=-              \
      --columns=1             \
      --no-header             \
      --landscape             \
      --media=A5              \
        henryb-2.txt          \
    |                         \
    gs                        \
      -o henryb-2.pdf         \
      -sDEVICE=pdfwrite       \
      -g1500x4000             \
      -
    

    または、PNG出力の場合:

    enscript                  \
      --output=-              \
      --columns=1             \
      --no-header             \
      --landscape             \
      --media=A5              \
        henryb-2.txt          \
    |                         \
    gs                        \
      -o henryb-2.png         \
      -sDEVICE=pngalpha       \
      -g150x400               \
      -
    
于 2012-08-13T21:15:43.863 に答える
0

レポートラボ をお試しください

  1. 埋め込まれたType-1またはTTFフォントをサポートします
  2. アジア、ヘブライ語、アラビア文字をサポート
  3. 一般的な形式のビットマップ画像をサポートします
  4. ベクターグラフィックをサポート
于 2012-08-13T18:00:05.737 に答える