帳票.NET Q&A

Visual Studio 2015より前のVisual Studioで使いたい。
Ver1.6を下記からダウンロードしてください。
帳票.NET(サイズ0.8MB)
サンプル帳票(ZIP圧縮)
プログラミングマニュアル、帳票印刷カスタムコントロール クラスリファレンス(ZIP圧縮)
プログラミングサンプル(ZIP圧縮)

複数ページの印刷はどのようにして行うのか
PrintPageイベントハンドラの1回の呼び出しでは1ページ分の印刷を行います。そのため、PrintPageイベントハンドラ内で、印刷すべきページを判断して、OpenFileメソッドでそのファイルを開き、PrintPageメソッドで印刷を行います。
また、PrintPageイベントハンドラで引数PrintPageEventArgsのHasMorePagesを設定する必要があります。最後のページでHasMorePagesをfalseに設定し、まだ続きのページがある場合はHasMorePagesをtrueに設定します。
例.
どこかで、int iPageNumber を宣言し、
印刷開始処理時
iPageNumber =0;
printDocument.Print();
として、
PrintPageイベントハンドラで次のように処理する。
private void printDocument_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
    iPageNumber ++;
    if (iPageNumber == 1)
    {
        printControl.OpenFile("C:\\1ページ目.rpr");
        e.HasMorePages = true;
    }
    else
    {
        printControl.OpenFile("C:\\2ページ目.rpr");
        e.HasMorePages = false;
    }
    Graphics g = e.Graphics;
    printControl.PrintPage(g);
}

横書きで印刷したい
縦書き/横書きの設定は.NET Frameworkの機能で行います。
具体的には、PrintDocumentオブジェクトのQueryPageSettingsイベントハンドラ内で、引数QueryPageSettingsEventArgsのPageSettingsオブジェクトのLandscapeプロパティを設定します。trueに設定すれば横書きに、falseで縦書きになります。
なお、実際の用紙の向きやサイズなどはPrintControlのGetPaperInfoメソッドで取得できます。

VBの例
Private Sub PrintDocument1_QueryPageSettings(ByVal sender As Object, ByVal e As System.Drawing.Printing.QueryPageSettingsEventArgs) Handles PrintDocument1.QueryPageSettings
  e.PageSettings.Landscape = True
End Sub

C#の例
private void printDocument1_QueryPageSettings(object sender, QueryPageSettingsEventArgs e)
{
  e.PageSettings.Landscape = true;
}

UnicodeIVS外字をIPAmj明朝フォントにリンクしているが、IVSの文字が正しく表示されない(親字の次に×付き四角形が表示される)。
【原因1】
UnicodeIVS外字を使うには、帳票デザイナーの[ファイル]メニューの[プロパティ]コマンド で、『IVS異体字を「UnicodeIVS外字」で表示する』にチェックを入れ、帳票ファイルを保存する必要があります。

【原因2】
IVSの文字でIPAmj明朝フォントが持っていないものは「IVS→外字」変換できずにIVSのまま表示され、正しく表示できません。

本文 | アップデート内容 | UnicodeIVS外字 | ソースコード | Q&A

Copyright © 2015 Musashi System Inc. All Rights Reserved.