more
This commit is contained in:
parent
8c3c3ffe28
commit
d56d6c9ace
|
@ -24,7 +24,7 @@ type t =
|
||||||
subset : Pdfio.bytes;
|
subset : Pdfio.bytes;
|
||||||
tounicode : Pdfio.bytes option}
|
tounicode : Pdfio.bytes option}
|
||||||
|
|
||||||
let dbg = ref true (* text-based debug *)
|
let dbg = ref false (* text-based debug *)
|
||||||
|
|
||||||
let tounicode_preamble =
|
let tounicode_preamble =
|
||||||
"/CIDInit /ProcSet findresource begin\n\
|
"/CIDInit /ProcSet findresource begin\n\
|
||||||
|
@ -173,7 +173,7 @@ let write_loca_table subset cmap indexToLocFormat bs loca =
|
||||||
Hashtbl.add locnums 0 (); (* .notdef *)
|
Hashtbl.add locnums 0 (); (* .notdef *)
|
||||||
iter
|
iter
|
||||||
(fun u ->
|
(fun u ->
|
||||||
let locnum = Hashtbl.find cmap u in
|
let locnum = Hashtbl.find cmap u + 1 in
|
||||||
Printf.printf "Unicode %i is at location number %i\n" u locnum;
|
Printf.printf "Unicode %i is at location number %i\n" u locnum;
|
||||||
Hashtbl.add locnums locnum ())
|
Hashtbl.add locnums locnum ())
|
||||||
subset;
|
subset;
|
||||||
|
@ -307,10 +307,17 @@ let remove_unneeded_tables major minor tables indexToLocFormat subset encoding c
|
||||||
tables;
|
tables;
|
||||||
(* Reduce offsets by the reduction in header table size *)
|
(* Reduce offsets by the reduction in header table size *)
|
||||||
let header_size_reduction = i32ofi (16 * (Array.length tables - length !tablesout)) in
|
let header_size_reduction = i32ofi (16 * (Array.length tables - length !tablesout)) in
|
||||||
|
let new_glyf_length =
|
||||||
|
let bs = make_write_bitstream () in
|
||||||
|
write_glyf_table subset cmap bs mk_b glyfoffset loca;
|
||||||
|
i32ofi (bytes_size (bytes_of_write_bitstream bs))
|
||||||
|
in
|
||||||
let newtables =
|
let newtables =
|
||||||
Array.of_list
|
Array.of_list
|
||||||
(map
|
(map
|
||||||
(fun (tag, checksum, offset, ttlength) -> (tag, checksum, i32sub offset header_size_reduction, ttlength))
|
(fun (tag, checksum, offset, ttlength) ->
|
||||||
|
let ttlength = if string_of_tag tag = "glyf" then new_glyf_length else ttlength in
|
||||||
|
(tag, checksum, i32sub offset header_size_reduction, ttlength))
|
||||||
(rev !tablesout))
|
(rev !tablesout))
|
||||||
in
|
in
|
||||||
if !dbg then Printf.printf "***Reduced:\n";
|
if !dbg then Printf.printf "***Reduced:\n";
|
||||||
|
|
Loading…
Reference in New Issue