static void Main(string[] args) { var cache = new MTGJson(); var end = new ScryfallEndPoint(); Console.Write("Enter path to deck file: "); string deckPath = Console.ReadLine(); Console.Write("Would you like a blank page after each?[y/n]:"); bool empty = Console.ReadKey().Key == ConsoleKey.Y; Console.WriteLine(); var fi = new FileInfo(deckPath); if (fi.Exists) { var pdf = new PDFCreator(end, empty); var lines = File.ReadAllLines(deckPath); int count = 0; foreach (var line in lines) { var vals = ParseLine(line, cache); if (vals is not null) { foreach (var valueTuple in vals) { for (int i = 0; i < valueTuple.Item1; i++) { pdf.AddCard(valueTuple.Item2, valueTuple.Item3, valueTuple.Item4); } } } Console.WriteLine($"[{++count}/{lines.Length}]"); } pdf.SavePDF($"{(fi.Name).Remove((fi.Name.Length - fi.Extension.Length))}.pdf"); } }