vb.net - 使用 iText 7 获取 PDF 文件的创建日期

标签 vb.net date pdf itext7

我必须创建一个工具,将其创建日期添加到几个 .pdf 文件名中。
我想使用内部存储在 pdf 中的创建日期,为此我下载了 iText 社区版。

现在,我的代码是这样开始的(VB)

Module Module1

    Sub Main()

        Dim filename As String = My.Application.CommandLineArgs(0)

        Dim PDFReader = New Pdf.PdfReader(filename)
        Dim PDFDocument = New Pdf.PdfDocument(PDFReader)

        Dim documentinfo As Pdf.PdfDocumentInfo = PDFDocument.GetDocumentInfo

        Dim author As String = documentinfo.GetAuthor
        Dim creator As String = documentinfo.GetCreator
        Dim mypdfobject = documentinfo.GetPdfObject

    End Sub

End Module

我得到了 GetAuthor 和 GetCreator 以及其他几个 Get 方法,但是我找不到像 GetCreationDate 这样的东西,只有 AddCreationDate。

如果我进一步进入 mypdfobject,我会在 map 中找到一个/Creationdate 标签,所以我想使用它,但是,虽然它通常采用 D:20160704132234+02'00' 格式,但有时我会发现一些看起来像是二进制数据的东西,我不知道如何解码。

有没有更好的方法来获取创建日期?

谢谢

斯特凡诺

最佳答案

创建日期是一个 PDF 字符串值。有两种表示字符串的方法。你已经知道这样了:(D:20160704132234+02'00') ,但也有十六进制表示法,例如:<443A32303136303730343133323233342b303227303027> .

当您有 PdfString ,您可以通过不同方式获取值:有 toString() ,但还有 toUnicodeString() .当您有 String版本,你可以得到一个 Calendar来自 PdfDate 的对象类(class):

Calendar date = PdfDate.decode(s);

如果您想要 W3C 格式的日期,您可以执行以下操作:
string w3cDate = PdfDate.getW3CDate(s);

关于vb.net - 使用 iText 7 获取 PDF 文件的创建日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38425925/

相关文章:

java - 如何从年月日中获取日期对象?

mysql - 条件查询获取两个日期之间有间隔的数据

pdf - 调整 PDF 格式以更快地打印它

android - 在 Android 中生成并打印具有特定大小的 PDF

.net - 何时使用 Using 语句

asp.net - XPath 不返回节点值 ASP.NET 4.5

vb.net - 使用现有 Excel 文件保存数据并以新名称保存

javascript - session过期如何防止表单数据丢失?

Java SimpleDateFormat 将问题解析为 WEKA

java - 使用 javax.print 库打印属性(托盘控制、双面打印等)