|
@@ -187,7 +187,7 @@ namespace HTEXScreen.Controllers
|
|
int pagesize = 20;
|
|
int pagesize = 20;
|
|
if (screenshot.urls.Count <= pagesize)
|
|
if (screenshot.urls.Count <= pagesize)
|
|
{
|
|
{
|
|
- await PageToPdfStream(screenshot.urls,screenshot.fileNameKey,browser,viewPortOptions,pdfOptions);
|
|
|
|
|
|
+ await PageToPdfStream(screenshot.urls,screenshot.fileNameKey,screenshot.cnt,browser,viewPortOptions,pdfOptions);
|
|
}
|
|
}
|
|
else
|
|
else
|
|
{
|
|
{
|
|
@@ -196,7 +196,7 @@ namespace HTEXScreen.Controllers
|
|
for (int i = 0; i < pages; i++)
|
|
for (int i = 0; i < pages; i++)
|
|
{
|
|
{
|
|
var lists = screenshot.urls.Skip((i) * pagesize).Take(pagesize).ToList();
|
|
var lists = screenshot.urls.Skip((i) * pagesize).Take(pagesize).ToList();
|
|
- tasks.Add(PageToPdfStream(lists, screenshot.fileNameKey, browser, viewPortOptions, pdfOptions));
|
|
|
|
|
|
+ tasks.Add(PageToPdfStream(lists, screenshot.fileNameKey, screenshot.cnt, browser, viewPortOptions, pdfOptions));
|
|
}
|
|
}
|
|
await Task.WhenAll(tasks);
|
|
await Task.WhenAll(tasks);
|
|
}
|
|
}
|
|
@@ -225,7 +225,7 @@ namespace HTEXScreen.Controllers
|
|
return BadRequest($"{ex.Message}\n{ex.StackTrace}");
|
|
return BadRequest($"{ex.Message}\n{ex.StackTrace}");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- private async Task PageToPdfStream(List<string> urls,string fileNameKey, Browser browser, ViewPortOptions viewPortOptions, PdfOptions pdfOptions)
|
|
|
|
|
|
+ private async Task PageToPdfStream(List<string> urls,string fileNameKey,string cnt , Browser browser, ViewPortOptions viewPortOptions, PdfOptions pdfOptions)
|
|
{
|
|
{
|
|
List<Task<Page>> pages = new List<Task<Page>>();
|
|
List<Task<Page>> pages = new List<Task<Page>>();
|
|
urls.ForEach(x => {
|
|
urls.ForEach(x => {
|
|
@@ -260,15 +260,15 @@ namespace HTEXScreen.Controllers
|
|
}
|
|
}
|
|
//需要解析参数。paths[paths.Length-1]
|
|
//需要解析参数。paths[paths.Length-1]
|
|
Stream stream = await page_task.PdfStreamAsync(pdfOptions);
|
|
Stream stream = await page_task.PdfStreamAsync(pdfOptions);
|
|
- uploads.Add(_azureStorage.GetBlobContainerClient("teammodelos").UploadFileByContainer(stream, "artreport", $"{id}.pdf", true));
|
|
|
|
|
|
+ if (string.IsNullOrWhiteSpace(cnt))
|
|
|
|
+ {
|
|
|
|
+ uploads.Add(_azureStorage.GetBlobContainerClient("teammodelos").UploadFileByContainer(stream, "artreport", $"{id}.pdf", true));
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ uploads.Add(_azureStorage.GetBlobContainerClient(cnt).UploadFileByContainer(stream, "artreport", $"{id}.pdf", true));
|
|
|
|
+ }
|
|
}
|
|
}
|
|
- await Task.WhenAll(uploads);
|
|
|
|
- //page_tasks.ToList().ForEach(x => {
|
|
|
|
- // //string file = $"E://pdfs//{Guid.NewGuid()}.pdf";
|
|
|
|
- // string a = x.Url;
|
|
|
|
- // streams.Add(x.PdfStreamAsync( pdfOptions));
|
|
|
|
- //});
|
|
|
|
- //Stream[] streamArray = await Task.WhenAll(streams);
|
|
|
|
|
|
+ string[] uploadUrls= await Task.WhenAll(uploads);
|
|
page_tasks.ToList().ForEach(x => {
|
|
page_tasks.ToList().ForEach(x => {
|
|
tasks.Add(x.DisposeAsync().AsTask());
|
|
tasks.Add(x.DisposeAsync().AsTask());
|
|
});
|
|
});
|
|
@@ -314,7 +314,17 @@ namespace HTEXScreen.Controllers
|
|
public int width { get; set; } = 1920;
|
|
public int width { get; set; } = 1920;
|
|
public int height { get; set; } = 1080;
|
|
public int height { get; set; } = 1080;
|
|
public string? url { get; set; }
|
|
public string? url { get; set; }
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// 批量地址
|
|
|
|
+ /// </summary>
|
|
public List<string> urls { get; set; } = new List<string>();
|
|
public List<string> urls { get; set; } = new List<string>();
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// 提取参数的唯一id作为文件名
|
|
|
|
+ /// </summary>
|
|
public string? fileNameKey { get; set; }
|
|
public string? fileNameKey { get; set; }
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// 存在哪个容器里
|
|
|
|
+ /// </summary>
|
|
|
|
+ public string? cnt { get; set; }
|
|
public int delay { get; set; }
|
|
public int delay { get; set; }
|
|
}
|
|
}
|