New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 99358 link

Starred by 119 users

Issue metadata

Status: Fixed
Owner:
NOT IN USE
Closed: Dec 2015
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Bug

Blocked on:
issue 447718



Sign in to add a comment

-webkit-column-count and printing

Reported by theevanc...@gmail.com, Oct 6 2011

Issue description

Chrome Version       : 15.0.871.0
OS Version: Linux & Windows tested -- same problem

What steps will reproduce the problem?
1. Open up error.html, observe the screen with two columns
2. Print
3. Single columned results

What is the expected result?
The browser should print two columns like it presents to the user on the screen.

What happens instead?
One column is printed as if the -webkit-column-count directive was not present at all.

Please provide any additional information below. Attach a screenshot if
possible.
This used to work in Chrome 14.

UserAgentString: Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.2 (KHTML, like Gecko) Ubuntu/11.04 Chromium/15.0.871.0 Chrome/15.0.871.0 Safari/535.2
 
error.html
2.4 KB View Download
Labels: Action-FeedbackNeeded
Do you get the same problem on Safari? Other browsers?

Comment 2 by Deleted ...@, Nov 29 2011

Just to confirm: The same problem exists on Safari 5.1.1 / Snow Leopard.
Labels: -OS-Linux -Area-Undefined -Action-FeedbackNeeded OS-All Area-WebKit
Labels: -Type-Bug Type-Regression
Owner: thestig@chromium.org
Status: Untriaged
I'll try to track down where this regressed.
Labels: -Type-Regression Type-Bug Feature-Printing
Owner: ----
I tried this in 13.x and 14.x - it did not print as two columns there either. Searching the internet, it sounds like this never worked right in previous versions.
I don't believe that is true. I believe it used to work fine in earlier versions (14.x). I used this in production successfully for quite some time.
Well, error.html as provided didn't work for me on Linux.

Other people indicate the same for older versions of Google Chrome:

http://stackoverflow.com/questions/2814305/css-columns-and-printing
http://blog.pdark.de/2010/11/19/printing-web-pages/

Comment 8 by kareng@google.com, Jan 24 2012

mike these look like CSS please unassign urself if they are not.

Comment 9 by kareng@google.com, Jan 24 2012

Owner: mikelawther@chromium.org
Status: Assigned
mike these look like css, please unassign urself if they are not.
Looks like printing of columns has always been disabled: https://www.webkit.org/blog/88/css3-multi-column-support/#comment-16854
Yeah that's a duplicate.
Cc: dglazkov@chromium.org
 Issue 80008  has been merged into this issue.
Project Member

Comment 14 by bugdroid1@chromium.org, Mar 10 2013

Labels: -Area-WebKit -Feature-Printing Cr-Content Cr-Internals-Printing
Still not fixed? -.-
Project Member

Comment 16 by bugdroid1@chromium.org, Apr 6 2013

Labels: -Cr-Content Cr-Blink
Mike, any updates here?
pls. fix this issue
Can't believe this is still not fixed.
It could be great to print correctly our Dart cheat sheet ;)
http://dartlangfr.net/dart-cheat-sheet/

Comment 21 by Deleted ...@, Jul 18 2013

Still not fixed.

Comment 22 by Deleted ...@, Jul 28 2013

still not fixed
I checked out the code for Chromium from SVN and commented out the lines at 5488-5491 of file  third_party/WebKit/Source/core/rendering/RenderBlock.cpp and as far as I can see it now prints columns as expected.  A bunch of tests broke, but as far as I can tell they didn't pass before I made the change.  See the following discussion:

https://groups.google.com/a/chromium.org/forum/?fromgroups#!searchin/chromium-dev/column$20printing/chromium-dev/X5oNSwjybWM/BOosq6IlvR0J


Comment 24 by zxur...@gmail.com, Aug 19 2013

is there a target version where this is expecting to be fixed? I'd rather not have to redesign my layouts for printing for a single chrome issue.

Comment 25 by Deleted ...@, Dec 5 2013

Not fixed yet. 

Comment 26 by pdr@chromium.org, May 16 2014

Cc: mikelawther@chromium.org msten...@opera.com
Owner: ----
Status: Available

Comment 27 by msten...@opera.com, May 19 2014

The tricky part here is that for printing, we need the multicol implementation to support multiple rows, so that you don't have to flip through all pages first to read the first column, and then start at the first page again and flip through all pages again to read the second column. This is basically why multicol is disabled for printing.

