0

在我的 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();
  }
}
4

1 回答 1

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

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

PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream(dialog.FileName, FileMode.Create));
于 2013-03-10T09:11:11.830 回答