static void Main(string[] args) { string inputFile = "sample.pdf"; using (DocumentSplitter splitter = new DocumentSplitter("demo", "demo")) { splitter.OptimizeSplittedDocuments = true; //# Create list of page numbers in form "1,2,3,4,5,...,n" # // 1. Get Page Count int pageCount = splitter.GetPageCount(inputFile); // 2. Get all page numbers var pageNumbers = Enumerable.Range(1, pageCount); // 3. Split Range var splitRange = string.Join(",", pageNumbers); // Perform split by ranges string[] files = splitter.Split(inputFile, splitRange); Console.WriteLine(@"Splitted by parts: "); foreach (string file in files) { Console.WriteLine(" " + Path.GetFullPath(file)); } } Console.WriteLine(); Console.WriteLine("Press any key..."); Console.ReadKey(); }
static void Main(string[] args) { // Create and setup Bytescout.PDFExtractor.TextExtractor instance TextExtractor extractor = new TextExtractor("demo", "demo"); // Load PDF document extractor.LoadDocumentFromFile(InputFile); // List to keep non-empty page numbers List <string> nonEmptyPages = new List <string>(); // Iterate through pages for (int pageIndex = 0; pageIndex < extractor.GetPageCount(); pageIndex++) { // Extract page text string pageText = extractor.GetTextFromPage(pageIndex); // If extracted text is not empty keep the page number if (pageText.Length > 0) { nonEmptyPages.Add((pageIndex + 1).ToString()); } } // Cleanup extractor.Dispose(); // Form comma-separated list of page numbers to split("1,3,5") string ranges = string.Join(",", nonEmptyPages); // Create Bytescout.PDFExtractor.DocumentSplitter instance DocumentSplitter splitter = new DocumentSplitter("demo", "demo"); splitter.OptimizeSplittedDocuments = true; // Split document by non-empty in temp folder string[] parts = splitter.Split(InputFile, ranges, TempFolder); // Cleanup splitter.Dispose(); // Create Bytescout.PDFExtractor.DocumentMerger instance DocumentMerger merger = new DocumentMerger("demo", "demo"); // Merge parts merger.Merge(parts, OutputFile); // Cleanup merger.Dispose(); // Delete temp folder Directory.Delete(TempFolder, true); // Open the result file in default PDF viewer (for demo purposes) Process.Start(OutputFile); }
static void Main(string[] args) { string inputFile = @".\sample.pdf"; using (DocumentSplitter splitter = new DocumentSplitter("demo", "demo")) { splitter.OptimizeSplittedDocuments = true; // Extracting specific page: // ========================= splitter.ExtractPage(inputFile, "page3.pdf", 3); // (!) Note: page number is 1-based. Console.WriteLine(@"Extracted page 3 to file ""page3.pdf"""); Console.WriteLine(); // Split in two parts: // =================== splitter.Split(inputFile, "part1.pdf", "part2.pdf", 3); // (!) Note: page number is 1-based. Console.WriteLine(@"Splitted at page 3 to files ""part1.pdf"" and ""part2.pdf"""); Console.WriteLine(); // Split by ranges: // ================ string[] files = splitter.Split(inputFile, "1-3,4-6,7,8-"); // (!) Note: page numbers are 1-based; ending "-" means "to the end". Console.WriteLine(@"Splitted by ranges: "); foreach (string file in files) { Console.WriteLine(" " + Path.GetFileName(file)); } } Console.WriteLine(); Console.WriteLine("Press any key..."); Console.ReadKey(); }
static void Main(string[] args) { string inputFile = @".\encrypted (password is 'password').pdf"; using (DocumentSplitter splitter = new DocumentSplitter("demo", "demo")) { // Handle `PasswordRequired` event splitter.PasswordRequired += new PasswordEventHandler(splitter_PasswordRequired); // Ignore document permissions splitter.CheckPermissions = false; // Split document splitter.Split(inputFile, "part1.pdf", @"part2.pdf", 3); } Console.WriteLine(); Console.WriteLine("Press any key..."); Console.ReadKey(); }