iTextSharp 生成的 PDF 现在会在 Adob​​e Reader X 中出现“保存”对话框

2023-11-21

我使用 iTextSharp 生成 PDF 文档已有一年多了。不幸的是,随着 Adob​​e Reader X 的发布,我的 PDF 现在会出现“您要保存吗?”关闭 PDF 文档时出现的对话框。对于不是使用 iTextSharp 生成的 PDF,不会发生这种情况。对于整天打开和关闭 PDF 文档的用户来说,这真的很烦人。我可以设置 iTextSharp 中的任何属性来防止这种情况发生吗?

如果有帮助,我正在使用 PdfReader 从现有 PDF 文档中读取数据(此原始文档不会导致出现“保存”对话框)。然后,我使用 PdfWriter 创建一个新文档,并使用 AddTemplate 将原始文档的一部分复制到新文档。


问题是这一行:

Response.OutputStream.Write(MS.GetBuffer(), 0, MS.GetBuffer().Length)

GetBuffer 方法返回整个内部缓冲区,该缓冲区大于实际内容。坏的 PDF 在末尾有大约 10kb 的垃圾内容(零字节),好的 PDF 只有几个垃圾字节。使用内存流的ToArray()方法获取PDF文件即可解决问题。您还将获得较小的文件。

byte[] pdf = MS.ToArray();
Response.OutputStream.Write(pdf, 0, pdf.Length);

还要将“Content-Length”设置为 pdf 数组的长度。

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

iTextSharp 生成的 PDF 现在会在 Adob​​e Reader X 中出现“保存”对话框 的相关文章

随机推荐

  • 将 ISO 日期转换为 yyyy-mm-dd 格式

    给定集合 name users 结构 id ObjectId 57653dcc533304a40ac504fc username XYZ followers count 31 ts ISODate 2016 06 17T18 30 00 9
  • KMeans 聚类超过 500 万个向量

    我遇到了一个真正的问题 我需要对 500 万个向量进行一些 Kmeans 聚类 每个向量包含大约 32 列 我尝试了 Mahout 它需要 Linux 而我在 Windows 上 我无法使用 Linux 操作系统和任何类型的模拟器 谁能建议
  • Console.Write() - 显示扩展 ascii 字符?

    我能够正确显示标准 ASCII 符号 最多 127 个 例如 heart note 你知道我的意思 我还想展示那些可以用来画墙的东西 比如 U0205 但它不起作用 好吧 它起作用 但它看起来像 我有什么办法可以显示它们吗 谢谢 控制台模式
  • Ruby 错误地解析了 2 位数字年份

    Ruby 正确解析第一个日期 但第二个日期不正确 使用 ruby 1 9 3 和 2 1 2 进行测试 知道如何让它持续工作吗 我们将出生日期设为两位数年份 Date strptime 10 11 89 d m y gt Fri 10 No
  • 如何声明也符合协议的特定类的属性?

    假设我想创建一个属性 它是 UIViewController 的子类 并且也符合协议 MyDelegateProtocol 在 Objective C 中我会写这样的东西 property strong nonatomic UIViewCo
  • 如何在Java中使用自动代理配置脚本

    我的 Internet Explorer 设置为具有用于 Web 访问的自动代理文件 所谓的 PAC 有没有办法在我的 Java 程序上使用它 我的下面的Java代码似乎根本没有使用代理 ArrayList
  • 如何在 R 中指定 3d 绘图的相机视角?

    我想更改我的plotly 3d 散点图的默认相机视角 但从帮助中不清楚应该如何完成此操作 我知道布局参数应包含在命名列表中 但无法使其适用于 眼睛 向上 和 中心 相机参数 https plot ly r reference layout
  • 在 gradle 中将参数传递给编译器和 javadoc

    我正在尝试提供 Gradle 作为现有项目的替代构建系统 该项目利用sun misc Unsafe这会导致像这样的警告 warning Unsafe is internal proprietary API and may be remove
  • git:如何将拉取请求合并到分支中?

    我的情况如下 我有一个开源 github 项目的分支 我在开发分支的分支中的分叉存储库中进行所有开发 在主存储库的开发分支中有一个我需要的未合并的拉取请求 为了测试未合并的拉取请求 我创建了一个新目录并将原点克隆到其中 然后将未合并的请求提
  • 基于 Spring MVC LocaleChangeInterceptor 注解不起作用

    import java util Locale import org springframework context MessageSource import org springframework context annotation B
  • 如何在谷歌协作笔记本中显示绘图输出?

    我搜索了一整天如何在谷歌合作 Jupyter 笔记本中显示绘图的输出 有一个 stackoverflow 问题 还有谷歌合作实验室的官方教程 但它们都不适合我 官方链接 https colab research google com not
  • Flink 一次性消息处理

    我已经设置了一个包含 2 个 JobManager 和 3 个 TaskManager 的 Flink 1 2 独立集群 并使用 JMeter 通过生成 Kafka 消息 事件来对其进行负载测试 然后进行处理 处理作业在 TaskManag
  • Opencv - 如何合并两个图像

    我是 opencv 的新手 我在互联网上搜索是否有如何合并两个图像的示例 但没有找到任何可以帮助我的东西 有人可以帮我提供一些指示或小代码来理解吗 提前致谢 从评论到问题 你说 我不想将第一张图片的一半与第二张图片的另一半混合 我只想打印两
  • 如何获取 WCF 服务正在侦听的端口?

    我有一个 net tcp WCF 服务 我希望操作系统选择它应该侦听的端口 所以我在 URI 中将端口设置为 0 并且netstat确认操作系统已选择 5000 范围内的端口 如何在服务进程内以代码形式找到已选择的实际端口 一些代码显示我已
  • 如何摆脱投影仪中的导航栏?

    如何删除从投影仪乳胶文件生成的每张幻灯片顶部的部分和小节的导航栏 我正在使用 beamerthemesplit 包 Beamer 有不同的主题可供您使用 其中一些包含导航栏 有些则不包含 例如 默认主题不包含任何导航栏 Beamer 提供的
  • 在 Win32 Delphi 应用程序中存储用户首选项和设置的最佳实践是什么?

    我想在我的 Delphi Win32 应用程序中存储用户首选项 颜色 工具栏开 关 面板宽度 以像素为单位 和应用程序设置 最后 10 个文件 默认保存目录 默认打开目录 这样做的最佳实践是什么 您有两个主要选择 将设置存储在用户配置文件下
  • 从哪里获取 11.2.0.3 的 Oracle jar 文件 - xdb、aq、i18n、xmlparser

    我正在尝试更新旧版 Java 应用程序以与 Oracle 11g 版本 11 2 0 3 兼容 该应用程序在 Oracle 10g 版本 10 2 0 4 上运行并使用 Oracle Advanced Queues 它声明了 Maven 依
  • 由于 Errno::EPERM,Unicorn 无法在 Vagrant 盒子上启动

    当我运行以下命令在我的 Vagrant box ubuntu 12 04 2 server i386 上启动 Sinatra 应用程序的 Unicorn 时 sudo unicorn c unicorn rb E development D
  • 为什么我不能在 Swift 中使用泛型类型的子类?

    为什么 Swift 不允许我赋值Foo u 到一个类型的变量Foo u
  • iTextSharp 生成的 PDF 现在会在 Adob​​e Reader X 中出现“保存”对话框

    我使用 iTextSharp 生成 PDF 文档已有一年多了 不幸的是 随着 Adob e Reader X 的发布 我的 PDF 现在会出现 您要保存吗 关闭 PDF 文档时出现的对话框 对于不是使用 iTextSharp 生成的 PDF