Re: desire your recommendation for our specific HTML -> PDF project

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



IIRC, the browser rendering difference should only be on the screen and with
available fonts on the client.

I am finding just the opposite of what you are saying. The page looks the same in the browsers.. but when I print from different browsers I get different results on paper. Like just for starters - the top and left whitespace margin introduced by the browser.. (which is *outside* any margin I have set (or not set) with HTML/CSS) is different. Also the scaling is different... as though I am using zoom/scaling in one print dialogue but not the other (even when I am not using any scaling options, while printing, in any of the print dialogues).

But for print, if you use pt, it should be
accurate. The only issue I see with print is the font difference on printer and in the client's system, that's the printer driver problem. If you use some special fonts, then you'll have to create a PDF so acrobat can attempt
to rasterize it.

Another option is just generate each label as a picture
via GD, ImageMagick, etc..., then no problems with browser differences or font issues :D. If you do generate pics or PDF, beware of the quality of printer's dpi vs. visual screen. Any decent printer should be able to print
1200 dpi, or at least 600 dpi.

that is not a bad idea, in this case. I enjoy exploring and getting good at lots of different solutions.. In the end, I'll have to defer to client and budget. So far we are just gathering ideas before committing to trying something. Budget is such that we need to do this only once if at all possible.

Here's the sample CSS print media since 1pt = 1/72 inch, assuming you're
using Avery labels with 1/4 inch margins:

body { width: 100%; min-width: 756pt; text-align: center; }
div.container { width: 576pt /*8 / (1/72) */; height: 756pt /* 10.5 inch /
(1/72) */;  overflow: hidden; }
div.label { float: left; width: 192pt /*576 / 3 columns */; height: 72pt /*
1 inch height label */; overflow: hidden; }

Each label contains within it layered (z-index) divs, tables, graphics..
I did used pt for the font sizes (or em on top of a pt base font size).. and I used inches as the length/width units.. so it was intuitive for layout on paper.

It looks great on screen (easy to line up with an AVERY template).. but now we just need to pin down the print method so the client's client can print reliably.. without needing to be technically involved. I really appreciate your effort to help conceptualize. Now if you feel like it, and have time.. try laying out a single letter-size page to print 30 address labels and then actually print that page from different browsers and see what you get. Does your page's data cells (now printed on paper) exactly line up with the Avery template which you modeled after? Are the tests from different browsers producing the exact same printout?

-Govinda

For the font size, you should use pt also - 10 or 11 pt is readable on the print out. Each label is inside the div and it should fit nicely. If you do with CSS, you can permit the users to change size of label, as their need may change, with calculations from PHP to get dimensions (width & height of the label). If anyone can tell visually the difference of 1pt or fractions
thereof, that person isn't normal :))

Regards,
Tommy


--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux