如何在 pdftk 中正确创建多语言元数据
How can I properly create multilingual metadata in pdftk
pdftk 让我们使用以下命令设置 PDF 的标题:
pdftk input.pdf update_info metadata.txt output output.pdf
但是,如果我在 metadata.txt 文件中使用特殊字符(例如德语字符或中文字符),那么它似乎不起作用。
下面是更改标题的示例:
InfoBegin
InfoKey: Title
InfoValue: Fingerspitzengefühl is a German term.
但是,PDF 以 ü 的奇怪字符结尾
在 documentation of pdftk 中,它表示 non-ASCII 个字符应编码为 XML 个数字实体。然而,我用谷歌搜索了自己,却找不到任何有用的东西。
我找到的最佳参考是 Numerical Character Reference,它适用于 XML(以及 XHTML 和 SGML)。
一般用来表示不能直接编码的字符。
在您的例子中,字符是 U+252,ü
可以替换为 ü
(十进制)、&0374;
(八进制)或 ü
(十六进制)。
使用十进制引用,您的文件应编码为:
InfoBegin
InfoKey: Title
InfoValue: Fingerspitzengefühl is a German term.
注:
如果您使用的是 'Nix,则可以使用 recode
对文件进行编码。
% cat metadata.txt | recode ..xml
pdftk 让我们使用以下命令设置 PDF 的标题:
pdftk input.pdf update_info metadata.txt output output.pdf
但是,如果我在 metadata.txt 文件中使用特殊字符(例如德语字符或中文字符),那么它似乎不起作用。
下面是更改标题的示例:
InfoBegin
InfoKey: Title
InfoValue: Fingerspitzengefühl is a German term.
但是,PDF 以 ü 的奇怪字符结尾
在 documentation of pdftk 中,它表示 non-ASCII 个字符应编码为 XML 个数字实体。然而,我用谷歌搜索了自己,却找不到任何有用的东西。
我找到的最佳参考是 Numerical Character Reference,它适用于 XML(以及 XHTML 和 SGML)。
一般用来表示不能直接编码的字符。
在您的例子中,字符是 U+252,ü
可以替换为 ü
(十进制)、&0374;
(八进制)或 ü
(十六进制)。
使用十进制引用,您的文件应编码为:
InfoBegin
InfoKey: Title
InfoValue: Fingerspitzengefühl is a German term.
注:
如果您使用的是 'Nix,则可以使用 recode
对文件进行编码。
% cat metadata.txt | recode ..xml