如何使用 iTextsharp 在服务器地图路径上保存 pdf

2023-11-30

我正在使用以下代码生成 pdf,它工作完美:

  string strQuery = "select * from userdata";
        SqlCommand cmd = new SqlCommand(strQuery);
        DataTable dt = GetData(cmd);

        //Create a dummy GridView
        GridView GridView1 = new GridView();
        GridView1.AllowPaging = false;
        GridView1.DataSource = dt;
        GridView1.DataBind();

        Response.ContentType = "application/pdf";
        Response.AddHeader("content-disposition", "attachment;filename=GridViewExport.pdf");
        Response.Cache.SetCacheability(HttpCacheability.NoCache);
        StringWriter sw = new StringWriter();
        HtmlTextWriter hw = new HtmlTextWriter(sw);
        GridView1.RenderControl(hw);

        StringReader sr = new StringReader(sw.ToString());
        Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 10f, 0f);
        HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
        PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
        pdfDoc.Open();

        htmlparser.Parse(sr);
        pdfDoc.Close();

        Response.Write(pdfDoc);
        Response.End();  

效果很好。但我可以将此 pdf 保存到服务器地图路径上。

我在 pdfDoc.Close(); 之后写了下面的内容

   String path  = Server.MapPath("~/mypdf.pdf");

但它没有将 pdf 保存到服务器地图路径。

我怎样才能做到这一点?


您当前正在将文档写入以下输出流:Response.OutputStream

一旦你这样做了pdfDoc.Close();,PDF 字节消失了。

如果要将 PDF 保存到服务器,则需要替换以下行:

PdfWriter.GetInstance(pdfDoc, Response.OutputStream);

有了这一行:

