Kozea / WeasyPrint

The awesome document factory
https://weasyprint.org
BSD 3-Clause "New" or "Revised" License
7.06k stars 670 forks source link

The future of WeasyPrint #1232

Open grewn0uille opened 3 years ago

grewn0uille commented 3 years ago

Hello!

As you may have noticed, there was some activity on the repo. But no release. Some "the project is no longer maintained by Kozea". But who?

So today is answer-day!

Like it has sometimes been said, a new organization maintains this project: CourtBouillon.

CourtBouillon is composed of @liZe and myself, @grewn0uille.

You can visit our website by starting with this article, and join us on Twitter, Gitter and OpenCollective :)

Have a nice day!

The CourtBouillon Team ๐Ÿฒ

bolatuly commented 3 years ago

First of all thank you so much for a great repo.

I noticed you are working on your own pdf writer in pydyf branch to remove Cairo, may I know is there any plans on release? How stable this branch is now?

grewn0uille commented 3 years ago

Hello!

After the releases last week, we prepared a roadmap for the projects.

You can have a look at it on our website :)

Have a nice day!

The CourtBouillon team ๐Ÿฒ

grewn0uille commented 3 years ago

Hello!

We just published a quick update on where we are on the "get rid of Cairo" part, what has been done and what still needs to be done.

The CourtBouillon team ๐Ÿฒ

grewn0uille commented 3 years ago

Hello!

We just released WeasyPrint 52.2, one of the last release with Cairo! We also released pydyf and so the master branch is now working with it. Cairo version is now on 52.x branch.

You can discover the differences between the two versions on our blog :)

The CourtBouillon team ๐Ÿฒ

grewn0uille commented 3 years ago

Hello!

We sometimes talk about our OpenCollective page. But we never said why we chose OpenCollective nor why donations help to have better software. Itโ€™s finally done in our last article!

The CourtBouillon team ๐Ÿฒ

liZe commented 3 years ago

More information about Cairo and the future of external dependencies: https://github.com/Kozea/WeasyPrint/issues/841#issuecomment-773941914.

grewn0uille commented 3 years ago

Hello!

Thanks to expert Germany, line-clamp has been implemented in WeasyPrint. You can use this property with the master branch and it has also been backported in the Cairo version.

There is a new release (with Cairo) for this new feature! ๐ŸŽ‰

You can read more about this feature in our blog article ๐Ÿ˜‰

The CourtBouillon team ๐Ÿฒ

grewn0uille commented 3 years ago

Hello!

Thanks to Simonsoft, leader() is now implemented in WeasyPrint (only on the pydyf version aka master). You can read more in our blog article ๐Ÿ˜€

Also, we released WeasyPrint 52.4 (with Cairo). This release fixes a crash occuring with line-clamp and makes ellipsis nicer with hyphenation.

The CourtBouillon team ๐Ÿฒ

grewn0uille commented 3 years ago

Hello!

You may know it (or not), this week is the 10 years anniversary of WeasyPrint ๐ŸŽ‰ For this occasion, we just released a beta of version 53!

To know more about this beta, you can read our article ๐Ÿ˜€

Thatโ€™s the first release without Cairo. Please give it a try and donโ€™t hesitate to report the bugs you found ๐Ÿ›

The CourtBouillon Team ๐Ÿฒ

grewn0uille commented 3 years ago

Hello again!

We prepared a short survey (CLOSED) to know more about your needs with WeasyPrint. This survey is open until the end of May. Your answers will help us to improve WeasyPrint!

Thanks for taking time to answer ๐Ÿ˜€

The CourtBouillon Team ๐Ÿฒ

mikerockett commented 3 years ago

I'm so glad that WeasyPrint now supports SVGs in v53. I plan to use the software to create labels with barcodes, and it's just so much more efficient to use an SVG (also reduces file size).

On macOS, I've found v53 to be bug-free so far (using the CLI as I'm interfacing via PHP). The kerning issues appear to be gone, and the output PDF is quite literally perfect in every way.

The only thing I noticed was file size โ€“ but this was due to the font being embedded. A tiny label seems to contain the entire font (Inter), resulting in a 1MB file. For the time being, I am using GhostScript to convert the text to outlines, which results a file less than 10% the original size.

