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