ドキュメント変換の進行状況を追跡する
考えられる使用シナリオ
大きな Excel ファイルの変換には時間がかかる場合があります。この間、ロード画面だけでなく、ドキュメント変換の進行状況を表示して、アプリケーションの使いやすさを向上させたい場合があります。 Aspose.Cells は、ドキュメント変換プロセスの追跡をサポートします。**[IPageSavingCallback](https://reference.aspose.com/cells/net/aspose.cells.rendering/ipage Savingcallback)インターフェース。の[IPageSavingCallback](https://reference.aspose.com/cells/net/aspose.cells.rendering/ipage Savingcallback)インターフェイスが提供する[PageStartSaving](https://reference.aspose.com/cells/net/aspose.cells.rendering/ipage Savingcallback/methods/pagestart Saving)と[PageEndSaving](https://reference.aspose.com/cells/net/aspose.cells.rendering/ipage Savingcallback/methods/pageend Saving)**カスタム クラスに実装できるメソッド。 T で示されているように、どのページをレンダリングするかを制御することもできます。estPageSavingCallbackカスタムクラス。
ドキュメント変換の進行状況を追跡する
次のコード サンプルは、ソースエクセルファイルを使用して、変換の進行状況をコンソールに出力します。TestPageSavingCallbackを実装するカスタムクラス**[IPageSavingCallback](https://reference.aspose.com/cells/net/aspose.cells.rendering/ipage Savingcallback)**インターフェース。
サンプルコード
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
//Source directory | |
string sourceDir = RunExamples.Get_SourceDirectory(); | |
//Output directory | |
string outputDir = RunExamples.Get_OutputDirectory(); | |
Workbook workbook = new Workbook(sourceDir + "PagesBook1.xlsx"); | |
PdfSaveOptions pdfSaveOptions = new PdfSaveOptions(); | |
pdfSaveOptions.PageSavingCallback = new TestPageSavingCallback(); | |
workbook.Save(outputDir + "DocumentConversionProgress.pdf", pdfSaveOptions); |
以下は、TestPageSavingCallbackカスタムクラス。
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
public class TestPageSavingCallback : IPageSavingCallback | |
{ | |
public void PageStartSaving(PageStartSavingArgs args) | |
{ | |
Console.WriteLine("Start saving page index {0} of pages {1}", args.PageIndex, args.PageCount); | |
//don't output pages before page index 2. | |
if (args.PageIndex < 2) | |
{ | |
args.IsToOutput = false; | |
} | |
} | |
public void PageEndSaving(PageEndSavingArgs args) | |
{ | |
Console.WriteLine("End saving page index {0} of pages {1}", args.PageIndex, args.PageCount); | |
//don't output pages after page index 8. | |
if (args.PageIndex >= 8) | |
{ | |
args.HasMorePages = false; | |
} | |
} | |
} |
コンソール出力
ページ 11 のページ インデックス 0 の保存を開始
ページ 11 のページ インデックス 0 の保存を終了します
11 ページのページ インデックス 1 の保存を開始します
ページ 11 のページ インデックス 1 の保存を終了します
11 ページのページ インデックス 2 の保存を開始します
ページ 11 のページ インデックス 2 の保存を終了します
11 ページのページ インデックス 3 の保存を開始します
ページ 11 のページ インデックス 3 の保存を終了します
ページ 11 のページ インデックス 4 の保存を開始します
ページ 11 のページ インデックス 4 の保存を終了します
ページ 11 のページ インデックス 5 の保存を開始します
ページ 11 のページ インデックス 5 の保存を終了します
ページ 11 のページ インデックス 6 の保存を開始します
ページ 11 のページ インデックス 6 の保存を終了します
ページ 11 のページ インデックス 7 の保存を開始します
ページ 11 のページ インデックス 7 の保存を終了します
ページ 11 のページ インデックス 8 の保存を開始します
ページ 11 のページ インデックス 8 の保存を終了します