As an aside, I also maintain a Laravel package for WeasyPrint and will need to update it to omit the --format argument, as it is no longer included in v53. It would be nice, however, if it would not produce an error when providedโ€ฆ

Great work on this!

liZe commented 3 years ago

I'm so glad that WeasyPrint now supports SVGs in v53. I plan to use the software to create labels with barcodes, and it's just so much more efficient to use an SVG (also reduces file size).

On macOS, I've found v53 to be bug-free so far (using the CLI as I'm interfacing via PHP). The kerning issues appear to be gone, and the output PDF is quite literally perfect in every way.

Cool! Thanks a lot for the feedback.

The only thing I noticed was file size โ€“ but this was due to the font being embedded. A tiny label seems to contain the entire font (Inter), resulting in a 1MB file. For the time being, I am using GhostScript to convert the text to outlines, which results a file less than 10% the original size.

According to our tests, the new version of WeasyPrint is usually on par or much better than Cairo for PDF size. Is it possible for you to share your document (both HTML/CSS and generated PDF) with us?

As an aside, I also maintain a Laravel package for WeasyPrint and will need to update it to omit the --format argument, as it is no longer included in v53. It would be nice, however, if it would not produce an error when providedโ€ฆ

Deprecated options have been re-added with a deprecation warning (see b476f2f), will be available in versions 53.x, and will probably be removed from version 54.0. (Exception: -f png now raises an error.)

mikerockett commented 3 years ago

Cool! Thanks a lot for the feedback.

You're welcome :)

According to our tests, the new version of WeasyPrint is usually on par or much better than Cairo for PDF size. Is it possible for you to share your document (both HTML/CSS and generated PDF) with us?

I'm quite sure the font data is the issue at hand (the font is also loaded as a system font, not from an external source). That said, I can share the HTML+CSS+PDF with you. Would it be possible for me to send it via email? As much as the document doesn't include confidential information, it is company policy to share privately.

Deprecated options have been re-added with a deprecation warningโ€ฆ

That's great! However, I see that other args have been deprecated or changed, so I may as well have the package make decisions based on the actual version when v53 stable is released. Out of interest, do you know when that might be? ๐Ÿ™ƒ

liZe commented 3 years ago

Out of interest, do you know when that might be?

When all the bugs reported on the current beta are solved :smile:. No date has been fixed yet, but it should happen in a few weeks if no big blocking bug is found.

mikerockett commented 3 years ago

@liZe โ€“ Fair enough, I figured that might be the case. ๐Ÿ˜‰ That said, a few weeks does sound good โ€“ I'm just deciding whether or not to use v52 for our product launch, whereas v53 would be much better.

May I email the sample PDF and code to your courtbouillon.org email address?

liZe commented 3 years ago

May I email the sample PDF and code to your courtbouillon.org email address?

Of course!

grewn0uille commented 3 years ago

Hello!

A new beta of version 53 has been released!

Also, this is a technical changelog to know everything about what is going to change with version 53 ๐Ÿ˜„

The CourtBouillon Team ๐Ÿฒ

mpth commented 3 years ago

It has been a few weeks now and I'm super curious how far away we are from a stable version.

Can't wait to leave wkhtml2pdf behind ๐Ÿ˜…

AlexanderNeilson commented 3 years ago

@grewn0uille I am looking at being in a position to test my use cases / templates against this system next week (currently finishing a sprint not touching any PDF code). Is the plan still at this stage to not release another beta? or if that has changed have you got any indication of when you are thinking of rolling a b3? or an rc?

grewn0uille commented 3 years ago

Hello @mpth, hello @AlexanderNeilson!

The plan still to not release another beta. And we plan to release version 53 in July ๐Ÿ˜€

mpth commented 3 years ago

Awesome ๐Ÿ˜Š

grewn0uille commented 3 years ago

Hello!

The results of the survey are finally here! Please have a look at our last article to discover the answers and the most upvoted features ๐ŸŽ‰

The CourtBouillon Team ๐Ÿฒ

grewn0uille commented 3 years ago

Hello!

Version 53 of WeasyPrint has been released ๐ŸŽ‰!

