iTextSharp - 修改 PDF 中的附加元数据
iTextSharp - Modify additional metadata in PDF
有很多 iTextSharp
示例展示了如何使用 [=11= 将 "Title"、"Author"、"Keywords" 等元数据附加到现有 PDF ] 字典 (like this),我已经成功做到了。
但是有没有办法设置 Adobe Reader 调用 "Additional Metadata" 的属性,这些属性在您单击 "Document Properties" -> "Additional metadata" 时可见?这些属性包括 "Description"、"Author title"、"Copyright status"、"Copyright notice" 等等。 PdfStamper.MoreInfo
中是否有一些字典键表示这些属性?
这不是关于写入数据而是 how to read it。它也可能会给你一些关于如何编写它的提示。
Document doc = new Document(PageSize.A4, 36, 72, 108, 180);
doc.AddTitle("Hello World example");
doc.AddSubject("This is an Example 4 of Chapter 1 of Book 'iText in Action'");
doc.AddKeywords("Metadata, iTextSharp 5.4.4, Chapter 1, Tutorial");
doc.AddCreator("iTextSharp 5.4.4");
doc.AddAuthor("Debopam Pal");
doc.AddHeader("Nothing", "No Header");
了解更多详情和功能Click Here
iText5 不公开 PdfStamper#MoreInfo
中的附加数据。然而,可以使用 PdfReader#XmpMetaData
检索包含的元数据并使用 PdfDocument#XmpMetaData
或 PdfStamper#XmpMetaData
设置它。
返回元数据并设置为 byte[]
,因此您必须自己处理 translation/generation。
在 iText7 中,过程基本相同,但通过 PdfDocument
class 处理(因为它是 PdfReader
和 PdfWriter
对象的包装器.)
有很多 iTextSharp
示例展示了如何使用 [=11= 将 "Title"、"Author"、"Keywords" 等元数据附加到现有 PDF ] 字典 (like this),我已经成功做到了。
但是有没有办法设置 Adobe Reader 调用 "Additional Metadata" 的属性,这些属性在您单击 "Document Properties" -> "Additional metadata" 时可见?这些属性包括 "Description"、"Author title"、"Copyright status"、"Copyright notice" 等等。 PdfStamper.MoreInfo
中是否有一些字典键表示这些属性?
这不是关于写入数据而是 how to read it。它也可能会给你一些关于如何编写它的提示。
Document doc = new Document(PageSize.A4, 36, 72, 108, 180);
doc.AddTitle("Hello World example");
doc.AddSubject("This is an Example 4 of Chapter 1 of Book 'iText in Action'");
doc.AddKeywords("Metadata, iTextSharp 5.4.4, Chapter 1, Tutorial");
doc.AddCreator("iTextSharp 5.4.4");
doc.AddAuthor("Debopam Pal");
doc.AddHeader("Nothing", "No Header");
了解更多详情和功能Click Here
iText5 不公开 PdfStamper#MoreInfo
中的附加数据。然而,可以使用 PdfReader#XmpMetaData
检索包含的元数据并使用 PdfDocument#XmpMetaData
或 PdfStamper#XmpMetaData
设置它。
返回元数据并设置为 byte[]
,因此您必须自己处理 translation/generation。
在 iText7 中,过程基本相同,但通过 PdfDocument
class 处理(因为它是 PdfReader
和 PdfWriter
对象的包装器.)