PdfWriter.GetInstance(pdfDoc, new FileStream(context.Server.MapPath("~") + "mypdf.pdf");

现在,您的字节不会发送到浏览器,但 PDF 将在您的服务器上创建。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 iTextsharp 在服务器地图路径上保存 pdf 的相关文章

  • 如何在c++中读取pcap文件来获取数据包信息?

    我想用 C 编写一个程序来读取 pcap 文件并获取数据包的信息 例如 len sourc ip flags 等 现在我找到了如下代码 我认为它会帮助我获取信息 但是我有一些疑问 首先我想知道应该将哪个库添加到我的程序中 然后什么是 pca
  • MVC 在布局代码之前执行视图代码并破坏我的脚本顺序

    我正在尝试将所有 javascript 包含内容移至页面底部 我正在将 MVC 与 Razor 一起使用 我编写了一个辅助方法来注册脚本 它按注册顺序保留脚本 并排除重复的内容 Html RegisterScript scripts som
  • ClickOnce 应用程序错误:部署和应用程序没有匹配的安全区域

    我在 IE 中使用 FireFox 和 Chrome 的 ClickOnce 应用程序时遇到问题 它工作正常 异常的详细信息是 PLATFORM VERSION INFO Windows 6 1 7600 0 Win32NT Common
  • 复制 std::function 的成本有多高?

    While std function是可移动的 但在某些情况下不可能或不方便 复制它会受到重大处罚吗 它是否可能取决于捕获变量的大小 如果它是使用 lambda 表达式创建的 它依赖于实现吗 std function通常被实现为值语义 小缓
  • 在 LINQ 中按 Id 连接多表和分组

    我想按categoryId显示列表产品的名称组 这是我的代码 我想要我的视图显示结果 Desktop PC HP Red PC Dell Yellow PC Asus Red SmartPhone Lumia 720 Blue 我的组模型
  • 复制目录内容

    我想将目录 tmp1 的内容复制到另一个目录 tmp2 tmp1 可能包含文件和其他目录 我想使用C C 复制tmp1的内容 包括模式 如果 tmp1 包含目录树 我想递归复制它们 最简单的解决方案是什么 我找到了一个解决方案来打开目录并读
  • 单个对象的 Monogame XNA 变换矩阵?

    我读过一些解释 XNA Monogame 变换矩阵的教程 问题是这些矩阵应用于 SpriteBatch Begin matrix 这意味着所有 Draw 代码都将被转换 如何将变换矩阵应用于单个可绘制对象 就我而言 我想转换滚动背景 使其自
  • 如何使用 LINQ2SQL 连接两个不同上下文的表?

    我的应用程序中有 2 个数据上下文 不同的数据库 并且需要能够通过上下文 B 中的表的右连接来查询上下文 A 中的表 我该如何在 LINQ2SQL 中执行此操作 Why 我们正在使用 SaaS 产品来跟踪我们的时间 项目等 并希望向该产品发
  • 在 C 中初始化变量

    我知道有时如果你不初始化int 如果打印整数 您将得到一个随机数 但将所有内容初始化为零似乎有点愚蠢 我问这个问题是因为我正在评论我的 C 项目 而且我对缩进非常直接 并且它可以完全编译 90 90 谢谢 Stackoverflow 但我想
  • 在 Visual Studio 2010 中从 Fortran 调用 C++ 函数

    我想从 Fortran 调用 C 函数 为此 我在 Visual Studio 2010 中创建了一个 FORTRAN 项目 之后 我将一个 Cpp 项目添加到该 FORTRAN 项目中 当我要构建程序时出现以下错误 Error 1 unr
  • Qt - ubuntu中的串口名称

    我在 Ubuntu 上查找串行端口名称时遇到问题 如您所知 为了在 Windows 上读取串口 我们可以使用以下代码 serial gt setPortName com3 但是当我在 Ubuntu 上编译这段代码时 我无法使用这段代码 se
  • 如何在 Xaml 文本中添加电子邮件链接?

    我在 Windows Phone 8 应用程序中有一些大文本 我希望其中有电子邮件链接 例如 mailto 功能 这是代码的一部分
  • 为什么 gcc 抱怨“错误:模板参数 '0' 的类型 'intT' 取决于模板参数”?

    我的编译器是gcc 4 9 0 以下代码无法编译 template
  • 不同类型指针之间的减法[重复]

    这个问题在这里已经有答案了 我试图找到两个变量之间的内存距离 具体来说 我需要找到 char 数组和 int 之间的距离 char data 5 int a 0 printf p n p n data 5 a long int distan
  • 调用堆栈中的“外部代码”是什么意思?

    我在 Visual Studio 中调用一个方法 并尝试通过检查调用堆栈来调试它 其中一些行标记为 外部代码 这到底是什么意思 方法来自 dll已被处决 外部代码 意味着该dll没有可用的调试信息 你能做的就是在Call Stack窗口中单
  • 方法优化 - C#

    我开发了一种方法 允许我通过参数传入表 字符串 列数组 字符串 和值数组 对象 然后使用这些参数创建参数化查询 虽然它工作得很好 但代码的长度以及多个 for 循环散发出一种代码味道 特别是我觉得我用来在列和值之间插入逗号的方法可以用不同的
  • 如何部署“SQL Server Express + EF”应用程序

    这是我第一次部署使用 SQL Server Express 数据库的应用程序 我首先使用实体 框架模型来联系数据库 我使用 Install Shield 创建了一个安装向导来安装应用程序 这些是我在目标计算机中安装应用程序所执行的步骤 安装
  • WebSocket安全连接自签名证书

    目标是一个与用户电脑上安装的 C 应用程序交换信息的 Web 应用程序 客户端应用程序是 websocket 服务器 浏览器是 websocket 客户端 最后 用户浏览器中的 websocket 客户端通过 Angular 持久创建 并且
  • 我的班级应该订阅自己的公共活动吗?

    我正在使用 C 3 0 遵循标准事件模式我有 public event EventHandler
  • 如何从 ODBC 连接获取可用表的列表?

    在 Excel 中 我可以转到 数据 gt 导入外部数据 gt 导入数据 然后选择要使用的数据源 然后在提供登录信息后 它会给我一个表格列表 我想知道如何使用 C 以编程方式获取该列表 您正在查询什么类型的数据源 SQL 服务器 使用权 看

随机推荐

  • 在 XML 文件中搜索元素值

    在给定的 XML 文件中 我尝试使用以下命令搜索字符串是否存在XPath在爪哇 然而 即使字符串在那里 我的输出总是显示为 否 希望这里有人能指出我可能做错了什么 XML 文件
  • WIX 工具集包含多个文件

    我们有一个包含多个文件和文件夹的文件结构 我是 wix 工具集的新手 不太确定如何包含所有这些文件并保留目录结构 我知道 我可以添加这样的文件
  • 如何在MySQL中生成唯一的id?

    我正在使用 PHP 和 MySQL 编写脚本 我想要一个 唯一 id 由字符串组成 大写和小写 带数字的字母 例如 gHYtUUi5b 我发现 PHP 中有很多函数可以生成这样的数字 但我担心如何确保 id 是唯一的 UPDATE uuid
  • iOS (Cordova) 上出现键盘时如何调整 Web 视图大小

    在 Phonegap 3 7 0 上 当键盘出现在 iPhone 或 iPad 上时 Web 视图不会调整大小 并且键盘最终位于页脚上方 我希望缩小网络视图 以便页脚保持可见 有没有什么办法解决这一问题 我在这里看到了很多问题 实际上却达到
  • 事务应该在 .NET 还是 SQL Server 中处理?

    我进入了一个使用 NET C 作为前端 SQL Server 2008 作为后端的应用程序 我发现事务总是在 C 代码中处理 似乎这个项目有一条不成文的规则 我们不应该在存储过程中使用事务 我个人认为事务应该在存储过程中处理 因为它可以更好
  • 什么java设计模式可以避免强制转换数据实体

    我目前正在我的应用程序中实现类似异步的事件队列 它被设计为这样工作 一个组件对某些用户输入做出反应并将事件放入队列 另一个 侦听器 正在检查是否存在特定类型的事件在队列内部并运行它自己的业务逻辑 可以有各种事件类型 如 USER MOUSE
  • 如何将 Flutter 永久添加到 Mac 中的路径

    我知道有很多类似的答案 但是我已经检查过它们 观看了相关视频并尝试了无数次 我将 flutter 路径导出到 bashprofile 并按屏幕截图所示保存 但是如果我关闭终端并尝试使用 flutter 命令 例如flutter versio
  • C++ 中的“foreach”循环如何知道数组的长度

    我正在看下面的例子http www cplusplus com doc tutorial arrays 我不知道第二个 for 循环是如何工作的 for循环如何知道数组何时结束 如果它能弄清楚为什么第一个循环不使用类似的方法 我的印象是数组
  • 如何使用 codeigniter 将表单值插入 mysql 数据库[关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我是 Codeigniter 的新手 如何使用 codeigniter 将表单值存储在
  • 将 JButton 图标向左对齐并保持文本居中

    我想设置一个 JButton 使其图标左侧对齐 而文本居中 我已经找到了如何让其中一个位于左侧 另一个位于右侧 或两者处于同一设置 但我找不到我要找的东西 当然我总是可以重新定义paint方法 但我正在寻找一种更精简的方法来做到这一点 您可
  • 将 get-content 放入 html 电子邮件的数组中

    html部分 html htm html text computername username text html out file c scripts temp Report html 我在 html 变量中有 html 语言 当我决定更
  • 使用 htaccess 进行移动重定向

    我有一个网站叫 www website org 我有一个移动网站 名为 m website org 我想使用 htaccess 自动将主网站 URL 重定向到移动版本 但是 移动版本上有一个链接指向主网站 称为 www website or
  • 数据框中行值的平均值,不包括 R 中的最小值和最大值

    我得到以下数据框 df 此处显示的片段 H2475 H2481 H2669 H2843 H2872 H2873 H2881 H2909 E1 94 470 26 481 15 120 18 490 16 189 11 422 14 886
  • 如何知道两个表情符号是否会显示为一个表情符号?

    表情符号 由2个unicodeScalars U 1F44D U 1F3FC组成 如何将其识别为 1 个 显示 表情符号 因为它将在 iOS 上如此显示 Swift 4 Xcode 9 更新 从 Swift 4 开始 表情符号序列 被视为单
  • 如何防止android应用程序中的choosePrivateKeyAlias对话框?

    我有一个 Android 应用程序 可以在网络视图中调用安全网站 webview 检索证书并将其提供给网站 我必须使用KeyChain choosePrivateKeyAlias this keyChainAliasCallback nul
  • 通过将指针传递给c中的函数来创建二维数组

    因此 我阅读了数十个将 2D 数组指针传递给函数以在函数中获取 更改该数组的值的示例 但是是否可以在函数内部创建 分配内存 像这样的事情 include
  • 按日期排序 Angular 2 管道

    这是我的代码 div class conv single conv date date dd MM yyyy j conv text div 我有这样的对象 date somedate text text1 这是我的 orderBy 管道
  • 谷歌云消息,服务不可用

    我正在创建一个应用程序 并使用 GCM 来接收通知 问题是当我调用函数 gcm register SENDER ID 时我收到 服务不可用 消息 我查了很多资料 很多人都面临这个问题 我尝试了这个解决方案 Android 2 2 上的 GC
  • cordova/phonegap 插件添加 VS config.xml

    我发现phonegap cordova 插件有些令人困惑 例如我可以运行 cordova plugin add cordova plugin whitelist OR phonegap plugin add cordova plugin w
  • 如何使用 iTextsharp 在服务器地图路径上保存 pdf

    我正在使用以下代码生成 pdf 它工作完美 string strQuery select from userdata SqlCommand cmd new SqlCommand strQuery DataTable dt GetData c