Встраивание числа в PDF не совсем кошерное, но есть некоторые вещи, которые вы можете сделать, чтобы соответствовать спецификации.
В текущей спецификации PDF сказано, что «последняя строка файла должна содержать только маркер конца файла
%%EOF
но есть место для маневра - детали реализации говорят о том, что технически он не должен быть последней строкой файла, а должен появляться только в последнем 1 КБ и, вообще говоря, если вы не гадите с вещами слишком много, большинство послушных читателей даже не моргнет. Если бы мне пришлось это сделать, я был бы склонен добавить новую строку (если ее нет), затем% (который является комментарием в формате PDF), маркер, чтобы сообщить мне, что он мой, и, наконец, число. Так что-то вроде:
// assume we already know it ends with %%EOF
void AppendNumberToPdf(Stream stm, int number, bool addNewline)
{
stm.Seek(0, SeekOrigin.End); // go to EOF
StreamWriter writer = new StreamWriter(stm, new ASCIIEncoding(), 1024);
writer.WriteLine(string.Format("{0}% {1} {2}", (addNewLine ? "\n" : ""), kMyMarkerString, number));
writer.Flush();
}
kMyMarkerString должно быть что-то вроде «MyApplicationDocumentIdentifier:» или что-то такое, что облегчит идентификацию ваших треков.