/// <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")); }
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())); }
private TempPDFtkFiles() { _directory = TempPDFtkDirectory.Create(); }