我正在使用程序将元数据插入postscript文件中,并使用Adobe Distiller将其提取为pdf。我正在使用我从Thomas Merz's "Web Publishing with Acrobat-PDF"的在线章节中获取的代码:
/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse
[ /Title (mot accenté)
/Author (mot accenté)
/Subject (mot accenté)
/Keywords (mot accenté)
/DOCINFO pdfmark
当您查看生成的pdf中的元数据时,重音字符将变为“?”在主题和关键字字段中,但不是标题和作者字段。字符与cii 233
相同我尝试用八进制编码(\ 351)替换它们,它们出现的相同(标题和作者没关系,主题和关键字搞砸了)。
文件编码是latin-1,unix eol
我在adobe论坛上发现了一个提及,但答案对我来说没有意义。
http://forums.adobe.com/message/1165593 和 http://forums.adobe.com/thread/307687
我将编码更改为utf-8,二进制插入字符(在VIM中:<Ctrl-v>
u00e9),没有变化。我尝试在几个地方插入BOM,但它没有用。
这是Acrobat Pro 9的Distiller(9.3.3177)
我没有注意到Acrobat Pro 7的这个问题。
有人知道在修改postscript文件时将重音字符放入所有元数据字段的解决方法,或者告诉我我做错了吗?
不同的字段不接受相同的字节似乎很奇怪。
可能相关的SO问题:Unicode in PDF
我正在嵌入所有字体。
答案 0 :(得分:2)
你可以尝试使用UTF16-BE进行编码并使用254和255(thorn和y-dieresis)启动字符串吗?
答案 1 :(得分:1)
因此,您应该能够使用ANSI编码文件以及PDFDocEncoding集中的任何字符(法语重音字符都是),但这不起作用。
另一种方法是仍使用latin-1编码文件,但将Unicode字符以八进制形式放置(2个字节:\ xxx \ xxx)。并使用BOM:\ 377 \ 366
启动字符串因此,上述主题字符串“motaccenté”必须翻译为:
/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)
这很有效,但很糟糕。谁有更好的东西?
答案 2 :(得分:1)
您无需转义/编码 ALL 重音字符!
保留标准ASCII字符就足够了,只需混合使用特殊字符应出现的\ NNN符号。
以下Ghostscript命令创建两页PDF。它将有几乎空的页面,包括2个书签/轮廓,加上带重音的元数据。示例适用于Windows,在Unix / Linux上只使用gs
并将行结束转义从DOS批处理^
更改为unix shell的\
:
gswin32c.exe ^
-sDEVICE=pdfwrite ^
-o 2-empty-pages-with-bookmarks-and-accents-in-metadata.pdf ^
-c "[/Creator(brains&smarts)/Author(pipitas)/Subject(m\350t accent\351)/Title(mot accent\352)/Keywords(ganz sch\353\353 bl\353\353\d!)/DOCINFO pdfmark" ^
-c "[/Page 1 /View [/XYZ null null null] /Title (Page One) /OUT pdfmark" ^
-c "[/Page 2 /View [/XYZ null null null] /Title (Page Two) /OUT pdfmark" ^
-c "200 500 moveto /Helvetica findfont 100 scalefont setfont (One) show showpage 200 500 moveto (Two) show showpage quit"
.
我希望最终解决您的问题“有人知道在修改postscript文件时将重音字符添加到所有元数据字段中的解决方法吗?”。
答案 3 :(得分:1)
您的上一篇文章包含使用十六进制字符Unicode in PDF的良好提示(请参阅Mark Storer的反馈)
所以而不是
[ /Title (mot accenté)
你可以尝试
[ /Title <FFEF006D006F007400200061006300630065006E007400E9>`
等等......
可能有点笨拙,但是在shell脚本的帮助下,它帮助我将其他特殊字符添加到pdf书签中,例如'ä','õ','ü'。
答案 4 :(得分:0)
尽管这并没有直接回答你的问题,谷歌在搜索“pdf元数据重音”时已经引导我。
因此,对于其他人来说,知道您可以使用pdftk
更改pdf元数据可能很有用要包含重音字符,请使用HTML CODE
我花了一些时间来弄清楚“Baçan”是如何显示为“Baħan”的,但那是 因为PDF元数据不接受UTF8。
JúlioVerne的元数据示例:
InfoKey: Author
InfoValue: Júlio Verne
此外,我可以使用hexedit并手动将十六进制代码插入正确的位置。
é = HEX E9 HTML: é
ç = HEX E7 HTML: ç
ú = HEX FA HTML: ú
ó = HEX F3 HTML: ó
等等。看看上面的表格。
我希望这可以帮助别人。