首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用utf-8将txt转换为pdf?

如何使用utf-8将txt转换为pdf?
EN

Stack Overflow用户
提问于 2019-08-11 10:54:18
回答 1查看 948关注 0票数 1

我使用以下命令将txt转换为ps。然后将ps转换为pdf。

代码语言:javascript
复制
enscript --header='Page $% of $=' --word-wrap -o output.ps 2>/dev/null < input.txt

但它不适用于utf-8输入。

代码语言:javascript
复制
enscript --header='Page $% of $=' --word-wrap -o output.ps 2>/dev/null <<< ℃

上面的命令在输出文件中生成â\204\203

我看到有讨论说enscript不支持utf-8。似乎有几种方法可以将txt转换为pdf。但目前还不清楚哪一个是最健壮和最方便使用的。有没有人知道这个问题的最佳解决方案?

EN

回答 1

Stack Overflow用户

发布于 2019-08-11 16:47:27

将此作为编程问题来处理,而不是请求软件推荐(这将是离题的)。

您不能使用UTF-8,或者至少不能简单地使用它。PostScript根本不直接支持UTF-8。然而……

由于PostScript是一种编程语言,您可以编写一个程序来检查UTF-8序列的第一个字节,看看它是字符码,还是表示更多字节的码。本质上是取消编码以生成Unicode代码点。

在此基础上,使用字形名称和Unicode代码点的列表,您可以创建具有自定义编码的字体,而不是将UTF-8写入PostScript程序,而是编写单个字节,它通过编码将字符代码映射到相关的字形名称。

或者,您可以定义一个CIDFont,然后创建一个CMap,它将UTF-8的可变长度字节序列映射到CID中,以引用字体中的正确字形。IIRC现在已经有了UTF-16cjkv,事实上,Adobe已经提供了一些UTF-16和UTF-32版本的here,它还包括用于各种CMaps语言的UTF-16和UTF-32版本。

请注意,虽然这些方法将生成正确呈现的PostScript,然后可用于创建正确显示的PDF文件,但无法复制/搜索生成的PDF文件。

为了搜索PDF文件,字体必须具有关联的ToUnicode CMap,这是一个仅用于PDF的结构,它在PostScript中不存在,并且没有PostScript等效项。因此,无法将这些信息嵌入到PostScript程序中,这意味着它无法嵌入到PDF文件中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57447046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档