Skip to content

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 06 Oct 03:14
· 40 commits to main since this release

What's Changed

Breaking Changes

  • fix!: round a DOM CMYK colour as XColor does, and make XColor.GS mean lightness on every route (#190) @jafin
  • fix!: treat a width-0 chart pen as no line everywhere, and resolve a point's line format one way (#178) @jafin
  • fix!: correct PageSize.Post, Elephant and RA5, and write dates and colours consistently (#181) @jafin
  • feat!: write a field's colours to /MK, and stop asking viewers to rebuild the form (#154) @jafin
  • feat!: separate a merged field before adding a widget, and keep a check box's state on the field (#150) @jafin
  • feat!: make a field collection a read-only list of fields rather than an array (#149) @jafin
  • feat!: list a field's widgets apart from its fields, and never retype one as the other (#148) @jafin
  • feat!: return a PdfSaveCheck from CanSave, make Unit equatable, and write out implicit private modifiers (#114) @jafin

New Features

  • feat: move OpenTypeFontMetadata into core as a public parser and make it FontResolverBase's default (#260) @jafin
  • feat: add XGlyphSegment.QuadraticTo and convert quadratics through it in both glyph-outline providers (#253) @jafin
  • feat: draw a chart line in the custom dash pattern it was given (#217) @jafin
  • feat: check a signature's timestamp token is intact before reporting its time (#219) @jafin
  • feat!: write a field's colours to /MK, and stop asking viewers to rebuild the form (#154) @jafin
  • feat: draw the appearance of a combo box and a list box (#152) @jafin
  • feat!: separate a merged field before adding a widget, and keep a check box's state on the field (#150) @jafin
  • feat!: make a field collection a read-only list of fields rather than an array (#149) @jafin
  • feat!: list a field's widgets apart from its fields, and never retype one as the other (#148) @jafin
  • feat!: return a PdfSaveCheck from CanSave, make Unit equatable, and write out implicit private modifiers (#114) @jafin

Bug Fixes

  • fix: read a field's /DA in time linear in its length (#272) @jafin
  • fix: keep a tagged list open across the page break a footnote is drawn at (#266) @jafin
  • fix: find a button's on state in its widgets, and fold three restatements into what they restate (#268) @jafin
  • fix: deflate a stream only where that makes it shorter, in every writer (#259) @jafin
  • fix: leave a list open across an undescribed chart and anything else drawn as furniture (#254) @jafin
  • fix: read a literal string's escapes from one table in both lexers (#252) @jafin
  • fix: escape a field's name and format when writing DDL (#247) @jafin
  • fix: add and strip a name's solidus in one place, safely on an empty string (#241) @jafin
  • fix: show the inspect demo's numbers in the invariant culture (#243) @jafin
  • fix: keep showing a text markup annotation's redraws after a caller sets its appearance (#213) @jafin
  • fix: draw a chart whose value axis is given equal minimum and maximum (#215) @jafin
  • fix: inherit a text field's /MaxLen, count its characters as a reader does, and drop an appearance a tiny widget cannot hold (#214) @jafin
  • fix: check the whole of /U for a revision 2 user password (#201) @jafin
  • fix: ask the timestamp authority to put its certificate in the token (#203) @jafin
  • fix: keep a series' dash style on a point that sets only its width or colour (#202) @jafin
  • fix: dereference and convert PDF items to scalars one way (#200) @jafin
  • fix: give annotations that draw themselves one appearance lifecycle (#197) @jafin
  • fix: draw column and bar plot areas through one orientation (#196) @jafin
  • fix!: round a DOM CMYK colour as XColor does, and make XColor.GS mean lightness on every route (#190) @jafin
  • fix: make column and bar plot areas agree on what is drawn, and give an exploded pie its gaps (#177) @jafin
  • fix!: treat a width-0 chart pen as no line everywhere, and resolve a point's line format one way (#178) @jafin
  • fix: bound the timestamp authority's response, take a null image quality as the default, and set the SBOM version once (#180) @jafin
  • fix!: correct PageSize.Post, Elephant and RA5, and write dates and colours consistently (#181) @jafin
  • fix: guard the plot-area border, a null value-axis caption and a pie legend's categories (#183) @jafin
  • fix: break a text rule where its dash style changes, and balance an upward text frame's graphics state (#182) @jafin
  • fix: append to a padded file, and stop a cyclic name tree or outline from hanging a page resize (#179) @jafin
  • fix: lay a text field's value out as a viewer edits it (#156) @jafin
  • fix: make XSeries enumerable to LINQ and let outlines be inserted at Count (#144) @jafin
  • fix: enumerate PdfContents and the AcroForm field collection as typed objects (#145) @jafin
  • fix: route the DOM collections' IList members through their typed ones (#143) @jafin
  • fix: read an RC4 /Length above 128 bits as 128 (#139) @jafin
  • fix: open RC4 revision 3 documents whose key is shorter than 128 bits (#138) @jafin
  • fix: text extraction hang, list tagging across sections, area point fill (#137) @jafin
  • fix: draw an arc with no sweep as one curve that stays at its start (#133) @jafin
  • fix: take a stream length that leads back to its own stream for an unknown one (#132) @jafin

Documentation

  • docs: record the #262 to #265 changes in the changelog (#270) @jafin
  • docs: record the #220 to #229 changes in the changelog (#261) @jafin
  • docs: record the DDL field escaping and inspect demo culture fixes in the changelog (#250) @jafin
  • docs: record the forms, text markup and equal-scale fixes in the changelog (#216) @jafin
  • docs: record the last #157 fixes and stop calling the chart renderers copies (#204) @jafin
  • docs: record the charting and annotation refactors' fixes in the changelog (#199) @jafin
  • docs: record the CMYK rounding and grey-scale fixes in the changelog (#191) @jafin
  • docs: show the stacked-chart scale rule and the Code 39 delimiter in the demos (#185) @jafin
  • docs: record the fixes for #157's sub-issues in the changelog (#184) @jafin
  • docs: plan how a field's children and its widgets come apart (#147) @jafin
  • docs: record what LINQ over the public collections gives (#142) @jafin

Other Changes

  • chore: clear the six SonarCloud issues on new code (#273) @jafin
  • refactor: check DOM value names at build time with MDG008 and nameof (#269) @jafin
  • refactor: decide in one place whether a chart pen draws anything (#267) @jafin
  • refactor: read content-stream operands through one helper, in the library and in the tests (#257) @jafin
  • refactor: run column, bar, line, area and combination charts through one CartesianChartRenderer pipeline (#258) @jafin
  • refactor: pick a leaf's renderer by its type rather than by its type's name (#255) @jafin
  • refactor: draw underline and strikethrough through one text rule (#251) @jafin
  • refactor: adopt or flatten an inherited format in one place in VisitorBase (#256) @jafin
  • refactor: write hex, attribute blocks, border widths and field flags one way each (#245) @jafin
  • refactor: map dash styles and look up a colour's document in one place each (#240) @jafin
  • refactor: copy an area provider's render infos into an array in one place (#246) @jafin
  • test: share the page, revision and signing fixtures the tests had copied (#244) @jafin
  • test: restore the text shaper or font fallback a test found rather than clearing it (#242) @jafin
  • chore: set the package metadata the nine packable projects share in one place (#249) @jafin
  • test: pin the chart enumerations the mappers cast across to the DOM's (#248) @jafin
  • test: leave Ghostscript to the module initializer and rasterize lifecycle tests through Rasterizations (#218) @jafin
  • fix: give annotations that draw themselves one appearance lifecycle (#197) @jafin
  • refactor: share the standard security handler's RC4 and key algorithms between reading and writing (#194) @jafin
  • refactor: share the save-and-reopen, rasterize and pixel-count test helpers (#195) @jafin
  • refactor: ask whether a font seam is set in the SampleApp instead of catching what its getter throws (#189) @jafin
  • chore: clear the open SonarCloud issues (#141) @jafin
  • refactor: move the charting sources into folders that match their namespaces (#140) @jafin
  • refactor: reduce cognitive complexity to 9 or below in 237 methods (#136) @jafin
  • refactor: reduce cognitive complexity in the 29 most complex methods (#134) @jafin
  • refactor: reduce cyclomatic complexity in the 103 most complex methods (#131) @jafin
  • chore: changelog for the InspectCode cleanup (#127) @jafin
  • refactor: resolve InspectCode RedundantUsingDirective, PossibleMultipleEnumeration, RedundantCast and eight further rules (#126) @jafin
  • refactor: resolve InspectCode UseSymbolAlias, ConvertToAutoProperty, ConvertToAutoPropertyWhenPossible and MergeIntoLogicalPattern (#123) @jafin
  • refactor: resolve InspectCode ConvertToUsingDeclaration, UseNegatedPatternMatching, ForCanBeConvertedToForeach and eight smaller rules (#124) @jafin
  • refactor: resolve InspectCode field keyword, switch expression, pattern matching and seven further rules (#125) @jafin
  • chore: resolve SonarCloud's new-code findings on main (#122) @jafin
  • refactor: resolve InspectCode collection-expression, out-var, null-propagation and related suggestions (#117) @jafin
  • refactor: resolve InspectCode MergeIntoPattern, if-to-return, ??= and UTF-8 literal suggestions (#116) @jafin
  • refactor: resolve InspectCode ??= and object/collection initializer suggestions (#118) @jafin
  • refactor: resolve InspectCode this-qualifier, built-in type reference and if-brace suggestions (#119) @jafin
  • refactor: resolve InspectCode target-typed new, redundant parentheses and InvertIf suggestions (#121) @jafin
  • ci: refresh the apt index before installing Ghostscript for the docs site (#120) @jafin
  • ci: refresh the apt index before installing Ghostscript (#115) @jafin

Thanks to @jafin for contributing to this release.