Report generator in Qt using webkit or QML [closed] - qt

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
in my Qt application I'd like to output PDF-reports. The reports should be slightly modifiable for a particular customer. My idea was to create PFDs using QPrinter from rendered QWebkit-view. Rendered QML could also work. Looks for me as a very easy was to create PDF-reports with very flexible layout customization (CSS/HTML or QML) and without the need to learn/introduce additional software-package into the project.
Is someone aware of such an implementation already? It should be Open-Source (free or commercial)?
My wish-list is :-)
It should be able to display images preferably provided from
client-application as QImage/QPixmal.
It should be able either to
accept all variables as QMap or query values from a Postgres DB.
It should be either embeddable as code or linked as a library
EDIT
already checked:
QtRPT - pretty experimental and unmature. Many magics, comments in Russian in code.
NCReport - Open-source code is too old, last update 2007. Doesn't compile with Qt4.8.4. New versions are provided under commercial licenses. Commercial version looks very mature, has good documentation (ca. 100p), However I'm looking for a software which renders html/QML, so we could order a HTML-developer for creating/maintaining reports.

I dont think there is something ready made exists, otherwise it would be well known, because an issue itself pretty common. As a previous answer I also wrote my own generator. It's not open source, thought.
Problem is not only in printing (as being mentioned in previous answer). It can be more or less solved as soon as you can split whole report into pages yourself. Then you can render report content with headers/footers/page numbers/etc on 'per page' basis and print them separately.
Main problem is that it's easier up to me (having in mind all options Qt provides) to develop nice report generator for particular software, rather then trying to develop something very generic. In this case you have to either limit yourself on features you can use in the report OR introduce a lot of 'magics', certain assumptions/conventions etc.
You can make some kind of generic code for some cases then your reports all have similar structure (for example - header - first page header - main table section- footer with page numbering and all other pages the same without first page header), and then it's fairly simple to make an algorithm which will nicely split you main table section into pages.. but it's all gone as soon as you start think about more complicated scenarios with graphs etc.
An engine I've done based on JS and operates using basic reports primitives (like table, graph, label) which have some layout properties and actually JS code places them on a final report. Some reports primitives can be automatically splitter between pages some not..

