/// <summary> /// This method will export all the visible sheets on an xls file to pdf. /// Different than calling ExportSheet for each sheet, this method can keep the page number growing on each sheet, without resetting it. /// </summary> /// <param name="bookmarkName">If not null, each sheet will be added as an entry on the Bookmarks in the pdf file, under the name specified here. /// If you want the Bookmark window to be visible when you open the pdf file, set <see cref="PdfWriter.PageLayout"/> = <see cref="TPageLayout"/> /// Also, use the <see cref="GetBookmarkInformation"/> event to further customize what goes in each of the entries. /// </param> /// <param name="resetPageNumberOnEachSheet">If true, each new sheet will reset the page number shown on Excel headers and footers.</param> public virtual void ExportAllVisibleSheets(bool resetPageNumberOnEachSheet, string bookmarkName) { if (PdfCanvas == null) { FlxMessages.ThrowException(FlxErr.ErrBeginExportNotCalled); } TBookmark ParentBookmark = new TBookmark(bookmarkName, new TPdfDestination(CurrentPage), false); OnGetBookmarkInformation(new GetBookmarkInformationArgs(PdfCanvas, 0, 0, ParentBookmark)); int SaveActiveSheet = Workbook.ActiveSheet; try { int TotalPages = -1; if (!resetPageNumberOnEachSheet) { TotalPages = 0; //Calculate total pages on all sheets. for (int sheet = 1; sheet <= Workbook.SheetCount; sheet++) { Workbook.ActiveSheet = sheet; if (Workbook.SheetVisible != TXlsSheetVisible.Visible) { continue; } TotalPages += TotalPagesInSheet(); } } for (int sheet = 1; sheet <= Workbook.SheetCount; sheet++) { Workbook.ActiveSheet = sheet; if (Workbook.SheetVisible != TXlsSheetVisible.Visible) { continue; } int StartSheet = 1; if (!resetPageNumberOnEachSheet) { StartSheet = CurrentPage; } if (bookmarkName != null) { TBookmark bmk = new TBookmark(Workbook.SheetName, new TPdfDestination(CurrentPage), false); OnGetBookmarkInformation(new GetBookmarkInformationArgs(PdfCanvas, CurrentPage, CurrentPageInSheet, bmk)); ParentBookmark.AddChild(bmk); } ExportSheet(StartSheet, TotalPages); } if (bookmarkName != null) { PdfCanvas.AddBookmark(ParentBookmark); } } finally { Workbook.ActiveSheet = SaveActiveSheet; } }