Salve o arquivo pdf com o nome do arquivo de entrada do usuário (iTextSharp)

Quero permitir que o usuário insira seu próprio nome de arquivo, assim como salvar a caixa de diálogo e o fluxo de arquivos (exemplo:Stream s = File.Open(sfdPdf.FileName, FileMode.CreateNew)

Aqui está o meu código:

    private void btnSave_Click(object sender, EventArgs e)
    {

        System.Drawing.Rectangle bounds = this.Bounds;
        using (Bitmap bitmap = new Bitmap(bounds.Width, bounds.Height))
        {
            using (Graphics graphics = Graphics.FromImage(bitmap))
            {
                graphics.CopyFromScreen(new Point(bounds.Left, bounds.Top), Point.Empty, bounds.Size);
            }
            bitmap.Save("Image.jpeg", ImageFormat.Jpeg);
        }

        Document doc = new Document(PageSize.LETTER, bounds.Left, bounds.Right, bounds.Top, bounds.Bottom);
        PdfWriter wri = PdfWriter.GetInstance(doc, new FileStream("ImageTest.pdf", FileMode.Create));
        doc.Open();
        iTextSharp.text.Image image = iTextSharp.text.Image.GetInstance("Image.jpeg");
        doc.Add(image);
        doc.Close();
}

Quero que a parte "ImageTest.pdf" seja nomeada como o usuário deseja com a extensão pdf (e o tipo de arquivo .pdf).

PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream("ImageTest.pdf", FileMode.Create));

Alguém pode ajudar ou alguém tem uma solução melhor para o meu problema? Quero tirar uma captura de tela do meu formulário do Windows e exportar a imagem para um arquivo pdf com o nome de entrada do usuário

EDITAR: Com saveFileDialog (após bitmap.save) - Recebendo o erro "Erro de formato: não é um PDF ou está corrompido".

SaveFileDialog sfd = new SaveFileDialog();
sfd.Filter = "Pdf File |*.pdf";
if (sfd.ShowDialog() == DialogResult.OK)
{
    using (Stream s = File.Open(sfd.FileName, FileMode.CreateNew))
    {
        Document doc = new Document(PageSize.LETTER, bounds.Left, bounds.Right, bounds.Top, bounds.Bottom);
        PdfWriter wri = PdfWriter.GetInstance(doc, new FileStream("ImageTest.pdf", FileMode.Create));
        doc.Open();
        iTextSharp.text.Image image = iTextSharp.text.Image.GetInstance("Image.jpeg");
        doc.Add(image);
        doc.Close();
        s.Close();
        s.Dispose();
    }               
}

questionAnswers(1)

yourAnswerToTheQuestion