Skip to content

Bump PeachPDF from 0.9.25 to 0.9.26 - #13

Open
dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/nuget/src/OxyKit.Render.Core/PeachPDF-0.9.26
Open

dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/nuget/src/OxyKit.Render.Core/PeachPDF-0.9.26

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Nov 9, 2026

Copy link
Copy Markdown
Contributor

Updated PeachPDF from 0.9.25 to 0.9.26.

Release notes

Sourced from PeachPDF's releases.

0.9.26

PeachPDF 0.9.26 Release Notes

Release date: November 6, 2026
Full changelog: v0.9.25...v0.9.26
Release tag: v0.9.26

This is the last full-support release of the 0.9 series. From the first 0.10.x release (November 13, 2026), 0.9.x is in maintenance: fixes for security vulnerabilities and crashes only, on desktop and server operating systems only. See the support policy.

PeachPDF 0.9.26 adds a host-view layer on top of PeachBrackets: new HtmlView controls for WinUI, Android, macOS and iOS, backed by new Skia and CoreGraphics Canvas implementations, with animations, transitions, SMIL and scroll containers that play on a screen. For PDF output it adds PdfOperation for merging and rewriting existing PDFs, @​page bleed and marks, richer tagged PDF and a US Letter default page. Both audiences get a long list of CSS, layout, HTML parsing and SVG fixes. About 185 commits since 0.9.25 are included.

Install with dotnet add package PeachPDF --version 0.9.26.

The notes are in four parts: PeachPDF users (PDF output), PeachDrawing users (the PeachDrawing.* packages, including the PDF writer), PeachBrackets and screen users (HtmlView and HtmlDocument on a screen), and shared changes that affect them all.

For PeachPDF users (PDF output)

New

  • PdfOperation merges, takes pages from, overlays, attaches to, encrypts and linearizes existing PDFs; the declarative builder can append and prepend existing PDFs. Merged documents keep links, named destinations, form fields and target-counter(..., page) correct.
  • PeachDrawing.PDF gains new APIs (a standalone package): see For PeachDrawing users below.
  • PDF annotation properties, including clickable attached-file icons.
  • @​page bleed and marks: a page that declares them is a larger PDF page, with a TrimBox and BleedBox and crop and cross marks.
  • Tagged PDF: text-only blocks are paragraphs, links carry /Contents, figures take their /Alt from aria-label and aria-labelledby, and table cells and the lang attribute are recorded. PDF/UA output is checked with veraPDF in CI.
  • image-resolution and image-orientation: an image's natural size can come from the density in the file, and EXIF orientation is applied.
  • mask-image: gradient and image mask layers on HTML boxes, through a PDF soft mask.
  • A PdfGenerateConfig with no page size is US Letter. It used to produce a blank page.

Changes that can alter a PDF

  • A closed <details> shows only its <summary>, whatever display its content has.
  • <textarea> is a form control (and an interactive PDF field), and <progress> and <meter> are drawn (ten ems by one em) instead of their fallback text.
  • pointer-events: none on a link writes no link annotation; accent-color tints checked controls and their PDF widget appearances.
  • Page and margin box borders mitre at the corners, and @​page margins in rem use the real root font size.
  • Text is its CSS size at any PixelsPerInch other than 72, and inline SVG matches the 72 rendering at other values (documents rendered at 96 may look different).
  • A document with an image-resolution other than 1dppx sizes its images from the file's density.
  • Fixed: the annotation collector throwing for a box that continues into another column.

For PeachDrawing users

The PeachDrawing.* packages are usable with no PeachPDF reference.

PeachDrawing.PDF (see PeachDrawing.PDF)

  • Existing PDFs: PdfOperation loads a PDF from a file, stream or bytes (LoadFile, LoadStream, LoadBytes, with a password where needed) and chains MergeFile/MergeStream/MergeBytes, TakePages, OverlayFile/UnderlayFile (PdfLayerConfiguration), AddAttachment (PdfFileAttachment), ExtendMetadata, Encrypt/Decrypt/RemoveRestrictions, Linearize and WithCopyMode (PdfCopyMode.Redraw or ObjectCopy), then Save or ToArray, or AppendTo a PdfComposer. PdfPageSelector.Select parses a page selector, PdfPageSource.Open takes a password, and PdfPasswordException reports a missing or wrong one.
  • Writing: PdfComposerOptions.Linearize writes a linearized (fast web view) file, PdfComposerOptions.UAConformance (PdfUAConformance.UA1 or UA2) targets PDF/UA, and PdfComposerPage.SetPrintBoxes(bleedPoints, outsidePoints) sets the TrimBox and BleedBox. PdfComposer.EmbeddedFileNames lists attachments.
  • Tagged PDF: PdfTagRecorder.CheckStructure() returns structure problems as strings; OpenContentElement, OpenGroupingElement and LinkAnnotation take PdfStructureDetails (Id, Alt) and a link contents and target; PdfBookmark.StructureTarget ties an outline entry to the tag tree.
  • Annotations: PdfAnnotationAppearance builds the appearance streams of free text, stamp, line, ink, outline (square or circle) and markup annotations and of icon annotations (PdfAnnotationIcon, including file-attachment icons). PdfAnnotationDefinition gains EmbeddedFileName, PopupOpen, PopupBounds, CreatedAt and ModifiedAt, and PdfFormFieldDefinition gains AccessibleName.
  • Fonts: PdfRenderContext.AddFont returns a ValueTask.

