使用 C# 编辑 PDF 文件的元数据

发布于 2024-08-05 08:10:30 字数 1539 浏览 4 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

倾城泪 2024-08-12 08:10:30

使用 PDF Sharp 的工作方式如下:

using System;
using PdfSharp.Pdf;
using PdfSharp.Pdf.IO;

namespace ConsoleApplication1
{
  class Program
  {
    static void Main (string[] args)
    {
      Program p = new Program();
      p.Test();

    }

    public void Test ()
    {
      PdfDocument document = PdfReader.Open ("Test.pdf");

      document.Info.Author = "ME";

      document.Save ("Result");
    }
  }

}

Using PDF Sharp works like this:

using System;
using PdfSharp.Pdf;
using PdfSharp.Pdf.IO;

namespace ConsoleApplication1
{
  class Program
  {
    static void Main (string[] args)
    {
      Program p = new Program();
      p.Test();

    }

    public void Test ()
    {
      PdfDocument document = PdfReader.Open ("Test.pdf");

      document.Info.Author = "ME";

      document.Save ("Result");
    }
  }

}

杀手六號 2024-08-12 08:10:30

对于 PDFSharp:
如果您想更改/添加 PDF 的自定义属性元数据,您可以使用 PdfDocument.Info.Elements 对象。

    String filename = @"d:\temp\Hugo-input.pdf";
    String outputfile = @"d:\temp\Hugo-output.pdf";
    PdfDocument document = PdfReader.Open(filename);
    document.Info.Elements.Add(new KeyValuePair<String,PdfItem>("/MyKey",new PdfString("MyValue")));
    document.Save(outputfile);

自定义键始终以斜线开头!

在 Adob​​e Acrobat Reader 中打开此文档即可找到键和值 ->文件->属性->风俗。

这适用于 PDFSharp 1.32

For PDFSharp:
If you would like to change/add the metadata on the Custom Properties of a PDF you can use the PdfDocument.Info.Elements object.

    String filename = @"d:\temp\Hugo-input.pdf";
    String outputfile = @"d:\temp\Hugo-output.pdf";
    PdfDocument document = PdfReader.Open(filename);
    document.Info.Elements.Add(new KeyValuePair<String,PdfItem>("/MyKey",new PdfString("MyValue")));
    document.Save(outputfile);

Always start a custom key with a slash!

You can find the key and value when you open this document in Adobe Acrobat Reader -> File -> Properties -> Custom.

This works with PDFSharp 1.32

暮凉 2024-08-12 08:10:30

我想你可以用 iTextSharp 来做到这一点。

I suppose you can do it with iTextSharp.

夜雨飘雪 2024-08-12 08:10:30

PDF Sharp 中的 PdfDocumentInformation 类是否满足您的要求。

Does the PdfDocumentInformation class from PDF Sharp fulfill your requirements.

揪着可爱 2024-08-12 08:10:30

在这里拉皮条 - 我的公司 Atalasoft 生产用于处理图像的 .NET 组件。该套件的一部分包括读取/写入 PDF 文档元数据的功能。它不是免费的,但桌面应用程序的运行时版税是免费的。

读取代码很简单:

PdfDocumentMetadata metadata = PdfDocumentMetadata.FromStream(sourceStream);

编辑它并将其写回同一流:

meta.Title = "Knicholas Knickleby";
meta.Author = "Edmund Wells";
sourceStream.Seek(0, SeekOrigin.Begin);
meta.Append(sourceStream, false); // false means don't merge - overwrite

通过哈希表支持自定义字段。

Pimping here - my company, Atalasoft, makes .NET components for working with images. Part of the suite includes the ability to read/write PDF document metadata. It's not free, but it is run-time royalty free for desktop applications.

The code for reading is simple:

PdfDocumentMetadata metadata = PdfDocumentMetadata.FromStream(sourceStream);

to edit it and write it back to the same stream:

meta.Title = "Knicholas Knickleby";
meta.Author = "Edmund Wells";
sourceStream.Seek(0, SeekOrigin.Begin);
meta.Append(sourceStream, false); // false means don't merge - overwrite

Custom fields are supported through a hashtable.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文