Пожалуйста, опубликуйте трассировку стека исключений.
Хотя я не уверен, что вызвало исключение, я могу сказать, что вызов cb.saveState()
без соответствия cb.restoreState()
- это плохо.В версии Java это вызовет исключение IllegalPdfSyntaxException.В C # это, возможно, было преобразовано в NPE, но это кажется немного растянутым.
Сохранение и восстановление состояния используется, когда вы хотите что-то сделать, а затем «вернуться» позже.Например,
Draw some stuff
save the state
create a clipping region
draw some clipped stuff
restore the state
draw some unclipped stuff.
Подобные вещи случаются ОЧЕНЬ МНОГО в PDF.Хотите нарисовать изображение?Вы должны изменить Матрицу текущей трансформации (CTM), чтобы поместить изображение в нужном вам размере.Если вы не хотите, чтобы все, что последует, было аналогичным образом преобразовано (а вы этого никогда не сделаете), вы должны обернуть изменение матрицы и отрисовку изображения в блоке сохранения / восстановления.iText обрабатывает это для вас, когда вы вызываете cb.addImage (...), но это все еще происходит за кулисами.