我必须创建一个工具,将几个.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'的形式,但有时我发现看似二进制数据的东西,我不知道如何解码它。
有没有更好的方法来获得创作日期?
由于
斯特凡诺
答案 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);