Is there a standard way of creating images (PNGs preferably) in Java that antialiases the text properly?
I'd like to avoid iText due to licensing issues, although this is for an open source project.
Batik can do this.
Related
assuming i have well formatted svg file - i use foreignObjects and all sorts of things in it - can i have some java code that lets me input the svg string, and gets out an image file of some sort?
Alternatively, gives me a pdf? I'm not really bothered as to the output format so much as just want some simple code that transforms svg to an image.
I know there are things like batik but I cannot work out how to tie it all together.
Apache Batik is probably the best renderer for Java. I'm assuming you meant a regular Java application and not Android.
However Batik doesn't support <foreignObject> though. It would need to include a complete HTML rendering engine to for that.
To support both SVG and HTML, you would need to embed a complete browser engine. For example Headless Chrome.
How to extract handwritten text from images, like bank form images, in Java?
I tried to using Tesseract, OCR, GOCR but didn't working for me. Are there any other ways to extract handwritten text from images in Java which works at least 80-90%?
Question with links to libraries
I don't think JAVA natively supports this function, so you gotta use libraries.
There was a question which asked for working libraries and the general consent was: you won't get a 80-90% working recognition in a free and open source library.
Anyway, you can try this, as it is a wrapper for Tesseract.
How do I enable fast web view property of a PDF using Java code or any open source Java libraries?
Note: this is also known as a "linearized PDF".
Check out any of these:
iText
gnujpdf
PDF Box
FOP
JFreeReport
PJX - (site appears to be down)
JPedal
PDFJet
JPod
PDF Renderer
Big Faceless
Hope this is helpful to you.
This is a way of structuring a PDF. If you are trying to enable it, you will need to rebuild the PDF - you can't just set a flag.
there's an open source tool, called QPDF, which is content preserving and very fast. In Unix you'd use the following command to linearize:
qpdf --linearize input.pdf output.pdf
it shouldn't be too hard, to call this in Java it seems to me...
Full documentation on this free open sourced tool is here
edit: PDFclown offers serialization also with linearized support now - see http://www.massapi.com/source/PDFClown/java/pdfclown.lib/src/org/pdfclown/files/SerializationModeEnum.java.html
i've been searching on the internet on how to convert a HTML page into a PDF file using Java. i found a lot of pointers, and in short, they don't work or are too difficult to implement. i also downloaded a commercial product, pdf4ml; the API is something i'd be happy to work with, except that when i crawled a simple page on wikipedia, i get a out of memory error (setting Xmx to 1024 M). in some approaches, they suggest converting HTML -> XHTML -> FO -> PDF. however, i am getting a lot of exceptions for the XHTML-to-FO XLS file; and reading the documentations, it's not something that i have enough time to understand right now.
here are my questions/concerns.
1. is there another cohesive API out there that will easily convert HTML to PDF (commercial or not)?
2. is there a way i can simply capture a HTML page and store it as a single file. this approach would be similar to using internet explorer's way of saving a web page as a web archive (single file, MHT format)?
any help is appreciated. (btw, i know this question has been asked repeatedly, but in addition to the original spirit of the question, i'm opened to other ways). thanks.
Try wkhtmltopdf, which is using WebKit. Another option (I'm using that currently) is using OpenOffice (remote controlled via macros).
you may use iText open source Java lib for that, and read this
or use YaHPConverter open source Java lib.
or do this whith help of icepdf popular open source lib
or use pd4ml, but it not free, only trial.
or use this, and this is man for it.
My 2 cents using opensource tools:
You can use either Capture screenshots with Selenium or WebDriver to save html page's screenshot in an image file from your Java code. And once you have image file you can convert it to pdf again from your Java code.
EDIT:
It seems you can do all that in 1 step using itext Html to Pdf
I am not sure but you could Try
1) cobra html rendering engine http://lobobrowser.org/cobra.jsp
2) htmleditorkit -- part of jdk
3) JWebPane
Use the rendering kit to parse and render html. The rendered out put is a swing component. Swing component can be used by itext to generate pdf file out put
You can try out Pdfcrowd. It is an easy to use commercial online API with many options and with support for Java.
It can create PDF either from web pages or raw HTML code.
Is there any free Java library for extracting text from PDF, that is compatible with Google Application Engine?
I've read about PDFJet, but it can't read PDF, can it?
Is there perhaps other way how to extract text from PDF? I tried http://www.pdfdownload.org/, unfortunately they don't handle non-English characters correctly.
iText now has a text parsing module (I'm one of the parser authors). See the com.itextpdf.text.pdf.parser.PdfContentReaderTool class for an example of how to use it.
PdfBox does not run on GAE. It uses not-allowed java classes.
(GAE only permits these http://code.google.com/appengine/docs/java/jrewhitelist.html)
I have partially modified a very old version of PdfBox (0.7.3) to be GAE complaiant. Now I'm able to extract text from PDF (whole page or rectangular area). I only modified a minumum part of the pdf text extraction and not the whole PdfBox. :)
The idea was to remove refences to java.awt.retangle & C. using my own "rectangle" class.
More info: http://fhtino.blogspot.com/2010/04/pdfbox-text-extration-gae.html
I modified the latest (1.8.0-Snapshot) version to run on Google AppEngine. Had to disable one Unit-Test, but it runs fine for simple text extraction.
Following the simple try-fail-fix approach i had to modify 5 files in total. Pretty doable.
You'll also have to explicitly use a RandomAccessBuffer, like Fabrizio explained.
For the extra lazy, heres the compiled jar, dependencies for text extraction, and the patch. Note that it might not work for every usecase (i.e. rectangle based extraction). Used it to extract text of a whole page.
https://docs.google.com/folder/d/0B53n_gP2oU6iVjhOOVBNZHk0a0E/edit
I know there is http://pdfbox.apache.org/index.html
Apache PDFBox is an open source Java
PDF library for working with PDF
documents. This project allows
creation of new PDF documents,
manipulation of existing documents and
the ability to extract content from
documents.
but I've never tested it.
Last month, I'd just finished extracting text from pdf file in my project. I used XPDF tool for getting text, and text coordinates, but I used it in Xcode (Objective-C). This tool was open source, written by C++, and able to be encoded in many language. However, I didn't know whether XPdf would be work on your java, or not. Anyway, You can try this tool.