Age | Commit message (Collapse) | Author |
|
Previously we would have tripped over this, thrown an error
and aborted loading the whole page. Any non-stream, non "Identity"
CIDToGIDMaps now produce a warning rather than an error so we don't
stop processing the entire page.
|
|
|
|
Previously if a glyphs units per em was 0 we'd try to divide
by zero, now mupdf assumes a default value and continues.
|
|
|
|
Return TTC subfont index from fz_lookup_noto_font.
|
|
Also support Vertical WMode.
|
|
Remove UTF8 and UTF32 CMap resources that are not needed for PDF.
Add Identity-H and Identity-V resources.
Process UCS2/UTF16 and GBK CMaps to usecmap a common subset.
|
|
Add a PDF_NAME(Foo) macro that evaluates to a pdf_obj for /Foo.
Use the C preprocessor to create the enum values and string table
from one include file instead of using a separate code generator tool.
|
|
Force the face_flags to include TRICKY if we detect a DynaLab font
name instead of trying to force hinting ourselves.
|
|
|
|
|
|
|
|
Don't create a useless pdf_font_desc when writing font resources.
Simplify reference counting by using fewer intermediate variables.
|
|
Use KOI8-U for Cyrillic, and ISO 8859-7 for Greek.
Use with 'mutool create' using an extra argument to the %%Font directive:
%%Font TmRmC Times-Roman Cyrillic
BT
/TmRmC 16 Tf 10 10 Td
<fa c4 d2 c1 d7 d3 d4 d7 d5 ca d4 c5 21> Tj
ET
The alternatives are "Latin", "Greek", and "Cyrillic".
|
|
Create a non-embedded CJK font using UTF-16 encoding. This can be used
in mutool create like so:
%%CJKFont Ming GB1
BT
/Ming 10 Tf
100 100 Td
<4F60 597D> Tj
ET
|
|
|
|
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.
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
Replace fz_print_hash with fz_hash_for_each iterator.
Use string formatting callback.
|
|
|
|
|
|
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
|
|
As fz_drop_*()/fz_free() all must handle NULL.
|
|
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.
|
|
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.
|
|
|
|
|
|
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.
|
|
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.
|
|
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.
|
|
|
|
|
|
|
|
|
|
|
|
Also change unsigned char into const char for embedded data.
|
|
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.
|
|
|
|
|