从 PDF 中提取 ToUnicode 表

发布于 2024-12-08 20:16:22 字数 106 浏览 0 评论 0原文

谁能建议一种易于实现的方法来从 PDF 中提取 ToUnicode 表?我可以使用 pdfextract 从 mupdf 中提取字体,现在我正在寻找一种方法来提取这些字体的 ToUnicode 表。

Can anyone suggest an easy to implement way to extract ToUnicode tables from PDF? I can extract fonts using pdfextract from mupdf, now I'm looking for a way to extract ToUnicode tables for those fonts.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

春花秋月 2024-12-15 20:16:22

您可以修改 pdfextract 以提取 ToUnicode CMap(不是表、CMap)。

您可以查看 savefont 中的代码并添加类似以下内容的内容:

obj = fz_dict_gets(dict, "ToUnicode");
if (obj)
{
    stream = obj;
}

如果存在 ToUnicode(不需要),那么您可以以与将字体流写入文件的方式类似的方式转储流。

obj = fz_dict_gets(dict, "ToUnicode");
if (obj)
{
    stream = obj;
        buf = fz_new_buffer(0);

        error = pdf_load_stream(&buf, xref, fz_to_num(stream), fz_to_gen(stream));
        if (error)
        die(error);
            /* Do something with the data */
    }

buf->data(大小为 buf->len)将包含 CMap,您可以将其写入文件或其他内容。

You can modify pdfextract to extract the ToUnicode CMaps (not tables, CMaps).

You might look at the code in savefont and add something like :

obj = fz_dict_gets(dict, "ToUnicode");
if (obj)
{
    stream = obj;
}

If there is a ToUnicode (there need not be) then you could dump the stream in a similar way to the way the font stream is written to file.

obj = fz_dict_gets(dict, "ToUnicode");
if (obj)
{
    stream = obj;
        buf = fz_new_buffer(0);

        error = pdf_load_stream(&buf, xref, fz_to_num(stream), fz_to_gen(stream));
        if (error)
        die(error);
            /* Do something with the data */
    }

buf->data (of size buf->len) would then contain the CMap, which you could write to file, or whatever.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文