Slashdot Mirror


ActivePDF-like Reports w/ Apache?

Martin71a asks: "I have recently been tasked with managing our website. I come from a mainframe and VB background and have a team of 3 people to work with. Our manager is having us switch from IIS to an Apache web server later this year. In the more immediate future, I need a solution to distribute print to our customers through our website. Previously, we had developed our reports using HTML, but we need more professional looking reports with more basic printing functionality, such as paging, built in. We have been testing ActivePDF in which we develop the reports in Crystal then use ActivePDF to send [those reports] to a virtual PDF printer, which allows the user to view them. We like the solution because it doesn't require our customer to download anything, other than a PDF viewer. We've also experimented with Crystal Enterprise, although it was an older version that required either a Java plug-in, or ActiveX download. My concern is that AcitvePDF does not appear to be supported for an Apache server. Does any know of a similar solution that would be appropriate for an Apache server?"

63 comments

  1. PHP + PDF generation by DamienMcKenna · · Score: 4, Informative

    Use PHP for your report generation and use its PDFlib support to output the final result to a PDF file, which you then shuffle off to the user. Et voila!

    Damien

    1. Re:PHP + PDF generation by BoomerSooner · · Score: 4, Informative

      My problem is finding a server that will populate the pre-drawn PDF form fields like ActivePDF. Until I can just Call objPDF.SetFormField("fieldName", value, 0) like in ActivePDF I'm stuck as well.

      Anyone know something that does that and flattens remaining form fields (to limit size)?

    2. Re:PHP + PDF generation by crisco · · Score: 2, Informative

      PHP's PDF Forms support seems centered around Adobe's FDF toolkit. This article and the PHP manual should be enough to get you started, if only for the right search terminology to get you closer to your application.

      --

      Bleh!

    3. Re:PHP + PDF generation by Anonymous Coward · · Score: 0

      Use FPDF (instead of PDFLib in PHP) and write each report as a subclass of the FPDF class. In your report class, create the methods just as you like them.

      http://fpdf.org/

    4. Re:PHP + PDF generation by TaQ · · Score: 2, Informative

      Please check http://phpreports.sf.net.
      Soon delivering PDFs and all the output formats you guys can imagine. ;-)

  2. PHP + FPDF by octover · · Score: 4, Informative

    http://www.fpdf.org/ it is a completely contained PDF system for PHP. I haven't used it a lot but I've heard it is a lot more sane to use than PDF Lib plus it doesn't require you to compile in the library.

    1. Re:PHP + FPDF by tweder · · Score: 5, Informative

      I have used about every PDF library for PHP under the sun, so here's my $0.02.

      pdflib - SUCKS, the API is a pain in the ass. I liken it to doing your own dental work -- in the dark. You can circumvent this a little using the pc4p wrapper, but it's fickle.

      fpdf - It's pretty good, although it doesn't natively support any sane ways of dealing with text in tables - I was trying to use it to generate PDF invoices and quotations. It would barf and break columns when my text should wrap to the next line. The only way around this would be writing custom extensions to the class.

      r&os - This is what I really recommend using. Like fpdf, it doesn't require any additional libraries to be installed - everything runs within PHP itself. The documentation is pretty good and I've really enjoyed using it.

    2. Re:PHP + FPDF by Phil+John · · Score: 3, Informative

      I agree with the r&os idea, however, if you are going to be producing bajilions of pdf's dynamically you're going to want a beefy server. If, on the other hand, you are simply delivering xxx copies of the same PDF you can use PHP's output buffering and cache the whole thing:

      ob_start();
      -do pdf creation and output here-
      $pdfcontents=ob_get_contents();
      ob_end_clean();
      $fp=fopen("/path/to/pdf/file.pdf","w[b]");
      fwrite($pdfcontents);
      fclose($fp);

      You only need the b in the fopen if you are running php/apache on windows as a file needs to be explicitly binary on that platform.

      --
      I am NaN
  3. try this by farmy4700 · · Score: 3, Informative

    You might look into Stellent, we started using it here at my office and it works pretty good.

    --
    The phone is ringing, I cannot linger, watch out butt here comes my finger.
  4. PHP by duffbeer703 · · Score: 2, Insightful

    With the outrageous cost of Crystal, you'll probaly find that even after training your people in PHP (which isn't a very difficult language IMHO) you'll have saved a bundle of money.

    --
    Conformity is the jailer of freedom and enemy of growth. -JFK
  5. PDF's in Apache? No problem by toygeek · · Score: 3, Informative

    There are tons of Perl, PHP, and other packages out there for creating PDF files from some sort of input. I found everything you'd need here at http://sourceforge.net/search/. Just do a search for "PDF" like I did. I *know* you'll find something there. Sourceforge.net and google.com are your friends! Hope this helps!

  6. Same Problem by justanyone · · Score: 4, Informative


    I work at a large bank. We had reports we needed to produce in PDF format with nice graphics. We tried many solutions including print-to-HTML from Excel, Crystal Reports, Ephiphany, and Insightful's S-Plus.

    The best solution for a compact format was a scripted solution (VBA / COM) that prints XLS, DOC, PPT, etc. to a file with thus creating a postscript file, then using ghostscript to convert .ps to .pdf, then moving the files to a Solaris Apache webserver.

    S-Plus required lots of programming and display was not compact enough. Ephiphany likewise. Crystal has a HUGE HUGE IMMENSE VAST WAY-BIG Learning curve and still didn't do what we wanted. Alas.

    For all it's worth.
    -- Kevin J. Rice, justanyone.com

    1. Re:Same Problem by GypC · · Score: 1

      Crystal has a HUGE HUGE IMMENSE VAST WAY-BIG Learning curve

      It does?! I must be a genius since I picked it up after a couple days... ;-P

    2. Re:Same Problem by baldass_newbie · · Score: 1

      Crystal has a HUGE HUGE IMMENSE VAST WAY-BIG Learning curve

      Please tell me you're joking.

      *looks around*

      This has to be a troll, right? Right?

      Crystal, while limited, is not the trickiest piece of reporting software.

      --
      The opposite of progress is congress
    3. Re:Same Problem by justanyone · · Score: 2, Informative

      Sorry to give the idea that Crystal is this memorization-intensive product. Not the case. I just found it to be quite non-intuitive, and limited from doing exactly what we wanted it to do.

      One of my teammates who I believed to be rather bright (but didn't work with her that long) was constantly harping on how it didn't work the way she expected it to, either.

      One thing she worked for a week on was a gui control that didn't look like it could be changed. Turns out Crystal had a 1 YES ONE pixel down-arrow for a dropdown box to select other various values. Yuck.

      We were trying to use it for some very complex reporting, that we ended up using about 400+ sql queries for in just one report (of about 20 in the project). The learning curve I'm mentioning was us trying to figure out how to put multiple reports together easily (not happening).

      It seems that for the simple stuff, Crystal can do well. The complex stuff (combinations of anything Crystal hasn't anticipated us doing) has a very sharp curve and is more than slightly frustrating. My learning curve reference meant getting to the end point requiring a lot of trial and error instead of reference material, intuitive interface, or quick-turnaround support.

      -- Kevin

    4. Re:Same Problem by baldass_newbie · · Score: 1

      Yeah, crystal is for simple stuff. Not what you were trying to do.
      For simple queries, I always thought it had a rather intuitive interface. In fact, I'm looking at setting up a web offering with their tool so users can go in and build quick and dirty reports.
      Heavy lifting will have to come inside, though. ;-)

      --
      The opposite of progress is congress
    5. Re:Same Problem by dirty · · Score: 1

      My experience was exactly the same. Doing really simple canned reports, easy, 10 minutes tops. Doing anything at all that they didn't expect required jumping through absurd hoops and creating reports that on the design side looked like they should produce complete garbage.

      --

      -matt
  7. xml(dot)apache(dot)org by rodentia · · Score: 1


    I use FOP in a production environment. Look at Cocoon. Roll your own XSL solution. Build the reports in OpenOffice.

    Save yourself a few bucks.

    --
    illegitimii non ingravare
    1. Re:xml(dot)apache(dot)org by Kanagawa · · Score: 2, Interesting

      You may want to consider XEP, as well. Its a commercial XSL-FO processor and is much less buggy than FOP. FOP is a great idea, but as of several months ago it wouldn't produce documents I would call "professional". XEP has most of the formatting objects requirements already implemented and seems to work quite well.

      --
      "He wrested the world's whereabouts from the heavens And locked the secret in a pocketwatch." - Dava Sobel
    2. Re:xml(dot)apache(dot)org by rodentia · · Score: 2, Informative

      I build all the reports for a market-leading commercial product in FOP and have been doing so since v0.20.3. All FO properties are not completely supported in current FOP, but it is not *buggy*. I have had to do a little code to help it around keeps (only supported on fo:table-row) but that's why they call it eXtensible.

      Performance is very robust. We build 400 page documents and batch runs of short reports customized for thousands of data points.

      --
      illegitimii non ingravare
    3. Re:xml(dot)apache(dot)org by bgins · · Score: 1

      Cocoon & FOP is definitely an option, at least for relatively simpler documents.

  8. Apache FOP by mapMonkey · · Score: 5, Informative

    Take a look at Apache FOP, although your starting documents would have to be XML. The pros: buzzword compliant, and the project has a name similar to an old Soundgarden song!!

    1. Re:Apache FOP by Halvard · · Score: 1

      Now I'm feeling really old. I thought it was last week that that new Irish band U2 released "Boy".

    2. Re:Apache FOP by tundog · · Score: 1

      Don't you mean old Greenday song?

      --
      All your base are belong to us!
  9. STAY AWAY FROM CRYSTAL REPORTS by Anonymous Coward · · Score: 0

    You should already know that Crystal reports for VB is garbage, well guess what the shit continues in their servers and other products as well! Even the version that comes with .NET is total crap!

  10. PDF, XML, Java by fredrikr · · Score: 3, Informative
    Take a look at Big Faceless Report Generator. The Big Faceless Report Generator is a Java component for converting XML to PDF documents. Using JSP, ASP or similar technology, you can now create dynamic PDF reports as quickly and easily as HTML.
    Built on our popular Java PDF library, the Report Writer adds functionality including:
    • HTML-style Tables - auto-sized nested tables with full control over padding, margins and borders
    • Use cascading CSS2 stylesheets to control look and feel
    • Create inline graphs and charts with XML, direct from the database
    • Includes a servlet and a servlet filter for simple generation of PDF's from XML or JSP pages.
    • Auto pagination of content with page headers and footers
    • Familiar HTML syntax - <a>, <ul>, <p>, <table>, <td> and so on - simpler and faster than FOP
    • All the features of our PDF library - Unicode support, Encryption, TrueType fonts, Barcodes and more
    1. Re:PDF, XML, Java by Eneff · · Score: 1

      We've used it... it's decent, though 1200 bucks IIRC.

      A free version somewhat similar to this is Jasper Reports. The negative side is that documentation is severely lacking. (I'm seriously thinking of writing a book on it when this project is finished.)

      Since you did mention Java already, I presume you're already comfortable with it.

      found at http://jasperreports.sourceforge.net/

  11. Re:Ridicukous question by itwerx · · Score: 1

    Get away from teh evils of Adobe and PDF - use real formats, formats that are interoperable, open, and friendly to informaton sharing.

    Not only a Troll but an AC Troll at that!
    (PDF is an open standard)

  12. I will second the recommendation for FOP by janic · · Score: 2, Informative

    We are also using FOP.

    You can get thouroughly anal about positioning, attributes, etc.

    We are using it to generate Product spec sheets, provide a more "polished" look to invoices, order status inquiries... all sorts of stuff.

    The really nice thing is that because it's java, you can start messing with it now, then have a pretty simple conversion when you upgrade to apache.

    John

  13. Free print-to-pdf by smoon · · Score: 5, Interesting

    If Crystal is running the report, then just set up a samba box with printpdf (see this site for some more info.

    Works great. It's free. Infinitely configurable.

    --
    "But actually trying to use m4 as a general-purpose langage would be deeply perverse" --ESR
  14. PDF for web distribution by ratboy666 · · Score: 5, Interesting

    You don't indicate whether the PDF generation needs to be dynamic.

    In either case, Ghostscript will produce a PDF for you, from a PS (Postscript) data source. A fairly trivial transformation.

    This leaves "printing" to a Postscript printer, which Windows, Unix *and* Mainframe is capable of.

    I assume that since you have (somehow) "outgrown" HTML encoding and features, that you probably need somewhat more advanced formatting than most direct PDF generation libraries will (easily) provide.

    I also assume that you want to reduce furture maintainance. With these two goals in mind, the PS->PDF transformation is most reasonable, giving you the flexibility to choose how to "print" the PS.

    Ratboy.

    --
    Just another "Cubible(sic) Joe" 2 17 3061
  15. FPDF by ben_degonzague · · Score: 4, Informative

    I've been using this for the past year and its worked great. I use it with apache, php and mysql. A department has begun using it for their reports and is very happy.

    http://www.fpdf.org/

  16. Apache FOP + IText by adamshelley · · Score: 1, Informative

    Apache FOP and IText are great solutions.

  17. Crystal Enterprise by TobascoKid · · Score: 1

    Even the oldest version of Crystal Enterprise (version 8 - before that the product was know as Crystal Info) doesn't need to use a Java or ActiveX plugin - it can output straight to HTML and DHTML - though it might not be the prettiest web pages you've ever seen.

    Saying that, Enterprise has never been anythng other than a complete pain to use and I would find it hard to recommend it to anyone.

    Tk

    --
    At some point, somewhere, the entire internet will be found to be illegal.
  18. PHP+pdflatex by marind · · Score: 3, Informative

    I use a combination of PHP and pdflatex for report generation. I don't think there is a solution that gets you more "professional looking" output.

  19. JasperReports by aoteoroa · · Score: 2, Interesting

    You could use Jasper Reports to design and create reports based on any JDBC datasource.

    To work on your apache server you will need to install apache-tomcat. Of course if you have never programmed in Java you might be better off looking at one of the PHP solutions mentioned elsewhere.

  20. CSS by TheTomcat · · Score: 4, Informative

    Have you evaluated CSS for the output?

    It's possible to switch "media" (from screen to print), and do absolute layout, without a second library.

    No vector art, but for layout, it can be done.

    S

    1. Re:CSS by styrotech · · Score: 2, Interesting

      And it's even possible to control print media page breaks in CSS. Browser support is very spotty, although gecko seems to support most of it fairly well.

      My company makes a web based project management tool, and we got fed up with using 3rd party reporting engines and now just use print media style sheets for printing reports.

    2. Re:CSS by pacc · · Score: 1

      Unfortunatly supported CSS in the browser and the printer engine isn't the same thing, there are lots of bugs. Progress on IE is practically discontinued, (don't expect microsoft to produce an XML-aware printing engine that can replace Office), and it's not an area where Mozilla advances very quickly either.

      However if you find a simple form that suits you and can manage users changing margins etc. it can do just fine. XHTML table headers could be a simple and effective way to get multi-page layouts.

  21. Another solution: Excel/Openoffice Calc by swillden · · Score: 2, Informative

    Another option that makes for flexible and interactive reports is to output a spreadsheet document rather than a PDF, complete with calculated fields and modifiable fields that allow the user to experiment with options (where appropriate). If you format them well, spreadsheets can print very nicely.

    You can generate documents in Microsoft Excel format using the Jakarta POI HSSF API, and of course OpenOffice Calc files are just XML documents zipped up with a manifest, easy to produce with just about any toolset.

    --
    Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
  22. Re:Please add a PLUG disclaimer when you advertise by fredrikr · · Score: 1

    It is not my software. We just happen to use it and it works very well for PDF reports. You pass a JSP the XML and you get a nice PDF report.

  23. Are you willing to do your own page layout? by shoppa · · Score: 1
    If you're willing to do your own page layout, the CPAN module PDF::API2 lets you create PDF from Perl in a cgi-bin.

    It's not Crystal Reports, by any means. It comes without all that baggage :-)

  24. Reportman.sourceforge.net by Anonymous Coward · · Score: 2, Informative

    Reportman.sourceforge.net

    I use this in production at the hospital where I work. The project is mature, full featured, and free. It can work basicly as a Free replcement for Crystal.

  25. iText java libraries worked great by raygundan · · Score: 2, Informative

    I did something similar with the iText libraries for java. Generate PDF's to your heart's content-- place text and images into the page, flatten it, and *pop* out comes your document.

    1. Re:iText java libraries worked great by JediTrainer · · Score: 1

      It's worth noting that many of the Java-based reporting packages use iText to create the resulting PDF. iText does not have a UI, though, but it is simple enough to code with.

      Our team uses iText directly, though we have investigated many of the Java-based reporting packages noted earlier by others. We found plain iText to be much more flexible in dealing with our documents. Lay the code out properly, and it's easy to extend your class to support customizations that your customers may require.

      --

      You can accomplish anything you set your mind to. The impossible just takes a little longer.
  26. Actuate by Goyuix · · Score: 1

    I used to work in the Health Care biz, and for all of our enterprise reporting (including reports sent out to customers as well as internal use) we used Actuate. http://www.actuate.com/

    The good: Actuate is a very robust, powerful report generating machine. It is relatively simple to get the basics, but some more of the advanced features and such might take some time to get. The real plus is that it natively generates DHTML, Excel, and PDF - and does a good job with each.

    The bad: This monster is written around a very old (maybe version 3?) visual basic engine. As a result there is some quirky behavior and such. I believe it is ridiculously expensive to purchase as well, so that may end up being prohibitive for you.

    I don't really know how well it would fit your needs, and I certainly am not trying to pitch it, just that I hadn't heard of it when I got hired on, and I think it is a relatively unknown product that can do some pretty great things. I know a lot of the state agencies are using it, as well as several big banks, healthcare and even Yahoo! uses it for their clients. It certainly wouldn't hurt to check it out.

  27. mod_python and by Lomby · · Score: 3, Informative

    If I understand your requirements correctly, you may want to investigate the use of Python (in the form of Apache's mod_python) along with the ReportLab tools.
    You can find a nice article detailing its usage here

  28. You could write your own by Tom7 · · Score: 2, Informative

    The PDF spec is open, and fairly simple. I wrote my own PDF output code in less than a week, with the benefit that the PDFs were much smaller than those generated by general-purpose converters.

  29. No, you haven't. by Anonymous Coward · · Score: 0

    You have not been "tasked" with something, because task is not a verb

    The rest of your question is obviously crap, because you don't know enough english to form a question properly.

  30. Python + Reportlab by Dr.+Smeegee · · Score: 2, Informative
    One could try ReportLab, a Python module that allows one to create nice-looking pdf output from a python script. If you have some programming experience python should be fairly easy to pick up IMHO.

    Your apache install probably already has python enabled for cgi. You might consider modpython, which adds the interpreter in for quicker load times.

    Share and Enjoy!

  31. You, sir, are an idiot by Anonymous Coward · · Score: 0
    You have not been "tasked" with something, because task is not a verb.

    That's a complete load of shit. You are the one who is wrong:

    tr.v. tasked, task-ing, tasks
    To assign a task to or impose a task on.
    To overburden with labor; tax.

    You've probably never seen a dictionary before, so I'll help you out. See that little 'v.' before the word? Imagine this: that 'v' stands for 'verb'! What are the odds? BTW, that little 'tr.' means that the word 'task' is not just any kind of verb, but that it's a transitive verb. But don't worry about what that means; there are probably too many syllables in that word 'transitive' anyway.

    If you're going to be an asshole, at least make sure that you're right first.

  32. web service... by josepha48 · · Score: 1
    I had to do the same thing. I set up a windows server with adobe distiller and created a simple active x object on the box. Threw it into a web service and made it 'thread safe'. Distiller is not thread safe so you have to use semaphores to do a little locking while one pdf is being generated. Get a quick server and its no biggie. Then make your active X object a web service either using dot net or get jacob ( java com bridge => http://danadler.com/jacob/) and java. I used jacob.

    You now have a web service you can all anywhere. Stick your apache server on the firewall with 2 nics. One nic it can use to call the webservice and the other it can use to serve requests. If you dont want it on the firewall, you can put it outside the firewall and use ipsec to secure the point from the webserver to your firewall. It works great for us.

    --

    Only 'flamers' flame!
    Does slashdot hate my posts?

  33. ReportMill by plsuh · · Score: 1

    Take a look at ReportMill. I've used it in several projects to generate PDF reports and it's always come through like a champ. Not cheap, but worth every penny.

    --Paul

  34. Apache Cocoon by stonebeat.org · · Score: 1

    Take a look at Apache Cocoon . Here are samples that are converted to PDF, on the fly, using Cocoon.

  35. Easy : HTMLdoc by Betcour · · Score: 1

    Make your reports in HTML format (shouldn't be hard), then use HTMLdoc to convert it to PDF. It's the most painless solution I know (no API to learn, no XML language to master, no complex installation to perform)

  36. FPDF + Sodipodi SVG templates = sexy reports by akbkhome · · Score: 1

    I wrote quite a bit of code to do Sodipodi SVG files as templates into PDF using FPDF.. Theres quite a long description on my blog with Code and example usage and the svg files

    The current code had chinese language support and some support for vector graphics (lines and boxes work perfectly ok)

    --
    Taking PHP to the next level: phpmole, php codedoc, php-gtk pear installer, DataObjects for php, ldap schema viewer and