Thanks a lot to all the people who gave a try to the betas, it really helped ๐Ÿ’œ.

โš ๏ธ: this version needs Pangoโ€ฏโ‰ฅโ€ฏ1.44.0. If the version of Pango provided by your distribution is too old, you can use version 52.5 which does not need recent Pango features.

The CourtBouillon Team ๐Ÿฒ

mikerockett commented 3 years ago

Amazing, thank you! Managed to get it working smoothly in an alpine CI environment :-)

grewn0uille commented 3 years ago

Hello!

WeasyPrint website just has a small rework, and alsoโ€ฆ new samples are available!

The CourtBouillon Team ๐Ÿฒ

Thorbenl commented 3 years ago

@grewn0uille We would really like to continue with Weasy for the future, but our modern layouts need flexbox . I was wondering what is behind the decision of not implementing such a modern browser feature? I can understand grid and all that new fancy stuff not being there, but flexbox is widely adopted. :)

Greetings

astrojuanlu commented 3 years ago

@Thorbenl worth opening a separate issue for that?

Thorbenl commented 3 years ago

@astrojuanlu There have been several in the past I can see, and it sort of covers what we experienced: https://github.com/Kozea/WeasyPrint/issues?q=is%3Aissue+is%3Aopen+flexbox+

Edit: Please dont get me wrong, WP is still amazing. :) I would also be up for helping if necessary, I have opened this issue a fwe days ago: https://github.com/Kozea/WeasyPrint/issues/1427 The solution was the removal of display: flex from the parent div, as seen here: https://github.com/Kozea/WeasyPrint/issues/1427#issuecomment-905393668

And we have experienced similiar things since then.. and it just sadly limits us, and we also think it is sort of mandatory to support such a widely adopted property.

liZe commented 3 years ago

I was wondering what is behind the decision of not implementing such a modern browser feature? I can understand grid and all that new fancy stuff not being there, but flexbox is widely adopted. :)

The main reason is the lack of time and money. Nothing unusual :smile:.

Having a good support of Flexbox requires a lot of work, including the 8-year-old #36 bug. As we donโ€™t work (yet?) full time on WeasyPrint, it takes time. CSS is quite easy to use, but quite complex to implement, as you can imagine.

A better Flexbox support is in the roadmap, as explained in the WeasyPrint survey article. So, it may come in the next version, that will be released โ€ฆ when it is ready :wink:. When a bug is 8 years old, it means that its complexity requires many weeks or months of hard work to be solved. And solving this bug is just a requirement for a good support of Flexbox and Grid, we need even more work to implement these layouts.

Soโ€ฆ Donโ€™t hesitate to help us by opening bug reports and pull requests, or by joining our OpenCollective campaign. Weโ€™ll do our best to provide a nice Flexbox support soon.

Thorbenl commented 3 years ago

I was wondering what is behind the decision of not implementing such a modern browser feature? I can understand grid and all that new fancy stuff not being there, but flexbox is widely adopted. :)

The main reason is the lack of time and money. Nothing unusual ๐Ÿ˜„.

Having a good support of Flexbox requires a lot of work, including the 8-year-old #36 bug. As we donโ€™t work (yet?) full time on WeasyPrint, it takes time. CSS is quite easy to use, but quite complex to implement, as you can imagine.

A better Flexbox support is in the roadmap, as explained in the WeasyPrint survey article. So, it may come in the next version, that will be released โ€ฆ when it is ready ๐Ÿ˜‰. When a bug is 8 years old, it means that its complexity requires many weeks or months of hard work to be solved. And solving this bug is just a requirement for a good support of Flexbox and Grid, we need even more work to implement these layouts.

Soโ€ฆ Donโ€™t hesitate to help us by opening bug reports and pull requests, or by joining our OpenCollective campaign. Weโ€™ll do our best to provide a nice Flexbox support soon.

Thanks a lot for the in-depth answer. I am always curious, what lays behind such decisions, because I know its for sure never "we dont want to do it" :)

I will see what I can do to help out on supporting these nifty handy css properties! Cheers!

grewn0uille commented 2 years ago

Hello!

Today itโ€™s been one year since we launched CourtBouillon ๐Ÿ˜ฒ

