Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
pdf中docinfo元数据的pdfmark不接受关键字或主题中的重音字符_Pdf_Pdf Generation_Postscript - Fatal编程技术网

pdf中docinfo元数据的pdfmark不接受关键字或主题中的重音字符

pdf中docinfo元数据的pdfmark不接受关键字或主题中的重音字符,pdf,pdf-generation,postscript,Pdf,Pdf Generation,Postscript,我正在用一个程序将元数据插入postscript文件中,用AdobeStiller将其提取为pdf。我使用的代码摘自以下在线章节: 当您查看生成的pdf中的元数据时,重音字符会变成?在“主题”和“关键字”字段中,但不在“标题”和“作者”字段中。字符与ascii 233相同 我试着用八进制编码\351替换它们,它的标题和作者都是一样的好吧,主题和关键词都搞糟了 文件编码为拉丁语-1,unix eol 我在adobe论坛上发现了一条消息,但我觉得这个答案毫无意义 和 我将编码更改为utf-8,在

我正在用一个程序将元数据插入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文件时将重音字符放入所有元数据字段的解决方法,或者告诉我是否做错了

奇怪的是,不同的字段不接受相同的字节

可能与此有关的问题:


我正在嵌入所有字体。

因此,您应该能够使用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&#250;lio Verne
此外,我可以使用并手动将十六进制代码插入正确的位置

é = HEX E9 HTML: &#233;
ç = HEX E7 HTML: &#231;
ú = HEX FA HTML: &#250;
ó = HEX F3 HTML: &#243;
等等。看看上面的表格


我希望这能帮助一些人。

我尝试用记事本++打开.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&#250;lio Verne
é = HEX E9 HTML: &#233;
ç = HEX E7 HTML: &#231;
ú = HEX FA HTML: &#250;
ó = HEX F3 HTML: &#243;