如果没有嵌入字体,PDF是否仅限于4281个字符(AGL)?如何显示更多图示符?

如果没有嵌入字体,PDF是否仅限于4281个字符(AGL)?如何显示更多图示符?,pdf,unicode,Pdf,Unicode,(AGL)描述为 是4281字形名称到一个或多个Unicode字符的映射 据我所知,这些是PDF名称,如/Adieresis允许指定相应的unicode字符U+00C4,如果我的理解正确,可以使用这些名称来指定一个映射,如此处所述,用于页面/Resources字典中名为/F1的字体: << /Type /Page /Resources << /Font << /F1 << /Type /Font /Sub

(AGL)描述为

是4281字形名称到一个或多个Unicode字符的映射

据我所知,这些是PDF名称,如
/Adieresis
允许指定相应的unicode字符
U+00C4
,如果我的理解正确,可以使用这些名称来指定一个映射,如此处所述,用于页面
/Resources
字典中名为
/F1
的字体:

<<
/Type /Page
/Resources <<
  /Font <<
    /F1 <<
      /Type /Font    
      /Subtype /Type1
      /BaseFont /Times-Roman
      /Encoding <<
        /Differencs [ 1 /Adiaresis /adiaresis ] 
      >>
    >>
  >>
>>
>
>>
关键问题是,通过
/Differences
数组和预定义的AGL名称,我只能使用基本/内置/标准PDF字体集中的4281个字形/字符,我无法理解,不是吗

基本上,我要问的是,如果不将这些字形嵌入生成的pdf中,显示包含4281 AGL字符中未包含的任何字符的文本是否正确

此外,我还感到困惑的是,PDF中有一个
/toUnicode
功能,允许将嵌入字体的字形/cmap与这些字形应该表示的unicode字符相关联(因此有一些关于“unicode”的想法),但我似乎找不到使用任何合理的unicode码点或中间工作编码的方法(即UTF-8)使用PDF中的内置字体

那么,我的假设正确吗?如果不生成嵌入到pdf文件中的字体,文本最多只能是4281个字符的集合

为了支持其中的所有65557个字符,需要生成包含文本中使用的字形的字体,因为除了那些4281 AGL字形外,似乎无法引用这些unicode字符,对吗

动机

如果能在PDF中找到一种与HTML5相当的方式,那就太好了
。允许文本以一种简单的unicode兼容编码进行编码,并且不必处理复杂的事情,如CID/GID/Postscript字形名称等。

PDF中没有固有的4281字体字形限制。我想你有点困惑,你没有在PDF中嵌入字体。除了标准14字体所有PDF查看器都应该能够处理,PDF软件将在未嵌入字体时查找系统上安装的字体,否则,就不会因为没有嵌入字体而失去显示字形的能力

如果基本编码不能反映字体中的内容,则可以使用差异数组定义不同的编码


ToUnicode在文本提取和文本显示方面发挥了作用。

PDF中没有固有的4281字体字形限制。我认为您有点困惑,您没有在PDF中嵌入字体。除了所有PDF查看器都应该能够处理的标准14种字体外,PDF软件还将查找安装在系统上的字体如果没有嵌入,那么就不会因为没有嵌入字体而失去显示字形的能力

如果基本编码不能反映字体中的内容,则可以使用差异数组定义不同的编码

ToUnicode用于文本提取和文本显示

如果没有嵌入字体,PDF是否仅限于4281个字符(AGL)

不是。不过你应该嵌入字体,以确保PDF在任何地方看起来都一样

基本上,我要问的是,如果不将这些字形嵌入生成的pdf中,显示包含4281 AGL字符中未包含的任何字符的文本是否正确

这是可能的,虽然您最好坚持使用“标准”编码,例如其中一种排序。请参阅PDF规范中的“预定义CMAP”

如果您开始对编码进行更改,例如使用差异,那么将使PDF处理程序的运行时字体替换变得更加困难

关于
/ToUnicode
,它只用于文本提取,与呈现无关。如果您坚持使用上面推荐的标准编码,则不需要这样做

如果没有嵌入字体,PDF是否仅限于4281个字符(AGL)

不是。不过你应该嵌入字体,以确保PDF在任何地方看起来都一样

基本上,我要问的是,如果不将这些字形嵌入生成的pdf中,显示包含4281 AGL字符中未包含的任何字符的文本是否正确

这是可能的,虽然您最好坚持使用“标准”编码,例如其中一种排序。请参阅PDF规范中的“预定义CMAP”

如果您开始对编码进行更改,例如使用差异,那么将使PDF处理程序的运行时字体替换变得更加困难

关于
/ToUnicode
,它只用于文本提取,与呈现无关。如果您坚持上面建议的标准编码,则不需要这样做。

此答案首先讨论了在差异数组中使用非AGL名称以及更全面的复合字体编码。然后讨论了哪种编码一个浏览者实际上必须拥有的字体。最后,它会根据你提供的赏金的澄清来考虑这一切

AGL名称和差异数组 首先让我们考虑一下你原来的问题的焦点,

关键问题是,通过/Differences数组和预定义的AGL名称,我只能使用基本/内置/标准PDF字体集中的4281个字形/字符,我无法理解,不是吗

基本上
( ) Tj