【发布时间】:2010-11-30 17:28:41
【问题描述】:
【问题讨论】:
【问题讨论】:
使用 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");
}
}
}
【讨论】:
对于 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 -> 文件-> 属性-> 自定义中打开此文档时找到键和值。
这适用于 PDFSharp 1.32
【讨论】:
我想你可以用iTextSharp 做到这一点。
【讨论】:
PDF Sharp 的 PdfDocumentInformation 类是否满足您的要求。
【讨论】:
在这里拉皮条 - 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
通过哈希表支持自定义字段。
【讨论】:
Aspose.PDF 或 Aspose.PDF.Kit 可以为您做到这一点。
【讨论】: