如何提示用户选择保存文件的位置?

2024-02-13

在我的主表单中,我有一个名为 SavePDFDocument() 的方法:

private void SavePDFDocument()
{
    PDFWrapper pdfWrapper = new PDFWrapper();
    pdfWrapper.CreatePDF(horizontalPictureScroller1.GetPictures(), "pdfDocument.pdf");
}

如您所见,现在我正在手动输入文件的名称。我想请用户选择保存位置以及命名。

这是我上面使用的 CreatePDF() 方法:

public void CreatePDF(List<System.Drawing.Image> images, string filename)
{
    if (images.Count >= 1)
    {
        Document document = new Document(PageSize.LETTER);
        try
        {

            // step 2:
            // we create a writer that listens to the document
            // and directs a PDF-stream to a file

            PdfWriter.GetInstance(document, new FileStream(filename, FileMode.Create));

            // step 3: we open the document
            document.Open();

            foreach (var image in images)
            {
                iTextSharp.text.Image pic = iTextSharp.text.Image.GetInstance(image, System.Drawing.Imaging.ImageFormat.Jpeg);

                if (pic.Height > pic.Width)
                {
                    //Maximum height is 800 pixels.
                    float percentage = 0.0f;
                    percentage = 700 / pic.Height;
                    pic.ScalePercent(percentage * 100);
                }
                else
                {
                    //Maximum width is 600 pixels.
                    float percentage = 0.0f;
                    percentage = 540 / pic.Width;
                    pic.ScalePercent(percentage * 100);
                }

                pic.Border = iTextSharp.text.Rectangle.BOX;
                pic.BorderColor = iTextSharp.text.BaseColor.BLACK;
                pic.BorderWidth = 3f;
                document.Add(pic);
                document.NewPage();
            }
        }
        catch (DocumentException de)
        {
            Console.Error.WriteLine(de.Message);
        }
        catch (IOException ioe)
        {
            Console.Error.WriteLine(ioe.Message);
        }

        // step 5: we close the document
        document.Close();
    }
}

有什么建议么?


你有没有看一下保存文件对话框 http://msdn.microsoft.com/en-us/library/system.windows.forms.savefiledialog.aspx?

