Re: [PHP] desire your recommendation for our specific HTML - PDF project

2010-12-06 Thread Steve Staples
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

2010-12-06 Thread Paul M Foster
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

2010-12-05 Thread Tommy Pham
 -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

2010-12-05 Thread Govinda



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

2010-12-05 Thread Tommy Pham
 -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

2010-12-05 Thread Govinda
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

2010-12-05 Thread Tommy Pham
 -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

2010-12-03 Thread Govinda

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