Change history for Perl extension PDF::Table.
=== Version 1.004 (2023-01-21)
lib/PDF/Table.pm, lib/PDF/Table.pod, INFO/SPONSORS (new), INFO/Table.html,
MANIFEST
For PDF::Builder ONLY, allow specification of cell 'markup' (Markdown
or HTML), to permit great flexibility in cell content. See PDF::Builder's
examples/Column.pl for an example of usage.
This work (as well as markup changes for PDF::Builder) has been kindly
sponsored by Amtivo Group (see INFO/SPONSORS).
lib/PDF/Table.pm, examples/sample1-size-vsizes.pl
The 'Times' font should be named 'Times-Roman', to conform with the correct
core font naming. PDF::Builder no longer silently accepts 'Times' as an
alias for 'Times-Roman', and now gives a warning.
xt/manifest.t, xt/pod.t, MANIFEST, util/2_t-tests.pl
Move author tests from t/ to xt/
examples/chess.pl
PDF::API2 (PREVIOUS to release 2.044) has a bug in its TTF
handling, where it fails to translate some Unicode points ("U+nnnn" number)
to the appropriate font glyph entry, and instead puts the Unicode point
in the glyph list. This is incorrect, and usually results in a mismapping.
As of PDF::API2 v 2.044, chess.pl seems to be working again.
examples/*.pl
If command line -A or -B, add prefix A_ or B_ to the output file name. This
can be useful when using -A or -B with util/3_examples.pl to generate
different output PDFs for PDF::API2 and PDF::Builder. Keep in mind that an
example given without -A or -B will not add the prefix.
lib/PDF/Table.pm, lib/PDF/Table.pod, INFO/Table.html,
examples/vsizes.pl (new), util/3_examples.pl
Dry run to return vertical size (overall, header, [footer], each row),
no output to PDF, with "ink" set to 0.
lib/PDF/Table.pod (moved), MANIFEST, util/pod2cpanhtml.pl, Makefile.PL
Move .pod up a level (thanks to "perlpunk")
lib/PDF/Table/Table.pod, INFO/Table.html, examples/chess.pl,
INFO/Changes_2019, lib/PDF/Table.pm
Typos caught by lintian (via emollier) and codespell (via mdeweerd).
CONTRIBUTING, MANIFEST add Contribution guide
=== Version 1.003 (2022-07-05)
lib/PDF/Table/ColumnWidth.pm, lib/PDF/Table/Table.pod, examples/size.pl,
MANIFEST, util/3_examples.pl
Add the ability to specify fixed and relative sizes for column widths,
rather than having to accept system-calculated widths. You give a string
to the 'size' optional global setting specifying the absolute width of
a column (in, pt, cm, mm, em, or ex units), and/or a unit of '*' to
indicate remaining space is to be split up among these columns.
lib/PDF/Table.pm, lib/PDF/Table/Settings.pm, MANIFEST
Split out deprecated_settings and check_settings functions into new file.
lib/PDF/Table.pm, lib/PDF/Table/ColumnWidth.pm, MANIFEST, t/PDF-Table.t
Split out CalcColumnWidths function into new file.
examples/chess.pl
PDF::API2 work-around added for font-handling change in 2.043. The problem
is being investigated, but the chess example almost works for now.
lib/PDF/Table.pm, lib/PDF/Table/Table.pod, MANIFEST
Split out documentation into separate POD file.
lib/PDF/Table.pm
Fix handling of degenerate case of header-only, without data rows (#71).
lib/PDF/Table.pm, t/PDF-Table.t
Finish cleanup of column width calculations (#68, #72).
Makefile.PL, LICENSE, MANIFEST.SKIP
Build (at install) META.* with "provides" member. Add separate license file.
Add some items to MANIFEST SKIP file to clean up.
lib/PDF/Table.pm
$LAST_UPDATE changed from 'my' storage class to 'our', so can be accessed
programmatically.
lib/PDF/Table.pm
Absolute minimum with of a column reset to at least $min_col_width (a new
global default) to prevent text_block() width errors.
Update build process to ensure consistent "unix" formatting of most
human-readable files. Some non-CPAN builds were complaining
about MS-DOS format (CRLF line ends) on some files.
lib/PDF/Table.pm, examples/chess.pl, t/PDF-Table.t
Fix handling of max_w [GitHub #68], rewrite column width calculations. This
may result in some noticable changes in column widths from before.
lib/PDF/Table.pm Remove requirement that "empty cell" text not be an
empty string (allow $empty_cell_text to be ''), permitting completely
empty cells.
lib/PDF/Table.pm minor comment updates
README.md, lib/PDF/Table.pm, INFO/Table.html
2022 copyright. NOT archiving Changes yet.
=== Version 1.002 (2020-12-27)
README.md, lib/PDF/Table.pm, Makefile.PL
Miscellaneous updates to clean up support URLs, emails, etc.
util/pod2cpanhtml.pl
Remove use of search.cpan.org CSS reference, as that site no longer exists.
Looking for a good replacement, possibly Bootstrap, that doesn't require
that a phone be turned to landscape orientation in order to read text at
a decent size.
lib/PDF/Table.pm
Cells spanning columns only had the first part (cell) of the bottom
horizontal rule drawn. Reported by "stefanalt". Fixed to draw full spanned
width.
t/PDF-Table.t
One calculated value was considerably different between standard Perl (uses
doubles for floats), long-double Perl, and quad-math Perl. Round the
calculated value to 6 decimal digits so that it works on any system.
=== Version 1.001 (2020-11-05)
lib/PDF/Table.pm fix edge case where no borders led to no rules [GH 55].
t/manifest.t, t/pod.t
Make author-only (AUTHOR_TESTING=1). ref [GH 61]
lib/PDF/Table.pm, t/pod.t
POD change =head5 to =head4, to look better and stop older POD checkers
from complaining (in t/pod.t). Also minimum Test::Pod version 1.52
(was 1.00). ref [GH 61].
examples/sample1.pl, t/lib/TestData.pm, INFO/Deprecated, lib/PDF/Table.pm
Replace deprecated setting names by current names in the POD, examples, and
t-tests. After November 2022, settings names (args) with a leading dash
(hyphen) will no longer be permitted.
=== Version 1.000 (2020-11-03)
INFO/Deprecated, INFO/Table.html, lib/PDF/Table.pm
Final cleanup of POD and generation of HTML documentation, and listing of
all deprecated setting names.
t/lib/PDFAPI2Mock.pm add linedash dummy call so t tests can run.
lib/PDF/Table.pm, MANIFEST, examples/border_rules.pl, util/3_examples.pl
Old "borders" was vertical and horizontal rules PLUS outside rules (frame).
Separate into "borders" (outside) and "rules" (inside). Add border_rules.pl
example to illustrate.
examples/chess.pl with DejaVu-Sans, can use chess piece images
.github/worksflows/test.yml, README.md minor fixes in README to make lint
run happily, stop checking Table.html.
examples/*.pl Allow -A or -B on the command line (case insensitive) to
override PDFpref file (if any) setting. This speeds up testing for PDF::API2
vs PDF::Builder (default).
lib/PDF/Table.pm, INFO/Deprecated, INFO/Table.html, MANIFEST,
examples/chess.pl, t/PDF-Table.t, t/lib/PDFAPI2Mock.pm, util/3_examples.pl
Clean up handling of minimum and maximum cell widths (min_w and max_w).
Clean up handling of background and foreground colors. Add chess.pl example
to show off color handling. Update t-tests for slight coordinate changes.
Add row_props (row properties) similar to column_props, to set things on a
per-row basis.
If the table spills over to a new page, and next_y and/or next_h was NOT
given, issue a warning and for a default use 90% of the media height for
next_y and 80% for next_h (ref ticket #11). This should be better than
using the (start_)y and (start_)h values for the table.
Add new, more consistent aliases for a number of settings (ref ticket #13).
The old setting names are still available for at least TWO YEARS, after
which, they will be REMOVED. Over the next two years you should update your
code to use the new setting names. The settings involved are:
'start_y' is now 'y'
'start_h' is now 'h'
'row_height' is now 'min_rh'
'background_color' is now 'bg_color'
'background_color_odd' is now 'bg_color_odd'
'background_color_even' is now 'bg_color_even'
'font_color' is now 'fg_color'
'font_color_odd' is now 'fg_color_odd'
'font_color_even' is now 'fg_color_even'
'font_underline' is now 'underline'
'lead' is now 'leading'
These are listed in INFO/Deprecated. In the near future, the examples and
t-tests will be updated to use the new setting names.
Ship with Table.html (documentation) in INFO/. Update MANIFEST.
Remove 010_fonts.pl from the util/3_examples.pl list. I'm still not sure why
it should be in the examples -- basically, it shows that UTF-8 doesn't work
with core fonts, but that's already a documented limitation (in
PDF::Builder). 010_fonts.pl is still in the examples/ directory, if anyone
wants to play with it.
Add INFO/Deprecated to list names and interfaces scheduled to be removed in
the future (at least 2 years). MANIFEST updated.
Split out older Changes list into INFO/Changes_2019. MANIFEST updated.
Increase default cell padding to 2pt. See documentation "COMPATIBILITY" for
how to get the old behavior (0pt padding). t/Basics.t, t/Colspan.t,
t/PDF-Table.t expected write locations updated. examples/colspan.pl and
examples/header.pl were widened slightly to accommodate the padding.
Make "odd/even" row consistent with or without a header (repeated or not),
particularly when a table is split across pages, and when a row itself is
split in such a case. See documentation "COMPATIBILITY" for how to get the
old behavior.
Header 'repeat' default changed from 0 (no) to 1 (yes), as most of the time
a user will want to repeat any header on each new page. Suppress repeating
a header with a value of 0. See documentation "COMPATIBILITY" for how to
get the old behavior.
Currently, PDF::Table is shipped to use the new behaviors, with as much
compatibility as possible with existing code (see $compat_mode in Table.pm).
Unless you have need to use the old behaviors for existing code, we
suggest that you leave $compat_mode as 0, use the 'compatibility' setting, or
individually set the flags, to make use of the new behaviors. Also use the
new settings names, unless there is a need for compatibility in existing
code. Eventually, use of the old names will produce warnings, and later,
error messages, but the old behaviors should be available for a long time.
You should examine your existing code and plan to update it over time.
Initialize %arg entries (defaults) so no uninitialized errors. #57 reported by
Larry Leszczynski (larryl) for text_block() along with PR.
Minor build process cleanup
Minor spelling and typo fixes in POD and examples
=== Version 0.12.0 (2020-04-09)
Permit either PDF::API2 or PDF::Builder (#51)
Don't use UTF-8 with corefonts
General cleanup of typos and misspellings in Table.pm
Minimum Perl 5.10 in Makefile.PL (#53)
More cleanup of text in Table.pm
Add tools (util) for running PerlCritic, t-tests, examples
Clean up code to pass PerlCritic
Clean up examples to run with either API2 or Builder. PDFpref file to declare
which to use if both available
Comments in t tests about use of Mock PDFAPI2
Document needed and optional prerequisite modules
(see INFO/Changes_2019 for earlier changes)