【问题标题】:Preventing a C# System.Windows.Forms.Clipboard object from opening on double-clicking防止 C# System.Windows.Forms.Clipboard 对象在双击时打开
【发布时间】:2018-07-30 22:16:40
【问题描述】:

我使用 PdfSharp 创建一个 PdfDocument 对象:

private readonly PdfDocument _pdf = new PdfDocument();

与实际添加文本、设置字体样式等的其他方法一起,然后我将 pdf 文件写入磁盘上的临时位置:

 var tempPdf = string.Concat(Path.GetTempPath(), Guid.NewGuid().ToString(), ".pdf");
_pdf.Save(tempPdf);

然后我在 System.Windows.Clipboard 类中使用它来将内容复制到剪贴板:

Clipboard.SetFileDropList(new StringCollection {tempPdf});

例如,当用户将剪贴板内容粘贴到 Word 文档中时,pdf 内容会根据需要显示在文档中。

我遇到的问题是,当用户双击嵌入的 PDF 时,它也会在 Adob​​e Reader 等查看器中启动 PDF,这也是预期的。我遇到的(未预料到的)问题是,鉴于此内容将被插入到法律文件中,我需要防止此弹出窗口发生。

任何人都可以提出任何方法或策略来帮助我实现这样的目标吗?总结一下 - 允许他们将存储在剪贴板中的 [pdf] 内容粘贴到 Word 文档中,但不会在双击时打开。

【问题讨论】:

  • 我认为 PDF 可能不是您正在寻找的格式...也许使用 html 格式的信息? Word 剪贴板也可以使用它,它只是内嵌粘贴而不是嵌入为要打开的文档。
  • 感谢您的建议。我已经开始有点专注于使用 PDF 生成。
  • 我的意思是,你已经告诉我们你不想想要发生什么,但你实际上并没有描述你想要发生什么。不能打开的嵌入文档是相当无用的。
  • 我在 Word 文档中嵌入 PDF 的原因主要是为了防止修改内容 - 可以用来以表格格式等说明付款时间表。
  • PDF 一般不是只读格式吗?据我所知,它也可以选择锁定/保护它。也就是说,任何东西都可以复制和编辑;没有真正的方法可以防止任何人使用更改的数据制作外观相同的副本。您唯一能做的就是使用某种安全文档类型。

标签: c# pdf ms-word pdf-generation pdfsharp


【解决方案1】:

答案就在我的问题中;)

感谢Nyerguds 帮助我摆脱困境 - 我一直专注于使用 PDF 文件复制到剪贴板。

解决方案是用 System.Drawing.Graphics / System.Drawing.Bitmap 替换 PdfSharp 生成 pdf 的用法,以创建我们要复制的 jpg 图像。

一旦将剪贴板内容粘贴到 Word 文档中,我们就不会再遇到双击打开图片的问题了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-31
    • 2019-02-05
    • 2011-09-11
    相关资源
    最近更新 更多