borb is a library for reading, creating and manipulating PDF files in python.
This release is a feature release:
LayoutElement
framework has had a major upgrade
LayoutElement
now offers a get_layout_box
method which tells you how much space a LayoutElement
takes upLayoutElement
now offers a paint
method which renders the LayoutElement
on a Page
LayoutElement
only adds its own content to the Page
(previously it would change the order of page content to ensure backgrounds get drawn first)HexColor("00ff00")
, which allows me to add the date of the test in the output, and still compare only the relevant pixelsMarkdownToPDF
has been refactored to convert Markdown
to HTML
HTMLToPDF
still needs work to produce PDF documentsThis release is a small bugfix release:
Checkbox
to produce valid PDF syntaxProgressBar
and ProgressSquare
classes to make it easier to make reportsTableUtil
and TableUtil.from2DArray
to make it easier to build tablesThis release is a small bugfix release:
'
as a valid postfix operator (improve text reading by 2%)This release is a feature release.
Font
subsetting in PDFTextField
appearance dictionaryCheckBox
appearance dictionaryThis release is a feature release.
tests
and doc
) from the buildThis release is a feature release.
append
methodes to add
for the sake of consistencyheader_footer_multi_column_layout
to enable a PageLayout
with repeating header and footerBoxLayout
header_row_color
option to even_odd_row_colors
method in Table
This release is a small bugfix release.
RunLengthDecode
ImageTransformer
to allow reading (JPEG) images, even when the /Type
and /Subtype
entry are not setDocumentInfo.get_file_size()
This release is a small bugfix release.
LZWDecode
FarrowAndBall
color definitionsThis release is a small feature release.
TextAnnotation
.borb
was built to adhere to iso32000.
Most notable difference is the embedding of the standard 14 fonts. I made a separate profile that checks only against the iso32000 spec.CheckBox
should be debugged. The validator marks it as a bad PDF.multiplied_inter_column_spacing
in MultiColumnLayout
.x or Decimal(y)
evaluates to Decimal(y)
when x == Decimal(0)
. This was unintended. I only wanted it to evaluate to Decimal(y)
when x is None
. I fixed all unwanted occurrences. This mostly affected the LayoutElement
classes.Alignment
to easy importsLoremIpsum
class to quickly generate dummy text (using a markov chain)This release is a small feature release.
Page.apply_redact_annotations
mypy
warnings