Are there tutorials and examples of how to interpret PDF documents - pdf

I am using tools such as PDFBox to interpret PDF files (including text, strokes, glyphs and images) and can access the streams and dictionaries. I am not clear on how these components link together and how to interpret them. In particular I would like to know how to access fonts from the streams.
NOTE: I am not interested in tutorials on how to create PDF documents

You probably should start from reading PDF Reference. It's a huge file but you might read only relevant parts.
To understand font streams you are basically need to read about TrueType and Type1 font formats (it's not an easy reading either). PDF may contain other font types but TrueType and Type1 are probably most widely used.
Fiddling with fonts might be complicated so you will probably find it easier to use some font library as FreeType for extracting information from PDF font streams.

There are lots of good article on planetpdf.com and many PDF developers run blogs with useful generic articles. We have run a whole load on our blog (http://www.jpedal.org/PDFblog/)

Related

Overwriting the ToUnicode Map stream in a PDF

In this question, mkl provides a fantastic answer to pnj's predicament. We are unfortunately facing a very similar issue (with a different font called Lohit - Devanagari, but still a Devanagari font) The second comment outlines the non-OCR solution steps beautifully, but I suffer from a huge lacuna in my understanding of PDFs and their structure. As such, it would be great if some direction can be given in terms of the following:
overwrite the ToUnicode map in this PDF using a general purpose PDF library with a low-level object access API for a programming language of your choice: What library in Python can I use to do this?
traversing the PDF object structure, finding the ToUnicode map stream, replacing its content, and saving the result.: Is there some example where I can see how exactly this is done for any font out there?
I hope this isn't too broad. Thank you!

Better tiny format PDF over EPUB or MOBI?

I want to write a book. I'll do it without publishing house. I want to produce the printed paper version. I already know LaTeX, so I can make beautiful PDFs.
Since many people have an ebook-reader, I think it would be worth creating an ebook. I can produce a PDF with a very small format (not A4); but not an EPUB so easily.
Is it okay if I publish my book only in PDF or people will not buy my book because they prefer an EPUB or MOBI?
I think a lot of this depends on the audience of your book. Some things to think about:
One of the biggest differences between PDF and EPUB is that EPUB documents reflow the content based on the size of the reader screen -- so you can support multiple sizes of devices with one file. Apparently PDF files are larger, but I think this depends on how the PDF is created, and if the EPUB has embedded fonts, etc. See this SuperUser question about epub vs mobi vs pdf
Ages ago when I worked on kindle devices I found the font and layout support lacking. EPUB does let you embed your own fonts into the file, and most -- but not all -- readers will support the font and render things exactly the way you want. I suspect MOBI files are still not there yet. It sounds like you are interested in how your book renders on readers, so maybe MOBI files are not for you.
There are programs out there such as Calibre that will convert files from one format to another, for what it's worth.

Include custom fonts in PDF

I have a question about generating PDFs with wkhtmltopdf. I know it's possible to use custom fonts in my html. But I think it's required that the operating system viewing the pdf has installed these fonts. Correct?
My question is whether it's possible to include these fonts in the PDF? So when the PDF is generated I can send it to a print office to print 50 copies. And they see the pdf exactly the same as I, without having these fonts installed.
This is certainly possible.
It's called "embedding a font" in pdf lingo.
Most pdf generation libraries should support this.
Pdf comes in different flavors (standards). One of the standards pdf/A is meant for long term storage (the A stands for archiving). The idea being that the document look and feel should be preserved as much as possible. In order to achieve this without depending on the operating system (and the fonts it may be shipped with), it is required that the fonts are embedded to fulfill the pdf/A standard.
https://en.wikipedia.org/wiki/PDF/A
I don't know how to do this in the library you are using. But I do know it's possible with iText.
This is a great tutorial on it, which aside from giving you more information about iText, will also illustrate the problem with custom fonts in a very visual way.
https://developers.itextpdf.com/tutorial/using-fonts-pdf-and-itext

Creating a PDF viewer using iTextSharp

I am trying to create a PDF viewer using the iTextSharp library, but there doesn't seem to be any documentation anywhere about how I can accomplish this. I don't need to create a PDF file, just display one and give users the option to save the file or export it to a CSV file.
Can somebody please point me in the right direction?
iText is not a PDF viewer (nor iTextSharp) for that matter, but it could be used to examine a PDF document. See for instance iText RUPS. iText RUPS is a tool that allows you to look under the hood of a PDF, more specifically at the PDF objects stored in a PDF as well as at the content streams.
This would be the first step towards writing a PDF viewer. However, iTextSharp doesn't interpret the content stream of a page, nor the resources that belong to that page (such as image streams, glyph descriptions, etc). If that's what you want to build, you need to consult ISO-32000-1. Note that it will probably take several man years to create a decent viewer.
As for the requirement to export a PDF document to a CSV, this may be possible if your original PDF is a Tagged PDF, but it will be impossible for the majority of PDF documents, including documents that consist of scanned images and documents with no machine-recognizable structure.
Please understand that this is a general answer. A more specific answer can not be given since your question is too broad for StackOverflow. All the answers you need can be found by using iText RUPS and reading ISO-32000-1 (there's a copy of ISO-32000-1 available on Adobe's web site).

HowTo extract embedded OCR data from a PDF?

I have PDF-files with embedded OCR data. (So I already orcd them) So they are searchable. Now I want to extract this OCR data, because I want to put in in my tomcat6 searchserver. For doing this, I need the plain OCR data.
So my question is, is it possible to extract this embedded OCR-Data from the pdf Files?
It would be nice to get files with coordinates. But it would also be sufficient to get plaintext files.
You should be able to do this with iText or iTextsharp. iTextsharp has 0 documentation however, and a good number of the functions are not equivalent to those found in iText.
PDFSharp does not support iref streams. Those are pretty much the only comprehensive opensource solutions. If you do not mind paying, vista solutions may have something for you, they mostly handle workflow, but they have some pretty extensive pdf libraries as well.