Tiffファイルにエクスポートする際に解像度を設定する
Tiffファイルにエクスポートする際に解像度を指定して出力したい場合には、DpiXおよびDpiYプロパティを使用します。以下のサンプルコードを参考ください。
エクスポートフィルタの場合、DpiXおよびDpiYプロパティは、TiffExportクラスに定義されています。
Visual Basic
Visual Basicコード |
コードのコピー
|
---|---|
Dim rpt As New SectionReport1 Dim TiffExport1 As New GrapeCity.ActiveReports.Export.Image.Tiff.Section.TiffExport() ' レポートを生成します。 rpt.Run(False) ' TIFFエクスポートの設定をします。 ' (圧縮形式) TiffExport1.CompressionScheme _ = GrapeCity.ActiveReports.Export.Image.Tiff.Section.CompressionScheme.Ccitt3 ' (解像度) TiffExport1.DpiX = 400 '水平方向 TiffExport1.DpiY = 400 '垂直方向 ' レポートをエクスポートします。 TiffExport1.Export(rpt.Document, Application.StartupPath + "\TIFFExpt.tif") |
C#
C#コード |
コードのコピー
|
---|---|
SectionReport1 rpt = new SectionReport1(); GrapeCity.ActiveReports.Export.Image.Tiff.Section.TiffExport tiffExport1 = new GrapeCity.ActiveReports.Export.Image.Tiff.Section.TiffExport(); // レポートを生成します。 rpt.Run(false); // TIFFエクスポートの設定をします。 // (圧縮形式) tiffExport1.CompressionScheme = GrapeCity.ActiveReports.Export.Image.Tiff.Section.CompressionScheme.Ccitt3; // (解像度) tiffExport1.DpiX = 400; tiffExport1.DpiY = 400; // レポートをエクスポートします。 tiffExport1.Export(rpt.Document, Application.StartupPath + "\\TIFFExpt.tif"); |
Visual Basic
Visual Basicコード |
コードのコピー
|
---|---|
' ページレポートを生成します。 Dim file_name As String = Application.StartupPath + "\..\..\PageReport1.rdlx" Dim pageReport As New GrapeCity.ActiveReports.PageReport(New System.IO.FileInfo(file_name)) Dim pageDocument As New GrapeCity.ActiveReports.Document.PageDocument(pageReport) ' 出力するファイルを定義します。 Dim exportFile As String = Application.StartupPath + "\TiffRender.tif" Dim myFile As New System.IO.FileInfo(exportFile) ' 出力するファイルに関する詳細設定を行います。 Dim settings As New GrapeCity.ActiveReports.Export.Image.Page.Settings ' (ファイル形式) settings.ImageType = GrapeCity.ActiveReports.Export.Image.Page.Renderers.ImageType.TIFF ' (圧縮形式) settings.Compression = GrapeCity.ActiveReports.Export.Image.Page.Renderers.Compression.Ccitt3 ' (解像度) settings.DpiX = 500 '水平方向 settings.DpiY = 500 '垂直方向 ' レポートをエクスポートします。 Dim _renderingExtension As New GrapeCity.ActiveReports.Export.Image.Page.ImageRenderingExtension Dim _provider As New GrapeCity.ActiveReports.Rendering.IO.FileStreamProvider _ (myFile.Directory, System.IO.Path.GetFileNameWithoutExtension(myFile.Name)) pageDocument.Render(_renderingExtension, _provider, settings) |
C#
C#コード |
コードのコピー
|
---|---|
// ページレポートを生成します。 string file_name = Application.StartupPath + @"\..\..\PageReport1.rdlx"; GrapeCity.ActiveReports.PageReport pageReport = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(file_name)); GrapeCity.ActiveReports.Document.PageDocument pageDocument = new GrapeCity.ActiveReports.Document.PageDocument(pageReport); // 出力するファイルを定義します。 string exportFile = Application.StartupPath + "\\TiffRender.tif"; System.IO.FileInfo myFile = new System.IO.FileInfo(exportFile); // 出力するファイルに関する詳細設定を行います。 GrapeCity.ActiveReports.Export.Image.Page.Settings settings = new GrapeCity.ActiveReports.Export.Image.Page.Settings(); // (ファイル形式) settings.ImageType = GrapeCity.ActiveReports.Export.Image.Page.Renderers.ImageType.TIFF; // (圧縮形式) settings.Compression = GrapeCity.ActiveReports.Export.Image.Page.Renderers.Compression.Ccitt3; // (解像度) settings.DpiX = 400; //水平方向 settings.DpiY = 400; //垂直方向 // レポートをエクスポートします。 GrapeCity.ActiveReports.Export.Image.Page.ImageRenderingExtension _renderingExtension = new GrapeCity.ActiveReports.Export.Image.Page.ImageRenderingExtension(); GrapeCity.ActiveReports.Rendering.IO.FileStreamProvider _provider = new GrapeCity.ActiveReports.Rendering.IO.FileStreamProvider (myFile.Directory, System.IO.Path.GetFileNameWithoutExtension(myFile.Name)); pageDocument.Render(_renderingExtension, _provider, settings); |
なお、描画拡張機能は、ページレポートについてのみ使用可能です。
Excelファイルの印刷時にレポートの用紙サイズが反映されない
ActiveReportsでExcelファイルを出力する場合、XlsExportクラスを使用する方法とSpreadBuilderクラスを使用する方法があります。出力するExcelファイルの用紙サイズを設定する方法は、出力方法によって異なります。
XlsExportクラスを使用してExcelエクスポートを行う場合には、XlsPageSettingsクラスのPaperSizeやOrientationプロパティで、Excelファイルの用紙サイズや方向を、任意に指定することが可能です。
Visual Basic
Visual Basicコード |
コードのコピー
|
---|---|
Dim rpt As New rptSample() rpt.Run(False) Dim xlsExport1 As New GrapeCity.ActiveReports.Export.Excel.Section.XlsExport() ' Excelファイルの用紙サイズ・方向を「A3横」に設定します。 xlsExport1.PageSettings.PaperSize = PaperSizes.A3 xlsExport1.PageSettings.Orientation _ = GrapeCity.ActiveReports.Document.Section.PageOrientation.Landscape ' レポートをExcelファイルにエクスポートします。 xlsExport1.Export(rpt.Document, "C:\work\test.xls") |
C#
C#コード |
コードのコピー
|
---|---|
rptSample rpt = new rptSample(); rpt.Run(false); GrapeCity.ActiveReports.Export.Excel.Section.XlsExport xlsExport1 = new GrapeCity.ActiveReports.Export.Excel.Section.XlsExport(); // Excelファイルの用紙サイズ・方向を「A3横」に設定します。 xlsExport1.PageSettings.PaperSize = PaperSizes.A3; xlsExport1.PageSettings.Orientation = GrapeCity.ActiveReports.Document.Section.PageOrientation.Landscape; // レポートをExcelファイルにエクスポートします。 xlsExport1.Export(rpt.Document, @"C:\work\test.xls"); |
なお、これらのプロパティを設定しない場合、レポートの用紙サイズ・方向がExcelファイルの印刷時の設定に反映されます。
SpreadBuilder機能を使用してExcelエクスポートを行う場合には、GrapaCity.SpreadBuilder.Printing名前空間のPageSetupクラスの PaperSizeやOrientationプロパティで、Excelファイルの用紙サイズや方向を、任意に指定することが可能です。
Visual Basic
Visual Basicコード |
コードのコピー
|
---|---|
Dim sb As New GrapeCity.SpreadBuilder.Workbook
' 新規シートを追加します。
sb.Sheets.AddNew()
With sb.Sheets(0)
' 用紙サイズをB4に設定します。
.PageSetup.PaperSize = System.Drawing.Printing.PaperKind.B4
.PageSetup.Orientation = GrapeCity.SpreadBuilder.Printing.PagePrintOrientation.Landscape
' シートの余白を設定します。各***Marginプロパティの単位は、Point(1/72インチ)です。
.PageSetup.LeftMargin = 36
.PageSetup.RightMargin = 36
.PageSetup.TopMargin = 36
.PageSetup.BottomMargin = 36
.PageSetup.HeaderMargin = 72
.PageSetup.FooterMargin = 72
.Columns(0).Width = 2 * 1440
.Cell(0, 0).SetValue("AAAA株式会社" & vbNewLine & "BBBB株式会社")
.Cell(0, 0).FontName = "MS ゴシック"
' 折り返して全体を表示する」を指定します。
.Cell(0, 0).WrapText = True
End With
' ワークブックをExcelファイルへ出力します。
sb.Save("C:\work\test.xls")
|
C#
C#コード |
コードのコピー
|
---|---|
GrapeCity.SpreadBuilder.Workbook sb = new GrapeCity.SpreadBuilder.Workbook();
// 新規シートを追加します。
sb.Sheets.AddNew();
// 用紙サイズをB4に設定します。
sb.Sheets[0].PageSetup.PaperSize = System.Drawing.Printing.PaperKind.B4;
sb.Sheets[0].PageSetup.Orientation= GrapeCity.SpreadBuilder.Printing.PagePrintOrientation.Portrait;
// シートの余白を設定します。各***Marginプロパティの単位は、Point(1/72インチ)です。
sb.Sheets[0].PageSetup.LeftMargin = 36;
sb.Sheets[0].PageSetup.RightMargin = 36;
sb.Sheets[0].PageSetup.TopMargin = 36;
sb.Sheets[0].PageSetup.BottomMargin = 36;
sb.Sheets[0].PageSetup.HeaderMargin = 72;
sb.Sheets[0].PageSetup.FooterMargin = 72;
sb.Sheets[0].Columns(0).Width = 2 * 1440;
sb.Sheets[0].Cell(0, 0).SetValue("AAAA株式会社\r\nBBBB株式会社");
sb.Sheets[0].Cell(0, 0).FontName = "MS ゴシック";
//「折り返して全体を表示する」を指定します。
sb.Sheets[0].Cell(0, 0).WrapText = true;
// ワークブックをExcelファイルへ出力します。
sb.Save(@"C:\work\test.xls");
|
Excelシートを別のExcelブックにコピーするとセルや罫線の色が変わる
本現象は、Microsoft Excelと、ActiveReportsのExcelエクスポートの仕様により発生しています。
Excelにおけるセルや罫線などの色は、カラーパレットに登録されている、56種類のカラーインデックスにより設定されます。このカラーパレットのデータは、ワークシート単位ではなく、ワークブック単位で保存されています。
ActiveReportsのExcelエクスポート機能(SpreadBuilder機能を含む)は、デフォルトの設定では、コントロールに設定された色(.NET FrameworkのColor構造体)が反映されるよう、カラーパレットを任意の色に変更した上で、Excelファイルを出力しています。
そのため、Excelエクスポートで出力したExceファイルのワークシートを、別のワークブックへコピー(移動)した際には、そのワークブックのカラーパレットが適用され、セルや罫線の色が変化する場合があります。
本動作を回避するには、以下の2つの方法があります。
XlsExportクラス(SpreadBuilder機能の場合、Workbookクラス)のUseDefaultPaletteプロパティを"True"に設定して、Excelエクスポートを行ってください。この場合、Excelのデフォルトのカラーパレット、またはコントロールのForeColorやBackColorプロパティなどに定義されているカスタムカラーの中から最も近い色を使用してエクスポートを行います。
このため、レポートの実際の色とは完全に一致しない色でエクスポートされる場合がございます。これはUseDefaultPaletteプロパティを"True"に設定した場合の仕様上の動作となります。
ワークブックのカラーパレットは、別のワークブックにコピーすることが可能です。
Excelエクスポートで出力したExceファイルのワークシートを別のワークブックにコピーする際に、カラーパレットもコピーすることで元のワークシートの色を維持したままコピーできます。
運用上の対処方法となりますが、マイクロソフト社のWebサイトで公開されている以下の内容をご参照の上、ご検討ください。
[ブックのカラー パレットを変更する]
ただし、カラーパレットをコピーした場合、コピー先ブックの別シートの表示色も変化する可能性がありますので、あらかじめご注意ください。
PDFのダウンロードダイアログで「開く」を選択すると、「この文書を開くときにエラーが発生しました。このファイルが見つかりません。」というエラーが発生する
「カスタムWebのエクスポート」または「カスタムWebのエクスポート(ページレポート)」のトピックにあるような方法でクライアントにPDFデータを配信する場合、作成されたPDFデータのダウンロードおよび表示動作は、ActiveReportsの機能ではなく、Responseオブジェクト、クライアント環境のブラウザ、Adobe Readerの機能によって行なわれます。
本エラーは、ActiveReportsの使用とは関係なく、一般的に発生するものですが、対処方法としては以下のような内容が考えられます。こちらをお試しください。
原因の切り分けのため、別のクライアント環境から同様の操作を行った場合に、現象が発生するかどうかをお試しください。別の環境で現象が発生しない場合は、前述の条件に違いがないかどうかをご確認ください。