使用pdfinfo时出现土耳其字符问题,尝试使用python的pdfrw模块获取标题

使用pdfinfo时出现土耳其字符问题,尝试使用python的pdfrw模块获取标题

我基本上是尝试使用 pdfinfo 添加元数据,尤其是标题到 pdf,如下所示:

\documentclass{article}
\usepackage[utf8]{inputenc}

\title{Türkçe Karakter İçeren Başlık}
\author{Abdullah UYU}
\date{4 Mart 2018}

\pdfinfo{
   /Author (Abdullah UYU)
   /Title  (Türkçe Karakter İçeren Başlık)
}

\begin{document}

    \maketitle
    Yazı

\end{document}

在 python 中我试图获取如下标题:

在此处输入图片描述 如果我删除土耳其语字符,如下所示:

\documentclass{article}
\usepackage[utf8]{inputenc}

\title{Türkçe Karakter İçeren Başlık}
\author{Abdullah UYU}
\date{4 Mart 2018}

\pdfinfo{
   /Author (Abdullah UYU)
   /Title  (Turkce Karakter Icermeyen Baslik)
}

\begin{document}

    \maketitle
    Yazı

\end{document}

我得到了预期的结果:

在此处输入图片描述

答案1

PDF 书签仅将编码 PdfDocEncoding(8 位)和 Unicode 理解为 UTF16BE-BOM。但输入的输入编码是 UTF-8。

软件包hyperref执行从 UTF-8 到 UTF16BE 的必要转换并添加 BOM:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[pdfencoding=auto, pdfusetitle]{hyperref}

\title{Türkçe Karakter İçeren Başlık}
\author{Abdullah UYU}
\date{4 Mart 2018}

\begin{document}

    \maketitle
    Yazı

\end{document}

选项pdfencoding=auto将书签切换为 Unicode,并尝试转换为 PdfDocEncoding。如果符合编码(支持的字符相当有限),则结果为 PdfDocEncoding;如果不符合,则结果为 Unicode。

选项pdfusetitle侵入\title\author获取 PDF 的元数据。或者,可以手动设置这些条目:

\hypersetup{
  pdftitle={Türkçe Karakter İçeren Başlık},
  pdfauthor={Abdullah UYU},
}

PDF 文件包含:

/Author (Abdullah\040UYU)
/Title (\376\377\000T\000\374\000r\000k\000\347\000e\000\040\000K\000a\000r\000a\000k\000t\000e\000r\000\040\001\060\000\347\000e\000r\000e\000n\000\040\000B\000a\001\137\000l\001\061\000k)

作者以 PdfDocEncoding 编码,空格以八进制表示法 ( \040)。也可以将其表示为(Abdullah UYU)。标题以 Unicode 格式表示为 UTF16BE 和 BOM,然后字节(八位字节)被编码为 PDF 字符串,并对非 ASCII 字符和有问题的 ASCII 字符进行八进制转义。

相关内容