我应该使用哪个 C# 项目来满足特定要求?

Which C# project should I use for a certain requirement?

我收到利益相关者的请求,希望我们自动执行以下过程。

  1. 前往CMS网站(内部申请)

  2. 拍照报告。

  3. 向利益相关者发送电子邮件并附上报告。

注意:必须每天重复此过程。

而且我不确定选择哪个项目来满足上述需求;目前,我能想到的只有一个控制台应用程序,但我不太确定。

如有任何帮助,我们将不胜感激。

屏幕截图代码 - Selenium C#

  public class ScreenShotRepository
{
    public static void TakeScreenShot(IWebDriver Driver, string filename, List<string> text = null)
    {
        var bytesArr = Driver.TakeScreenshot(new VerticalCombineDecorator(new ScreenshotMaker()));
        var screenshotImage = (System.Drawing.Image)((new ImageConverter()).ConvertFrom(bytesArr));

        WriteToPDF(new List<System.Drawing.Image>() { screenshotImage }, filename, text);
    }

    public static void WriteToPDF(List<System.Drawing.Image> screenshots, string filename, List<string> text)
    {
        var fileStream = new FileStream(filename, FileMode.Create, FileAccess.Write, FileShare.None);
        var document = new Document(new iTextSharp.text.Rectangle(0, 0, screenshots[0].Width, screenshots[0].Height), 0, 0, 0, 0);

        var writer = PdfWriter.GetInstance(document, fileStream);

        document.Open();

        var content = writer.DirectContent;
        var font = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);

        for (int i = 0; i < screenshots.Count; i++)
        {
            var image = iTextSharp.text.Image.GetInstance(screenshots[i], screenshots[i].RawFormat);

            document.Add(image);

            WriteText(content, font, text);

            if (i + 1 != screenshots.Count)
                document.NewPage();
        }
        document.Close();
        writer.Close();
    }

    public static void WriteText(PdfContentByte content, BaseFont font, List<string> text)
    {
        content.BeginText();
        content.SetColorFill(BaseColor.GREEN);
        content.SetFontAndSize(font, 40);

        for (int j = 0; j < text.Count; j++)
            content.ShowTextAligned(Element.ALIGN_LEFT, text[j].ToString(), 50, 50 + 50 * j, 0);

        content.EndText();
    }
}

可以将此设为Windows服务,因为每天都有通话需求。

但是,最简单的方法确实是您使用操作系统任务计划程序计划 运行 的控制台应用程序。

就要求而言,为什么报告系统不能输出 PDF?截取另一个软件的屏幕截图已经是一个真正的权宜之计,如果它是third-party,截取您自己的报告软件的屏幕截图只是说谁编写内部 CMS 系统......如果有要求,则无法完成任务在他们的域外自动化它。