Example #1
0
 /// <summary>
 /// Rotates the pages and saves the result as a new document to the given StorageFile
 /// </summary>
 private async void RotateAndSaveAsync(List <PageOrientation> orientations, StorageFile outputFile)
 {
     if (outputFile != null)
     {
         Task <Stream> outputStreamTask = outputFile.OpenStreamForWriteAsync();
         Stream        outputStream     = await outputStreamTask;
         if (outputStream != null)
         {
             PdfAssembler pdfAssembler = new PdfAssembler(outputStream);
             for (int i = 0; i < loadedFile.PageCount; i++)
             {
                 int        pageNumber = i + 1;
                 ExportTask task       = new ExportTask(PageRange.FromPattern(loadedFile.Document, pageNumber.ToString()), new PageRotation(orientations[i]));
                 pdfAssembler.AppendTask(task);
             }
             pdfAssembler.ExportFile();
         }
         else
         {
             ToolPage.Current.NotifyUser("Error occured while while exporting the merged file. Try again.", NotifyType.ErrorMessage);
         }
     }
     else
     {
         ToolPage.Current.NotifyUser("No output file has been selected.", NotifyType.ErrorMessage);
     }
 }
Example #2
0
        public void TestInvertPageRange(string nonInvertedPattern, string expectedInvertedPattern)
        {
            PageRange pageRange = PageRange.FromPattern(doc10, nonInvertedPattern);
            PageRange expectedInvertedPageRange = PageRange.FromPattern(doc10, expectedInvertedPattern);
            PageRange actualInvertedPageRange   = pageRange.Invert();

            Assert.AreEqual(expectedInvertedPattern, actualInvertedPageRange.GetPattern());
            Assert.IsTrue(actualInvertedPageRange.Equals(expectedInvertedPageRange));
        }
Example #3
0
        public void TestPageRangeFromPattern(string pattern, string expectedMinimalPattern)
        {
            PageRange actualpageRange      = PageRange.FromPattern(doc100, pattern);
            PageRange expectedPageRange    = PageRange.FromPattern(doc100, expectedMinimalPattern);
            string    acutalMinimalPattern = actualpageRange.GetPattern();

            Assert.AreEqual(expectedMinimalPattern, acutalMinimalPattern);
            Assert.IsTrue(actualpageRange.Equals(expectedPageRange));
        }
 private void PageRange_TextChanged(object sender, TextChangedEventArgs e)
 {
     try
     {
         selectedPageRange = PageRange.FromPattern(loadedFileList[0].Document, PageRangeInput.Text);
         PageRangeInvalidLabel.Visibility = Visibility.Collapsed;
     }
     catch (Exception)
     {
         PageRangeInvalidLabel.Visibility = Visibility.Visible;
     }
     ControlSaveButtonState();
     SetToggleButtonState();
     ShowSummary();
 }
Example #5
0
        public void TestRotatePages(string inputFileName, string outputFilename, int expectedNumberOfPages)
        {
            PdfDocument      inputFile     = LoadTestFile(inputFileName);
            List <PageRange> relevantPages = new List <PageRange>();

            relevantPages.Add(PageRange.FromPattern(inputFile, "1,5"));
            relevantPages.Add(PageRange.FromPattern(inputFile, "3-4"));
            relevantPages.Add(PageRange.FromPattern(inputFile, "2-3"));
            relevantPages.Add(PageRange.FromPattern(inputFile, ""));

            List <ExportTask> exportTasks = new List <ExportTask>();

            exportTasks.Add(new ExportTask(relevantPages[0], new List <IPageTransformation>()
            {
                new PageRotation(PageOrientation.NoRotation())
            }));
            exportTasks.Add(new ExportTask(relevantPages[1], new List <IPageTransformation>()
            {
                new PageRotation(PageOrientation.UpsideDown())
            }));
            exportTasks.Add(new ExportTask(relevantPages[2], new PageRotation(PageOrientation.RotateRight())));
            exportTasks.Add(new ExportTask(relevantPages[3], new PageRotation(PageOrientation.NoRotation())));

            Stream       outputStream = new FileStream(outputFilename, FileMode.OpenOrCreate, FileAccess.ReadWrite);
            PdfAssembler assembler    = new PdfAssembler(outputStream);

            foreach (var task in exportTasks)
            {
                assembler.AppendTask(task);
            }

            assembler.ExportFile();

            PdfDocument result = LoadTestFile(outputFilename);

            Assert.AreEqual(expectedNumberOfPages, result.GetNumberOfPages());
        }