bmlt-enabled / bread

BMLT Meeting List Generator Plugin For Wordpress https://wordpress.org/plugins/bread/
https://wordpress.org/plugins/bread/
GNU General Public License v2.0
6 stars 9 forks source link

Feature Request: Provide print options for orientation of second page #95

Open Litwilly opened 5 years ago

Litwilly commented 5 years ago

Would like to be able to set the second page/side to be upside down so that when it's printed using the default setting of most printers it will be correctly oriented. Most printers seem to print 2 sided pages by flipping the page on the long edge by default. The meeting list (in its current format) requires flipping on the short side to produce a correctly formatted two-sided meeting list. If we can generate the second-page upside down, then flipping on the long side of the sheet will produce a correctly oriented meeting list simply by default on most 2 sided printers.

dgershman commented 5 years ago

Print single sided and then flip the page and send it back through.

ChrisMarshallNY commented 5 years ago

I would be careful about making long-edge binding default.

Even though most PERSONAL printers may default to that, most PROFESSIONAL printers would set short-edge binding, and most meeting lists are printed by pros, not home printers.

Litwilly commented 5 years ago

Sorry I might have miss spoke in my description.

I thought it would be a good FR to have a configurable option to set it to either.

Litwilly commented 5 years ago

Print single sided and then flip the page and send it back through.

This is what we are currently doing but in the spirit of the BMLT, "The BMLT is meant to fit YOUR needs; not the other way around." Thought this might be a handy new feature

ChrisMarshallNY commented 5 years ago

Well, please remember that the BMLT runs servers that cover a third of all NA meetings in the world, and is growing combinatorially. Any changes made to the base code needs to be something that addresses needs for ALL users. I have often had to politely decline to add features demand- er...requested by folks (addicts can be...pithy) that wanted something to give them a minor convenience; even though it might trip up hundreds of others. That said, I added a lot of flexibility, so that endpoints could be configured to best Serve the needs of their final users. Adding flexibility can be a good thing (but not always, as it often comes with a few bugs). Also, that said, Bread is not my project, and you guys can best figure out how to make it work best for all its users.

dgershman commented 5 years ago

@litwi1rm that does not mean to say, that every single feature request will be built. That statement might mischaracterize the reality of how software is actually written. I don't know that I agree with that statement either. If that were the case then the BMLT would be a pile of features that one person asked for, instead of a convergence of ideas that were going to help most people. This is not to say your idea is bad, there are more practical ways to solve your issue rather than baked it in as a feature.

dgershman commented 5 years ago

That being said, @otrok7 is the maintainer now of bread, so he can decide the best way to handle this.

Litwilly commented 5 years ago

Appreciate the discussion and all your effort guys, totally understand. If I get time I might dig in myself and submit a PR.

dgershman commented 5 years ago

That’s the best way to get your feature request considered.

On Wed, Jul 24, 2019 at 12:10 PM Ryan Litwiller notifications@github.com wrote:

Appreciate the discussion and all your effort guys, totally understand. If I get time I might dig in myself and submit a PR.

— You are receiving this because you commented.

Reply to this email directly, view it on GitHub https://github.com/bmlt-enabled/bread/issues/95?email_source=notifications&email_token=AAOD3O3DCWDRUNAONFGHN3LQBB5IPA5CNFSM4IGI3L6KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD2W2VBY#issuecomment-514697863, or mute the thread https://github.com/notifications/unsubscribe-auth/AAOD3O76ZXBCFNMNWB423A3QBB5IPANCNFSM4IGI3L6A .

otrok7 commented 5 years ago

I'm going to be adding a few options to make Bread a bit printer-friendlier, e.g. converting automatically to CMYK colors. This sounds like something that could go in the same group of user-options. It depends on how well the underlying PDF engine (mpdf does all the heavy lifting for Bread) supports it. I haven't looked into this yet.

Litwilly commented 5 years ago

Just did a little digging on mpdf and it looks like they don't currently support this, but have an open FR with the help wanted label.

https://github.com/mpdf/mpdf/issues/902

cbonallo commented 6 days ago

Hoping to bring this conversation back around. Not clear if this got added as an option? It looks like mPdf does have a command, mirrorMargins. I noticed in the bmlt-meeting-list.php it's set to false?

Enabling mirrorMargins writes the following to the PDF

/Duplex /DuplexFlipLongEdge

(Confusion sets in as I write this, because it does not appear /Duplex /DuplexFlipShortEdge is the default?!)

Also, I think it is a wrong assumption to say that most people printing the schedule are professionals. Besides, if their default is the same as setting it to short edge when printing trifold/quad, does that not make it irrelevant? If we set it that way for portrait formats, that would be a bad idea. Would only be for landscape oriented meeting lists. It's only a default and can be changed back. However, most members don't know anything about binding edge and the like. They just want to hit print and have it come out right. Same for Actual Size -vs- Fit to page. Again, the default is Fit, yet we all know that margins need to be specific on Trifold so Fit screws up the folding. Setting these options along with the selection of Tri-fold would be a great help!

alanb2718 commented 6 days ago

A problem with providing this, even if it's just a flag that can be set, is that the resulting pdf will be really difficult to preview on the screen.

otrok7 commented 6 days ago

Bread is currently undergoing a major refactoring and is getting to know its TestSuite, so it will be a couple of weeks before there will be any features added. In the meantime, you might try using the "Bread_Mpdf_Init_Options" filter. I'd be interested in knowing which options really fit your use-cases in practice.

cbonallo commented 6 days ago

Since this function is to Print the schedule, shouldn't the print result/ease take precedence?

cbonallo commented 6 days ago

Thanks for the quick reply! Where is the Bread_Mpdf_Init_Options filter located? New to collaboration on GitHub.

otrok7 commented 6 days ago

You maybe noticed, Bread is currently just one big messy undocumented file. That's why I'm refactoring it. Are you familiar enough with WP to write a filter? The API for the function is just function myBreadExt(array mPdfOptions, array breadConfig): array returning the modified mPdfOptions.

cbonallo commented 6 days ago

Nope. But I can learn. I'll look up how to do that. Thanks for your service and the refactor!