使用iText 7获取PDF文件的创建日期

时间:2016-07-17 21:05:37

标签: vb.net date pdf itext7

我必须创建一个工具,将几个.pdf文件名添加到他们的创建日期。 我想使用内部存储在pdfs中的creationdate,为此我下载了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'的形式,但有时我发现看似二进制数据的东西,我不知道如何解码它。

有没有更好的方法来获得创作日期?

由于

斯特凡诺

1 个答案:

答案 0 :(得分:2)

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

如果您有PdfString,则可以通过不同方式获取值:toString(),但也有toUnicodeString()。如果您拥有String版本,则可以从Calendar类中获取PdfDate对象:

Calendar date = PdfDate.decode(s);

如果您想要W3C格式的日期,您可以这样做:

string w3cDate = PdfDate.getW3CDate(s);