Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public async void SaveAsPdf(Stream fs, Manga manga)
- {
- var m = manga;
- var c = m.Content;
- if (fs.Length != 0) return;
- var pdf = new PdfDocument();
- var pages = await GetPages(m);
- pdf.PageSettings.SetMargins(0);
- pdf.FileStructure.IncrementalUpdate = true;
- pdf.EnableMemoryOptimization = true;
- pdf.Compression = PdfCompressionLevel.Best;
- for (var pi = 0; pi < c.ContentPages; pi++)
- {
- var section = pdf.Sections.Add();
- var mr = section.PageSettings.Margins = new PdfMargins();
- mr.All = 0;
- var page = section.Pages.Add();
- var g = page.Graphics;
- page.DefaultLayerIndex = 0;
- var pu = pages[pi];
- var client = new HttpClient();
- var im = await client.GetAsync(pu);
- var pdi = PdfImage.FromStream(im.Content.ReadAsStreamAsync().Result);
- g.DrawImage(pdi, new PointF(0, 0), g.ClientSize);
- await pdf.SaveAsync(fs);
- }
- await pdf.SaveAsync(fs);
- pdf.DocumentInformation.Title = c.ContentName;
- pdf.DocumentInformation.Author += string.Join(", ", c.ContentArtists.Select(x => x.Attribute));
- pdf.DocumentInformation.Keywords += string.Join(", ", c.ContentTags.Select(x => x.Attribute)).Replace("\"", string.Empty);
- pdf.Save(fs);
- pdf.Close(true);
- var toast = Notifications.NotifyMangaDownloaded(m);
- ToastNotificationManager.CreateToastNotifier().Show(toast);
- fs.Dispose();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement