Cách thoát khỏi các trang trống trong PDF được xuất từ ​​SSRS


194

Tôi có một báo cáo SSRS hai trang. Khi tôi xuất nó sang PDF, nó đã mất 4 trang do chiều rộng của nó, trong đó trang thứ 2 và thứ 4 đang hiển thị một trong các trường của tôi từ bảng. Tôi đã cố gắng đặt kích thước bố cục trong thuộc tính báo cáo là width = 18in và height = 8,5in.

Nó đưa cho tôi toàn bộ bảng trong một trang PDF, nhưng tôi vẫn để trống trang thứ 2 và thứ 4.

Là cách tôi đang làm nó không chính xác? Làm thế nào khác tôi có thể thoát khỏi những trang trống?

Câu trả lời:


344

Trong BIDS hoặc SSDT-BI, hãy làm như sau:

  1. Nhấp vào Báo cáo> Thuộc tính báo cáo> tab Bố cục (tab Thiết lập trang trong SSDT-BI)
  2. Ghi lại các giá trị cho Độ rộng trang , lề trái , lề phải
  3. Đóng và quay trở lại bề mặt thiết kế
  4. Trong cửa sổ Thuộc tính, chọn Thân
  5. Nhấp vào biểu tượng + để mở rộng nút Kích thước
  6. Ghi lại giá trị cho Chiều rộng

Để hiển thị trong PDF chính xác Chiều rộng cơ thể + Lề trái + Lề phải phải nhỏ hơn hoặc bằng chiều rộng Trang. Khi bạn thấy các trang trống được hiển thị, hầu như luôn luôn là do chiều rộng thân cộng với lề lớn hơn chiều rộng của trang.

Ghi nhớ: (Chiều rộng cơ thể + lề trái + lề phải) <= (Chiều rộng trang)


14
Không hoạt động. Chiều rộng cơ thể của tôi nhỏ hơn "Chiều rộng báo cáo - lề". Và tôi vẫn còn một tấn trang trống trong đó.
tỏi adolf

2
@adolfgarlic Tôi đã thấy rằng cài đặt độ rộng trang không phải lúc nào cũng hoạt động chính xác trong thuộc tính báo cáo. Bạn đã thử kéo thủ công độ rộng báo cáo trong Visual Studio chưa? Điều đó đã giải quyết vấn đề này cho tôi hôm nay sau khi đập đầu vào tường một lúc. Cũng đáng để kiểm tra độ rộng tiêu đề / chân trang của bạn, chúng có thể hơi quá lớn.
Michael A

15
Tôi thấy rằng quy tắc hoạt động ở đây không phải là (Chiều rộng cơ thể + lề trái + lề phải) <= (Chiều rộng trang) mà giống như (Chiều rộng thân + lề trái + lề phải) <(Chiều rộng trang-1cm)
Jafin

3
Ngoài ra, một điều khác cần lưu ý là chiều cao của tiêu đề + thân + chân trang + lề trên + dưới <Chiều cao trang khác trang sẽ được chuyển trong nhiều trang.
desiguy

4
Khi bạn tạo báo cáo lần đầu tiên, nhà xây dựng sẽ chạy một vùng màu trắng ("Cơ thể" mà Nathan đề cập) trên toàn bộ chiều rộng của màn hình để đặt công cụ vào. Thông thường, khu vực màu trắng này rộng 17 inch trên màn hình hộp thư mới hơn. Điều không trực quan rõ ràng là đây được coi là một đối tượng có thể in được và cần được thu hẹp theo chiều rộng của những thứ bạn đặt trên nó. Nếu bạn không làm điều này, bạn sẽ nhận được các trang trống, bất kể tất cả những thứ khác mà mọi người đề cập.
BobRodes

112

Một điều cần cố gắng là để thiết lập các tài sản báo cáo gọi ConsumeContainerWhitespaceđến True(mặc định là false). Đó là cách nó được giải quyết cho tôi.


2
Đúng, làm việc cho tôi quá. Tôi có một container với một tablix với các nhóm cột. Rõ ràng container đang phát triển để chứa các nhóm cột và không tiêu tốn khoảng trắng của container, nó sẽ tràn qua ranh giới trang.
Ciarán

4
Đây chắc chắn là chìa khóa cho tôi. Tôi luôn tận dụng câu trả lời được chấp nhận bởi Nathan, với kết quả hỗn hợp. Trong mỗi trường hợp giải pháp của Nathan không giải quyết được vấn đề, thì giải pháp này đã thực hiện được. Hãy lưu ý rằng bạn vẫn nên sử dụng những gì Nathan gợi ý.
bojingo

