加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何使用iTextSharp为C#设置现有PDF的版权元数据

发布时间:2020-12-15 17:18:53 所属栏目:百科 来源:网络整理
导读:如何使用iTextSharp为C#设置现有(即从文件或内存流加载的pdf)pdf文件的版权元数据? 非常感谢 解决方法 本机XMP结构没有实现版权(或者至少它们不是Adobe Reader识别的方式.)为此,您可以对Adobe启动并手动编写的内容进行反向工程: String inputPDF = Path.Co
如何使用iTextSharp为C#设置现有(即从文件或内存流加载的pdf)pdf文件的版权元数据?

非常感谢

解决方法

本机XMP结构没有实现版权(或者至少它们不是Adobe Reader识别的方式.)为此,您可以对Adobe启动并手动编写的内容进行反向工程:

String inputPDF = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop),"Services.pdf");
        String outputPDF = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop),"Services_Out.pdf");

        PdfReader reader = new PdfReader(inputPDF);
        using (FileStream fs = new FileStream(outputPDF,FileMode.Create,FileAccess.Write,FileShare.Read))
        {
            using (PdfStamper stamper = new PdfStamper(reader,fs))
            {
                using (MemoryStream ms = new MemoryStream())
                {

                    string CopyrightName = "YOUR NAME HERE";
                    string CopyrightUrl = "http://www.example.com/";

                    XmpWriter xmp = new XmpWriter(ms);
                    xmp.AddRdfDescription("xmlns:dc="http://purl.org/dc/elements/1.1/"",String.Format("<dc:rights><rdf:Alt><rdf:li xml:lang="x-default">{0}</rdf:li></rdf:Alt></dc:rights>",CopyrightName));
                    xmp.AddRdfDescription("xmlns:xmpRights="http://ns.adobe.com/xap/1.0/rights/"",string.Format("<xmpRights:Marked>True</xmpRights:Marked><xmpRights:WebStatement>{0}</xmpRights:WebStatement>",CopyrightUrl));
                    xmp.Close();
                    stamper.XmpMetadata = ms.ToArray();
                    stamper.Close();

                }
            }
        }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读