Вы выводите html (div, как вы сказали) перед pdf в потоке вывода, так что оба они объединяются. Это приводит к тому, что любое приложение, смотрящее на вывод, интерпретирует его как поврежденный файл. Я бы попробовал удалить первые две строки:
Response.Buffer = true;
FormId.RenderControl(htmlWriter);
Если это не решит проблему, добавьте вызов Response.Clear () перед всем.
Все это предполагает, что sWriter содержит PDF в начале этого блока кода - если нет, то может быть полезен немного больший контекст.
Несколько советов: если это возможно, переместите это со страницы в .ashx или другой IHttpHandler.