У меня есть двухстраничный отчет по SSRS. Когда я экспортировал его в PDF, он занимал 4 страницы из-за своей ширины, где на 2-й и 4-й страницах отображалось одно из моих полей из таблицы. Я попытался установить размер макета в свойствах отчета как ширина = 18 дюймов и высота = 8,5 дюймов.
Это дало мне всю таблицу на одной странице PDF, но я все еще получаю пустыми 2-ую и 4-ую страницы.
Является ли способ, которым я делаю это неправильно? Как еще я могу избавиться от этих пустых страниц?
Я успешно использовал pdftk для удаления страниц, которые мне не нужны / не нужны в pdfs. Вы можете скачать программу здесь
Вы можете попробовать что-то вроде следующего. Взято отсюда по примерам
Удалите «страницу 13» из in1.pdf для создания out1.pdf pdftk in.pdf cat 1-12 14-end output out1.pdf
или:
pdftk A = in1.pdf cat A1-12 A14-end output out1.pdf
Если страницы пустые из SSRS, вам нужно настроить макет отчета. Это будет намного эффективнее, чем выполнение вывода через и после обработки для устранения побочных эффектов проблемы макета.
SSRS очень привередливы, когда речь идет о расширении границ. Случайно расширить / удлинить отчет легко, просто изменив текстовое поле или другой элемент управления в отчете. Тщательно проверьте свойства ширины и высоты поверхности отчета и сожмите их как можно больше. Остерегайтесь больших колонтитулов.
В BIDS или SSDT-BI сделайте следующее:
- Нажмите «Отчет»> «Свойства отчета»> «Макет» (вкладка «Параметры страницы» в SSDT-BI).
- Запишите значения для ширины страницы , левого поля , правого поля
- Закройте и вернитесь к поверхности дизайна
- В окне «Свойства» выберите « Тело».
- Нажмите на символ +, чтобы развернуть узел Размер
- Запишите значение для ширины
Для правильного отображения в PDF Ширина тела + Левое поле + Правое поле должно быть меньше или равно ширине страницы. Когда вы видите, что пустые страницы отображаются, это происходит почти всегда, потому что ширина тела плюс поля больше ширины страницы.
Помните: (Ширина тела + Левое поле + Правое поле) <= (Ширина страницы)
В дополнение к полям, самой распространенной проблеме, я также видел две дополнительные возможности:
- Использование
+
для объединения текста. Вы должны использовать&
вместо этого. - Текст переполняет ширину указанного текстового поля. Так что, если ваше текстовое поле содержит только 30 символов, и вы пытаетесь вписать туда 300 символов, у вас могут появиться дополнительные страницы.
После нескольких часов борьбы с этой проблемой я наткнулся на решение, которое сработало для меня:
В SSDT (2012) мои параметры страницы / страницы были изначально установлены в сантиметрах. Когда я изменил это на дюймы, как ни странно, я смог экспортировать свой отчет в PDF, не оставив при этом ни одной другой пустой страницы
Вы пытались увидеть, есть ли какие-либо пробелы справа от вашего отчета? Если это так, вы можете перетащить его обратно в конец отчета, а затем перетащить фон отчета обратно в то же место.
Еще одна вещь , чтобы попробовать это установить свойство отчета под названием , ConsumeContainerWhitespace
чтобы True
(по умолчанию false
). Вот как это было решено для меня.
Report Properties...
диалог. На вкладке свойств отчета (myReport.rdlc) измените атрибут «Сохранить вместе» на False. Я боролся с этой проблемой некоторое время, и это, кажется, решило мою проблему.
Лучше сделать это в области разработки ( показана Visual Studio 2012, но ее можно выполнить в других версиях ), прежде чем вычислять математические вычисления при редактировании документа SSRS.
Ниже приведены цифры в красных кружках, которые соответствуют следующим шагам:
- В области дизайна иногда редактор создает объект,
page
который больше, чем фактические элементы управления; следовательно область призрака печатается. - Изменить размер элементов управления. Визуально посмотрите на ширину / высоту и посмотрите, не можете ли вы ввести страницу на поверхность конструктора, чтобы увеличить ее по размеру, фактически требуемому элементами управления, и не более того.
- Затем попробуйте создать PDF и посмотрите, исправит ли это.
- Если # 3 не решает проблему, то существуют элементы управления, требующие слишком большого фактического размера страницы и переходящие в длину / ширину. Таким образом, нужно будет уменьшить размер элементов управления, чтобы вместить меньший размер страницы.
Кроме того, в некоторых случаях можно просто изменить свойство страницы отчета, установив ConsumeContainerWhitespace
для true
автоматического потреблять пространства.
Проблема для меня заключалась в том, что SSRS преднамеренно обращается с вашим пустым пространством так, как будто вы намерены его соблюдать:
Помимо пробелов, убедитесь, что нет правого поля.
Я работал с SSRS более 10 лет, и ответы выше - это ответы на вопросы. НО. Если ничего не работает, и вы полностью напичканы .... удаляйте элементы из отчета, пока проблема не исчезнет. Как только вы определили, какая строка или элемент отчета вызывает проблему, поместите его в прямоугольный контейнер. Вот и все. Помог нам много много раз! Дополнительные страницы в основном вызваны тем, что элементы отчета перетекают через правое поле. Когда ничего не помогает, размещение вещей внутри прямоугольника или пустого прямоугольника справа от элемента может остановить это. Удачи там!
Если в ваш отчет входит вложенный отчет, ширина вложенного отчета может раздвинуть границы тела, если разрешить увеличение вложенного отчета и иерархии. У меня была похожая проблема с вложенным отчетом, который мог быть помещен в ячейку (охватывающую 2 столбца). Похоже, что span может содержать его в конструкторе, и он прекрасно отрисовывается в winform или браузере, и первоначально он мог генерировать вывод на принтер (или pdf-файл) без перетекания на лишние страницы.
Затем, после изменения некоторых других значений ширины столбца (и без превышения ширины тела и полей), визуализация winform и браузера выглядела все еще хорошо, но когда был сгенерирован вывод (принтер или pdf), он превысил поля и записал правую часть. каждой страницы в качестве 2-й (4-й и т. д.) страницы. Я мог бы устранить мою проблему, увеличив colspan там, где был размещен подотчет.
Независимо от того, используете ли вы подотчеты, если у вас есть перелив страницы, и ваш дизайн тела вписывается в поля страницы, найдите что-то, что может расти, выталкивая ширину тела.
Недавно я унаследовал отчет, в который мне нужно было внести несколько изменений. После выполнения всех рекомендаций, приведенных выше, это не помогло. Исторически в отчете была эта дополнительная страница, и никто не мог понять, почему.
Я щелкнул правой кнопкой мыши на tablix и выбрал свойства. Был отмечен флажок «добавить разрыв страницы после». После удаления он печатается на одной странице.