Как я могу подавить пустые страницы в Отчетах о SQL?

Причина в том, что текст в Unicode должен начинаться с метки порядка байтов (кроме UTF-8, где это не рекомендуется).

из Википедии

Метка порядка байтов (BOM) представляет собой символ Unicode, U + FEFF MARK BYD ORDER MARK (BOM), чье появление в виде магического числа на начало текстового потока ...
...
Спецификация закодирована в той же схеме, что и остальная часть документа ...

blockquote>

Это означает, что этот специальный символ (\uFEFF) также должен быть закодирован в UTF-8.

UTF-8 может кодировать кодовые точки Unicode в один-четыре байта.

  • кодовые точки, которые могут быть представлены 7 битами, кодируются одним байтом, старший бит всегда равен нулю 0xxx xxxx
  • все остальные кодовые точки кодируются в нескольких байтах в зависимости от количества бит левые установленные биты первого байта представляют количество байтов, используемых для кодирования, например 110x xxxx означает, что кодирование представлено двумя байтами, байты продолжения всегда начинаются с 10xx xxxx (биты x могут использоваться для кодовых точек)

Кодовые точки в диапазоне [ 119] может быть закодирован одним байтом.
Кодовые точки в диапазоне U+0080 - U+07FF могут быть закодированы двумя байтами. Кодовые точки в диапазоне U+0800 - U+FFFF могут кодироваться тремя байтами.

Подробное объяснение приведено в Википедии

Для спецификации требуется три байта.

hex    FE       FF
binary 11111110 11111111

кодировать биты в UTF-8

pattern for three byte encoding 1110 xxxx  10xx xxxx  10xx xxxx
the bits of the code point           1111    11 1011    11 1111
result                          1110 1111  1011 1011  1011 1111
in hex                          EF         BB         BF

EF BB BF звучит уже знакомо. ; -)

Последовательность байтов EF BB BF - это не что иное, как спецификация, закодированная в UTF-8.

Поскольку метка порядка байтов не имеет значения для UTF-8, она не используется в Java.

кодирование символа спецификации как UTF-8

jshell> "\uFEFF".getBytes("UTF-8")
$1 ==> byte[3] { -17, -69, -65 }  // EF BB BF

Следовательно, когда файл читается, последовательность байтов декодируется в \uFEFF.

Для кодирования, например UTF-16 добавлена ​​спецификация

jshell> " ".getBytes("UTF-16")
$2 ==> byte[4] { -2, -1, 0, 32 }  // FE FF + the encoded SPACE

10
задан Dustin Brooks 2 February 2009 в 12:41
поделиться

2 ответа

Попытайтесь удалить любой 'вакуум' из тела. Уменьшите поверхность редактирования, чтобы быть просто достаточно большими для всего Вашего ReportItems, и мудрыми высотой и мудрыми шириной. ReportingServices думает пространство, которое Вы имеете в теле, является намеренным, таким образом, он сохраняется.

Если это не помогает, и Вы замечаете эту проблему о 2005, даете версии 2008 года попытку. Существует новое свойство, ConsumeContainerWhitespace, который помогает уменьшить пустые страницы.

23
ответ дан 3 December 2019 в 14:18
поделиться

В моем experiene ВСЕГДА случалось так, что данные, которые я имею на странице отчета, БОЛЕЕ ШИРОКИ, чем поля страницы, таким образом, это думает, что должно заставить новую страницу... проверить поля Ваших страниц и также как далеко данные расширяются на нем. Не может казаться, что это к далеко в конструкторе отчетов, но я держал бы пари, что это - ответ. Мы говорим ПИКСЕЛИ здесь, поэтому проверьте это и посмотрите, помогает ли это!

12
ответ дан 3 December 2019 в 14:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: