private static void Main() { if (File.Exists(ResultFileName)) { File.Delete(ResultFileName); } using (PdfStreamWriter fileWriter = new PdfStreamWriter(File.OpenWrite(ResultFileName))) { fileWriter.Settings.DocumentInfo.Author = "Progress Software"; fileWriter.Settings.DocumentInfo.Title = "Merged document"; fileWriter.Settings.DocumentInfo.Description = "This big document is generated with PdfStreamWriter class in less than a second, with minimal memory footprint and optimized result file size."; using (PdfFileSource fileSource = new PdfFileSource(File.OpenRead(InputFileName))) { PdfPageSource pageToMerge = fileSource.Pages[0]; for (int i = 0; i < MergedDocumentPagesCount; i++) { fileWriter.WritePage(pageToMerge); } } } ProcessStartInfo psi = new ProcessStartInfo() { FileName = ResultFileName, UseShellExecute = true }; Process.Start(psi); }
private static void MergeDifferentDocumentsPages(string resultFileName) { string[] documentsToMerge = { InputFileSoundVideoAnd3D, InputFileBarChart, InputFileCentaurFeatures, InputFileMultipageDocument }; string resultFile = Path.Combine(ResultDirName, resultFileName); using (PdfStreamWriter fileWriter = new PdfStreamWriter(File.OpenWrite(resultFile))) { foreach (string documentName in documentsToMerge) { using (PdfFileSource fileToMerge = new PdfFileSource(File.OpenRead(documentName))) { foreach (PdfPageSource pageToMerge in fileToMerge.Pages) { fileWriter.WritePage(pageToMerge); } } } } }
private static void SplitDocumentPages(string resultFileFormat) { string documentToSplit = InputFileMultipageDocument; using (PdfFileSource fileToSplit = new PdfFileSource(File.OpenRead(documentToSplit))) { for (int i = 0; i < fileToSplit.Pages.Length; i++) { PdfPageSource page = fileToSplit.Pages[i]; string splitDocumentName = Path.Combine(ResultDirName, string.Format(resultFileFormat, i + 1)); using (PdfStreamWriter fileWriter = new PdfStreamWriter(File.OpenWrite(splitDocumentName))) { fileWriter.WritePage(page); } } } }