/// <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); } }
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)); }
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(); }
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()); }