MESCIUS SPREAD for Windows Forms 17.0J > 開発者ガイド > 印刷 > 印刷属性のカスタマイズ > 印刷ページのヘッダとフッタ |
印刷するページに、ヘッダおよびフッタテキストを追加できます。PrintInfoクラスのHeaderおよびFooterプロパティには、特別な制御コマンドを含めることができます。これらのプロパティを使用すると、ページ番号を表す変数や、フォントを指定するための文字列を設定できます。たとえば、「f」の文字で始まる文字列は、フォント関連のコマンドとして処理されます。
下図は、後述のサンプルコードの実行結果を表しています。
ヘッダおよびフッタに挿入可能な制御コマンドは、以下のとおりです。
制御文字 | 完全コマンド | 印刷ページのヘッダまたはフッタでの機能 |
---|---|---|
/ | / | リテラルなスラッシュ記号(/)を挿入します。 |
/c | /c | アイテムを中央揃えで配置します。 |
/cl | /cl"n" | テキストのフォント色を設定します。nは0から始まる色インデックスであり、0以上の数値を引用符で囲んで指定します。Colorsプロパティを参照してください。 |
/dl | /dl | 長い形式の日付を挿入します。 |
/ds | /ds | 短い形式の日付を挿入します。 |
/f | /f"n" | 以前保存したフォント設定を呼び出します(この表内の/fsを参照)。nは1から始まるインデックスであり、1以上の数値を指定します。(例、/f1) |
/fb | /fb0 | 太字フォントタイプを無効にします。 |
/fb1 | 太字フォントタイプを有効にします。 | |
/fi | /fi0 | 斜体フォントタイプを無効にします。 |
/fi1 | 斜体フォントタイプを有効にします。 | |
/fk | /fk0 | 取り消し線を無効にします。 |
/fk1 | 取り消し線を有効にします。 | |
/fn | /fn"name" | フォントフェイス名を引用符で囲んで指定します。 |
/fs | /fs"n" | 再利用できるように、フォント設定を保存します。nは1から始まるフォント設定のインデックスを指定します(この表内の /f を参照)。(例、/fs1) |
/fu | /fu0 | 下線を無効にします。 |
/fu1 | 下線を有効にします。 | |
/fz | /fz"n" | フォントサイズを設定します。 |
/g | /g"n" | 画像(イメージ)を挿入します。nは0から始まるイメージのインデックスであり、0以上の数値を引用符で囲んで指定します。Imagesプロパティを参照してください。 |
/l | /l | アイテムを左揃えで配置します。「Left」の頭文字として「l」または「L」を指定できます。 |
/n | /n | 新しい行を挿入します。 |
/p | /p | ページ番号を挿入します。 |
/pc | /pc | ページ数(この印刷ジョブの合計ページ数)を挿入します。 |
/r | /r | アイテムを右揃えで配置します。 |
/sn | /sn | シート名を挿入 |
/tl | /tl | 長い形式の時刻を挿入します。 |
/ts | /ts | 短い形式の時刻を挿入します。 |
|
次のサンプルコードは、印刷するページにヘッダおよびフッタを設定し、シートを印刷します。
C# |
コードのコピー
|
---|---|
// PrintInfoオブジェクトを作成し、各プロパティを設定します。 FarPoint.Win.Spread.PrintInfo printset = new FarPoint.Win.Spread.PrintInfo(); printset.Colors = new Color[] {Color.Green, Color.Yellow, Color.Gold, Color.Indigo, Color.Brown}; printset.Images = new Image[] {Image.FromFile("C:\\images\\point.jpg"), Image.FromFile("C:\\images\\logo.gif"), Image.FromFile("C:\\images\\icon.jpg")}; printset.Header = ""/fn\"Book Antiqua\" /fz\"14\" Print job /n "; printset.Footer = "/g\"1\"/r/cl\"4\"This is page /p of /pc"; // 先頭シートのPrintInfoプロパティを設定します。 fpSpread1.Sheets[0].PrintInfo = printset; // シートを印刷します。 fpSpread1.PrintSheet(0); |
Visual Basic |
コードのコピー
|
---|---|
' PrintInfoオブジェクトを作成し、各プロパティを設定します。 Dim printset As New FarPoint.Win.Spread.PrintInfo() printset.Colors = New Color() {Color.Green, Color.Yellow, Color.Gold, Color.Indigo, Color.Brown} printset.Images = New Image() {Image.FromFile("D:\images\point.jpg"), Image.FromFile("D:\images\logo.gif"), Image.FromFile("C:\images\icon.jpg")} printset.Header = "/fn""Book Antiqua"" /fz""14"" Print job /n " printset.Footer = "/g""1""/r/cl""4""This is page /p of /pc" ' 先頭シートのPrintInfoプロパティを設定します。 FpSpread1.Sheets(0).PrintInfo = printset ' シートを印刷します。 FpSpread1.PrintSheet(0) |
先頭ページ、奇数ページ、偶数ページに異なるヘッダとフッタを設定するには、PrintInfo クラスの OddAndEvenPagesHeaderFooter プロパティと DifferentFirstPageHeaderFooter プロパティを true に設定します。
SPREAD for Windows Forms では、OddAndEvenPagesHeaderFooter プロパティを true に設定すると、EvenFooter、FirstFooter、FirstHeader、およびその他のプロパティを使用して、印刷ページごとに異なるヘッダとフッタを設定できます。
次の図は、さまざまな印刷ページにさまざまなページごとの印刷でヘッダとフッタがどのように表示されるかを示します。
次のサンプルコードは、PrintInfo クラスを使用して異なるヘッダとフッタを設定します。
C# |
コードのコピー
|
---|---|
// 異なるヘッダとフッタを印刷します IWorksheet TestActiveSheet = fpSpread1.AsWorkbook().ActiveSheet; TestActiveSheet.Cells["A1"].Value = "ページ1"; TestActiveSheet.Cells["A60"].Value = "ページ2"; TestActiveSheet.Cells["A100"].Value = "ページ3"; fpSpread1.ActiveSheet.PrintInfo.Colors = new System.Drawing.Color[] { System.Drawing.Color.Purple }; fpSpread1.ActiveSheet.PrintInfo.FirstColors = new System.Drawing.Color[] { System.Drawing.Color.Blue }; fpSpread1.ActiveSheet.PrintInfo.EvenColors = new System.Drawing.Color[] { System.Drawing.Color.Red }; fpSpread1.ActiveSheet.PrintInfo.Footer = "/l/cl\"0\"OddLeft/cOddCenter/rOddRight"; // 先頭と最後のページに異なるヘッダ/フッタを設定するには、DifferentFirstPageHeaderFooter プロパティを true に設定します fpSpread1.ActiveSheet.PrintInfo.DifferentFirstPageHeaderFooter = true; fpSpread1.ActiveSheet.PrintInfo.FirstFooter = "/lFirstLeft/c/cl\"0\"FirstCenter/rFirstRight"; // 奇数ページと偶数ページに異なるヘッダ/フッタを設定するには、OddAndEvenPagesHeaderFooter プロパティを true に設定します fpSpread1.ActiveSheet.PrintInfo.OddAndEvenPagesHeaderFooter = true; fpSpread1.ActiveSheet.PrintInfo.EvenFooter = "/lEvenLeft/cEvenCenter/r/cl\"0\"EvenRight"; fpSpread1.Sheets[0].PrintInfo.Preview = true; fpSpread1.Sheets[0].PrintInfo.EnhancePreview = true; fpSpread1.Sheets[0].PrintInfo.ShowColor = true; fpSpread1.PrintSheet(0); |
VB |
コードのコピー
|
---|---|
' 異なるヘッダとフッタを印刷します Dim TestActiveSheet As IWorksheet = fpSpread1.AsWorkbook().ActiveSheet TestActiveSheet.Cells("A1").Value = "ページ1" TestActiveSheet.Cells("A60").Value = "ページ2" TestActiveSheet.Cells("A100").Value = "ページ3" fpSpread1.ActiveSheet.PrintInfo.Colors = New Drawing.Color() {Drawing.Color.Purple} fpSpread1.ActiveSheet.PrintInfo.FirstColors = New Drawing.Color() {Drawing.Color.Blue} fpSpread1.ActiveSheet.PrintInfo.EvenColors = New Drawing.Color() {Drawing.Color.Red} fpSpread1.ActiveSheet.PrintInfo.Footer = "/l/cl""0""OddLeft/cOddCenter/rOddRight" ' 先頭と最後のページに異なるヘッダ/フッタを設定するには、DifferentFirstPageHeaderFooter プロパティを true に設定します fpSpread1.ActiveSheet.PrintInfo.DifferentFirstPageHeaderFooter = True fpSpread1.ActiveSheet.PrintInfo.FirstFooter = "/lFirstLeft/c/cl""0""FirstCenter/rFirstRight" ' 奇数ページと偶数ページに異なるヘッダ/フッタを設定するには、OddAndEvenPagesHeaderFooter プロパティを true に設定します fpSpread1.ActiveSheet.PrintInfo.OddAndEvenPagesHeaderFooter = True fpSpread1.ActiveSheet.PrintInfo.EvenFooter = "/lEvenLeft/cEvenCenter/r/cl""0""EvenRight" fpSpread1.Sheets(0).PrintInfo.Preview = True fpSpread1.Sheets(0).PrintInfo.EnhancePreview = True fpSpread1.Sheets(0).PrintInfo.ShowColor = True fpSpread1.PrintSheet(0) |
また、PageSetup クラスは、OddAndEvenPagesHeaderFooter プロパティと DifferentFirstPageHeaderFooter プロパティもに対応しています。ただし、PageSetup クラスを使用する場合は、このクラスに含まれるプロパティのみを使用することで、ヘッダとフッタの値を設定します。
SPREAD for Windows Forms では、印刷するページにヘッダとフッタに画像が含まれる場合、 Excel をエクスポート/インポートすることができます。
次の図は、ウォーターマークとして画像を含んだエクスポート後のExcelの印刷プレビューを示しています。
次のサンプルコードは、ヘッダに画像を追加して、Spreadを Excel にエクスポートします。
C# |
コードのコピー
|
---|---|
IWorksheet TestActiveSheet = fpSpread1.AsWorkbook().ActiveSheet; TestActiveSheet.PageSetup.LeftHeaderPicture.Filename = @"Image.jpg"; TestActiveSheet.PageSetup.LeftHeader = "Left&G"; TestActiveSheet.PageSetup.TopMargin = 1; TestActiveSheet.PageSetup.LeftHeaderPicture.ColorType = PictureColorType.Watermark; TestActiveSheet.PageSetup.LeftHeaderPicture.CropLeft = -40; TestActiveSheet.PageSetup.LeftHeaderPicture.CropTop = 30; fpSpread1.ActiveSheet.PrintInfo.Preview = true; fpSpread1.ActiveSheet.PrintInfo.ShowColor = true; fpSpread1.ActiveSheet.PrintInfo.EnhancePreview = true; fpSpread1.PrintSheet(fpSpread1.ActiveSheet); fpSpread1.SaveExcel(@"excel.xlsx", FarPoint.Excel.ExcelSaveFlags.UseOOXMLFormat); |
VB |
コードのコピー
|
---|---|
Dim TestActiveSheet As IWorksheet = fpSpread1.AsWorkbook().ActiveSheet TestActiveSheet.PageSetup.LeftHeaderPicture.Filename = "Image.jpg" TestActiveSheet.PageSetup.LeftHeader = "Left&G" TestActiveSheet.PageSetup.TopMargin = 1 TestActiveSheet.PageSetup.LeftHeaderPicture.ColorType = PictureColorType.Watermark TestActiveSheet.PageSetup.LeftHeaderPicture.CropLeft = -40 TestActiveSheet.PageSetup.LeftHeaderPicture.CropTop = 30 fpSpread1.ActiveSheet.PrintInfo.Preview = True fpSpread1.ActiveSheet.PrintInfo.ShowColor = True fpSpread1.ActiveSheet.PrintInfo.EnhancePreview = True fpSpread1.PrintSheet(fpSpread1.ActiveSheet) fpSpread1.SaveExcel("excel.xlsx", FarPoint.Excel.ExcelSaveFlags.UseOOXMLFormat) |
ただし、ヘッダまたはフッタに複数の画像がある場合、Excel はヘッダまたはフッタで 1 つの画像のみをサポートするため、最初の画像のみが Excel にエクスポートされます。
次の図は、最初に使用された画像がヘッダに配置されたExcelの印刷プレビューを示しています。
次のサンプルコードは、ヘッダに複数の画像を追加し、SPREADを Excel にエクスポートする方法を示します。
C# |
コードのコピー
|
---|---|
IWorksheet TestActiveSheet = fpSpread1.AsWorkbook().ActiveSheet; fpSpread1.ActiveSheet.PrintInfo.OddAndEvenPagesHeaderFooter = true; fpSpread1.ActiveSheet.PrintInfo.Margin.Top = 100; fpSpread1.ActiveSheet.PrintInfo.EvenImages = new System.Drawing.Image[] { System.Drawing.Image.FromFile("Image.png"), System.Drawing.Image.FromFile("Image.tiff") }; fpSpread1.ActiveSheet.PrintInfo.EvenHeader = "/l/g\"0\"/g\"1\"EventHeader"; fpSpread1.ActiveSheet.PrintInfo.DifferentFirstPageHeaderFooter = true; fpSpread1.ActiveSheet.PrintInfo.FirstImages = new System.Drawing.Image[] { System.Drawing.Image.FromFile("Image.jpg"), System.Drawing.Image.FromFile("Image.ico") }; fpSpread1.ActiveSheet.PrintInfo.FirstHeader = "/l/g\"0\"/g\"1\"FirstHeader"; fpSpread1.ActiveSheet.PrintInfo.Images = new System.Drawing.Image[] { System.Drawing.Image.FromFile("Image.bmp"), System.Drawing.Image.FromFile("Image.jpeg") }; fpSpread1.ActiveSheet.PrintInfo.Header = "/l/g\"0\"/g\"1\"OddHeader"; fpSpread1.ActiveSheet.PrintInfo.Preview = true; fpSpread1.ActiveSheet.PrintInfo.ShowColor = true; fpSpread1.ActiveSheet.PrintInfo.EnhancePreview = true; // fpSpread1.PrintSheet(fpSpread1.ActiveSheet); fpSpread1.SaveExcel(@"excel_printinfo.xlsx", ExcelSaveFlags.UseOOXMLFormat); |
VB |
コードのコピー
|
---|---|
Dim TestActiveSheet As IWorksheet = fpSpread1.AsWorkbook().ActiveSheet fpSpread1.ActiveSheet.PrintInfo.OddAndEvenPagesHeaderFooter = True fpSpread1.ActiveSheet.PrintInfo.Margin.Top = 100 fpSpread1.ActiveSheet.PrintInfo.EvenImages = New Drawing.Image() {Drawing.Image.FromFile("Image.png"), Drawing.Image.FromFile("Image.tiff")} fpSpread1.ActiveSheet.PrintInfo.EvenHeader = "/l/g""0""/g""1""EventHeader" fpSpread1.ActiveSheet.PrintInfo.DifferentFirstPageHeaderFooter = True fpSpread1.ActiveSheet.PrintInfo.FirstImages = New Drawing.Image() {Drawing.Image.FromFile("Image.jpg"), Drawing.Image.FromFile("Image.ico")} fpSpread1.ActiveSheet.PrintInfo.FirstHeader = "/l/g""0""/g""1""FirstHeader" fpSpread1.ActiveSheet.PrintInfo.Images = New Drawing.Image() {Drawing.Image.FromFile("Image.bmp"), Drawing.Image.FromFile("Image.jpeg")} fpSpread1.ActiveSheet.PrintInfo.Header = "/l/g""0""/g""1""OddHeader" fpSpread1.ActiveSheet.PrintInfo.Preview = True fpSpread1.ActiveSheet.PrintInfo.ShowColor = True fpSpread1.ActiveSheet.PrintInfo.EnhancePreview = True ' fpSpread1.PrintSheet(fpSpread1.ActiveSheet); fpSpread1.SaveExcel("excel_printinfo.xlsx", ExcelSaveFlags.UseOOXMLFormat) |