首页 > 解决方案 > 如何在不更改元数据的情况下创建新的 PDF?

问题描述

我有 Apache FOP 1.0 创建的原始 PDF 文件,其中包含 Apache 添加的基本元数据(生产者,创建日期)。我正在编辑文件,并且出现了我不想拥有的其他元数据(修改日期和其他)。是否可以基于以没有编辑残留物的方式编辑的文件创建新文件?

<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c016 91.163616, 2018/10/29-16:58:49        ">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:pdf="http://ns.adobe.com/pdf/1.3/"
            xmlns:xmp="http://ns.adobe.com/xap/1.0/"
            xmlns:dc="http://purl.org/dc/elements/1.1/">
         <pdf:PDFVersion>1.4</pdf:PDFVersion>
         <pdf:Producer>Apache FOP Version 1.0</pdf:Producer>
         <xmp:CreateDate>2019-08-20T11:09:15+02:00</xmp:CreateDate>
         <xmp:CreatorTool>Apache FOP Version 1.0</xmp:CreatorTool>
         <xmp:MetadataDate>2019-08-20T11:09:15+02:00</xmp:MetadataDate>
         <dc:date>
            <rdf:Seq>
               <rdf:li>2019-08-20T11:09:15+02:00</rdf:li>
            </rdf:Seq>
         </dc:date>
      </rdf:Description>
   </rdf:RDF>
</x:xmpmeta>
<?xpacket end="w"?>

除了元数据,还有可能通过删除记事本++中添加的行来恢复原始版本(我不想要),我试图替换流,但我失败了(编辑和新的元数据被添加到文件,他们不会更改旧文本(增量更新?))。我希望编辑后的文件看起来像在 Apache FOP 1.0 中制作的原始文件。我尝试使用 Word2FO.xsl 创建 XSL-FO,但无法创建外观与原始文件相同的文件。

我可以为 C# 使用窗口应用程序 (Windows)、控制台、网站或其他东西,到目前为止,我发现的所有东西要么效果不佳,要么在我自己之后添加纪念品(水印、生产者变更、额外的增量更新等)。

标签: c#pdfpdf-generationxsl-foapache-fop

解决方案


我们的 DynamicPDF Merger 产品允许您在不更改其内容的情况下合并 PDF。还有一些选项可以抑制 XMP 元数据或根据需要设置生产者。下面是合并 PDF、删除 XMP 元数据(使用 MergeOptions 类)和设置生产者的 C# 代码。

MergeOptions options = new MergeOptions();
options.XmpMetadata = false;
MergeDocument document = new MergeDocument(@"Source PDF file path", options);
document.Producer = "My producer";
document.Draw(@"path to save the output PDF");

您可以在此处参考 MergeOptions 类的文档:http: //docs.dynamicpdf.com/NET_Help_Library_19_08/DynamicPDF~ceTe.DynamicPDF.Merger.MergeOptions_members.html

在 Nuget(包 ID:ceTe.DynamicPDF.CoreSuite.NET)上提供了 DynamicPDF Merger 产品的全功能评估版: https ://www.nuget.org/packages/ceTe.DynamicPDF.CoreSuite.NET/

更多信息和从我们的网站下载的选项可以在这里找到: https ://www.dynamicpdf.com/Merge-PDF-.NET.aspx


推荐阅读