CÓ x100! Thật tệ khi bạn không thể có 2 "câu trả lời được chấp nhận", bởi vì có vẻ như khóa học phù hợp là sự kết hợp của cả điều này và câu trả lời được chấp nhận. Thanh danh cho bạn!
NateJ

2
Rất tiếc, lấy lại. Tôi đang sử dụng VS 2017 SSRS / SSDT; đã cho tôi một thời gian để con số ra bạn phải sử dụng thuộc tính cửa sổ để tìm tính năng này, không những Report Properties...thoại.
codeMonkey

1
điều đó đã làm việc cho tôi sau khi vật lộn một lúc ... cảm ơn rất nhiều
Joel_J

28

Sau nhiều giờ vật lộn với vấn đề này, tôi tình cờ tìm ra giải pháp hiệu quả cho mình:

Trong SSDT (2012), ban đầu tôi đã đặt các đơn vị Thiết lập Trang / Trang của mình thành Cm. Khi tôi thay đổi điều này thành Inch, thật kỳ lạ, tôi có thể xuất báo cáo của mình sang PDF mà không để mọi trang khác bị trống.

nhập mô tả hình ảnh ở đây


Điều này làm việc cho tôi hoàn hảo. Thay đổi inch thành Cm sẽ hoạt động hoặc ngược lại, nhưng không cần phải dán vào Cm. Một điều nữa là, cần đặt lề cho ít nhất 1cm sau đó báo cáo được tạo mà không cần thêm trang trống.
Ravi Shankar

21

Tốt hơn là làm điều này trên bề mặt thiết kế ( Visual Studio 2012 được hiển thị nhưng có thể được thực hiện trong các phiên bản khác ) trước khi tính toán bất kỳ phép toán nào khi chỉnh sửa tài liệu SSRS.

Bên dưới các số sau trong vòng tròn màu đỏ ánh xạ tới các bước sau:

  1. Trong bề mặt thiết kế, đôi khi trình soạn thảo sẽ tạo ra một pagecái lớn hơn các điều khiển thực tế; do đó khu vực ma được in.
  2. Thay đổi kích thước để điều khiển. Nhìn trực quan vào chiều rộng / chiều cao và xem liệu bạn không thể đưa trang trên bề mặt thiết kế để định kích thước cho không gian thực sự cần thiết bởi các điều khiển và không còn nữa.
  3. Sau đó thử tạo một tệp PDF và xem nếu nó sửa nó.
  4. Nếu # 3 không giải quyết được vấn đề, thì có những điều khiển yêu cầu quá nhiều kích thước trang thực tế và đi qua cả chiều dài / chiều rộng. Vì vậy, người ta sẽ cần làm cho kích thước của các điều khiển nhỏ hơn để phù hợp với kích thước trang nhỏ hơn.

Các bước khắc phục thủ công


Cũng trong một số trường hợp người ta chỉ có thể thay đổi một thuộc tính của trang báo cáo bằng cách thiết lập ConsumeContainerWhitespaceđể truetự động tiêu thụ không gian.


2
Cảm ơn bạn! Tôi biết nó phải đơn giản hơn là trải qua các con số và làm toán. Tôi đã không biết rằng nó đang in whitepace chỉ vì cơ thể báo cáo quá lớn.
Tor

Đặt ConsumeContainerWhitespace thành true đã làm điều đó cho tôi. Mặc dù vậy, tôi đã dọn sạch báo cáo, cơ thể và chiều rộng của bảng
Jon Dosmann

18

Vấn đề đối với tôi là SSRS cố tình đối xử với khoảng trắng của bạn như thể bạn dự định nó sẽ được vinh danh:

nhập mô tả hình ảnh ở đây

Cũng như khoảng trắng, đảm bảo không có lề phải.


1
Xin chào @ jeremy-th trộm, mẹo của bạn xảy ra rất tiện dụng. Chúc mừng
Andy K

1
Xóa lề phải làm việc cho tôi và không ảnh hưởng đến kết xuất trong trình xem báo cáo web hoặc PDF.
andrej351

1
5 năm sau, đây là một trong những cho tôi.
MPJ567

17

Nếu các trang trống đến từ SSRS, bạn cần điều chỉnh bố cục báo cáo của mình. Điều này sẽ hiệu quả hơn nhiều so với việc chạy đầu ra thông qua và xử lý bài để sửa chữa các tác dụng phụ của vấn đề bố cục.

SSRS rất khó tính khi đẩy ranh giới của lề. Thật dễ dàng để vô tình mở rộng / kéo dài báo cáo chỉ bằng cách điều chỉnh hộp văn bản hoặc điều khiển khác trên báo cáo. Kiểm tra tính chất chiều rộng và chiều cao của bề mặt báo cáo một cách cẩn thận và siết chúng càng nhiều càng tốt. Xem ra cho tiêu đề lớn và chân trang.


5

Ngoài lề, vấn đề phổ biến nhất cho đến nay, tôi cũng đã thấy hai khả năng bổ sung:

  1. Sử dụng +để nối văn bản. Bạn nên sử dụng &thay thế.
  2. Văn bản tràn chiều rộng của hộp văn bản được chỉ định. Vì vậy, nếu hộp văn bản của bạn chỉ chứa 30 ký tự và bạn cố gắng nhồi nhét 300 trong đó, bạn có thể sẽ có thêm các trang.

5

Tôi đã làm việc với SSRS trong hơn 10 năm và các câu trả lời ở trên là câu trả lời. NHƯNG. Nếu không có gì hoạt động và bạn hoàn toàn bị nhồi .... xóa các mục khỏi báo cáo cho đến khi vấn đề biến mất. Khi bạn đã xác định hàng hoặc mục báo cáo nào gây ra sự cố, hãy đặt nó vào trong một thùng chứa hình chữ nhật. Đó là nó. Đã giúp chúng tôi nhiều lần! Các trang bổ sung chủ yếu được gây ra bởi các mục báo cáo chảy qua lề phải. Khi thất bại, đặt mọi thứ vào trong một hình chữ nhật hoặc một hình chữ nhật trống ở bên phải của một vật phẩm, có thể ngăn điều này xảy ra. Chúc may mắn ngoài kia!


Nó hoạt động với tôi. Thêm thêm cột trống vào bảng, báo cáo của tôi ở định dạng pdf không hiển thị các trang trống thêm ..!
đom đóm

4

Bạn đã thử xem có bất kỳ khoảng trắng nào ở bên phải báo cáo của bạn không? Nếu vậy, bạn có thể kéo nó trở lại đến cuối báo cáo và sau đó kéo nền báo cáo trở lại cùng một vị trí.


4

Trên tab thuộc tính của báo cáo (myReport.rdlc), thay đổi thuộc tính "Giữ lại với nhau" thành Sai. Tôi đã vật lộn với vấn đề này một thời gian và điều này dường như đã giải quyết được vấn đề của tôi. nhập mô tả hình ảnh ở đây


2

Nếu báo cáo của bạn bao gồm một báo cáo con, chiều rộng của báo cáo con có thể đẩy ranh giới của cơ thể nếu báo cáo con và phân cấp được phép phát triển. Tôi đã có một vấn đề tương tự phát sinh với một báo cáo con có thể được đặt trong một ô (kéo dài 2 cột). Dường như nhịp có thể chứa nó trong trình thiết kế và nó hiển thị tốt trong winform hoặc trình duyệt và, ban đầu, nó có thể tạo đầu ra máy in (hoặc tệp pdf) mà không bị tràn ra các trang thừa.
Sau đó, sau khi thay đổi một số độ rộng cột khác (và không vượt quá chiều rộng thân cộng với lề), kết xuất của winform và trình duyệt trông vẫn ổn nhưng khi đầu ra (máy in hoặc pdf) được tạo ra, nó đã vượt qua lề và viết bên phải của mỗi trang dưới dạng trang thứ 2 (thứ 4, v.v.). Tôi có thể loại bỏ vấn đề của mình bằng cách tăng colspan nơi đặt báo cáo con.
Cho dù bạn có sử dụng các báo cáo con hay không, nếu bạn có tính lan tỏa của trang và thiết kế cơ thể của bạn phù hợp với lề của trang, hãy tìm thứ gì đó được phép phát triển để đẩy chiều rộng của cơ thể ra ngoài.


2

Gần đây tôi đã kế thừa một báo cáo mà tôi cần để thực hiện một vài thay đổi. Sau khi làm theo tất cả các khuyến nghị ở trên, nó không có ích. Báo cáo trong lịch sử có thêm trang này, và không ai có thể hiểu tại sao.

Tôi nhấp chuột phải vào tablix và các thuộc tính được chọn. Có một hộp kiểm tra cho biết thêm một ngắt trang sau. Sau khi loại bỏ nó, nó in trên một trang bây giờ.

nhập mô tả hình ảnh ở đây


-3

Tôi đã sử dụng thành công pdftk để xóa các trang tôi không muốn / cần trong pdf. Bạn có thể tải chương trình tại đây

Bạn có thể thử một cái gì đó như sau. Lấy từ đây dưới các ví dụ

Xóa 'trang 13' khỏi in1.pdf để tạo out1.pdf pdftk in.pdf cat 1-12 đầu ra 14 đầu ra1.pdf

hoặc là:

pdftk A = in1.pdf mèo A1-12 Đầu ra cuối A14 out1.pdf

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.