Guarde el archivo pdf con el nombre de archivo de entrada del usuario (iTextSharp)

Quiero permitir que el usuario ingrese su propio nombre de archivo, al igual que guardar el diálogo y la secuencia de archivos (Ejemplo:Stream s = File.Open(sfdPdf.FileName, FileMode.CreateNew)

Aquí está mi 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();
}

Quiero que la parte "ImageTest.pdf" se nombre como el usuario lo desee con la extensión pdf (y el tipo de archivo .pdf).

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

¿Alguien puede ayudar o alguien tiene una mejor solución para mi problema? Quiero tomar una captura de pantalla de mi formulario de Windows y exportar la imagen a un archivo PDF con el nombre de entrada del usuario

EDITAR: Con saveFileDialog (después de bitmap.save) - Recibiendo error "Error de formato: no es un PDF o está dañado".

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();
    }               
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta