Anyone know of a good solution for pdf generation (preferably with a visual layout tool) that I can use from ColdFusion instead of the CF Report Builder? It should be able to accept cfquery input.
Basically is there anything better than the crusty Adobe offering out there?
EDIT: With CF 11 and the "pixel-to-pixel" rendering of "most" CSS and HTML (see https://wikidocs.adobe.com/wiki/display/coldfusionen/PDF+Generation+in+ColdFusion+11), I wonder if anyone has attempted to do anything along the lines of 'normal reports', like page numbering, page breaks, etc. - the more traditional 8.5"x11" oriented features. I'm a bit leery of trying to just do a drop-in replacement for CF Report Builder for this reason, knowing that HTML has no concept (in the browser) of discrete pages and page breaks.
obviously you can use cfdocument to what you want, but good luck getting it to look decent. however if you want to go down the route where you generate html using CFML and then have that outputted to a pdf, you can use wkhtmltopdf. If you want a report builder type application, you can use Jaspersoft Studio. BTW ACF's reporting engine is jasper reports under the hood.
Jasper reports is an alternative that Railo folks use, you could give that a try.
I don't think so. The closest thing I am aware of is DreamWeaver. It's been a while but I believe with a Remote Development Service (RDS) password you can build a full dynamic report using the WYSIWYG design view. Add CFDocument tags around it and you have a pdf report. I believe using CFDocument with HTML / CSS is what most developers use in lieu of Report Builder. I could be wrong but I've only seen it used once and judging by the lack of search results, I don't think it was received as well as it was hoped.
Of course you could always use crystal reports and continue using CFReport that way.
If you're using SQL Server you could get away with using SQL Server Reporting Services (SSRS).
Related
I´m evaluating in using YII framework for an application. This app has 2 requirements very important. First is Reporting. I have to make a lot of Reports and subreports. The Second is that reports have to be exported to word, pdf and xls.
I understand that PHP is not very friendly with reporting tools. I think the best could be Jasper Reports?. But that tool can help me with that 2 points?
Have you use reporting tools with advance reports in php? could you give me an advice?
Thanks.
I am working on JasperReports for the last few months. Its extremely user friendly. The 2 points which you mentioned are very well covered in Jasper. You can do 'n' number of reports, subreports, adhocs, olaps,charts and many more. Exporting options are great. There are around 11 formats in which you can export the reports. I have not used yii or any other reporting tool. For reporting and advanced reporting options, Jasperreports works brilliant. You may want to check out this link for more information.
I am doing a Yii project at the moment. I have not used a great deal of reporting tools, and have not checked out Jasper yet.
But for excel the best reporting tool I have found has been PHPExcel. I extended the factory and built my own code around it to work with my data.
Also if you want to report into MS Word, it might be easier to write your data to RTF files.
I have found PDF's and Text/Word Documents tend to not be too flash for reporting. Excel seems to be the most useful so far. I use PHPExcel with both openoffice on linux and MS Excel and I write all my own reports.
Cheers
Daz
Jasper Reports is a great tool for reporting but it require Java and the integration with PHP require the Java bridge which may not be accessible specially in shared hosting, a good alternative is PHPJasperXML, which takes Jasper Reports and render them on PHP natively, also it exports to PDF and Excel.
I don't know if it could help but exists https://github.com/cossou/JasperPHP in the Laravel framework, somebody could adapt it for Yii2 and use it with composer.
I am using netbeans to develop my project. I need to put a pdf on a website and according to certain conditions, only parts of the pdf should be view-able.For example, suppose payment made is rs.500. I will let the user view 2 chapters in the pdf for a period of one week. I have no idea how to do this.Can someone help me?
Since you're using NetBeans, I'll assume that you're using Java as your language.
You generate PDFs using either XSL-FO or something like iText. I prefer XSL-FO and Velocity templates, but your situation might be different.
The rules for what to display under different conditions need to be expressed in Java using controllers that accept a request, bind parameters to objects, execute rules, and stream the response as a PDF depending on the outcome. It's not an easy answer.
There are various Java viewers and several have plugins (there is one at http://www.jpedal.org/support_siNetBeans.php).
Your best bet would be to generate a copy of the PDF with just the pages allowed and then display that.
I'm thinking about writing a professional CV page that would be easy to update, using a simple backend to add informations and blocks of optional details, and... (feature creap coming)
Anyway, I was thinking of a "simple" web page grpahically, that would easily be convertible to PDF file, using browser functionallity or not.
Assuming that the page have blocks of text that you must ckick a button to see (those are optional details), what should I know or what tools should I use to write this web page?
I'm totally rusted on web code, I used php without ajax a lot before but I understand the idea. I was thinking maybe it would be a good opportunity to try a framework to make a "webapp", like Ruby+ROR or Python+Django? Is that a good idea? I'm ready to learn about those, I'm just not sure if it's worth for such project.
Should I know some things about html code or javascript behaviour that I shouldn't use because it would break any PDF generation tool or something like that?
Any advice on the way to proceed would be helpful.
You'll want to read up on how to create a print stylesheet. This way when you go to print the CV you can choose something like CutePDF Writer and your print stylesheet will automatically be used. You will make your stylesheet show all hidden text blocks and hide things like navigation, buttons, etc.
I can't tell you whether or not it's worth it for you to try a new framework for this project, that's up to you. It's not bad to learn new things. Since I don't know all the details of your project it's hard to answer if it's worth it for this particular project. From your description is sounds like you're just making an HTML resume/CV which sound, to me, like one flat HTML page with some JavaScript. If that's the case you could probably just use a text editor.
If you want my personal opinion, ASP.Net 4 is the way to go if you want to learn something new (or if you just want to use a great framework).
As far as breaking the PDF generation, your print stylesheet will be responsible for showing/hiding things but any JavaScripts should be aware of this as well. Check the link I gave you above for more information.
Let me preface this by saying I don't care what language this solution gets written in as long as it runs on windows.
My problem is this: there is a site that has data which is frequently updated that I would like to get at regular intervals for later reporting. The site requires JavaScript to work properly so just using wget doesn't work. What is a good way to either embed a browser in a program or use a stand-alone browser to routinely scrape the screen for this data?
Ideally, I'd like to grab certain tables on the page but can resort to regular expressions if necessary.
You could probably use web app testing tools like Watir, Watin, or Selenium to automate the browser to get the values from the page. I've done this for scraping data before, and it works quite well.
If JavaScript is a must, you can try instantiating an Internet Explorer via ActiveX (CreateObject("InternetExplorer.Application")) and use it's Navigate2() Method to open your web page.
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
ie.Navigate2 "http://stackoverflow.com"
After the page has finished loading (check document.ReadyState), you have full access to the DOM and can use whatever methods to extract any content you like.
You can look at Beautiful Soup - being open source python, it is easily programmable. Quoting the site:
Beautiful Soup is a Python HTML/XML parser designed for quick turnaround projects like screen-scraping. Three features make it powerful:
Beautiful Soup won't choke if you give it bad markup. It yields a parse tree that makes approximately as much sense as your original document. This is usually good enough to collect the data you need and run away.
Beautiful Soup provides a few simple methods and Pythonic idioms for navigating, searching, and modifying a parse tree: a toolkit for dissecting a document and extracting what you need. You don't have to create a custom parser for each application.
Beautiful Soup automatically converts incoming documents to Unicode and outgoing documents to UTF-8. You don't have to think about encodings, unless the document doesn't specify an encoding and Beautiful Soup can't autodetect one. Then you just have to specify the original encoding.
I would recommend Yahoo Pipes, that's exactly what they were built to do. Then you can get the yahoo pipes data as an RSS feed and do as you want with it.
If you are familiar with Java (or perhaps, other language that runs on a JVM such as JRuby, Jython, etc.), you can use HTMLUnit; HTMLUnit simulates a complete browser; http requests, creating a DOM for each page and running Javascript (using Mozilla's Rhino).
Additionally, you can run XPath queries on documents loaded in the simulated browser, simulate events, etc.
http://htmlunit.sourceforge.net
Give Badboy a try. It's meant to automate the system testing of your websites but you may find it's regular expression rules handy enough to do what you want.
If you have Excel then you should be able to import the data from the webpage into Excel.
From the Data menu select Import External Data and then New Web Query.
Once the data is in Excel then you can either manipulate it within Excel or output it in a format (e.g. CSV) you can use elsewhere.
In compliment to Whaledawg's suggestion, I was going to suggest using an RSS scraper application (do a Google search) and then you can get nice raw XML to programmatically consume instead of a response stream. There may even be a few open-source implementation which would give you more of an idea if you wanted to implement yourself.
You could use the Perl module LWP, with module JavaScript. While this may not be the quickest to set up, it should work reliably. I would definitely not have this be your first foray into Perl though.
I recently did some research on this topic. The best resource I found is this Wikipedia article, which gives links to many screen scraping engines.
I needed to have something that I can use as a server and run it in batch, and from my initial investigation, I think Web Harvest is quite good as an open source solution, and I have also been impressed by Screen Scraper, which seems to be very feature rich and you can use it with different languages.
There is also a new project called Scrapy, haven't checked it out yet, but it's a python framework.
We generate dynamic reports in all of our business web applications written for .Net and J2EE. On the server side we use ActiveReports.Net and JasperReports to generate the reports. We then export them to PDF to send down to the browser.
Our clients all use Adobe Reader. We have endless problems with the different versions of Adobe Reader and how they are setup on the client.
What file format/readers are others using for their dynamic reports? We need something that allows for precise layout as many of the reports are forms that are printed with data from out systems. HTML is not expressive enough.
I've used SQL Reporting Services for this purpose. You can design a report template in Visual Studio or generate the XML for the report on the fly in code. You can then have SSRS export the report to about 10 different formats and send to the client including pdf, excel, html, etc. You can also write your own plugin to export to your own format.
Crystal Reports has a similar product thats more expensive but has a better report designer.
I've always had the most success using PDFs to accomplish this. I can't think of a more universally acceptable format that does what you are trying to do. Rather than looking for another format, perhaps it would be better to try to understand how to overcome the problems that you are experiencing with Acrobat on the client side. Can you provide some more information on the types of problems that you are experiencing with Acrobat?
I does know only 3(4) possible viewer(formats) for reporting in browser.
PDF
Flash
Java
(Silverlihgt)
For all 3 there are reporting solutions. Silverlight are to new and I does not know a solution. You can test how flash and Java in your intranet work and then search a reporting solution. I think PDF should be made the few problems if you use the newest readers. The old readers has many bad bugs.