I have made that kind of report generator using QWebKit (Qt version 5.1). It is not open source, though.
The biggest problem is that WebKit (or any browser's layout engine that I tried) does not work very well with printing. CSS standard covers printing, but the layout engines do not implement that stuff, or implement it only partially. So if you want features like headers and footers, page numbers, support for multiple paper sizes and support for both landscape and portrait, you have to do a lot of googling and testing. Almost nothing works as expected, so workarounds need to be invented and ugly hardcoding done.
So you can make a report generator using QWebKit. It's not going to be fun and new versions of Qt and QWebKit will most probably break something. So I would recommend making the report generator a separate application so that you can use different Qt versions for the main application and the report generator. At least design the report generator so, that you can separate it from the main application later if needed.

Related

Should I use Orchard or umbraco or something else? [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 11 years ago.
Improve this question
I am building a web site for baby names. Users can submit a name, meaning and some tags, and moderators can edit/approve it. Very small amount of data is used for each entry/post.
Looking for some kind of framework that supports the following features or I can easily extend it,
Unicode support
I have large number of names, I should be able to import them into my website by code.
User roles and permision
Some kind of report options. For example, Display list of names that starts with some alphabet or list of names for a #tag
Full text search
oAuth/OpenID
Are there any frameworks like Orchard, Umbraco I can leverage or would I be better off writing a new ASP.NET MVC application?
If I were you I'd surely stick to some available CMS platforms (Orchard or Umbraco) instead of writing from scratch and reinventing the wheel.
From my experience with Orchard I can say that setting up a website as you described would be pretty easy and painless with this platform.
Features like those you mention are already available in Orchard, but I guess (as with just about every CMS) this will surely need a little customization to suit your particular need. All the custom functionality could be easily wrapped in a single, custom content part. How to do that is very well described in the Orchard documentation.
Of course.
Without a problem. You have three options: import directly into Orchard DB (into the corresponding tables), import using Orchard Import/Export functionality (which would involve exporting the data to XML recipe format first) or just use the current data source without the need of importing. There was a question on SO a while ago of getting data from a custom WebService. The solution provided perfectly fits here, so please take a look.
Out of the box - described here and here.
I don't know if you meant the backend (admin) view or in the frontend? Tagging and displaying tagged items is available oob. More complex, custom reporting would involve some custom coding (writing a custom content part).
Available and described here.
Sure! It's available via very nice OAuth Module, written by Nick Mayne. It allows you to bind Orchard accounts with OAuth providers.
I don't have much experience with Umbraco though, so I can't give you any direct help, but I guess it'd be nearly as easy to built your website using it.
Personally, I prefer Orchard for its flexibility, extensibility and code freshness. But the choice is a matter of your personal feeling and preferences. From what I've seen they have very similar functionality, although differ much under-the-hood.

Need recommendations for an ASP.Net compatible HTML->PDF library [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 9 years ago.
Improve this question
I am looking for a library to convert HTML to PDF, including styles. I would prefer it be able to accept a URL as an option, but if required, HTML can be passed in as a stream/byte array with all styles in a single file/buffer. I am using C# / ASP.Net 3.5. I have complete control of the server machine ( I can run as a service, etc... ) however, I cannot require the user to be logged in, so no application level or print driver type solutions please.
I know there exist free solutions like PDFSharp, but these still require you to format your output properly. I want the library to generate almost identical output to the source input, which this library doesn't provide ( or at least, I believe it doesn't, correct me if I am wrong ).
I also know there are a number of commercial products available. Some of them are a few thousand dollars, which is beyond my current budget for this feature. There is one library ABCPDF which seems to do exactly what I want to do, for a price I can afford to pay. That said, the lack of professionalism/polish on their website has me a bit wary.
If you have experience with ABCpdf, or can recommend a similar library ( price feature wise ), I would greatly appreciate it.
EDIT: Thanks all for the answers. Sounds like abcPDF or aspPDF are the way to go, and both are within budget.
I use and highly recommend ABCPDF for what you need. I use it to pdf complicated html reports (nested tables & lots of css, & charts). It works fantastic pointing it to a url.
As a bonus it supports the page-break-inside: avoid css.
Back when I wrote classic asp, I used their ABCUpload product, which is also fantastic.
Not a recommendation but....
Stay away from iTextSharp for HTML -> PDF. Its the only "approved" PDF gen lib my current employer allows. We've spend endless hours trying to convert HTML to PDF...its just not what its good for. iTextSharp is great for PDF versions of forms
I have used ABCPDF in the past and it is a very good product for the price.
I have had to use their support as well and they were very quick at dealing with an extremely obscure issue. Good communication and turn around time. I think it was 2 days from the time I put in a ticket to the time a solution was found and resolved.
They have also been very easy to work with with respect to licensing as we have had to buy older licenses that were no longer available (so that an existing product did not need to be retested).
Before settling on ABCPDF we tried 2 or 3 open source products but none had the flexibility or level of support we were happy with.
Here is a link to a thread that I commented on that was looking for a similar product:
Generate HTML To PDF Control for the .NET application
We use ExpertPDF's HtmlToPdf converter, which is pretty nice. Our company has an old license, but many new features have been added. It is pretty straightforward using CSS.
http://www.html-to-pdf.net/
ASPPDF supports HTML to PDF including stylesheets.
http://www.asppdf.com/index.html
But, commercial.
I was using aspPDF but from Persist Software, and it works very fine for my project.
It is very impressive, and it has support from a company developing asp components since the beggining of the ASP.
You can check very good live demos at: http://www.asppdf.com/livedemo.html

Good ASP.NET excel-like Grid control? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 8 years ago.
Improve this question
We are looking for an ASP.NET compatible data grid that allows for multi-line editing similar to Excel or a WinForms data grid. It must also support very basic keyboard input (tab, arrow keys, return). Note that we are not looking for Excel capabilities (functions, formatting, formulas) ... just a grid for fast data entry.
I've looked at Telerik, Infragistics, ComponentOne, DevExpress, and many others ... all their support teams have said that the controls either do not support multi-line, or do so in such a clunky way that it would be unusable.
Has anyone used any Excel-like grids that they can recommend? The client-side grids seemed closer to what we needed, with Sigma Widgets ( example ) being the closest I've found so far. Extjs's grid was too inflexible, and the jQuery grid was too buggy.
It does not exist today. There are products such as those you have mentioned which have tried, but in my experience none of them will make an experienced Excel user happy.
My company makes Excel compatible spreadsheet components for use with Windows Forms and ASP.NET. We have been getting this question for years, so we have of course considered building one because it looks like a good business. But HTML / JavaScript is just not a suitable platform for building something which "feels right" to users who want it to work like Excel - IMO.
We have settled on the idea of building a spreadsheet control for Silverlight. I believe this will give you the best of both worlds - cross platform rich interactive spreadsheet in the browser which any Excel user would be comfortable with. Unfortunately, that is not going to happen this month or next...
At my previous company, we actually built a spreadsheet component as a Netscape Plugin, as an ActiveX control and as a Java Applet. They had a little bit of success, but none of these technologies ever became ubiquitous in the enterprise for various reasons. I believe Microsoft is finally getting it right with Silverlight and that Silverlight will become the gold standard for browser based Line of Business applications in the Enterprise.
EDIT:
I should have mentioned that the product I alluded to above is Formula One / NET (Netscape Plugin released ~1995), Formula One / ActiveX and Formula One for Java - which is now sold by Actuate as e.Spreadsheet. I left in 2002, but AFAIK they still maintain the Java Applet which is probably the best example of an Excel like UI in the browser (I have no interest in the product any more - in fact we compete to some extent with e.Spreadsheet and intend to have a better answer with a Silverlight control in the future). I did not mention it by name in my original answer because it is a Java product - not a .NET product - but it is a potential answer even for an ASP.NET web site.
Lloyd Cotten correctly comments that Google Docs is an example of a spreadsheet built with HTML / JavaScript. Lloyd says Google Docs "definitely 'feels right' in its similarity to Excel". While I respect Lloyd's opinion, in my experience Google Docs does not 'feel right'. Perhaps this is because I'm a spreadsheet guy. I do know that we talk to potential customers almost every day who are trying to solve the problem of the OP, and they have all looked and cannot find one they are happy with - but of course they would not be calling us if they had so we are dealing with a biased sample and I understand that.
So I just want to clarify that there are in fact plenty of examples of HTML / JavaScript grids and spreadsheets which are usable. It's just that I don't want to have to use them because I expect certain keys to do certain things and a particular level of responsiveness which is just not there today with any of the HTML / JavaScript solutions I have tried (and I look at them regularly because my company could definitely sell such a product if it were feasible to build one that we could be proud of).
How about FarPoint Spread?
I'm in the middle on evaluating FarPoint Spread for ASP.NET, and so far I've been happy with the result.
We ended up using Sigma Grid ... thanks for all the other replies!
Well.. not sure, but I am looking for something similar and I found:
Nitobi
Not sure if it does exactly what you want, although youcan definately move around with cursor keys, and edit inline....
EDIT
Also Essential Objects have a good editor too... seems very like excel...
http://demo.essentialobjects.com/Default.aspx?path=Grid_i1_i20
RealWorld Grid is probably what you are looking for. I'm using it in my projects, and it works perfectly.
Here's their CooglePlex page
I don't think it supports the arrow keys, but it makes multirow editing a breeze.
p.s. seems like you're looking for client-side grids ... this one is server-side. I'll leave the comment there, somebody might find it useful.
I have used the Infragistics grid with success. However, the learning curve is huge (and there's practically no support) and I don't know if there is multi-line editing.
I've used Syncfusion's components and they're quite good, they boast an "Excel-like" editor, though I didn't see multi-line mentioned.
For intranet and IE users Office Web components can be an option. While flying in the face of all things a good web application should be, they let users feel at home in office on the web.
I had great success using the pivot table control combined with MS OLAP a few years ago. User loved it and no wheels needed to be reinvented.
http://www.microsoft.com/downloads/details.aspx?FamilyID=982B0359-0A86-4FB2-A7EE-5F3A499515DD&displaylang=EN
http://msdn.microsoft.com/en-us/magazine/cc164070.aspx
I think http://codethat.com/grid/ is quite good!
Excel Like GridView allows for multiline editing and navigating using the arrow keys, as well as resizing columns and rows.
http://darkroastjava.wordpress.com/2010/04/28/creating-an-excel-like-grid-for-asp-net/ is an extension of that which also supports pasting multi-cell values from the clipboard.
Unfortunately, both only work in IE so far, but that meets my personal needs at this point of time.
dhtmlxGrid (client-side, JavaScript grid) supports multiline feature (demo), keyboard navigation and comes with server-side connector for ASP.NET. In case, someone is still looking for such a grid. Disclosure: I'm a part of the DHTMLX team.

Maintain CSS styling when converting HTML to PDF in ASP.NET [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 4 years ago.
Improve this question
I am using ITextSharp to convert an HTML page to PDF.
However, ITextSharp prints the CSS in the STYLE declaration straight out, ignores stylesheets even when added programmatically and only listens to some inline styles (e.g. font-size and color but not background-color).
Is there something I am missing with ITextSharp, or is there a better (and free) way of doing this conversion?
Thanks in advance,
HTML / CSS support in iText / iTextSharp is very basic. It's just not the right tool to convert html to pdf.
Take a look at these solutions instead:
Create screenshot of the page with Watin-like tool
http://blog.taiki.be/index.php/2008/07/generating-screenshots-of-webpages-using-net/
http://www.codegod.de/WebAppCodeGod/Screenshot-of-Webpage-with-ASP-NET-AID398.aspx
These render html to an image. Then you can insert them in your PDF with iTextSharp.
Otherwise you could try converting HTML -> XSL-FO -> PDF, but including CSS there is a whole other thing.
Have a look at WKHTMLTOPDF. It is open source, based on webkit and free.
We wrote a small tutorial here.
Try PDF Duo .NET converter. You can apply for support if you need a special feature.
http://www.duodimension.com/html_pdf_asp.net/downloads/html_pdf_net.zip
ABCpdf provides two HTML rendering engines. One is based around the MSHTML version installed on the system. The other is based around the FireFox Gecko rendering engine.
So there's plenty of room for manouver if you want a particular set of features. It's very real world.
In terms of quality I would just say that we do get a lot of people settling on ABCpdf after trying a lot of different alternatives.
I work on the ABCpdf .NET software component so my replies may feature concepts based around ABCpdf. It's just what I know. :-)
Why not use online API? There are plenty of them available and they do the work well, which let you worry about your core work, not how to render a PDF correctly :)
You mention something "free". It depends on your usage, but most services offer free conversions to start with, ranging from 50 to 250 (and even more). Maybe it would be enough for you?
All you'd have to do then is a basic POST request to the service with your HTML data (or link), and you'll get a PDF in response.
Here are a list of API to convert HTML to PDF (not exhaustive):
PDFShift
HTML2PdfRocket
Web2PDFConvert
PDFonline
... (and many more :) )

Free tools to speed up web development [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 6 years ago.
Improve this question
As a little side project, I am starting to build a new website for a certain organization I am affiliated to, which current site is simply outdated.
I am regularly a Java developer, and last time I really did some web development was back in the late 90s, when <p> was still more popular than <div> and Javascript was cutting-edge technology (JQuery is for lazy bums these days :) ).
Anyway, I feel really outdated. The website basically is going to be:
Django based
mostly serve static information pages
it will have a dynamic news and updates page (based on Django admin capabilites)
and some basic apps I'll develop myself (polls, small registration app, etc...)
My problem is designing the whole thing. I found some nice web-based CSS layout generators that got me going, but I still feel I'm wasting my time smoothing out the CSS files and aligning <div>s.
Are there any tools - the simpler and faster, the better - that you recommend I can use to speed up the design part of the site so I can concentrate on the real work?
I don't need anything fancy, just a nice looking layout and design that I can tweak a bit so the site will look presentable.
I second Brandon's suggestion to use a CSS framework. It won't give you 100% freedom to design anything you like, but it can speed up your design process greatly and free up your hands to do the coding you really want.
Suggestions Updated July 2013:
Twitter Bootstrap http://twitter.github.io/bootstrap/ - complete grid, typo, UI widget prototyping framework
ZURB Foundation http://foundation.zurb.com/ - responsive grid, type, UI widget prototyping framework (similar in scope to Twitter Bootstrap, but feels 'cleaner' in some ways)
960 http://960.gs/ - grid layout system
Tripoli http://devkick.com/lab/tripoli/ - really good typography, but no grid system
YUI Grids http://developer.yahoo.com/yui/grids/ - very customizable (to the point of overkill) grid system
Blueprint http://www.blueprintcss.org/ - grid system and basic typography
BlueTrip http://www.bluetrip.org - a hybrid system, mixing the best of the Blueprint grid with the best of the Tripoli typography
I won't lie to you. This website isn't the best place to go if you're looking for reliable Web Design advice. Stack Overflow is a programming community and programmers rarely know anything about design. If you want to get some real advice then I would strongly recommend the main Web Design/Development forums on the Internet, especially SitePoint.
That being said, as a former freelance Web Designer/Developer I'll offer my input on the issue. Not that you should value it, of course. After all, this is a programming website.
NEVER EVER SAY CSS LAYOUT GENERATOR EVER AGAIN! If you're going to seriously get into designing web pages then you need to learn semantic XHTML and CSS first. Whilst many people tout W3Schools as the definitive resource I see it as a programmers answer (i.e. not very good) and would prefer that you read up on the subject using...Google. There are countless examples of great websites to pick up the basics of Web Design/Development that Google is probably the best website for the job. Also, with a plethora of new websites offering this information you know it's going to be more improved than W3Schools. You'll seriously want to get clued-up on writing your design because it'll be much harder to fix things later on in the project.
If you're going to be designing web pages it would be a good idea to learn what actually makes a good design. Check out CSS Vault for a fantastic resource of some of the best-designed web pages around, of course with all the source code intact so you can have a play around with their code and see how they've managed some of the wonderful effects they've produced. I've learnt more than a thing or two from websites that have been featured on CSS Vault. On top of that you should read up on Web Design from the big Web Design/Development sites. Two of my favourites are SitePoint and A List Apart, two names that you'll near time and time again when you hear people talk about resources. Browse those websites, check their forums, see what REAL Web Designers/Developers are using, not what programmers are using.
On the subject of CSS Frameworks; they do help! The problem with using them is that you'll often spend so much time looking for a worthwhile framework that you could have finished most of the CSS for your website yourself. You'll either love them or hate them, but many people will say that they're not necessary.
Once you've got your mind set on what a good design looks like and you've got the resources you need to make something of value I suggest that you get to work! In reality when you're designing a web page all you really need is a text editor with a save function, an image manipulation program, a browser window and FireBug. An IDE helps a lot of people, but if you do use one then you'll definitely want to work in its text mode. I use NotePad++ or Emacs exclusively but a lot of people like to use Aptana Studio, so it may be worth a look.
When you're getting to actually building the code behind your website you can't really go much worse than your favourite IDE/Text Editor and a source control tool. As a Java programmer you're better suited to talk about programming so I won't lecture you on a subject you already know.
In the end, Web Design is going to take time and many of the tools that we choose to use that we claim will "save time" save very little in reality. If you're not a design guru then it will take you a substantial amount of time to create a great-looking website. It's a fact of life. Call me old-fashioned (a funny word coming from a 21 year old) but I still think that the quickest way is to sketch a design out on a piece of paper (a image program if really necessary) and to just get out there and make the damn thing! Again, I'll have to take this hunting for the silver bullet mentality as a programmers trait, one that really won't help that much when designing, because designing a web page is vastly different to writing a Java program.
In short, ignore everything you read here, read what REAL designers are doing and just make the damn thing!
There's one piece of advice that saves more time than any other when it comes to rapid development of CSS styled sites and that's KEEP IT SIMPLE
Use an attractive simple layout that doesn't require pixel perfection and that can 'gracefully' degrade in less compliant browsers (IE6). Minimise the amount of CSS and fix the basic bugs mentioned by meouw above. Then get on an concentrate on content and functionality...the real work
In my previous employment I created dozens of templates for websites.
The most useful too I ever discovered is the Firefox Web Developer Toolbar.
It has a wealth of small useful tools. My favorite feature is the ability to edit the CSS and see the results in real-time. This saves on the whole edit - upload - refresh cycle. Watch out for ie CSS inconsistencies though!
Off the top of my head, these are the most important gotchas.
double margin bug [google: double margin bug]
incorrect (but more intuitive) box model [google: box model]
incorrect (but more intuitive) float clearing [google: clearfix]
FireBug is another really usefull Firefox plugin for more in depth analysis.
I've always found Open Source Web Design to be a good resource when looking to get started trying to design something.
- http://patterntap.com/
- http://www.dotemplate.com/ (interesting concept of customizing template)
- http://www.templatemonster.com/
- http://www.freelayouts.com/websites/html-templates
- http://www.templateyes.com/
No idea what the site is going to be, but have you thought of using a pre-build CMS like Drupal, Joomla etc etc.? You can then tweak templates etc, rather than worrying about making it from scratch.
This question is pretty old, but since we're in 2012, it's only proper that I answer my own question with the exact thing I was looking for, back in 2009.
Twitter Bootstrap
Have you looked into any CSS frameworks? If you are competent enough with CSS something like a framework could help speed things up.
Don't forget firebug :) if you're worried about tweaking the design it's really great. With the inspect feature allowing you to real-time edit the CSS of your page.
https://addons.mozilla.org/en-US/firefox/addon/1843
I second Jens Roland's list of CSS frameworks.
But I would also suggest you have a look at websites such as Smashing Magazine. You might find this article of interest, amongst a lot of others. They tend to do a lot of nice and long mash-ups for the web developers that will at least give you inspiration if not a direct solution.
A colleague of mine has been trying to convince me all week that Dreamweaver, 5 years after I was last forced to use it at gunpoint, is actually now worthwhile for knocking up a design quickly and painlessly, and is also now competent at producing the HTML for that design.
I refuse to invest the 10 minutes it would take to find out based on my previous experiences of it, but you might like to give the demo a quick run around the block :)
I'd recommend finding a CMS package, since you're using Django, look into django-cms. It has TinyMCE and Markdown Support so updating your pages should be easy. Also django-cms integrates well with the Django admin interface.
A piece of paper to sketch your design
A text editor (preferably set up to save directly to a development server local or otherwise) to write up the initial HTML/CSS
FireBug/IEDeveloperToolbar to inspect each element that looks wrong and edit its CSS directly in the browser until it looks fine, followed by commits with the text editor
If you're doing any JavaScript development, use an advanced editor that highlights errors and warnings as you type. This kind of functionality has until recently been the province of static language editors only, but the free NetBeans 6 achieves this amazing feat. Traditionally, you first discovered JavaScript typos and simple bugs when first loading the parent page into a browser. The speed-up you get from being able to short-cut these iterations is profound.
NetBeans 6 also highlights CSS errors and is a more than capable editor for most all languages a web developer is likely to use these days.
You can also use www.zbugs.com - it will help you speed up a process of compressing and gzipping your CSS and Javascript files

Resources