プログラムな日常>C#>
ハガキへの応用(FormMaker 1.1)
(for postcards --- C#)

年賀状など、ハガキの宛名書きへの応用を考えました。エクセルで次のような表を作ります。 ここで、第一行目の、「名前」、「郵便番号」、「住所1」、「住所2」の各項目名はその通りにして下さい(「1」、「2」は全角です)。 位置は順不同でも良いです。郵便番号はここではハイフンを入れておきます。

エクセル

エクセルから、csvファイルを出力します。「名前を付けて保存」で開くダイアログボックスの「ファイルの種類」で、やや目立たないですが、 「CSV(カンマ区切り)(*.csv)」を選び、出力します。このファイルも、開くときのソフトは、デフォでエクセルに結びつけられていると思いますが、 「メモ帳」でも開くことができ、こんな感じです。

csv(メモ帳)

これを、バージョンアップした「FormMaker 1.1」(このページの末尾にあります)で開きます。 「ファイル(F)」メニューに新たに加えられた「csvから変換」を選んで、*.csv を *.fmm に変換します。

生成された「住所録」のプログラム(住所録.fmm)

こうして吐き出されたファイル(もちろん修正もできる)を、「ファイル(F)」メニューの「開く(O)」で改めて読込み、プリントします。

     

タグの機能にも変更があります。 何れ整理してご説明しますが、変更点だけを述べます。

[PSize] 規格されている紙のサイズです。現状では、A3,A4,A5,B4,B5,B6,ハガキ,長3,長4,角3,Letter,Tabloid,Legal,Executive 。
[mm/px] 「[mm/px]25.4 /96」、「[mm/px]25.4 /100」、「[mm/px]1 /4」の3つのメジャーな選択肢が考えられます。 最初のものでは、ピクセルをそのまま公式(?)なピクセルとして定義し、スケールの調整はないです。 出力が大き目になる分、最も小さなピクセル範囲に収めて編集する必要があります。 第2のものは、1ピクセルが 1/100 インチになり、前回主にご説明したものです。この文がない場合のデフォルトになります。 第3のものは、第2のものと大差ないですが、1ミリメートルが4ピクセルになるので、計算が簡単です。 その他、任意のスケール(倍率)が可能です。
[Font] [TFont]と同じ機能です。
[Dtext] グローバルな文字列を書きだします。引数には、x位置、y位置、文字間隔(省略可;第4引数が必要で省略するときは「0」)、幅(省略可)が指定されます。 行間隔は#Hで指定されますが、これがゼロのときは、デフォルトの間隔が使われます。 書き出し以降のy位置が変数#Uに代入されます。 #Rにゼロでない値があると、角に丸みのある長方形の線で囲われます。 各行の中身が「,」で区切られてるマルチカラムの利用が可能です。 この場合、[DText]をくり返して呼び出すと、左のカラムから順に利用できます。
[DSingle] 単一行を書きだします。引数には、x位置、y位置、文字間隔(省略可)、さらに「;」の後に、文字列を直接指定します。
[DSingleWild] [DSingle]とほぼ同じですが、コメント指定「//」が無視されます。

以上のルールで書かれたプログラムをコンパイルする⦅pdf化,印刷,画像ファイル作成⦆ためのプログラムは次のものです。

FormMaker.cs (1.1)

なお、前回ご紹介した各フォームのプログラムもこれに伴って書き換えるべきところもあり、それは以下の通りです。

「日誌」のプログラム(daily.fmm)


「連絡票」のプログラム(commu.fmm)


「履歴書」のプログラム(cv.fmm)


「テストパターン」のプログラム(measure.fmm)


「テストパターン」のプログラム、その2(measure2.fmm;画面では少し小さく表示されますが、出来上がりはほぼ同じになります)