【问题标题】:Read/Modify PDF Metadata using iTextSharp使用 iTextSharp 读取/修改 PDF 元数据
【发布时间】:2010-05-03 22:30:53
【问题描述】:

我正在尝试使用 iTextSharp 读取/修改 PDF 元数据。我想出了如何使用 pdfreader 和 pdfstamper 来做到这一点。我想知道我是否还可以读取/修改其他元数据信息,例如版权信息以及 XMP Photoshop 命名空间中的其他一些信息。

我将非常感谢任何指向解决方案的指针。

谢谢你, 穆鲁盖什。

【问题讨论】:

    标签: c# pdf metadata itextsharp xmp


    【解决方案1】:

    您可以使用“PdfReader”读取元数据。我读过这样的元数据:

    PdfReader reader = new PdfReader("HelloWorldNoMetadata.pdf");
    string s = reader.Info["Author"];
    

    您可以尝试使用iTextSharp.text.xml.xmp.XmpWriter 类来写入元数据。我从来没有做过,但在下面I found this code

    PdfReader reader = new PdfReader("HelloWorldNoMetadata.pdf");
    PdfStamper stamper = new PdfStamper(reader,
     new FileOutputStream("HelloWorldStampedMetadata.pdf"));
    HashMap info = reader.getInfo();
    info.put("Author", "Bruno Lowagie");
    info.put("Title", "Hello World stamped");
    stamper.setMoreInfo(info);
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    XmpWriter xmp = new XmpWriter(baos, info);
    xmp.close();
    stamper.setXmpMetadata(baos.toByteArray());
    stamper.close();
    

    【讨论】:

    • 感谢您的回复。有用。我现在可以将值放入 XMP 中的任何模式。但是,每当我插入除常见元数据字段(作者、标题、主题、关键字)以外的值时,它会将它们添加为自定义字段,除了我插入它的架构之外,该字段位于“pdfx”架构下。我不希望将它们添加为自定义字段。任何指针?谢谢,Murugesh。
    • @muruge - 抱歉,我没有任何指示;我从来没有尝试过你在做什么。我在 iTextSharp.text.xml.xmp 命名空间上也找不到太多内容。
    • 嗨,有人有添加元数据的基本 C# 示例吗?我似乎无法将其转换为 C#。谢谢。
    【解决方案2】:

    试试iTextSharp book中的例子,里面有修改pdf文件任意部分的例子!

    【讨论】:

    • 感谢分享。我已经完成了这个应用程序。但希望这对正在寻找这个问题的答案的人有所帮助。
    • 链接失效。预计11年后。这就是为什么有关于仅链接答案的规则
    • 感谢@Gerhard 的更新,感谢您的努力。
    猜你喜欢
    • 2016-03-01
    • 2017-01-23
    • 2011-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多