Printing to PDF
Spread WinRT Documentation > Developer's Guide > Managing Data > Printing to PDF

You can specify many options when saving to a PDF file. You can specify footers, headers, orientation, borders, and many other options in the PrintInfo class.

The PdfExportSettings class can be used to specify additional information about the PDF file such as title or author.

The following table displays the options that can be used when creating a print header or footer:

Control Character Printed Header or Footer Action
P Inserts the current page number
N Inserts the total number of printed pages
D Inserts the date
T Inserts the time
G Inserts an image
S Uses strikethrough in the font
U Uses underline in the font
B Uses a bold font
I Uses italics in the font
- NoneSpecified
\" FontPrefix
K ColorPrefix
F Inserts the name of the workbook (Name property)
A Inserts the name of the sheet (Name property)

Use the & symbol in front of the control character to specify an option in the above table. For example, &P inserts the current page number.

Use the SavePdfAsync method to save to a PDF file.

Using Code

This example saves to a PDF file.

CS
Copy Code
private async void Button_Click_1(object sender, RoutedEventArgs e)
        {
            try
            {
                var filePicker = new Windows.Storage.Pickers.FileSavePicker();
                filePicker.FileTypeChoices.Add("PDF Files", new List<string>() { ".PDF" });
                filePicker.SuggestedFileName = "New SpreadSheet File";
                Windows.Storage.StorageFile storageFile = await filePicker.PickSaveFileAsync();
                if (storageFile != null)
                {
                    using (var stream = await storageFile.OpenStreamForWriteAsync())
                    {
                        var fileName = storageFile.FileType.ToUpperInvariant();
                        gcSpreadSheet1.Workbook.Name = "WorkBook";
                        gcSpreadSheet1.Sheets[0].Name = "Sheet 0";
                        GrapeCity.Xaml.SpreadSheet.Data.PrintInfo printtest;
                        printtest = gcSpreadSheet1.Sheets[0].PrintInfo;
                        printtest.FooterCenter = "This is Page &P";
                        printtest.HeaderCenter = "&A of &F";
                        printtest.HeaderLeft = "&KFFFF00Color &KFF0000RedColor";
                        printtest.BestFitColumns = true;
                        printtest.UseMax = true;
                        GrapeCity.Xaml.SpreadSheet.Data.PdfExportSettings test;
                        test = new GrapeCity.Xaml.SpreadSheet.Data.PdfExportSettings();
                        test.Title = "Print PDF";
                        test.Author = "GrapeCity, Inc.";
                        test.DisplayDocTitle = true;
                        test.FitWindow = true;
                       await gcSpreadSheet1.SavePdfAsync(stream, test, 0);
                    }
                }
            }
            catch (Exception ex)
            {
                Windows.UI.Popups.MessageDialog dialog = new Windows.UI.Popups.MessageDialog(ex.Message, "Error");
                dialog.ShowAsync();
            }         
        }
VB
Copy Code

Private Async Sub Button_Click_1(sender As Object, e As RoutedEventArgs)
        Try
            Dim filePicker As New Windows.Storage.Pickers.FileSavePicker()
            filePicker.FileTypeChoices.Add("PDF Files", New List(Of String)() From {".pdf"})
            filePicker.SuggestedFileName = "New SpreadSheet File"
            Dim storageFile As Windows.Storage.StorageFile = Await filePicker.PickSaveFileAsync()

            If storageFile IsNot Nothing Then
                Using stream = Await storageFile.OpenStreamForWriteAsync()
                    Dim fileName = storageFile.FileType.ToUpperInvariant()                   
                    gcSpreadSheet1.Workbook.Name = "WorkBook"
                    gcSpreadSheet1.Sheets(0).Name = "Sheet 0"
                    Dim printtest As GrapeCity.Xaml.SpreadSheet.Data.PrintInfo
                    printtest = gcSpreadSheet1.Sheets(0).PrintInfo
                    printtest.FooterCenter = "This is Page &P"
                    printtest.HeaderCenter = "&A of &F"
                    printtest.HeaderLeft = "&KFFFF00Color &KFF0000RedColor"
                    printtest.BestFitColumns = True
                    printtest.UseMax = True
                    Dim test As GrapeCity.Xaml.SpreadSheet.Data.PdfExportSettings
                    test = New GrapeCity.Xaml.SpreadSheet.Data.PdfExportSettings()
                    test.Title = "Print PDF"
                    test.Author = "GrapeCity, Inc."
                    test.DisplayDocTitle = True
                    test.FitWindow = True
                   await gcSpreadSheet1.SavePdfAsync(stream, test, 0)
                End Using
            End If
        Catch ex As Exception
            Dim dialog As Windows.UI.Popups.MessageDialog = New Windows.UI.Popups.MessageDialog(ex.Message, "Error")
            dialog.ShowAsync()
        End Try
    End Sub

See Also