我有一个我希望是一个简单的问题。我正在尝试使用 iTextSharp 修改一些 PDF 文件,但是似乎 iTextSharp 放在文件末尾的 XMP 元数据正在破坏 PDF 文件的布局(而且我对 PDF 格式不太熟悉完全理解为什么)。
您可以从上面的两张图片中看到,文档似乎已被旋转。然而,从将 PDF 文件视为二进制差异来看,唯一不同的似乎是文件末尾的一些 XMP 元数据
我尝试在几个 PDF 查看器(Sumatra PDF、Edge Browser 和 Adobe Acrobat)中打开文件,都显示出同样的怪异。
我想我有两个问题:a) PDF 文件如何从文件末尾的 XMP 元数据中改变?b) 如何使 iTextSharp 不产生此输出?(iTextSharp 似乎只在我添加/编辑内容时执行此操作,而不是在我仅删除 Javascript 或类似内容时执行此操作)
<EDIT 1>
我用于 iTextSharp 的代码是来自此处帖子的 PdfContentStreamEditor(逐字):https
://stackoverflow.com/a/35915789/2535822 </EDIT 1>
<EDIT 2>
好的..似乎它不是 XMP 元数据。我通过使用摆脱了它:
pdfStamper.XmpMetadata = new byte[0];
但是,文件末尾仍然有一堆额外的数据
2 0 obj
<</Producer(PDFCreator 2.5.2.5233; modified using iTextSharp’ 5.5.13 ©2000-2018 iText Group NV \(AGPL-version\))/CreationDate(D:20171206173510+10'30')/ModDate(D:20180325144710+11'00')/Title(þÿ
endobj
404 0 obj
<</Length 0/Type/Metadata/Subtype/XML>>stream
endstream
endobj
405 0 obj
<</Length 3638/Filter/FlateDecode>>stream
xœÍZmÅ/6ÒZ2ÁÆ€
....
</编辑 2>