Похоже, вы попали в ловушку Magic Coding: вы просто внедряете код, не зная точно, что происходит в API. Здесь очень мало информации, но я бы порекомендовал использовать отладчик: установить точки останова, чтобы точно определить, какие данные обрабатываются.
По-видимому, данные, содержащие Ничто, отправляются в представление для печати, поэтому PrintDocument1 должен быть пустым. Я бы порекомендовал не повторно использовать объекты, а восстановить их. Поэтому начните с PrintPreviewDialog1 = new PrintPreviewDialog, установите его настройки и т. Д. По сути, следуйте любому руководству по печати в VB.Net и убедитесь, что вы повторно создаете экземпляры используемых вами объектов.