PeachDrawing.Skia is new: a Canvas over SkiaSharp that draws into a surface you supply (CPU or GPU), with a switchable image codec (PeachImage, Skia's, or the default Auto). Shadows, filters, backdrop filters and conic gradients paint as GPU layer effects, and these can differ from the bitmap path by a level or two at edges. See PeachDrawing.Skia.

PeachDrawing.CoreGraphics is new: a Canvas over CoreGraphics for macOS and iOS, with CoreText or PeachDrawing.Text text, Core Image effects and ImageIO or PeachImage decoding. See PeachDrawing.CoreGraphics.

... (truncated)

0.9.26-preview1

PeachPDF 0.9.26-preview1 Release Notes

Release date: November 3, 2026
Full changelog: v0.9.25-preview1...v0.9.26-preview1
Release tag: v0.9.26-preview1

This is a preview of 0.9.26. It adds three packages and a PDF operations API: PeachDrawing.Skia (a SkiaSharp Canvas) and two host views over PeachBrackets, PeachBrackets.WinUI and PeachBrackets.Android, plus PdfOperation for merging and rewriting existing PDFs. PeachBrackets itself gains a public annotation and tagging surface, hover and focus state, form control state, and an accessibility tree. It also closes a long list of CSS gaps: shape-outside, mask-image gradients, image-resolution, @​page bleed and marks, hanging-punctuation, sideways-rl/sideways-lr, the East Asian counter styles, nested column-span: all, the automatic minimum size of flex and grid items, and forced-colors painting. 155 commits are included.

Install the preview with --prerelease (or pin 0.9.26-preview1): dotnet add package PeachPDF --prerelease. The docs site is not updated for a preview.

Highlights

New packages and APIs

  • PeachDrawing.Skia is a Canvas over SkiaSharp that draws into a surface you supply (CPU or GPU), usable with no PeachPDF reference, with a switchable image codec (PeachImage or Skia's). See PeachDrawing.Skia.
  • PeachBrackets.WinUI and PeachBrackets.Android are an HtmlView control for each platform: pointer or touch input, hover and focus state, pointer-events, cursor, touch-action, inert, selection and links, form controls drawn and edited in place, and accessibility patterns (Narrator and TalkBack). See WinUI and Android.
  • PdfOperation merges, takes pages from, overlays, attaches to, encrypts and linearizes existing PDFs; the declarative builder can append and prepend existing PDFs. Merged documents keep their links, named destinations, form fields and target-counter(..., page) correct.
  • An accessibility tree (roles, names, state, table positions, focus order, live-region diffs) is built for assistive technologies, and PDF/UA output is checked with veraPDF in CI. See Accessibility.
  • A PdfGenerateConfig with no page size now defaults to US Letter.

New CSS

  • shape-outside and shape-margin: text follows a float's circle, ellipse, inset, polygon, path() or image shape (with shape-image-threshold).
  • mask-image: gradient and image mask layers apply to HTML boxes.
  • image-resolution and image-orientation: an image's intrinsic size can come from the density in the file (PeachImage 0.7.2), and EXIF orientation is applied.
  • @​page bleed and marks: a larger sheet, TrimBox and BleedBox, and crop and cross marks.
  • hanging-punctuation: first, last, allow-end and force-end.
  • writing-mode: sideways-rl and sideways-lr for HTML and SVG text.
  • East Asian longhand counter styles, such as the Chinese, Japanese and Korean numerals.
  • user-select, caret-color, accent-color, cursor and pointer-events (including links inside inline SVG), and @​media, @​supports, @​container and @​layer nested inside a style rule.
  • @​keyframes: a same-named rule is picked by cascade layer order, a string name is accepted, custom properties animate (discretely when unregistered, by syntax when registered), and stroke-dasharray items of different units mix as calc().
  • Forced colors: the page is drawn in the system palette, gradient backgrounds are dropped and inline SVG fill and stroke take CanvasText.
  • Form controls are drawn with their look for a host that shows the page, including progress bars, meters, textareas, and color, file and date/time inputs; the form-state pseudo-classes match.

Layout

  • Flex and grid apply the automatic minimum size to column flex items and fr tracks, and to items a flex line grows.
  • column-span: all works on a nested descendant of a multi-column container, and a float that does not fit below its column's content moves to the next column.
  • Positioned boxes: an absolutely positioned box among inline content sits at its static position on the line, including in a direction: rtl parent; percentages resolve against the padding box.
  • Floats: a float placed in inline flow takes its margin-top, including a negative one on a first child.
  • Replaced items: no text decoration is drawn under a replaced flex or grid item.
  • Tables, overflow clips, rowspan painting, ::first-line, vertical writing modes, percentage padding and offsets, and many fragmentation cases were fixed (see the full changelog).

SVG

  • An inline <svg> starts from the font size of its HTML parent, takes rem from the HTML root, and px-dependent geometry follows PixelsPerInch.
  • SVG animation starts from the computed value when an attribute is invalid, and initial resolves correctly for font-size, visibility, letter-spacing and word-spacing.

HTML parsing

  • The parser follows the insertion modes, formatting-element (adoption agency) and foreign-content rules of the HTML standard, and font-weight: bolder/lighter resolves once on the declaring element.

Notes for upgrading

  • Under forced colors, gradient backgrounds are not drawn and inline SVG paint is replaced with CanvasText; a url() background image is kept.
  • A float's margin-top now affects where a float in inline flow is placed, so pages that relied on it being ignored can shift.
    ... (truncated)

Commits viewable in compare view.

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

---
updated-dependencies:
- dependency-name: PeachPDF
  dependency-version: 0.9.26
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added .NET Pull requests that update .NET code dependencies Pull requests that update a dependency file labels Nov 9, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file .NET Pull requests that update .NET code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants