pdf中docinfo元数据的pdfmark不接受关键字或主题中的重音字符
我正在用一个程序将元数据插入postscript文件中,用AdobeStiller将其提取为pdf。我使用的代码摘自以下在线章节: 当您查看生成的pdf中的元数据时,重音字符会变成?在“主题”和“关键字”字段中,但不在“标题”和“作者”字段中。字符与ascii 233相同 我试着用八进制编码\351替换它们,它的标题和作者都是一样的好吧,主题和关键词都搞糟了 文件编码为拉丁语-1,unix eol 我在adobe论坛上发现了一条消息,但我觉得这个答案毫无意义 和 我将编码更改为utf-8,在VIM:u00e9中以二进制方式插入字符,没有更改。我试着在几个地方插入BOM表,但没有成功 这是Acrobat Pro 9.3.3177中的蒸馏器 我没有注意到Acrobat Pro 7的这个问题 是否有人知道在修改postscript文件时将重音字符放入所有元数据字段的解决方法,或者告诉我是否做错了 奇怪的是,不同的字段不接受相同的字节 可能与此有关的问题:pdf中docinfo元数据的pdfmark不接受关键字或主题中的重音字符,pdf,pdf-generation,postscript,Pdf,Pdf Generation,Postscript,我正在用一个程序将元数据插入postscript文件中,用AdobeStiller将其提取为pdf。我使用的代码摘自以下在线章节: 当您查看生成的pdf中的元数据时,重音字符会变成?在“主题”和“关键字”字段中,但不在“标题”和“作者”字段中。字符与ascii 233相同 我试着用八进制编码\351替换它们,它的标题和作者都是一样的好吧,主题和关键词都搞糟了 文件编码为拉丁语-1,unix eol 我在adobe论坛上发现了一条消息,但我觉得这个答案毫无意义 和 我将编码更改为utf-8,在
我正在嵌入所有字体。因此,您应该能够使用ANSI编码文件和PDFDocencode集合中的任何字符(法语重音字符),但这不起作用 另一种方法是仍然使用拉丁-1编码文件,但将Unicode字符放在八进制形式的2字节:\xxx\xxx。并以BOM:\377\366开始字符串 因此,上述主题字符串mot accenté必须翻译为:
/Subject (\377\376\155\000\157\000\164\000\040\000\141\000\143\000\143\000\145\000\156\000\164\000\351\000)
这行得通,但很糟糕。有谁有更好的吗?您可以尝试使用UTF16-BE进行编码,并以254和255 thorn和y-dieresis开始字符串吗?您不需要转义/编码所有重音字符 只需保留标准ASCII字符,并在应显示特殊字符的\NNN符号中混合即可 下面的Ghostscript命令创建一个两页的PDF。它将有几乎空白的页面,包括2个书签/大纲,以及带有重音符号的元数据。例如,对于Windows,在Unix/Linux上,只需使用gs并将行结束转义从DOS批处理的^更改为Unix shell的\:
我希望这最终解决了您的问题。是否有人知道在修改postscript文件时将重音字符放入所有元数据字段的解决方法?您的上一次参考包含使用十六进制字符的良好提示请参阅Mark Storer的反馈 所以不是
[ /Title (mot accenté)
你可以试试
[ /Title <FFEF006D006F007400200061006300630065006E007400E9>`
等等
可能有点笨拙,但在shell脚本的帮助下,它帮助我在pdf书签中添加了其他特殊字符,如“ä”、“õ”、“ü” 虽然这并不能直接回答你的问题,但谷歌在搜索pdf元数据时,还是把我带到了这里 因此,让其他人知道您可以使用 要包含重音字符,请使用 我花了一段时间才弄明白为什么巴桑会被显示为巴桑,但那是真的 因为PDF元数据不接受UTF8 Júlio Verne的元数据示例:
InfoKey: Author
InfoValue: Júlio Verne
此外,我可以使用并手动将十六进制代码插入正确的位置
é = HEX E9 HTML: é
ç = HEX E7 HTML: ç
ú = HEX FA HTML: ú
ó = HEX F3 HTML: ó
等等。看看上面的表格
我希望这能帮助一些人。我尝试用记事本++打开.ps文件,转到编码,转换为UCS-2 Big-Endian,然后保存。它在文件的开头添加了BOM表,并将其大小增加了一倍,所以我认为它是有效的。蒸馏器错误输出为:%%[错误:未定义;违规命令:ÿ]%%%[刷新:将忽略文件结尾的其余作业]%%[警告:PostScript错误。未生成PDF文件。]%%,因此蒸馏器甚至不会在此处查看UCS-2文件。顺便说一句,这是在Windows XP上的,如果有区别的话。您不想将整个文件转换为utf16 be,只需要字符串,所以字符串应该是/Subjectÿÿ。。。等等,谢谢。这很有效。适用于我的示例的字符串是:/Subjectþÿ^@m^@o^@t^@a^@c^@c^@e^@n^@t^@e,其中^@是nul字节。这就是它在Vim中的显示方式,将其放入ascii文件将是一件琐事,但它是可行的。我不知道为什么这两个字段需要这个,但Title和Author不需要。要在Vim、Ctrl-V u 0000Hi、plinth中键入nul字节,我不理解您的编辑版本5,其中添加了一个右括号。我在我的.ps文件中尝试了这一点,但蒸馏器不会接受它:错误:unmatchedmark;有问题的命令:]添加结束符的编辑]完全错误。[operator打开代码块,pdfmark operator关闭代码块。没有必要也没有地方放一个].谢谢,我删除了额外的].IIRC,它应该足以单独编码重音字符,保持
其余为明文ASCII格式。如下所示:/Subject mot accent\351。您的解决方案适用于标题和作者字段,但不适用于主题和关键字字段。这是Adobe的蒸馏器9.3.3177。您的解决方案适用于标题和作者字段,但不适用于主题和关键字字段。这是Adobe的蒸馏器9.3.3177的一部分。@rpilkey:它适用于主题和关键字字段,没有明显的问题。AdobeReader9.3.3.Ah,但是哪个蒸馏器?您似乎正在使用Ghostscript,因此可能是Adobe蒸馏器中的一个错误。@rpilkey:是的,我给定的命令行使用Ghostscript,在上面的段落中,我说:以下Ghostscript命令创建了一个两页的PDF。
InfoKey: Author
InfoValue: Júlio Verne
é = HEX E9 HTML: é
ç = HEX E7 HTML: ç
ú = HEX FA HTML: ú
ó = HEX F3 HTML: ó