What happened during this year? Letโ€™s discover it in this rewind!

The CourtBouillon Team ๐Ÿฒ

mpth commented 2 years ago

Congrats ๐ŸŽ‚ ๐Ÿฒ๐Ÿป๐Ÿ’๐Ÿฅณ

And thanks for all the work you've put into the project this year.

Very excited about the future of WeasyPrint.

grewn0uille commented 2 years ago

Hi!

Thanks to the financial support of Code & Co., WeasyPrint now supports footnotes ๐ŸŽ‰.

A beta has been released! Please give it a try and donโ€™t hesitate to report the bugs you found ๐Ÿชฒ.

This beta also contains support for parallel flows, colored emojis and moreโ€ฆ You can have a look at our last article to know more about this beta ๐Ÿ•ต๏ธ.

The CourtBouillon team ๐Ÿฒ

grewn0uille commented 2 years ago

Hi!

WeasyPrint v54.0 has just been released ๐ŸŽ‰ Thanks to the financial support of Code & Co., WeasyPrint now supports footnotes!

If you want to know more about footnotes and how to use it, you can read our latest article.

With this release, WeasyPrint now also supports parallel flows, which means #36 is finally closed ๐ŸŽŠ Other new features are included, like support for SVG and PNG emojis, overflow-wrap: anywhereโ€ฆ and of course bug ๐Ÿ› fixes.

If youโ€™re interested in sponsoring new features, donโ€™t hesitate to contact us โ˜บ๏ธ. You can also help the project to grow and become better by becoming a sponsor!

The CourtBouillon Team ๐Ÿฒ

grewn0uille commented 2 years ago

Hello!

The next major version of WeasyPrint, v55, is on the point of been released ๐ŸŽ‰!

To help us having a nice release, please have a try to the related beta and donโ€™t hesitate to report the bugs you find ๐Ÿž.

This version is mainly about performance improvements, to know more about it, you can read our latest article!

The CourtBouillon Team ๐Ÿฒ

grewn0uille commented 2 years ago

Hello all!

WeasyPrint v55.0 has been released ๐ŸŽ‰

Thanks to everyone who participated in this release ๐Ÿ’œ

This version provides enhancements in different fields:

You can read our last article to know more about this release and have some insights of what is coming ๐Ÿ˜‰

You want to sponsor new features or need a hand for using WeasyPrint? Donโ€™t hesitate to contact us ๐Ÿ˜„ You want to help the project to grow? You can become a sponsor!

The CourtBouillon Team ๐Ÿฒ

grewn0uille commented 2 years ago

Hello everyone!

WeasyPrint got a new beta ๐Ÿš€!

Thanks to financial support of Expert Germany and Blueshoe ๐Ÿ’œ, WeasyPrint has new features:

To know more about this release, you can read our article.

Donโ€™t hesitate to give this beta a shot, report bugs you may found and help WeasyPrint to have a nice and clean v56 ๐Ÿฆ‹!

The CourtBouillon Team ๐Ÿฒ

grewn0uille commented 2 years ago

Hi!

WeasyPrint v56.0 has been released ๐ŸŽ‰!

What will you find in this version?

This features have been possible thanks to the financial support of Expert Germany and Blueshoe ๐Ÿ’œ.

If you want to know more about this release, donโ€™t hesitate to read our blog article!

You want to sponsor new features or need a hand for using WeasyPrint? Donโ€™t hesitate to contact us ๐Ÿ˜ผ You want to help the project to grow? You can become a sponsor!

The CourtBouillon Team ๐Ÿฒ

grewn0uille commented 2 years ago

Hi everyone!

Itโ€™s soon CourtBouillon 2-year anniversary and so we thought itโ€™s the perfect opportunity to ask you about how you use our products, like WeasyPrint, and what do you expect for the following!

In order to do that, we prepared this short survey!

The survey will be opened until October 10th.

Thanks for taking the time to answer ๐Ÿ’œ

The CourtBouillon Team ๐Ÿฒ

grewn0uille commented 1 year ago

Hi there!

A new beta for WeasyPrint has been released!

Thanks to financial support of Novareto, Code & Co., OpenZeppelin and our sweets backers and sponsors, you can now try:

