Cidfont F1 Embedded Free Download

0 views
Skip to first unread message

Francesca Cruiz

unread,
Aug 5, 2024, 1:20:23 AM8/5/24
to tentingvaro
AboutAcrobat: You cannot use a non-embedded font by CMap Identity-H. Have you tried using a Chinese CMap? In general you have to embed any non-western font but there are special provisions for CJKV fonts with recognised CMaps, if the suitable support pack is added to Acrobat Reader.

Also, I am curious about how PDF language differentiate a two-byte sequence that starts with 0x29 (which is the ascii code for right parenthesis). For example, If I want to output CID 10528 with Identity-H (which would be 0x29 0x20), how does the parser recognize it as part of the string rather than the end of it?


The PDF language defines string syntax as a way of representing a series of bytes, and this parsing takes place without any knowledge of the use that will be made of the string. So, if the string contains left or right parenthesis or backslash characters they will usually be escaped, as you did, so (12\\\() is a string constant representing 4 bytes . However, when working with binary data it's common to use hex string constants rather than character string constants (....\) )


I am evaluating among few PDF editors in the market now to decide which is good for me. I have Acrobat DC Pro in main PC for 2 years but I am not going to spend that amount of money for this secondary PC.


Nitro Pro 12 is the 1st I try, but rather disappointing at the text editing function. It just won't choose the correct font. The file is using embedded font CIDFont+F1 to F4, Nitro uses TimesNewRomanPSMT which is totally different. I have to manually tried until i found a matching font ArialMT, this is very annoying. Under File>Document Properties>Font tab it lists all the embedded fonts in the file.


However there is a notification i observe saying "The license for this font does not allow you to embed it in your file. Please try using another font." Anyway why on earth Nitro can't automatically choose a compatible font??


I try Nuance after this, it keeps prompting unable to use the embedded font every time i click on different text, but at least it auto selects the nearest font (Arial) to use (to me it looks identical). "The original font F3 is not available or can't be used in editing. Power PDF is using the font Arial in its place."


Next is Infix, the text editing is perfect without issue. The embedded font is being used, all the CIDFont+F1 until F4 are listed under drop-down font list. However F2 is remarked in red "This font does not contain all the characters required".


2021 Nitro Software, Inc. All rights reserved. Nitro, the Nitro logo, Nitro Pro, and Nitro Sign are trademarks and/or registered trademarks, of Nitro Software, Inc. or its affiliates in the United States and/or other countries.


Getting an embedded font error message ("Cannot extract the embedded font XXXX...") when opening a Nitro Pro created fillable form in Adobe Acrobat Reader DC. Initially the form field font was ArialMT and got a CID Font+F1 error when opened in Adobe. Changed the font to Helvetica and now getting a CID Font+F5 error message.


Have turned off both "Show font embedding notifications" and "Show in-product messages" in the Nitro Pro preferences. Both the F1 and F5 show up in the embedded font listing in Nitro PRO embedded font list when accessing Document Properties-Fonts. Show as "CID Font+FX (embedded), Type: TrueType (CID), encoding: identity-H" where X = F1 or F5.


Using Nitro Pro 13.53.3.1073. The original PDF file the fillable form was created from does not show errors when opened in Adobe. Have upgraded Adobe Acrobat Reader to current version and same error shows when opened on other computers with other versions of Adobe Reader.


Thus -- regardless of what ghostscript uses to fill in the blanks (maybe fallback glyphs, or a different method to accessing fonts) -- I'd like to be able to use ghostscript to produce ("distill") an output PDF, where pretty much nothing will be changed, except font information added, so evince can render the same document in the same manner as ghostscript can.


Again, the above command line will generate no output to terminal; -optimizeForSpeed -saveVM are there because apparently they deal with fonts; the last argument ./ is the output directory (output file is automatically called fontspec.ps).


... and furthermore, all text seems to be flattened to curves in the postscript - so now one cannot select the text in the .ps file in evince anymore (note that the .ps file cannot be opened in acroread). However, one can convert this .ps back into .pdf again:


... and now the text in the output of pstopdf is selectable in evince, all fonts are there, and evince doesn't complain anymore. However, as I noted, I'd like to avoid roundtrip to postscript files altogether.


We can also observe the page in the same document with imagemagicks display (note that image panning from the commandline using 'display' is apparently still not available, so I've used -crop below to adjust the viewport):


In conclusion: ghostscript (and apparently by extension, imagemagick) can seemingly find the missing font (or at least some replacement for it), and render a page with that -- even if evince fails at that for the same document.


Note: While I'd like to avoid the postscript roundtrip, a good example of gs command line with from pdf to ps with font embedding is here: (#277826) pdf - How to make GhostScript PS2PDF stop subsetting fonts; but the same command line switches for .pdf to .pdf to not seem to have any effect on the problem described above.


The way that pdfwrite and Ghostscript work is to fully interpret the incoming data (PostScript, PDF, XPS, PCL, whatever), creating a series of graphics primitives, which are passed to the pdfwrite device. The pdfwrite device then reassembles these into a brand new PDF file.


Now, I would suggest that you upgrade your 9.02 Ghostscript to 9.05 to start with. Missing CIDFonts are much better handled in 9.05 (and will be further improved in 9.06 later this year). (The font you are missing 'Osaka Mono' is in fact a CIDFont, not a regular font)


Using the current bleeding edge Ghostscript code produces a PDF file for me which has the missing font embedded. I can't tell if this will work for you because my copy of evince renders the original file perfectly well.


Examining the original PDF file I see that the fonts there are indeed embedded (as I would expect, since they are subsets). So in fact as you say in your own answer above, the problem is not font embedding, but the use of CIDFonts.


The problem with 'remapping' the characters is that a font is limited to 256 glyphs, while a CIDFont has effectively no limit. So there is no way to put a CIDFont into a Font. The only way to do this would be to create multiple Fonts each of which contained a portion of the original, and then switch between them as required. Slow and klunky.


If you convert to PostScript using the ps2write device then it will do this for you, but you stand a great risk that in the process it will convert the vector glyph data into bitmaps, which will not scale well.


Fundamentally you can't really achieve what you want to do (convert 1 CIDFont into N regular Fonts) with Ghostscript, or in fact with any other tool that I know of. While its technically possible, there is no real point since all PDF consumers should be able to handle CIDFonts. If they can't then its a bug in the PDF consumer.


As the output shows - all fonts are, indeed, embedded; so something else is the problem. (It would have been more difficult to observe this in the complete fontspec.pdf, as there are a ton of fonts there, and a ton of error messages.)


CID fonts are PostScript resources containing a large number of glyphs (e.g. glyphs for Far East languages, Chinese, Japanese and Korean). Please refer to the PostScript Language Reference, third edition, for details.


CID font resources are a different kind of PostScript resource from fonts. In particular, they cannot be used as regular fonts. CID font resources must first be combined with a CMap resource, which defines specific codes for glyphs, before it can be used as a font. This allows the reuse of a collection of glyphs with different encodings.


For instance, 5.3. Using Ghostscript To Preview Fonts - Making Fonts Available To Ghostscript - Font HowTo describes how the Ghostscript-installed script called prfont.ps can be used to render a table of fonts.


In the end, I guess my question boils down to: how could ghostscript be used, to map the glyphs from a CID embedded font - into a font with a different "encoding" (or "character map"?), which will not require additional language files?


... and then using sudo nano locate gs_ttf.ps, you can add the statement (Hello from gs_ttf.ps\n) print at the beginning of the code; then whenever one of the above gs commands is called, the printout will be visible in stdout.




I'm trying to print PDFs using gsprint (Ghostscript 8.64) on Windows. It was working well until I encountered a PDF with a CID font that wasn't embedded. I get errors complaining about the Arial CID font used in the PDF.


If I upgrade to 9.07, it works fine -- probably because it generates the CIDFMAP file at the end of the installation. But I don't want to upgrade to 9.07. I've tried generating the CIDFMAP file via the following command, but the CIDFMAP file that gets generated is always empty (other than the header).


I tried copying the CIDFMAP file from 9.07 to 8.64 lib folder, but that didn't work. Maybe I need to add some property somewhere specifying the location of the CIDFMAP file? How can I get gsprint (or gsview) to do the substitution of the Arial CID font?

3a8082e126
Reply all
Reply to author
Forward
0 new messages