Re: [PHP] desire your recommendation for our specific HTML - PDF project
On Fri, 2010-12-03 at 18:11 -0500, Govinda wrote: Hi all I have a question which I see from googling has been discussed at length.. but I want to know what you would recommend based on our particular needs. I want to be on the right track before I find out a- week-of-work later that I chose the wrong tool (a tool which works, but whose peculiarity, in the end, would rule it out for our project). We have a dynamic HTML page that displays 30 address labels within the dimensions of one single US-letter-size document. We want the user to be able to print the single letter-sized page and have the content line up perfectly (as it does in the browser) for the Avery address label (printed) sticker paper which they will use to then peel the 30 stickers and affix to physical product. The HTML page is ~ 200k worth of HTML (divs and tables), text, gifs, jpgs, a barcode PNG graphic, and heavy use of exacting CSS - CSS2 as well as a touch of CSS3 (CSS3 property transform), i.e. this: /* --- for firefox, safari, chrome, etc. --- */ -webkit-transform: rotate(90deg); -moz-transform: rotate(90deg); /* --- for ie --- */ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1); ...which I use to rotate (90 degrees) a barcode which I grab off of this site/service: http://www.barcodesinc.com/generator/index.php We could drop that barcode PNG/service only if I could easily replace it with another... and the barcode must be rotated 90 degrees - to thus fit in its tiny (vertically-oriented) alloted slot on each of the 30 address label cells. A thread on stackOverflow has people making recommendations all over the map.. as I would expect - our needs and experiences are all over the map. - I wish we had budget for the server version of PrinceXML ;-) ... but no luck. - I have never used any PHP libraries like FPDF or TCPDF, but am concerned about speed; corporate users (on various browsers) will need the pdf in real time. They may be patient and wait for the final PDF if keep the solution free.. but if it takes minutes to generate, that is a minus point. Also I am not sure how good these are for HTML - PDF (as opposed to straight PDF from scratch).. plus not sure how good is the CSS support. Our page is a bit of an HTML/CSS kludge. - I have used the command-line tools HTMLDOC and wkpdf, but the former lacked the CSS I need now, and the latter introduces margin that kills it for exact address-label formatting (plus this project is on Linux). My PHP skills are not super strong yet.. but I am willing to do whatever it takes to pull any solution together. In case you have any familiarity with any PDF generation tools that you feel would fit the need here, then *please advise*! Thanks! -Govinda Govinda govinda(DOT)webdnatalk(AT)gmail(DOT)com Personally, I use FPDF [1] to generate PDF's on the fly. It has a lot of addons that people have created, and some of those, are barcodes. use it to generate shipping/packing labels for a client, and it creates about 1000+ at a time, each containing 5 code128, and 1 QR code (on the same label). I've used the FPDF with the rendering that includes the image from memory (as i have another app that creates all the barcodes in memory). Anyway, I would look into that if pdf is the way you're going. There is also html2pdf, but if you're looking for exact specifications, and sizes, then I wouldn't personally use pure CSS, i would create my own PDF. my shipping labels take 20 seconds to create a 1500page pdf, with all those barcodes, so creating a 30 label page, i can't see taking more than 1 second to do. just my $0.02 Steve [1] http://www.fpdf.org -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] desire your recommendation for our specific HTML - PDF project
On Mon, Dec 06, 2010 at 09:23:02AM -0500, Steve Staples wrote: [snip] Personally, I use FPDF [1] to generate PDF's on the fly. It has a lot of addons that people have created, and some of those, are barcodes. use it to generate shipping/packing labels for a client, and it creates about 1000+ at a time, each containing 5 code128, and 1 QR code (on the same label). I've used the FPDF with the rendering that includes the image from memory (as i have another app that creates all the barcodes in memory). Anyway, I would look into that if pdf is the way you're going. There is also html2pdf, but if you're looking for exact specifications, and sizes, then I wouldn't personally use pure CSS, i would create my own PDF. my shipping labels take 20 seconds to create a 1500page pdf, with all those barcodes, so creating a 30 label page, i can't see taking more than 1 second to do. Projects like TCPDF and others are often recommended when PDFs are needed. Others besides FPDF are much more featureful. However, every one I've encountered is larger and heavier than FPDF. If you just need straight ahead PDFs without a lot of bells and whistles, I'd recommend FPDF. Paul -- Paul M. Foster -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
RE: [PHP] desire your recommendation for our specific HTML - PDF project
-Original Message- From: Govinda [mailto:govinda.webdnat...@gmail.com] Sent: Friday, December 03, 2010 3:12 PM To: PHP-General List Subject: [PHP] desire your recommendation for our specific HTML - PDF project Hi all I have a question which I see from googling has been discussed at length.. but I want to know what you would recommend based on our particular needs. I want to be on the right track before I find out a- week-of-work later that I chose the wrong tool (a tool which works, but whose peculiarity, in the end, would rule it out for our project). We have a dynamic HTML page that displays 30 address labels within the dimensions of one single US-letter-size document. We want the user to be able to print the single letter-sized page and have the content line up perfectly (as it does in the browser) for the Avery address label (printed) sticker paper which they will use to then peel the 30 stickers and affix to physical product. The HTML page is ~ 200k worth of HTML (divs and tables), text, gifs, jpgs, a barcode PNG graphic, and heavy use of exacting CSS - CSS2 as well as a touch of CSS3 (CSS3 property transform), i.e. this: /* --- for firefox, safari, chrome, etc. --- */ -webkit-transform: rotate(90deg); -moz-transform: rotate(90deg); /* --- for ie --- */ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1); ...which I use to rotate (90 degrees) a barcode which I grab off of this site/service: http://www.barcodesinc.com/generator/index.php We could drop that barcode PNG/service only if I could easily replace it with another... and the barcode must be rotated 90 degrees - to thus fit in its tiny (vertically-oriented) alloted slot on each of the 30 address label cells. A thread on stackOverflow has people making recommendations all over the map.. as I would expect - our needs and experiences are all over the map. - I wish we had budget for the server version of PrinceXML ;-) ... but no luck. - I have never used any PHP libraries like FPDF or TCPDF, but am concerned about speed; corporate users (on various browsers) will need the pdf in real time. They may be patient and wait for the final PDF if keep the solution free.. but if it takes minutes to generate, that is a minus point. Govinda, Have you/your team consider using pure CSS (using media screen print) for formatting? This may save you from having to deal with PDF (extra codes - slower performance, extra steps in save then print, extra storage space just for temp save, etc... ) since they only need to print as you mentioned. If you use CSS pt (1/72 inch) unit, you should get a pretty good precision. IMO, I only see the need to save as/generate PDF if it's to create an e-book, just to print to paper is not worth the time effort. With either method CSS/PDF, you'd still have to deal with the exact formatting layout (with PDF, you may have to twice - once for the screen and again in PDF). Also I am not sure how good these are for HTML - PDF (as opposed to straight PDF from scratch).. plus not sure how good is the CSS support. Our page is a bit of an HTML/CSS kludge. - I have used the command-line tools HTMLDOC and wkpdf, but the former lacked the CSS I need now, and the latter introduces margin that kills it for exact address-label formatting (plus this project is on Linux). My PHP skills are not super strong yet.. but I am willing to do whatever it takes to pull any solution together. In case you have any familiarity with any PDF generation tools that you feel would fit the need here, then *please advise*! Thanks! -Govinda Govinda govinda(DOT)webdnatalk(AT)gmail(DOT)com Regards, Tommy -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] desire your recommendation for our specific HTML - PDF project
Govinda, Have you/your team consider using pure CSS (using media screen print) for formatting? This may save you from having to deal with PDF (extra codes - slower performance, extra steps in save then print, extra storage space just for temp save, etc... ) since they only need to print as you mentioned. If you use CSS pt (1/72 inch) unit, you should get a pretty good precision. IMO, I only see the need to save as/generate PDF if it's to create an e-book, just to print to paper is not worth the time effort. With either method CSS/PDF, you'd still have to deal with the exact formatting layout (with PDF, you may have to twice - once for the screen and again in PDF). Tommy, thanks for taking the time to read my long post! :-) I tend to think like you too.. why make more work! ; I already got the thing laid out nice for the browser.. *but* the client is wary of the idea that every browser is going to have a slightly different rendition..and so we then have to either require use of one browser or another (and maintain the code as that browser version gets updated), or we have to code for lots of browsers.. and also code the mechanism by which either we sniff/detect which browser is being used.. or else the user tells the page which rendition they need - before printing. As they ponder all that, and the budget.. the client said, it must be PDF! -Govinda -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
RE: [PHP] desire your recommendation for our specific HTML - PDF project
-Original Message- From: Govinda [mailto:govinda.webdnat...@gmail.com] Sent: Sunday, December 05, 2010 9:19 AM Cc: 'PHP-General List' Subject: Re: [PHP] desire your recommendation for our specific HTML - PDF project Govinda, Have you/your team consider using pure CSS (using media screen print) for formatting? This may save you from having to deal with PDF (extra codes - slower performance, extra steps in save then print, extra storage space just for temp save, etc... ) since they only need to print as you mentioned. If you use CSS pt (1/72 inch) unit, you should get a pretty good precision. IMO, I only see the need to save as/generate PDF if it's to create an e-book, just to print to paper is not worth the time effort. With either method CSS/PDF, you'd still have to deal with the exact formatting layout (with PDF, you may have to twice - once for the screen and again in PDF). Tommy, thanks for taking the time to read my long post! :-) I tend to think like you too.. why make more work! ; I already got the thing laid out nice for the browser.. *but* the client is wary of the idea that every browser is going to have a slightly different rendition..and so we then have to either require use of one browser or another (and maintain the code as that browser version gets updated), or we have to code for lots of browsers.. and also code the mechanism by which either we sniff/detect which browser is being used.. or else the user tells the page which rendition they need - before printing. As they ponder all that, and the budget.. the client said, it must be PDF! -Govinda IIRC, the browser rendering difference should only be on the screen and with available fonts on the client. 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. 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; } 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
Re: [PHP] desire your recommendation for our specific HTML - PDF project
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
RE: [PHP] desire your recommendation for our specific HTML - PDF project
-Original Message- From: Govinda [mailto:govinda.webdnat...@gmail.com] Sent: Sunday, December 05, 2010 1:33 PM Cc: 'PHP-General List' Subject: Re: [PHP] desire your recommendation for our specific HTML - PDF project 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). That's because each browser has the a different page setup for printing, margin, header footer (including date, time, url, etc.). You'll have similar problems with PDF. I have a few Word documents with 1/4 inch margins saved as PDFs, via Acrobat Pro, to send out some folks. When they try to print w/o checking the configuration, Acrobat would just try to scale and center, essentially reducing the overall size. Either way, the user has to check the configuration prior to printing just as they would have to set the page layout in the word processor. The only way I see around this is to actually generate Word type document, where the user doesn't need to do check the configuration. Since Word format is proprietary, you'll might some problems getting the code. 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. I too like to do things right the first time :) 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. IIRC, if you used em, it relies on each browser's font configuration. So you'll have to pt with !important. 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 Yup on the HP 2015 at 1200 dpi. The only browsers that didn't print out correctly (on Windows) are Chrome Safari, both are web toolkit... which I can't seem to find the scaling on the print configuration. Apparently, I'm not the only person with the printing issue [1]. IE 8 (w/o compatibility - shrink to fit off), Firefox 3.16 (shrink to fit off), and Opera 10.63 (fit to paper width off and scale print to 100%) have scaling capability. All have margins at 1/4 inch or .635 cm. This is from my template a while back. !DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd; html xmlns=http://www.w3.org/1999/xhtml; head meta content=text/html; charset=utf-8 http-equiv=Content-Type / title/title style type=text/css @media all { body { font: 11pt Arial, Helvetica, sans-serif !important; line-height: 1.25em; margin
[PHP] desire your recommendation for our specific HTML - PDF project
Hi all I have a question which I see from googling has been discussed at length.. but I want to know what you would recommend based on our particular needs. I want to be on the right track before I find out a- week-of-work later that I chose the wrong tool (a tool which works, but whose peculiarity, in the end, would rule it out for our project). We have a dynamic HTML page that displays 30 address labels within the dimensions of one single US-letter-size document. We want the user to be able to print the single letter-sized page and have the content line up perfectly (as it does in the browser) for the Avery address label (printed) sticker paper which they will use to then peel the 30 stickers and affix to physical product. The HTML page is ~ 200k worth of HTML (divs and tables), text, gifs, jpgs, a barcode PNG graphic, and heavy use of exacting CSS - CSS2 as well as a touch of CSS3 (CSS3 property transform), i.e. this: /* --- for firefox, safari, chrome, etc. --- */ -webkit-transform: rotate(90deg); -moz-transform: rotate(90deg); /* --- for ie --- */ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1); ...which I use to rotate (90 degrees) a barcode which I grab off of this site/service: http://www.barcodesinc.com/generator/index.php We could drop that barcode PNG/service only if I could easily replace it with another... and the barcode must be rotated 90 degrees - to thus fit in its tiny (vertically-oriented) alloted slot on each of the 30 address label cells. A thread on stackOverflow has people making recommendations all over the map.. as I would expect - our needs and experiences are all over the map. - I wish we had budget for the server version of PrinceXML ;-) ... but no luck. - I have never used any PHP libraries like FPDF or TCPDF, but am concerned about speed; corporate users (on various browsers) will need the pdf in real time. They may be patient and wait for the final PDF if keep the solution free.. but if it takes minutes to generate, that is a minus point. Also I am not sure how good these are for HTML - PDF (as opposed to straight PDF from scratch).. plus not sure how good is the CSS support. Our page is a bit of an HTML/CSS kludge. - I have used the command-line tools HTMLDOC and wkpdf, but the former lacked the CSS I need now, and the latter introduces margin that kills it for exact address-label formatting (plus this project is on Linux). My PHP skills are not super strong yet.. but I am willing to do whatever it takes to pull any solution together. In case you have any familiarity with any PDF generation tools that you feel would fit the need here, then *please advise*! Thanks! -Govinda Govinda govinda(DOT)webdnatalk(AT)gmail(DOT)com -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php