You can know more about this beta in our last article.

Donโ€™t hesitate to try this beta and report bugs you found!

The CourtBouillon Team ๐Ÿฒ

grewn0uille commented 1 year ago

Hello!

Today is CourtBouillonโ€™s 2-year anniversary ๐ŸŽ‰

If youโ€™re interested in knowing what happened during this year, what weโ€™re up to for the next year and our source of income, you can have a look at our last article โœจ๏ธ!

The CourtBouillon Team ๐Ÿฒ

grewn0uille commented 1 year ago

Hello!

WeasyPrint v57.0 has been released ๐ŸŽ‰!

What will you find in this version?

This features and improvements have been possible thanks to the financial support of Novareto, Code & Co., OpenZeppelin and our Opencollective backers and sponsors ๐Ÿ’œ.

If you want to know more about this release, donโ€™t hesitate to read our blog article!

You want to sponsor new features or need a hand for using WeasyPrint? Donโ€™t hesitate to contact us ๐Ÿ˜Š

The CourtBouillon Team ๐Ÿฒ

grewn0uille commented 1 year ago

Hello there!

A new beta of WeasyPrint has been released ๐ŸŽ‰

Thanks to the financial support of Personalkollen, PDF forms are now supported in WeasyPrint.

You can have a look at this article to know more about the beta.

Donโ€™t hesitate to try this beta and report bugs you may found ๐Ÿž

The CourtBouillon Team ๐Ÿฒ

grewn0uille commented 1 year ago

Hi!

WeasyPrint v58.0 has been released ๐ŸŽ‰!

This new version includes:

Donโ€™t hesitate to read our article to know more about this new version ๐Ÿ‘€.

The CourtBouillon Team ๐Ÿฒ

grewn0uille commented 1 year ago

Hello there!

A new WeasyPrint beta has been released ๐ŸŽ‰!

Thanks to the financial support of Code & Co., the size of the PDFs generated by WeasyPrint is reduced. New options have been added and some changes have been made to the API โš ๏ธ.

You can read our last article to know more about this new beta.

Donโ€™t hesitate to try this beta and report bugs you may find ๐Ÿ›.

The CourtBouillon Team ๐Ÿฒ

grewn0uille commented 1 year ago

Hello!

WeasyPrint v59.0 has been released ๐ŸŽ‰!

Thanks to the financial support of Code & Co., WeasyPrint can now generate smaller PDFs.

The API got some changes โš ๏ธ.

If you want to know more about this new version, you can have a look at our last article ๐Ÿค“.

The CourtBouillon Team ๐Ÿฒ

grewn0uille commented 11 months ago

Hello!

WeasyPrint v60.0 has been released ๐ŸŽ‰!

This new version comes with a lot of bug fixes and new features. Discover everything about this release in our article!

And welcome to all the new contributors on this new release ๐Ÿ’œ

The CourtBouillon Team ๐Ÿฒ

grewn0uille commented 11 months ago

Hello!

Today is CourtBouillonโ€™s 3-year anniversary ๐ŸŽ‰

If youโ€™re interested in knowing what happened during this year, what weโ€™re up to for the next year and our source of income, you can have a look at our last article โœจ๏ธ!

We also prepared a short survey to have your opinion about this yearโ€™s features and to know what youโ€™d like to see in the future! The survey is opened until November 19.

The CourtBouillon Team ๐Ÿฒ

grewn0uille commented 7 months ago

Hello!

WeasyPrint v61.0 has been released ๐ŸŽ‰

This new version adds support for var() everywhere, fixes a lot of bugs andโ€ฆ comes with a Windows executable! Discover everything about this release in our article.

And welcome to all the new contributors on this new release ๐Ÿ’œ

The CourtBouillon Team ๐Ÿฒ

grewn0uille commented 4 months ago

Hi!

WeasyPrint v62.0 has been released ๐ŸŽ‰

Thanks to the financial support of a nice anonymous company, WeasyPrint now supports Grid layout ๐ŸŽ‰ This version also comes with CSS nesting support, and more!

If you want to know everything about this release, donโ€™t hesitate to read our article ๐Ÿ—ž๏ธ

The CourtBouillon Team ๐Ÿฒ