summaryrefslogtreecommitdiff
path: root/source/pdf/pdf-font.c
AgeCommit message (Collapse)Author
2018-02-06Bug 698990: Start new run of font width only if not at end.Sebastian Rasmussen
Previously, while at the very last glyph mupdf would allocate a new array for a run of distinct glyph widths and then not drop it while leaving the function. Now a new run of font widths is only started if not at the very last glyph.
2018-01-31Use convenience pdf dictionary/array creation functions.Tor Andersson
2017-11-23Workaround freetype synthesizing unicode cmaps.Tor Andersson
2017-11-09Bug 698353: Avoid having our API depend on DEBUG/NDEBUG.Robin Watts
Currently, our API uses static inlines for fz_lock and fz_unlock, the definitions for which depend on whether we build NDEBUG or not. This isn't ideal as it causes problems when people link a release binary with a debug lib (or vice versa). We really want to continue to use static inlines for the locking functions as used from MuPDF, as we hit them hard in the keep/drop functions. We therefore remove fz_lock/fz_unlock from the public API entirely. Accordingly, we move the fz_lock/fz_unlock static inlines into fitz-imp.h (an internal header), together with the fz_keep_.../fz_drop_... functions. We then have public fz_lock/fz_unlock functions for any external callers to use that are free of compilications. At the same time, to avoid another indirection, we change from holding the locking functions as a pointer to a struct to a struct itself.
2017-07-06pdf: Drop font descriptor in case of error.Sebastian Rasmussen
2017-06-22Use unsigned char arrays in hexdumped data.Tor Andersson
2017-06-22Add const to pdf_toname.Tor Andersson
2017-05-31Avoid double literals causing casts to float.Sebastian Rasmussen
2017-04-27Clean up store debug printing.Tor Andersson
Replace fz_print_hash with fz_hash_for_each iterator. Use string formatting callback.
2017-04-27Include required system headers.Tor Andersson
2017-03-28pdf: Use FZ_ERROR_SYNTAX code for syntax errors.Tor Andersson
2017-03-24Ensure fz_store_types are all static const.Robin Watts
2017-03-22Rename fz_putc/puts/printf to fz_write_*.Tor Andersson
Rename fz_write to fz_write_data. Rename fz_write_buffer_* and fz_buffer_printf to fz_append_*. Be consistent in naming: fz_write_* calls write to fz_output. fz_append_* calls append to fz_buffer. Update documentation.
2017-03-03Fix 697554: Use the first 'cmap' table that matches.Tor Andersson
The bug report has an embedded truetype font with 7 different mac roman cmaps. Only the first one has the expected behavior, but we were picking up the last one.
2017-03-03pdf: Additional entries in Mac OS Roman encoding not in MacRomanEncoding.Tor Andersson
When encoding truetype fonts via the mac roman cmap table, we should be using the additional entries introduced in PDF 1.5, which are different from the standard MacRomanEncoding table in the appendix.
2016-11-14Make fz_buffer structure private to fitz.Robin Watts
Move the definition of the structure contents into new fitz-imp.h file. Make all code outside of fitz access the buffer through the defined API. Add a convenience API for people that want to get buffers as null terminated C strings.
2016-10-19Rename internal headers to follow pattern *-imp.h.Sebastian Rasmussen
2016-10-18Avoid checking argument to fz_drop_*()/fz_free().Sebastian Rasmussen
As fz_drop_*()/fz_free() all must handle NULL.
2016-10-05Move fz_font definition to be private.Robin Watts
Move the definition of fz_font to be in a private header file rather than in the public API. Add accessors for specific parts of the structure and use them as appropriate. The font flags, and the harfbuzz records remain public. This means that only 3 files now need access to the font implementation (font.c, pdf-font.c and pdf-type3.c). This may be able to be improved further in future.
2016-09-01Always use glyph aliases when creating encoding tables.Tor Andersson
We were only looking through the glyph name alias list for Type1 fonts. Change the encodings for truetype to use the full glyph list alias list as a fallback when the regular encoding by code point fails.
2016-09-01pdf: Load/open streams by indirect reference object when possible.Tor Andersson
2016-09-01Simplify PDF resource caching table handling.Tor Andersson
2016-07-06pdf: Drop generation number from public interfaces.Tor Andersson
The generation number is only needed for decryption, and is assumed to be zero or irrelevant for all other uses. Store the original object number and generation in the xref slot, so that we can decrypt them even when the objects have been renumbered, without needing to pass the original object number around through the stream loading APIs.
2016-06-22Use vertical presentation forms.Tor Andersson
Remap glyphs using presentation form code points rather than having a separate vertical variant of the CJK font using truetype collections. Recreate DroidSansFallback fonts from original source, extend the glyph coverage from DroidSans, subset the glyphs to match CJK CID collections, and optimize the outlines using fontcrunch.
2016-06-17Use 'size_t' instead of int as appropriate.Robin Watts
This silences the many warnings we get when building for x64 in windows. This does not address any of the warnings we get in thirdparty libraries - in particular harfbuzz. These look (at a quick glance) harmless though.
2016-06-14Fix typos in various parts of the code.Sebastian Rasmussen
2016-05-13Fix double free and memory leak.Tor Andersson
2016-04-27Fix 696649: remove fz_rethrow_message calls.Tor Andersson
2016-04-26pdfcreate: Use industry font name for built-in fonts.Tor Andersson
2016-04-12Silence some warnings in release builds.Robin Watts
2016-03-23Compile embedded fonts in separate C files.Tor Andersson
Also change unsigned char into const char for embedded data.
2016-03-21Allow building with old versions of freetype.Tor Andersson
Debian stable still ships with freetype 2.5.2. We normally wouldn't care, but desktop java builds need to use the system freetype library as that's what AWT links against.
2016-03-07Fix signed/unsigned comparison warning.Robin Watts
2016-03-02Fix mask flags to FT_Get_Advance in ft_width.Tor Andersson
2016-03-01Rename pdf_new_ref to pdf_add_object.Tor Andersson
2016-03-01Use FT_Get_Advance in when loading simple font widths in ft_width.Tor Andersson
2016-02-29pdf-font: Remove unused lockingRobin Watts
We no longer need to take the freetype lock here. We also never read the value assigned to face earlier in the routine, so remove that too.
2016-02-29Simplify ToUnicode CMap creation.Tor Andersson
Only allocate one scratch buffer, and no larger than it needs to be. Detect and warn when we can't create a ToUnicode CMap.
2016-02-29Fix pdf_add_cid_font_widths to work on glyph indices as intended.Tor Andersson
With an identity encoding, the glyph indices are the character codes.
2016-02-29Create CID font /W array as an indirect object.Tor Andersson
2016-02-29Clean up error handling.Tor Andersson
There were plenty of places where we might double free objects in case of errors.
2016-02-29Use fz_advance_glyph when computing CID font widths array.Tor Andersson
2016-02-29Don't embed base 14 or substitute fonts.Tor Andersson
2016-02-29Rename pdf_add_simple_font_res and friends.Tor Andersson
2016-02-29Simplify font descriptor creation.Tor Andersson
2016-02-29Create simple font width table when creating the PDF object.Tor Andersson
We don't need to store it in the fz_font.width_table.
2016-02-29Pass fz_font to pdf_add_xxx_font_res instead of a fz_buffer.Tor Andersson
Make sure all fz_fonts have a ft_buffer available.
2016-02-29Remove pdf_res struct. Use pdf_obj indirect references directly.Tor Andersson
Fix refcounting bugs.
2016-02-29Rename some functions.Tor Andersson
Remove void* typecasts.
2016-02-29Don't deflate the font file stream.Tor Andersson