Esempio n. 1
0
        /// <inheritdoc/>
        public async Task <IPDFtkResult <IReadOnlyCollection <KeyValuePair <string, byte[]> > > > SplitAsync(string filePath)
        {
            using var outputDirectory = TempPDFtkDirectory.Create();

            var outputFilePattern    = Path.Combine(outputDirectory.TempDirectoryFullName, "page_%02d.pdf");
            var executeProcessResult =
                await _pdftkProcess.ExecuteAsync(filePath, "burst", "output", outputFilePattern);

            return(await ResolveSingleDirectoryExecutionResultAsync(executeProcessResult, outputDirectory, "*.pdf"));
        }
Esempio n. 2
0
        ResolveSingleDirectoryExecutionResultAsync(ExecutionResult executeProcessResult,
                                                   TempPDFtkDirectory outputDirectory, string searchPattern)
        {
            var outputFileBytes = new List <KeyValuePair <string, byte[]> >();

            if (executeProcessResult.Success)
            {
                var outputFiles = Directory.GetFiles(outputDirectory.TempDirectoryFullName, searchPattern);
                foreach (var outputFile in outputFiles)
                {
#if NETSTANDARD2_0
                    var bytes = File.ReadAllBytes(outputFile);
                    await Task.CompletedTask;
#else
                    var bytes = await File.ReadAllBytesAsync(outputFile);
#endif
                    var fileName = Path.GetFileName(outputFile);
                    outputFileBytes.Add(new KeyValuePair <string, byte[]>(fileName, bytes));
                }
            }

            return(new PDFtkResult <IReadOnlyCollection <KeyValuePair <string, byte[]> > >(executeProcessResult,
                                                                                           outputFileBytes.AsReadOnly()));
        }
Esempio n. 3
0
 private TempPDFtkFiles()
 {
     _directory = TempPDFtkDirectory.Create();
 }