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
Related
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.
I've been doing some head banging on this one and solicit your advice.
I am building an app that as part of it's features is to present PDF forms; meaning display them, allow fields to be changed and save the modified PDF file back out. UIWebViews do not support PDF interactive forms.
Using the CGPDF apis (and benefit from other questions posted here and elsewhere), I can certainly present the PDF (without the form fields/widgets), scan and find the fields in the document, figure out where on the screen to draw something and make them interactive.
What I can't seem to figure out is how to change the CGPDFDictionary objects and write them back out to a file. One could use the CGPDF Apis to create a new PDF document from whole cloth, but how do you use it to modify an existing file?
Should I be looking elsewhere such as 3rd party PDF libs like PoDoFo or libHaru?
I'd love to hear from anyone who has successfully modified a PDF and written it back out as to your approach.
I once did this incredibly cheaply by munging through the PDF -- I mean using regular expressions -- and just dirtily changing the actual raw text of the raw PDF data file.
It can work perfectly in simple situations where you are easily able to find the value in question.
No idea what you're trying to do here but a lateral thought! Hope it helps!
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.
I want to use LaTex to write equations faster and if it is possible to export the result as a png or jpg so that it can be used on a website.
Wikipedia (and its opensource wiki engine) uses LaTeX for that, maybe there are some resources available (at least in the code, as it is opensource).
Your question is very broad. You could start with Amazon's List of Latex Books.
You might want to investigate the StackExchange site mathoverflow.net solution - you can read about here. It uses jsMath which supports a lot of LaTeX syntax.
Assuming you already know a little LateX and your primary goal is to get images, a good high-level tool is mathTeX; there are even public servers that will convert to images for you.
If you want to do everything yourself, all the tools use dvipng at bottom.
I like both MathBin.net and Roger's Online Equation Editor. The latter lets you control the quality of the output. See also this question.
try this: http://hausheer.osola.com/latex2png
Here is a small symbol reference for LaTeX. If you are looking for something more as a general introduction, you can look at "The Not So Short Introduction To LaTeX2e". If you use Inkscape, there is built in support for rendering LaTeX and there are also extensions that do the same. You can read some commentary about it here. There are also things like LaTeX to HTML converters; However, at the time I was looking at them, they were somewhat limited in what formulas they could display.
I taught myself LaTeX using the wikibook. It's fairly comprehensive as an initial guide. I've since bought The LaTeX Companion, which is a more advanced guide to in depth typesetting in LaTeX
I use http://www.artofproblemsolving.com/LaTeX/AoPS_L_TeXer.php when I need a quick equation for a web site.
There are packages that will automatically produce images from LaTeX source, but these are often either buggy or used incorrectly. Many people install them on their blogs, for example, and the images show up if you visit the blog directly but they don't show up if you view the page via a blog reader. I'm not saying these problems can't be fixed. They can, but it often takes a few tries.
I prefer just to make a gif and stick it in the page. It's low tech and reliable.
One more tip: it's a good idea to put the LaTeX source in the alt tag of the image. This helps people using screen readers. It helps you too if you need to modify the equation later.
Detextify is a great site that lets you draw a symbol, and it will pop up a list of latex commands that may match your drawing. It's quite accurate! http://detexify.kirelabs.org/classify.html
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)