I intend to implement this for new multicol, but no ETA yet.
In the meantime, it would be nice if it could tell if the content would fit on one sheet and go ahead and render the columns if so.
Hi, any progress regarding this? Would be very useful feature, thanks!

Comment 30 by Deleted ...@, Oct 6 2014

Just started to use multi columns to replace hard to balance tables, bit strange to ask customers to use IE11 rather than Chrome to print - but the results are worth the other IE11 issues.

Comment 31 Deleted

Nice! is the patched version already somewhere so I can test it?

Thanks a lot!
Any news?

thanks

Comment 34 by Deleted ...@, Jan 26 2015

Fix that already, will ya? :/

Comment 35 by msten...@opera.com, Jan 26 2015

Unfortunately, this still isn't implemented, although it has by no means been forgotten about.

But please keep the pings coming, so that we can show to everyone that people care about this. :)
Not just a ping, but use case not related to printing to paper at all: I can’t use multiple columns in my Shower presentation engine themes as the one of the great features it offers is PDF export via “Print to PDF” dialog in Chrome or Opera.

https://github.com/shower/shower/

Comment 37 by xska...@gmail.com, Jan 26 2015

A lack of pings might suggest people moving to a browser that does support this, Firefox. Solved it for me, though having it in chrome would be ultimate.

Comment 38 by bo...@theday.co.uk, Jan 26 2015

I have the same problem. Column support is pretty poor in Chrome all round, but this issue means I've had to avoid print support completely for the moment. Waiting for it to be fixed until I can.

Comment 39 by xska...@gmail.com, Jan 26 2015

If you're desperate, you can try an HTML to canvas JavaScript library to render a print-ready version.
Blockedon: chromium:447718

Comment 41 by Deleted ...@, Mar 14 2015