private void button1_Click(object sender, System.EventArgs e)
{
     Stream myStream ;
     SaveFileDialog saveFileDialog1 = new SaveFileDialog();

     saveFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"  ;
     saveFileDialog1.FilterIndex = 2 ;
     saveFileDialog1.RestoreDirectory = true ;

     if(saveFileDialog1.ShowDialog() == DialogResult.OK)
     {
         if((myStream = saveFileDialog1.OpenFile()) != null)
         {
             // Code to write the stream goes here.
             myStream.Close();
         }
     }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何提示用户选择保存文件的位置? 的相关文章

  • 在 Vulkan 中,图形队列系列与当前队列系列分离是否有益?

    据我所知 队列系列可能支持呈现到屏幕但不支持图形 假设我有一个同时支持图形和呈现的队列系列 以及另一个仅支持呈现的队列系列 我应该为两个进程使用第一个队列系列 还是应该将第一个队列系列委托给图形 将后者委托给呈现 或者这两种方法之间没有明显
  • 格式说明符%02x

    我有一个简单的程序 include
  • 如何使用 openSSL 函数验证 PEM 证书的密钥长度

    如何验证以这种方式生成的 PEM 证书的密钥长度 openssl genrsa des3 out server key 1024 openssl req new key server key out server csr cp server
  • 无法继承形状

    为什么我不能使用继承 a 的类Shapes class http msdn microsoft com en us library ms604615 28v vs 90 29 我需要延长Rectangle具有一些方法的类 但我想以与使用相同
  • 如何修复错误:“检测到无法访问的代码”

    我有以下代码 private string GetAnswer private int CountLeapYears DateTime startDate return count String answer GetAnswer Respo
  • 如何向 Mono.ZeroConf 注册服务?

    我正在尝试测试 ZeroConf 示例http www mono project com Mono Zeroconf http www mono project com Mono Zeroconf 我正在运行 OpenSuse 11 和 M
  • MVC 5 中具有 ASP.NET Identity 的 Autofac 不会验证 OWIN 管道中的安全标记

    我在 MVC 5 中设置了 AutoFac 来与 ASP NET Identity 一起使用 表面上一切似乎都工作正常 即用户可以创建帐户并登录 但后来我发现 当安全标记更改时 用户不会注销 通过在 AspNetUsers 表中进行暴力破解
  • Makefile 和 .Mak 文件 + CodeBlocks 和 VStudio

    我对整个 makefile 概念有点陌生 所以我对此有一些疑问 我正在 Linux 中使用 CodeBlocks 创建一个项目 我使用一个名为 cbp2mak 的工具从 CodeBlocks 项目创建一个 make 文件 如果有人知道更好的
  • JavaScript 错误:MVC2 视图中的条件编译已关闭

    我试图在 MVC2 视图页面中单击时调用 JavaScript 函数 a href Select a JavaScript 函数 function SelectBenefit id code alert id alert code 这里 b
  • C# 根据当前日期传递日期时间值

    我正在尝试根据 sql server 中的两个日期获取记录 Select from table where CreatedDate between StartDate and EndDate我通过了5 12 2010 and 5 12 20
  • Unity手游触摸动作不扎实

    我的代码中有一种 错误 我只是找不到它发生的原因以及如何修复它 我是统一的初学者 甚至是统一的手机游戏的初学者 我使用触摸让玩家从一侧移动到另一侧 但问题是我希望玩家在手指从一侧滑动到另一侧时能够平滑移动 但我的代码还会将玩家移动到您点击的
  • 如何防止 Blazor NavLink 组件的默认导航

    从 Blazor 3 1 Preview 2 开始 应该可以防止默认导航行为 https devblogs microsoft com aspnet asp net core updates in net core 3 1 preview
  • Unity c# 四元数:将 y 轴与 z 轴交换

    我需要旋转一个对象以相对于现实世界进行精确旋转 因此调用Input gyro attitude返回表示设备位置的四元数 另一方面 这迫使我根据这个四元数作为默认旋转来计算每个旋转 将某些对象设置为朝上的简单方法如下 Vector3 up I
  • 让网络摄像头在 OpenCV 中工作

    我正在尝试让我的网络摄像头在 Windows 7 64 位中的 OpenCV 版本 2 2 中捕获视频 但是 我遇到了一些困难 OpenCV 附带的示例二进制文件都无法检测到我的网络摄像头 最近我发现这篇文章表明答案在于重新编译一个文件 o
  • MySQL 连接器 C++ 64 位在 Visual Studio 2012 中从源代码构建

    我正在尝试建立mySQL 连接器 C 从源头在视觉工作室2012为了64 bit建筑学 我知道这取决于一些boost头文件和C 连接器 跑步CMake生成一个项目文件 但该项目文件无法编译 因为有一大堆非常令人困惑的错误 这些错误可能与包含
  • ASP.NET Core 中间件与过滤器

    在阅读了 ASP NET Core 中间件之后 我对何时应该使用过滤器以及何时应该使用中间件感到困惑 因为它们似乎实现了相同的目标 什么时候应该使用中间件而不是过滤器 9频道有一个关于此的视频 ASP NET 怪物 91 中间件与过滤器 h
  • Unity3D - 将 UI 对象移动到屏幕中心,同时保持其父子关系

    我有一个 UI 图像 它的父级是 RectTransform 容器 该容器的父级是 UI 面板 而 UI 面板的父级是 Canvas 我希望能够将此 UI 图像移动到屏幕中心 即画布 同时保留父级层次结构 我的目标是将 UI 图像从中心动画
  • 从后面的代码添加外部 css 文件

    我有一个 CSS 文件 例如 SomeStyle css 我是否可以将此样式表文档从其代码隐藏应用到 aspx 页面 您可以将文字控件添加到标头控件中 Page Header Controls Add new System Web UI L
  • 声明一个负长度的数组

    当创建负长度数组时 C 中会发生什么 例如 int n 35 int testArray n for int i 0 i lt 10 i testArray i i 1 这段代码将编译 并且启用 Wall 时不会出现警告 并且似乎您可以分配
  • 如何为有时异步的操作创建和实现接口

    假设我有数百个类 它们使用 计算 方法实现公共接口 一些类将执行异步 例如读取文件 而实现相同接口的其他类将执行同步代码 例如将两个数字相加 为了维护和性能 对此进行编码的好方法是什么 到目前为止我读到的帖子总是建议将异步 等待方法冒泡给调

随机推荐

  • 文档 [my_spreadsheet_id] 丢失(也许已被删除?)

    偶尔 实际上经常发生 我会收到 文档 tIbdnvK2ZBY 7SQ2skESDvg 丢失 也许它已被删除 错误 这显然不是真的 谁能解释一下这个问题吗 也许有一些好的解决方案 我有一些在计时器上运行的脚本 偶尔会出现此错误 当脚本尝试访问
  • 验证 Oracle 列名称

    在一种情况下 我们动态创建 sql 来create动态临时表 table name 没有问题 因为它是由我们决定的 但是列名是由不在我们控制范围内的源提供的 通常我们会使用以下查询检查列名称 select where NOT REGEXP
  • 在 Java 中解压包含多个文件和目录的 7zip 存档 [关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我想用 Java 解压包含多个文件和目录的 7zip lzma 存档 我尝试使用官方的 7zip SDK 但失败了 因为
  • CSS 容器DIv 高度。浮动DIV问题

    你能强制一个容器 DIV 的高度来容纳两个浮动的 div 子元素吗 我可以用一个奇特的技巧来做到这一点吗 我正在尝试在父 div 内制作两个大小相等的 div 我希望它们并排出现 并且它们之间有一点空白 Child2 往往会弹出并低于 Ch
  • 需要在github actions中设置环境

    每次工作流程运行时 我都需要安装几个 cli 这会在安装 构建和发布包方面占用大量时间 有哪些好的替代方案可以摆脱每次安装 要扩展 joseph 的答案 请创建一个 Docker 映像 该映像使用您需要的 CLI 工具准备环境 然后将其发布
  • 为什么工厂女孩不排序独特的属性?

    我的控制器规范失败 因为 Factory Girl 似乎正在创建非唯一的用户 即使我对需要唯一的用户属性进行了排序 错误 1 TopicsController POST create when topic is invalid should
  • Google Play - 为现有用户更新未发布的应用程序,但不为新用户更新?

    我在 Google Play 上有一个未发布的应用程序 我想为现有用户更新该应用程序 但不允许新用户下载它 Google Play 文档似乎说这可以通过简单地上传更新的 apk 而不是重新发布应用程序 来完成 未发布的应用程序 即使您取消发
  • git 如何知道它在 git 存储库中

    我感兴趣的是如何git实际上知道它在 git 存储库中 我的第一个想法是它只是将文件夹结构爬到根目录 这可能涉及权限错误 它在任何地方都有记录吗 经验法则是 Git 只是查找文件路径来查找 git 目录 但事实并非如此 正如爱德华 汤姆森所
  • c#:如何将exe文件嵌入到资源中?

    我用 Costura Fody 有一个应用程序 Test exe 它以这种方式运行进程internalTest exe ProcessStartInfo prcInfo new ProcessStartInfo strpath Create
  • 与其他顶级类同名的 Java 内部类

    我有与 Java 内部类相关的问题 有没有办法从定义内部类 A 的顶级类 Main 访问顶级类 A 下面是演示该问题的示例代码 class A Outer Class A System out println A outer class B
  • 找到多个集合的交集的最佳方法?

    我有一个集合列表 setlist s1 s2 s3 我想要 s1 s2 s3 我可以编写一个函数来通过执行一系列成对的操作来完成此操作s1 intersection s2 etc 有推荐的 更好的或内置的方法吗 从 Python 2 6 版
  • Python 安装程序在初始化步骤被阻止

    我试图使用安装程序在我的计算机上安装Python3 6 但安装程序在初始化步骤被阻止 我想知道为什么会发生这种情况 我也尝试了Python2 7 但它也在同一个地方被阻止 它在这里被阻止 取消选中为所有用户安装的选项 这为我排序了
  • 在 Swift 中以编程方式返回到之前的 ViewController

    我通过单击按钮将用户发送到页面 该页面是一个UITableViewController 现在 如果用户点击某个单元格 我想将他推回到上一页 我想到了类似的事情self performSegue back 但这似乎是一个坏主意 正确的做法是什
  • CreateProcessAsUser 不绘制 GUI

    我有一个在 SYSTEM 帐户下运行的 Windows 服务 用于检查每个登录用户是否正在运行特定的应用程序 如果应用程序未运行 服务将启动它 在相应的用户名下 我正在尝试使用 CreateProcessAsUser 来实现我的目标 该服务
  • 在数据表中正确渲染迷你图

    在下面发布的示例中 我尝试将 jquery sparkline 库中的迷你图渲染为 jquery dataTables 表中的数据列 加载下面的示例效果很好 但仅限于第一页 如果我单击 下一步 而不是将数据呈现为迷你图 它只会呈现数字 如果
  • Apache 背后的代理 React 服务器

    我刚刚使用 create react app 创建了一个 React 应用程序 该应用程序从端口 3000 启动 很好 我想使用前缀访问应用程序 在我的例子中是 node 和端口 80 即http localhost 节点 http loc
  • PHP 函数错误和成功模式

    当函数正常执行时 从 PHP 函数返回错误的最佳方法是什么 Example public function login user pw if this gt verifyUser user return error about invali
  • Google foobar 响应错误(400)

    我正在尝试解决Google的问题foob ar挑战 http www google com foobar 我不会向其他人破坏实际问题 但标题是 拯救 Beta Rabbit 我的解决方案是用 Java 编码的 每次我尝试验证它时 我都会得到
  • 在单独的表单上更改 NotifyIcon

    我有一个带有 NotifyIcon 的表单 Form1 我有另一个表单 Form2 我想更改 NotifyIcon 的图标 每当我使用此代码时 我都会在系统托盘中显示一个额外的图标 而不是更改当前图标 Form1 ico 是 NotifyI
  • 如何提示用户选择保存文件的位置?

    在我的主表单中 我有一个名为 SavePDFDocument 的方法 private void SavePDFDocument PDFWrapper pdfWrapper new PDFWrapper pdfWrapper CreatePD