将pdf保存在用户文件夹中

时间:2013-03-10 09:05:54

标签: c# winforms itextsharp

在我的Windows窗体中,我使用iTextSharp生成pdf。

我已经硬编码了保存pdf的位置,但我想询问用户保存此pdf的位置。我该怎么做?

这是我的代码:

private void button1_Click_1(object sender, EventArgs e)
{
  using (Bitmap b = new Bitmap(this.Width, this.Height))
  {
    using (Graphics g = Graphics.FromImage(b))
    {
      g.CopyFromScreen(this.Location, new Point(0, 0), this.Size);
    }
    Document doc = new Document();
    iTextSharp.text.Image i = iTextSharp.text.Image.GetInstance(b, System.Drawing.Imaging.ImageFormat.Bmp);
    PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream(@"C:\Temp\output.pdf", FileMode.Create));
    doc.SetPageSize(new iTextSharp.text.Rectangle(this.Size.Width + doc.LeftMargin + doc.RightMargin, this.Size.Height + doc.TopMargin + doc.BottomMargin));

    doc.Open();
    doc.Add(i);
    doc.Close();
  }
}

1 个答案:

答案 0 :(得分:2)

使用SaveFileDialog显示标准保存对话框,允许用户选择要保存文件的位置。

使用示例:

SaveFileDialog dialog = new SaveFileDialog();
dialog.Title = "Save file as...";
dialog.Filter = "Text files (*.txt)|*.txt|All files (*.*)|*.*";
dialog.RestoreDirectory = true;

if (dialog.ShowDialog() == DialogResult.OK)
{
    MessageBox.Show(dialog.FileName);
}

当然,在创建FileStream时必须使用dialog.FileName

PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream(dialog.FileName, FileMode.Create));