在阿尔卑斯字体问题上的木偶/无头Chromium

时间:2018-04-09 12:04:30

标签: google-chrome docker chromium puppeteer alpine

我在Alpine Linux Docker容器中使用Puppeteer。容器继承自node:alpine

默认情况下,它会使英语变得很好,但它根本不会渲染日语。

我看了Puppeteer's Docker docs,这是为Debian量身定做的;我们正在使用Alpine。

为了呈现日语,我运行了apk add font-ipa@edge,它安装了适当的字体。

但是,现在Chromium使用那个字体来渲染英文,看起来很糟糕。我已尝试在其上安装其他字体,例如apk add ttf-freefont@edge,但这并没有改变任何内容。它仍然使用日语字体。

如何让Chromium使用特定的Japenese字体来渲染日文文本,但是使用不同的(默认)字体来渲染非日文文本?需要安装哪些字体?

我们无法使用其他发行版;它必须是阿尔卑斯山。

2 个答案:

答案 0 :(得分:1)

上面的无浏览器提供的先前答案对我有用,但是链接的代码文件已更改。我必须仔细研究文件历史记录,才能找到他在说什么。因此,对于将来任何需要此搜索的人。这是我认为正在引用的代码。它解决了我的问题。

将这些内容添加到您的docker文件中。

ENV font_directory /usr/share/fonts/noto

# Install fonts
RUN mkdir -p $font_directory
RUN cd $font_directory &&\
    wget https://github.com/googlei18n/noto-cjk/blob/master/NotoSansCJKsc-Regular.otf?raw=true && \
    fc-cache -f -v

其他Noto字体库可以在https://www.google.com/get/noto/#sans-hans

中找到

答案 1 :(得分:0)

我维护了一个泊坞窗图像here,可以实现您正在寻找的东西(使用系统字体,但需要时使用其他系统字体)。更具体地说,无浏览器字体使用的是Google自己的Noto CJK字体(Dockerfile中的this line)。