Desperately need function. Sad to see that this has has not been implemented yet :(

Comment 42 by msten...@opera.com, Mar 24 2015

Labels: -Cr-Blink Cr-Blink-Layout-MultiCol

Comment 43 by jo...@jencast.com, Mar 24 2015

Still printing in IE due to lack of support for this...

Comment 44 by Deleted ...@, Mar 24 2015

We've now resorted to using an HTML->PDF library to auto-generate PDFs which can be downloaded and printed. Of course, this is a horribly ugly 'solution', but it has the advantage that we have something to display (a 'download PDF' link) to people who don't understand that web pages can be printed. Unfortunately, bugs such as this one mean we're going to have to keep such hacks around for a while to come and this becomes a viscous circle.

Comment 45 by Deleted ...@, Apr 8 2015

But the best HTML->PDF library I've seen is in fact wkhtmltopdf, which uses webkit so has the same issue...
Would be great to use wkhtmltopdf with columns.
bobbyj, I am working on an HTML to PDF project right now and need the multi-col layout to print. If you don't mind, what library are you using for this? Thanks!
The best solution I've found is columnizer.js for multi-col + wkhtmltopdf for print.

http://welcome.totheinter.net/columnizer-jquery-plugin/
http://wkhtmltopdf.org/

Comment 49 by ndm0...@gmail.com, May 12 2015

This is terrible - this bug has been around for almost 4 years!  It's one of those things you don't think about until you suddenly really, REALLY need it!
Looking for fix, like described here: https://groups.google.com/a/chromium.org/forum/?fromgroups#!searchin/chromium-dev/column$20printing/chromium-dev/X5oNSwjybWM/BOosq6IlvR0J

but can't find any code in actual chromium code, that checking printing mode and multi-column layout

Want to make printable columns, cause I have only one page and don't worry about that page-breaks

does anyone knows where to fix printing columns?

The UA stylesheet (Source/core/css/html.css) has this:

@media print {
    * { -webkit-columns: auto !important; }
}

This is what disables multicol for printing when using the new multicol implementation (enabled by default in Chrome 45, behind the experimental web platform features flag in Chrome 44). So you either need to remove that, or use "!important" in your author style sheets.

Printing multicol will fail miserably if the multicol container crosses page boundaries - which is why we attempt to disable it.
Thank you for pointing. Trying to use !important on my styles in normal and @media print section, but it seems not working in Chrome Canary 45.0.2424.0 canary (64-bit) on OS X and Ubuntu 14.04

What flag do I need set up in Chrome 44?  
--enable-experimental-web-platform-features command line flag (or enable experimental web platform features in chrome://flags )
With that flag I see UA styles for printing in Chrome 45 and 44.

I'm looking at Dev tools media override, set up "print" media, and see strange things

Chrome 45 - UA styles can't be overridden in any way, styles showing that mine rules was applied, but at Computed tab i see UA values (auto). And no effect for print at all, text rendered just like without columns

Chrome 44 - UA styles overridden, styles / computed showing me mine values, but rendering completely broken, some paragraph disappeared, some rendered on top of others

Still building chromium (blink) without that UA rules
Yes, this is (not) working as intended. Multiple column printing is not nearly ready for prime time.
It's working as I need in custom build without 
@media print {
    * { -webkit-columns: auto !important; }
}

and it's working with Chrome 44 (beta),  (still not with Canary, it doesn't allow to override UA styles)

Had bad override styles in previous comment

Thanks for helping
Blocking: chromium:498751
Cc: bauerb@chromium.org msrchandra@chromium.org smokana@chromium.org
 Issue 498751  has been merged into this issue.
Blocking: -chromium:498751

Comment 60 by Deleted ...@, Sep 7 2015

Will this ever be fixed?
Probably soonish. See  issue 447718  which tracks the progress of nested multiple column support, which is a prerequisite to printing multiple column (which is one of the goals of the developer that is working on it).
Yes. Very keen for a fix. We use html and a pdf converter to create documents to send to clients. I was horrified to find out that the css column feature did not work in the Chrome browser, but worked perfectly in IE11, FF and Safari. I do not want to force my users to switch to IE.

Comment 63 Deleted

Comment 64 by Deleted ...@, Sep 13 2015

Columns are fundamental form of layout. Workarounds like Flex or Tables do not suffice. Many of us have been waiting for Chrome to support them, for printing as well.

We understand that page breaks and columns requires "forward" looking algorithms. As with regular expressions, it's complex, but not complicated. We'll be grateful forever of you will support columns as soon as you can.

Comment 65 by ndm0...@gmail.com, Sep 14 2015

I don't know how to, or if I can, request a merger, but it honestly seems like this question should merge with 447718, as it EXPLICITLY says that this issue derives from it.
They are should not be merged, as they are not the same problem. This issue is marked as blocked on #447718, which is correct.

Comment 67 by e...@chromium.org, Sep 15 2015

Owner: msten...@opera.com
Status: Assigned

Comment 68 Deleted

Comment 69 by phistuck@gmail.com, Sep 29 2015

@Comment 68 -
You can find out by actually fixing it.

Comment 70 by Deleted ...@, Oct 18 2015

Still not fixed on Safari, Chrome on print, but working on screen... on FF, it's perfect...

Comment 71 Deleted

Comment 72 by myk...@gmail.com, Oct 18 2015

Yes, unfortunate...we've had to resort to spawning IE11 to print documents within our Electron-based app. FWIW, our use case only requires printing to work properly for columns within a fixed width, fixed-height, absolute-positioned DIV that will never cross page boundaries. I presume this might be simpler to solve and support initially?
Our business SAAS application makes heavy use of multi-column printing.  We have to direct everyone who uses our software to IE or Firefox.

I hope that the Safari and Chrome teams address this someday.  I like both products, and I do not like having to steer our customers away from them.
It is hard to believe that this issue is not fixed 4 years :( Hope soon it will be fixed.
There are commits that reference this bug coming in thick and fast at the moment, so it looks like it's being actively worked on.

Comment 76 by Deleted ...@, Dec 2 2015

So many years... this issue still open. Any ETA for a solution?
Rob can you please give a link to those commits if it has a public one?
Go to  issue 447718 , where you can find the commits.
Like this issue mentions, this issue is blocked on  issue 447718 , so resolving that is halfway (or more) to resolving this issue.
Cc: -smokana@chromium.org
Removed a dead e-mail.
ETA: next week.

Attaching teaser from the lab. :)
DSC_2402.JPG
2.7 MB View Download
@papp.robert.s yes, sorry, it was  issue 447718  that I've been seeing the commits on, but as phistuck says, progress on 447718 is progress on this issue too.

@msten, looking good there! :)

Yaay, 447718 is marked fixed!
Project Member

Comment 83 by bugdroid1@chromium.org, Dec 9 2015

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/562a7409200d3bffd2e1270e227e36d87724a07c

commit 562a7409200d3bffd2e1270e227e36d87724a07c
Author: mstensho <mstensho@opera.com>
Date: Wed Dec 09 00:22:43 2015

Add support for printing multicol containers, and enable it.

Introduce an abstract class FragmentationContext, which is either implemented
by LayoutMultiColumnFlowThread for multicol, or by the new
ViewFragmentationContext class, which is attached to a LayoutView when
printing. This way it will act as an enclosing fragmentation context for a
multicol container in the document. This is similar to how an outer multicol
container acts as an enclosing fragmentation context for an inner multicol
container.

