什么是pdf bcmap文件?

20

我在我的Web应用程序中使用了一个pdfjs阅读器,它带有所有这些bcmap文件。我追踪了网络流量,发现它们没有被调用。

我不想将这些文件添加到版本控制或问题跟踪系统中,因为它们很多,如果不需要它们的话。

输入图像描述

什么是bcmap文件?


文件名暗示了CJK字体编码,并且在Adobe的博客文章中使用了“基本字符”的术语。...你不够好奇打开其中一个文件并查看里面的内容吗? - Jongware
cmap/bcmap文件仅适用于某些PDF文档。如果您不打算使用/显示它们,可以删除这些文件。 - async5
1个回答

28

“bcmap”一词代表“二进制cmap”。

CMap(字符映射)是文本文件,用于在PostScript和其他Adobe产品中将字符代码映射到CID字体中的字符字形。

请参阅Adobe的此文档,了解CID字体的适用范围。 它们主要用于处理东亚书写系统。(这项技术是遗留技术,因此不应在现代工具创建的pdf中使用)

当pdfjs想要显示此类CID字体时,需要CMap文件。 为此,您需要提供CMaps。

您可以通过PDFJS全局对象上的设置指定存储CMaps的文件夹的URL。

  PDFJS.cMapUrl = '../web/cmaps/';

默认情况下,pdfjs将尝试加载一个名称为所需CMap的文件并且没有扩展名,例如“../web/cmaps/Hankaku”。

如果您像这样启用cMapPacked设置:

PDFJS.cMapPacked = true;

pdfjs会尝试读取一个名为“.bcmap”的压缩版本的CMap文件,例如“../web/cmaps/Hankaku.bcmap”,而不是原始文件。

压缩本身是使用https://github.com/mozilla/pdf.js/tree/master/external/cmapscompress中的工具完成的。


结论:如果可能需要显示由旧版pdf创建工具创建的带有东亚文本的pdf,则包含这些文件并正确设置PDFJS选项。如果您确定不需要显示此类文件,请不要包含文件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接