Skip to content

Fixes and improvements (incl. rich tables borders) #416

Open

Description

@gaspardpetit

Hello! Sorry to see this project step out of MIT license.

I had been carrying a set of PDFsharp and MigraDoc changes in my PDFsharp fork. I split the smaller fixes into focused PRs with regression tests so they can be reviewed and cherry-picked individually. The links below are a shortlist, grouped by the kind of change. Some later PRs in the fork are stacked, so their base branch and preceding commits should be checked before cherry-picking. I am sharing them here in case they are useful. The table borders are probably an interesting feature to integrate, and several correctness fixes are probably to.

Many of the other hooks are for customization - I am converting docx to pdf (https://github.com/gaspardpetit/Docxport.Net) and PDFsharp got me 80% there. There were still many cases where I needed to fine tune spacing, word alignment, etc. to mirror a Word pdf export - and this is now mostly achieved.

Thanks for the work over the years!

Correctness

Useful configuration hooks

These are MigraDoc rendering hooks with unchanged default behavior when unused:

Improvements

I checked the currently open PDFsharp PRs and left out overlapping work, including nested composite glyph closure (#349), fully merged table rows (#359), StartFigure (#342), miter limits (#341), and font-cache concurrency (#382). I also left out header/footer render information while #355 is pending. If any shortlist item is already covered elsewhere, please point me to it and I will remove it.

Activity

  1. gaspardpetit commented on Oct 22, 2026

    @gaspardpetit
    Author

    Adding another one to the list:

    /Descent is written from the internal Descender without negating it. The internal metric calculation in OpenTypeFontDescriptor.cs stores descent as a positive magnitude for normal fonts, while the PDF descriptor itself requires a negative value.

    Fixed in gaspardpetit#77

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions