答案 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.PDF或Aspose.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日起不再免费)
免责声明:我为公司工作。