The multicol flow thread implementation will now obtain and use a
FragmentationContext when attempting to locate its enclosing fragmentation
context, rather than only looking for another flowthread up there (and assume
that it's not nested if none was found). A big part of this CL is to teach the
multicol implementation about this, which means that there are quite a few
mechanical changes from enclosingFlowThread() (and LayoutMultiColumnFlowThread
method calls) to enclosingFragmentationContext() (and FragmentationContext
method calls).

Replaced an old printing test that tested that multicol didn't work, with one
that tests that multicol does work. :)

Also added another test that splits a multicol container over two pages.

BUG= 99358 
R=leviw@chromium.org

Review URL: https://codereview.chromium.org/1492143002

Cr-Commit-Position: refs/heads/master@{#363838}

[modify] http://crrev.com/562a7409200d3bffd2e1270e227e36d87724a07c/third_party/WebKit/LayoutTests/inspector/elements/styles-2/media-emulation-expected.txt
[add] http://crrev.com/562a7409200d3bffd2e1270e227e36d87724a07c/third_party/WebKit/LayoutTests/printing/multicol-2-pages-expected.html
[add] http://crrev.com/562a7409200d3bffd2e1270e227e36d87724a07c/third_party/WebKit/LayoutTests/printing/multicol-2-pages.html
[add] http://crrev.com/562a7409200d3bffd2e1270e227e36d87724a07c/third_party/WebKit/LayoutTests/printing/multicol-expected.txt
[delete] http://crrev.com/0d44481c7e4ca8ec0d58651d06a35a981f8b061f/third_party/WebKit/LayoutTests/printing/multicol-not-supported-expected.txt
[delete] http://crrev.com/0d44481c7e4ca8ec0d58651d06a35a981f8b061f/third_party/WebKit/LayoutTests/printing/multicol-not-supported.html
[add] http://crrev.com/562a7409200d3bffd2e1270e227e36d87724a07c/third_party/WebKit/LayoutTests/printing/multicol.html
[modify] http://crrev.com/562a7409200d3bffd2e1270e227e36d87724a07c/third_party/WebKit/Source/core/core.gypi
[modify] http://crrev.com/562a7409200d3bffd2e1270e227e36d87724a07c/third_party/WebKit/Source/core/css/html.css
[modify] http://crrev.com/562a7409200d3bffd2e1270e227e36d87724a07c/third_party/WebKit/Source/core/layout/ColumnBalancer.cpp
[add] http://crrev.com/562a7409200d3bffd2e1270e227e36d87724a07c/third_party/WebKit/Source/core/layout/FragmentationContext.h
[modify] http://crrev.com/562a7409200d3bffd2e1270e227e36d87724a07c/third_party/WebKit/Source/core/layout/LayoutMultiColumnFlowThread.cpp
[modify] http://crrev.com/562a7409200d3bffd2e1270e227e36d87724a07c/third_party/WebKit/Source/core/layout/LayoutMultiColumnFlowThread.h
[modify] http://crrev.com/562a7409200d3bffd2e1270e227e36d87724a07c/third_party/WebKit/Source/core/layout/LayoutMultiColumnSet.cpp
[modify] http://crrev.com/562a7409200d3bffd2e1270e227e36d87724a07c/third_party/WebKit/Source/core/layout/LayoutView.cpp
[modify] http://crrev.com/562a7409200d3bffd2e1270e227e36d87724a07c/third_party/WebKit/Source/core/layout/LayoutView.h
[modify] http://crrev.com/562a7409200d3bffd2e1270e227e36d87724a07c/third_party/WebKit/Source/core/layout/MultiColumnFragmentainerGroup.cpp
[modify] http://crrev.com/562a7409200d3bffd2e1270e227e36d87724a07c/third_party/WebKit/Source/core/layout/MultiColumnFragmentainerGroup.h
[add] http://crrev.com/562a7409200d3bffd2e1270e227e36d87724a07c/third_party/WebKit/Source/core/layout/ViewFragmentationContext.cpp
[add] http://crrev.com/562a7409200d3bffd2e1270e227e36d87724a07c/third_party/WebKit/Source/core/layout/ViewFragmentationContext.h

Status: Fixed
We're done here! Thanks for your patience.

Comment 85 Deleted

Comment 86 Deleted

The fix is in Chrome 49 (the current stable version). Make sure your Chrome is up to date.

Sign in to add a comment