Need a PDF compressor that I can use from DELPHI 2007.
What is the best one out there?
UPDATE ---
By PDF compressor I mean some way to compress an existing PDF. I don’t need to create new PDF files.
The usage that I’ll do with it, simple, I have in my applications the possibility to associate a file to a product, an entity, equipment whatever, and if the file is a PDF I want to be able reduce its size.
There some tools that can do this with no need to actually zip the file, what would mean that to see it you would have to decompress(unzip), this tools jut reduce the size.
So a PDF compressor, or call it what you will, is just this.
If you need to create PDF from Delphi code, see this page in Delphi:about.
I'd like to add our Open Source SynPdf unit, working from Delphi 6 up to XE.
Arguably the best is the Acrobat family of software from Adobe itself.
Edit 2:
Adobe has quite some extensive documentation on their API and docs on their Acrobat.com services.
Their Acrobat products are in use by a lot of vendors, even the affordable ones, to provide PDF support.
Edit 1:
Downvoters: it is for two reasons I mentioned Arguably in my original answer.
First of all just stating best without adding more criteria will always get a subjective answer.
Second: Adobe is the inventor of PDF, and the PDF support of their software is great. I know there are drawbacks of Adobe software too, but the question was the 'best', which I interpreted as the best PDF support.
There is an on-line PDF compressor that I heard is giving good results.
It should not be too hard to wrap that in Delphi for occasional use.
Related
We have a requirement to add the ability to edit PDF documents witin a Delphi application.
I.e. given a PDF document, open it and generate a form with edit boxes on it which the user can use to update the PDF document.
Can anyone suggest a third part component that would provide this functionality or suggest some way of achieving this.
Thanks
I use QuickPDF. Well documented, lots of examples, good support. However updating text in a PDF is an art, not a science, and unless you have full control over the producer of the PDF you may find it hard to do in the general case. For example: I have seen PDFs where text is formed from individual characters, each inserted at a specific location, so hard to edit as words; and of course in some PDFs the 'text' is actually an image of text, requiring OCR before you can edit it.
You can try Gnostice PDFtoolkit.
DISCLAIMER: I work for Gnostice.
Take a look at Amyuni PDF Creator ActiveX, it is supported in 32 bit and 64 bit applications, you may find it useful now that Delphi has a 64 compiler.
Usual disclaimer applies
I need to generate a report/printout programmatically.
My app currently uses FastReport to build a report, consisting of text, images, tables etc.
It does not bind to any database. Everything is built programmatically.
However, the finished report does not look the same in PDF and RTF, and the old code is generally very complicated.
Are there any better tools to programmatically make a printout or report? Preferably one that outputs PDF and DOC.
In my opinion you've already got the best! I've used QuickReports, Piparti (early ReportBuilder), Crystal(!) and ReportBuilder and I've written a few reports by sending commands direct to the printer. As far as I'm concerned FastReport is much better (although I haven't tried Rave - nor will I).
Is it a recent version of FR? The PDF output for us is fine.
They have some good examples of writing reports through code on their website I believe and if you're looking at re-writing all the reports in A.N.Other reporting product why not, instead, use the opportunity to re-write the reports in a more maintainable way using FR? (Assuming that's possible, of course). Perhaps a cleaner approach to the code of the report generation will make it easier for the FR converter to create the RTF/DOC output...
I've never had much luck generating decent RTF versions of reports from commercial report writers. The only decent output I got was through lovingly hand coding every report using hundreds of '{','}' and '\' and spending days reading the RTF specs. Never again!
A lot of it appears to be down to the order you add the text/lines/fonts/styles etc to the report and the RTF generator can find it difficult to get the best rendering - I think.
You can try Rave Reports.
It has built in components to generate PDF, RTF and HTML documents.
And also it comes free.
For non-database printing needs, FastReport already works (code-based reporting), but for direct printing of Documents you could consider the very-thorough ExpressPrintingSystem from developer express, which is a true delphi printing system, not a reporting system.
Also if you need to create a print documents, almost like a word processor, and then print those word-processor-like documents, consider TRichView. It supports .DOC files, something you asked about.
Some day you might need a banded-report generator again and if you do, FastReport really is the best.
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
I'm looking for a component to view and print PDF files from Delphi/C++Builder. Delphi or ActiveX, not .NET. The license must be for royalty free distribution and the viewer must not require Adobe Reader to be installed.
So far I have tried:
Gnostice PDFtoolkit:
Display problems with JPX images
Radaee PDF Viewer:
Fast rendering, but crashes.
NO reply from support.
VeryPDF:
Slow rendering, but reliable.
No printing
WPViewPDF:
Messed up layout of most PDFs
GdViewer:
No continuous multi-page display
QuickPDF library:
No continuous multi-page display
eXPert PDF Viewer:
Use not allowed for generic PDF viewer.
NO reply from support.
EasyPDF SDK:
No continuous multi-page display
DynamicPDF:
No royalty-free license
Foxit PDF SDK:
No royalty-free license
3-Heights PDF Viewer:
No royalty-free license
Any other options?
Regards,
Brian
I successfully implemented SumatraPDF as an embedded viewer in a Delphi application.
It's to be launched through a shell command but adding the -plugin parameter makes it child of your form or any container. You can then send keystrokes or use DDE to pilot it.
see the wiki and look for "-plugin".
Sumatra is very fast and redistributable under the GPL conditions, it uses MuPDF as rendering engine, which is a very viable solution.
if you look at the source code of the following Total Commander plugin, you will find how to use it. Just ignore the part of the source that integrates the functionality as a TC plugin
For this scenario I recommend Amyuni PDF Creator ActiveX. As stated in the website:
The application license allows for royalty-free distribution
of your application.
Additionally, it supports JPX images, continuous multi-page display and many other features.
Disclaimer: I am part of the development team of this product.
It seems like continuous multipage display is your main problem here with the royalty free libraries.
Just an idea : One option may be to use QuickPDF to convert the PDF into a multipage PDF file and then write some code yourself to simulate a continuous multipage scolling. If you need zooming and other PDF display features then this may not suit your needs though. Another option is to use a thumbnail window down the side to help users navigate and show single page in the main window. You may not have too many other options as you seem to have used all of the PDF libraries that I am aware and a couple more.
It all depends on what your viewing and printing requirements are of course.
WPViewPDF is now available in Version 3.x which is based on a new rendering engine.
It now works with most PDF files. It is very responsive due to multi threading and has the possibility to manipulate PDF files, i.e. interactive moving or deletion of pages.
info: http://www.wpcubed.com
Kind Regards, WPCubed GmbH
I am re-engineering a windows application to be ported to web. One area that has been worrying is 'printing'.
The application is data intensive and complex reports need to be generated. The erstwhile windows application takes advantage of printer APIs and extends sophisticated control to the users. It supports functions like page break, avoiding printing on printed parts of the sheet (like letterhead), choice of layouts and orientation, etc. Please note that these setting are not done only while printing, they are part of report definition sometimes.
From what I know, we cannot have this kind of control while printing web pages. I am in a process of identifying options at my disposal. While I prefer to first look into something that will help me print from raw web pages, following are other thoughts:
Since reports can also be exported to .xls & .pdf versions, let user download one and print directly. This however limits my solution to the area of application that have export feature.
Use Silverlight (4.0) for report layout definition and print. I think Silverlight 4.0 (in beta right now) provides adequate control over the printer. I have so far been avoiding the need of any RIA plugin.
Meticulously generate reports on web with fixed dimensions. I am not sure how far this will go.
Please share practices that can be applied easily in my scenario.
For reporting in the past on the web, using .NET, I like to generate PDF, Excel, Word or CSV files. I really like iTextSharp which allows for creating of PDF's.
Word can accept HTML, so that is usually quote easy. For more control you can get into the Word interops http://nishantrana.wordpress.com/2007/11/03/creating-word-document-using-c/, but they left me frustrated. Not for implementation, but I felt the clean up was poor.
CSV are great for raw data dumps and that is it.
For HTML, you can get nice control using a style sheet targeted to print media. There are just certain things you cannot control, like browser header and footer.
Flash also has better print controls than plain HTML, though you might not know it since these features are rarely used by flash developers. Almost everyone should have Flash installed these days, so it's not like Silverlight where there's a good chance of someone needing to install a plugin (doubly so for a beta version). I am not sure how the Flash printer APIs compare to Silverlight's printer APIs and if they give you the level of control you need, but their documentation is public so you can look into it.
Also I think exporting to PDF is a good idea. I don't see why you can't extend this to cover all places that would need to print a report. Basically instead of printing directly from the windows app running on their desktop, the same exact code runs on your server and generates a PDF that they can then print themselves.
I don't think you're going to have much luck trying to do it with raw HTML unfortunately. For one of our clients, we went with the "generate PDF" route and it worked out quite well. PDFs have the additional advantage that you don't have to print them out: you can just email them to the boss/accountant/whatever saving a bit of paper.
PDF is the way to go, if you want absolute control over printed output. As bonus, you can also provide the option to download PDFs in your application.
With HTML, you are at the mercy of user's browser settings for page size, margin and how page breaks will be handled.
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
We're using Fast Reports to create reports but we're not very happy with the quality of the PDFs it creates. I know we can plug in other PDF components instead of the one that comes with FastReports so my question is
What good PDF components are there out there (Free or Commercial) for Delphi? Ideally it should not require any dlls.
Edit: I bought Gnostice in the end as it had the FastReports integration, source available and a fairly good reputation. I did however find an issue (after I had bought it) with exporting multipage reports from FastReports to PDF where the component leaks memory and corrupts the output. I've reported it to Gnostice so I guess we'll see how good their support is in the next few days...
Edit 2: Gnostice came back with a fix that rectifies the memory leak and the corrupted output.
Use our SynPDF unit. Among its features, you can use a true TCanvas to create the PDF, and embed True Type fonts subsets. It's one of the few libraries handling Arabic languages and such (via the UniScribe API). It's fully Unicode ready, and very fast.
And it's FREE and OpenSource!
Works from Delphi 6 up to Delphi XE.
http://blog.synopse.info/?q=pdf
We are using Gnostice and are very pleased with it. It allows us to print our ReportBuilder reports to PDF, HTML, XML, Excel, Gif, ...
Some minor issues we have come accross working with the component
Somewhere deep in the bowels of the component, Application.Processmessages get's called. You have to make sure your code handles reëntrance.
We had to set Preferences.UseImagesAsResources of the TgtDocSettings component to True to resolve AV's when printing to anything else but PDF.
Probably due to the way we use the component but the first printed page was always Portrait. We had to add a call to gtRBExportInterface.Engine.Settings.Page.Orientation to set the orientation to landscape if needed.
We use wPDF. We don't generate pdf-files directly thought - we generate different reports, and 'print' them to pdf as an alternative to printer.
PowerPDF is free and opensource (LGPL). its realy small but effective!
PowerPDF
Here are some (All Commercial) I came across when looking for something similar:
VisPDF Library - This is worth checking out and you get source.
PDFDoc Scout library - This is an ActiveX control and you don't get source but has some good features (good HTML to PDF conversion for example).
PDF Creator Pilot - Worth checking out too.
I found that the freely available ones LibHaru, PoDoFo weren't up to scratch for my requirements unfortunately.
I've been using wPDF with QuickReports / QRDesign. Basically by converting the report to a metafile then producing the pdf from that. It also claims to have Fast Report support.
There are 2 ways to create PDF reports using eDocEngine. Either you use a report builder component (like QuickReport, Rave etc) and then use the eDocEngine interface to save the contents as PDF.
The other way is to programmtically use TgtPDFDocument class and then settings it's properties and collections. This gives much finer control over features like watermarks, permissions, password security etc.
IIPDFLib by llionsoft at: www.llion.net
Delphi library llPDFLib 3.6
llPDFLib is pure Object Pascal library to create PDF documents. This library doesn't use any DLL or external third-party software to generate PDF files. Library includes TPDFDocument component with properties and methods like Delphi's TPrinter but is designed to generate a PDF file.
Features:
Real Canvas.Handle (HDC)
Unicode support
Acroforms (buttons, radiobuttons, checkboxes, comboboxes, text input fields)
Watermarks
Thumbnail
JavaScript
vEncryption (40 and 128 bit)
Outlines (with support russian, turkish, baltic, east europe, greek, CJK languages)
Compression
Image compression(Jpeg, Flate, CCITT 3, CCITT 3 (2D), CCITT 4)
Hyperlink
Annotation(with support russian, turkish, baltic, east europe, greek, CJK languages)
Embedding True Type fonts (TTF and TTC)
Emulation of the Underline and StrikeOut font style
Present output into Stream for work with CGI/ISAPI applications
Filters for QReport,FastReport and Report Builder.
Set of the components for work with DBGrids
True Type font subset
It costs $299 US, but you get what you pay for.
(source: llion.net)