The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

DateTime::Format::PDF - PDF DateTime Parser and Formatter.

SYNOPSIS

 use DateTime::Format::PDF;

 my $obj = DateTime::Format::PDF->new;
 my $dt = $obj->parse_datetime($pdf_date);
 my $pdf_date = $obj->format_datetime($dt);

DESCRIPTION

This module understands the formats used by PDF file. It can be used to parse these formats in order to create DateTime objects, and it can take a DateTime object and produce a string representing it in a format accepted by PDF.

METHODS

new

 my $obj = DateTime::Format::PDF->new(%params);

Constructor.

Returns instance of object.

parse_datetime

 my $dt = $obj->parse_datetime($pdf_date);

Parse PDF datetime string.

Possible valid strings:

D:YYYY
D:YYYYMM
D:YYYYMMDD
D:YYYYMMDDHH
D:YYYYMMDDHHmm
D:YYYYMMDDHHmmSS
D:YYYYMMDDHHmmSSZ
D:YYYYMMDDHHmmSSOHHmm
D:YYYYMMDDHHmmSSOHH'mm
D:YYYYMMDDHHmmSSOHH'mm'
D:YYYYMMDDHHmmSSOHHmm'

Returns DateTime object.

format_datetime

 my $pdf_date = $obj->format_datetime($dt);

Format DateTime object to PDF datetime string. Output value is D:YYYYMMDDHHmmSSOHHmm.

Returns string.

ERRORS

 format_datetime():
         Bad DateTime object.
                 Value: %s

 parse_datetime():
         Invalid date format: %s

EXAMPLE1

 use strict;
 use warnings;

 use DateTime::Format::PDF;

 # Object.
 my $obj = DateTime::Format::PDF->new;

 # Parse date.
 my $dt = $obj->parse_datetime("D:20240401084337-01'30");

 # Print out.
 print $dt->strftime("%a, %d %b %Y %H:%M:%S %z")."\n";

 # Output like:
 # Mon, 01 Apr 2024 08:43:37 -0130

EXAMPLE2

 use strict;
 use warnings;

 use DateTime;
 use DateTime::Format::PDF;

 # Object.
 my $obj = DateTime::Format::PDF->new;

 # Example date.
 my $dt = DateTime->now;

 # Format.
 my $pdf_date = $obj->format_datetime($dt);

 # Print out.
 print "PDF date: $pdf_date\n";

 # Output like:
 # PDF date: D:20240401084337+0000

DEPENDENCIES

DateTime::Format::Builder, Error::Pure, Scalar::Util.

REPOSITORY

https://github.com/michal-josef-spacek/DateTime-Format-PDF

AUTHOR

Michal Josef Špaček mailto:skim@cpan.org

http://skim.cz

LICENSE AND COPYRIGHT

© 2024 Michal Josef Špaček

BSD 2-Clause License

VERSION

0.01