DioDocs for Excel
DioDocs for Excel
エクスポートの進行状況の追跡
ファイル操作 > PDF ファイルへのエクスポート > エクスポートの進行状況の追跡

DioDocs for Excelでは、PdfSaveOptionsクラスのPagePrintingイベントとPagePrintedイベントを使用して、ワークブックをPDFにエクスポートする時の進行状況を追跡できます。PagePrintingイベントは、ページが印刷される前に発生し、エクスポート中にページをスキップするためにSkipThisPageプロパティを提供します。同様に、PagePrintedイベントはページの印刷後に発生し、PDFへのエクスポートを終了するためにHasMorePagesプロパティを提供します。

進行状況の表示

ワークブックをPDFにエクスポートする時の進行状況を表示する方法については、次のサンプルコードを参照してください。

C#
コードのコピー
// PDFファイルストリームを作成します
FileStream outputStream = new FileStream("pageprinteventstrackprogress.pdf", FileMode.Create);

// ワークブックを初期化します
var workbook = new Workbook();

var activeSheet = workbook.ActiveSheet;
activeSheet.Range["A1"].Value = 1;
activeSheet.Range["A2:A100"].FormulaR1C1 = "=R[-1]C+1";
var options = new PdfSaveOptions();
options.PagePrinting += (sender, e) =>
Console.WriteLine($"Printing page {e.PageNumber} of {e.PageCount}");
activeSheet.PageSetup.CenterHeader = "Page &P of &N";
workbook.Save(outputStream, options);

// PDFストリームを閉じます
outputStream.Close();

エクスポート中にページのスキップ

ワークブックをPDFにエクスポートする時に2ページ目をスキップする方法については、次のサンプルコードを参照してください。

C#
コードのコピー
// PDFファイルストリームを作成します
FileStream outputStream = new FileStream("pageprinteventsskippage.pdf", FileMode.Create);

// ワークブックを初期化します
var workbook = new GrapeCity.Documents.Excel.Workbook();

var activeSheet = workbook.ActiveSheet;
activeSheet.Range["A1"].Value = 1;
activeSheet.Range["A2:A100"].FormulaR1C1 = "=R[-1]C+1";
var options = new PdfSaveOptions();

// 2ページ目をスキップします
options.PagePrinting += (sender, e) =>
{
    if (e.PageNumber == 2)
    {
        e.SkipThisPage = true;
    }
};
activeSheet.PageSetup.CenterHeader = "Page &P of &N";
workbook.Save(outputStream, options);

// PDFストリームを閉じます
outputStream.Close();

エクスポートの終了

2ページ目以降のPDFエクスポートを終了する方法については、次のサンプルコードを参照してください。

C#
コードのコピー
//PDFファイルストリームを作成します
FileStream outputStream = new FileStream("pageprinteventsexitprinting.pdf", FileMode.Create);

//ワークブックを初期化します
var workbook = new GrapeCity.Documents.Excel.Workbook();

var activeSheet = workbook.ActiveSheet;
activeSheet.Range["A1"].Value = 1;
activeSheet.Range["A2:A100"].FormulaR1C1 = "=R[-1]C+1";
var options = new PdfSaveOptions();

//2ページ目以降の印刷処理を終了します
options.PagePrinted += (sender, e) =>
{
    if (e.PageNumber == 2)
    {
        e.HasMorePages = false;
    }
};
activeSheet.PageSetup.CenterHeader = "Page &P of &N";
workbook.Save(outputStream, options);

//PDFストリームを閉じます
outputStream.Close();