gpt4 book ai didi

html - 如何在 PDF.js 中强制/设置语言环境

转载 作者:行者123 更新时间:2023-12-05 04:56:30 24 4
gpt4 key购买 nike

我正在从旧版本的 PDF.JS (1.9.426) 升级到最新的稳定版 (2.5.207)。

以前,强制语言环境与您的应用程序当前语言环境相匹配非常简单。您只需将其作为 URL 中的参数传递即可;/PDFJS/web/viewer.html?file=example.pdf #locale=zh-CN

但是,在升级时,我看到这是 no longer recommended .这是尽管文档仍然 mentioning it .

在我的应用程序中,用户可以覆盖他们的首选语言环境,因此它可能与浏览器不匹配。

我调查了 embed / object ,这似乎是解决方案,直到我意识到 Android 浏览器 don't support embedded PDF viewing .

我一直在寻找实现它的正确方法,但到目前为止我还没有找到好的或推荐的答案。看来 PDF.js 仍然是最好的全面解决方案,但我想不出使用它来简单地将现有 PDF 渲染到 div 中的正确方法。

据我所知,开发人员只是删除了该选项,没有升级文档,并建议在 viewer.js 中对语言环境进行硬编码(对我来说,这有点违背了要点)。

我希望有人能为我指明正确的方向,并可能帮助遇到此问题的其他人。

最佳答案

对于任何想要让它正常工作的人(直到出现更好的答案),这里有一个修复方法;

在viewer.js中找到方法“_initializeL10n”(v2.5.207第552行);

async _initializeL10n() {
this.l10n = this.externalServices.createL10n({
locale: _app_options.AppOptions.get("locale")
});
const dir = await this.l10n.getDirection();
document.getElementsByTagName("html")[0].dir = dir;
}

改成这样;

async _initializeL10n() {
var hash = document.location.hash.substring(1);
var hashParams = (0, _ui_utils.parseQueryString)(hash);
this.l10n = this.externalServices.createL10n({
locale: ('locale' in hashParams) ? hashParams['locale'] : _app_options.AppOptions.get("locale")
});
const dir = await this.l10n.getDirection();
document.getElementsByTagName("html")[0].dir = dir;
}

这从旧版本获取我们需要的代码并使 #locale= 工作。

我希望在某个时候被告知正确的方法。

关于html - 如何在 PDF.js 中强制/设置语言环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64915575/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com