pdfmark для метаданных docinfo в pdf не принимает акцентированные символы в ключевых словах или теме - PullRequest
2 голосов
/ 10 июня 2010

Я вставляю метаданные в постскриптные файлы с помощью программы, которую нужно перекачать в pdf с помощью Adobe Distiller. Я использую этот код, который я взял из онлайн-главы "Веб-публикации Томаса Мерца с помощью 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, акцентированные символы превращаются в "?" в полях Subject и Keyword, но не в полях Title и Author. Символы те же, что и у 233

Я попытался заменить их восьмеричной кодировкой (\ 351), которая получилась одинаковой (заголовок и автор в порядке, тема и ключевые слова перепутаны).

кодировка файла латинская-1, unix eol

Я нашел упоминание на форумах Adobe, но ответ не имел для меня смысла.

http://forums.adobe.com/message/1165593 а также http://forums.adobe.com/thread/307687

Я изменил кодировку на utf-8, вставил символы двоично (в VIM: <Ctrl-v> u00e9), без изменений. Я попытался вставить спецификацию в нескольких местах, она не сработала.

Это с Distiller от Acrobat Pro 9 (9.3.3177)

Я не заметил этой проблемы с Acrobat Pro 7.

Кто-нибудь знает обходной путь для вставки акцентированных символов во ВСЕ поля метаданных при изменении файла postscript, или скажите мне, если я делаю это неправильно?

Кажется странным, что разные поля не принимают одни и те же байты.

Возможно связанный вопрос SO: Unicode в PDF

Я встраиваю все шрифты.

Ответы [ 5 ]

2 голосов
/ 17 июня 2010

Можете ли вы попробовать использовать UTF16-BE для кодирования и запуска строк с 254 и 255 (шип и y-dieresis)?

1 голос
/ 22 августа 2012

Ваша последняя ссылка содержала хороший намек на использование шестнадцатеричных символов Юникод в PDF (см. Отзыв Марка Сторера)

Так что вместо

[ /Title (mot accenté)

вы можете попробовать

[ /Title <FFEF006D006F007400200061006300630065006E007400E9>`

и т.д ...

Может показаться немного неуклюжим, но с небольшой помощью сценариев оболочки это помогло мне добавить другие специальные символы, такие как «ä», «õ», «ü», в закладки PDF.

1 голос
/ 17 августа 2010

Вам не нужно экранировать / кодировать ALL акцентированные символы!

Достаточно сохранить стандартные символы ASCII и просто смешать в нотации \ NNN, где должен появиться специальный символ.

Следующая команда Ghostscript создает двухстраничный PDF.На нем будут почти пустые страницы с 2 закладками / схемами и метаданными с акцентами.Например, для Windows, в Unix / Linux просто используйте gs и измените экранирование конца строки от ^ пакета DOS на \ оболочки * unix:1015 * «Кто-нибудь знает обходной путь для вставки акцентированных символов во ВСЕ поля метаданных при изменении файла postscript?» .

1 голос
/ 14 июня 2010

Итак, вы должны иметь возможность использовать файл в кодировке ANSI и любые символы, которые есть в наборе PDFDocEncoding (это символы с французским акцентом), но это не работает.

Еще один метод - использовать файл в кодировке латиницы-1, но переводить символы Unicode в восьмеричную форму (2 байта: \ xxx \ xxx).И начинайте строку с спецификации: \ 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)

Это работает, но это отстой.У кого-нибудь есть что-нибудь лучше?

0 голосов
/ 09 декабря 2012

Хотя это не дает прямого ответа на ваш вопрос, Google привел меня сюда при поиске "pdf метаданные с акцентом".

Так что, возможно, будет полезно, чтобы другие знали, что вы можете изменить метаданные pdf, используя pdftk

И чтобы включить символы с акцентом, используйте КОД HTML

Мне потребовалось некоторое время, чтобы понять, почему «Baçan» был показан как «Baçan», но это потому что метаданные PDF не принимают UTF8.

Пример метаданных для Жулио Верне:

InfoKey: Author
InfoValue: J&#250;lio Verne

Кроме того, я мог бы использовать hexedit и вручную вставить HEX-код в правильное положение.

é = HEX E9 HTML: &#233;
ç = HEX E7 HTML: &#231;
ú = HEX FA HTML: &#250;
ó = HEX F3 HTML: &#243;

и тд. Посмотрите на таблицу выше.

Надеюсь, это кому-нибудь поможет.

...