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

时间:2009-09-23 11:33:08

标签: c# file pdf metadata

我搜索方法或libarys来编辑pdf文件的元数据,如程序becypdfmetaedit

我想写一个程序,我需要在这个程序中使用这个opton。 也许你有一些c#的样本。

由于

7 个答案:

答案 0 :(得分:19)

使用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");
    }
  }

}

答案 1 :(得分:7)

对于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);

始终使用斜杠启动自定义键!

您可以在Adobe Acrobat Reader中打开此文档时找到密钥和值 - &gt;档案 - &gt;属性 - &gt;定制

这适用于PDFSharp 1.32

答案 2 :(得分:3)

我想你可以用iTextSharp来完成。

答案 3 :(得分:2)

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

答案 4 :(得分:0)

Aspose.PDFAspose.PDF.Kit可以为您完成此操作。

答案 5 :(得分:0)

在这里嬉戏 - my company, Atalasoft, makes .NET components for working with images。该套件的一部分包括读/写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

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

答案 6 :(得分:0)

Docotic.Pdf library可用于读取和更新PDF文档中的元数据。

PdfDocument.Info属性可用于change metadata of a PDF document(属性,如“作者”,“标题”)。

如果您需要访问嵌入式XMP metadata in a PDF document,还有PdfDocument.Metadata属性非常有用。该库支持预定义的XMP模式,也可用于设置自定义应用程序定义的属性。

图书馆可免费用于非商业用途。(图书馆自2012年2月15日起不再免费)

免责声明:我为公司工作。