SSRS'den dışa aktarılan PDF'deki boş sayfalardan nasıl kurtulurum


195

İki sayfalık bir SSRS raporum var. PDF'ye aktardığımda genişliği nedeniyle 4 sayfa alıyordu, burada 2. ve 4. sayfalar tablodaki alanlarımdan birini gösteriyordu. Rapor özelliklerinde düzen boyutunu genişlik = 18 inç ve yükseklik = 8,5 inç olarak ayarlamaya çalıştım.

Bana tüm tabloyu tek bir PDF sayfasında verdi, ancak hala 2. ve 4. sayfaları boş bırakıyorum.

Bunu yapma şeklim yanlış mı? Bu boş sayfalardan başka nasıl kurtulabilirim?

Yanıtlar:


346

BIDS veya SSDT-BI'da aşağıdakileri yapın:

  1. Rapor> Rapor Özellikleri> Düzen sekmesine tıklayın (SSDT-BI'da Sayfa Yapısı sekmesi)
  2. Sayfa genişliği , Sol kenar boşluğu , Sağ kenar boşluğu değerlerini not edin
  3. Kapatın ve tasarım yüzeyine geri dönün
  4. Özellikler penceresinde Gövde'yi seçin
  5. Boyut düğümünü genişletmek için + sembolüne tıklayın
  6. Genişlik değerini not edin

PDF'de doğru şekilde oluşturmak için Gövde Genişliği + Sol kenar boşluğu + Sağ kenar boşluğu Sayfa genişliğinden küçük veya buna eşit olmalıdır. Oluşturulan boş sayfalar gördüğünüzde bunun nedeni neredeyse her zaman gövde genişliği artı kenar boşluklarının sayfa genişliğinden daha büyük olmasıdır.

Unutmayın: (Gövde Genişliği + Sol kenar boşluğu + Sağ kenar boşluğu) <= (Sayfa genişliği)


14
Çalışmıyor. Vücut genişliğim "Rapor genişliği - kenar boşlukları" ndan az. Ve hala orada bir sürü boş sayfam var.
adolf sarımsak

2
@adolfgarlic Sayfa genişliği ayarlarının rapor özellikleri altında her zaman doğru çalışmadığını buldum. Rapor genişliğini Visual Studio'da elle sürüklemeyi denediniz mi? Bu, kafamı bir süre duvara vurduktan sonra bugün benim için bu sorunu çözdü. Üstbilgi / altbilgi genişliklerinizi de kontrol etmeye değer, biraz fazla büyük olabilirler.
Michael A

16
Burada çalışan kuralın (Gövde Genişliği + Sol kenar boşluğu + Sağ kenar boşluğu) <= (Sayfa genişliği) değil, daha çok (Gövde Genişliği + Sol kenar boşluğu + Sağ kenar boşluğu) <(Sayfa genişliği-1cm)
Jafin

3
Ayrıca dikkat edilmesi gereken bir diğer husus, üstbilgi + gövde + altbilgi + üst + alt kenar boşluğunun yüksekliğidir <Sayfa Yüksekliği, aksi takdirde sayfa birden çok sayfada akacaktır.
desiguy

4
İlk kez bir rapor oluşturduğunuzda, kurucu bir şeyler koymak için ekranın genişliği boyunca beyaz bir alanı (Nathan'ın bahsettiği "Gövde") çalıştırır. Tipik olarak, bu beyaz alan daha yeni bir mektup kutusu ekranında 17 inç genişliğindedir. Sezgisel olarak açık olmayan şey, bunun yazdırılabilir bir nesne olarak kabul edilmesi ve üzerine koyduğunuz malzemenin genişliğine göre daraltılması gerektiğidir. Bunu yapmazsanız, herkesin bahsettiği diğer tüm şeyler ne olursa olsun boş sayfalar alacaksınız.
BobRodes

114

Denemede gereken başka bir şey ayarlamaktır rapor özelliğini denilen ConsumeContainerWhitespaceiçin True(varsayılan false). Benim için bu şekilde çözüldü.


2
Evet, benim için de çalıştı. Sütun grupları içeren bir tablix içeren bir konteynerim var. Açıkça, konteyner sütun gruplarını içerecek şekilde büyüyordu ve konteynerin beyaz alanını tüketmeden sayfa sınırının dışına taşıyordu.
Ciarán

4
Bu kesinlikle benim için anahtar oldu. Ben her zaman Nathan'ın kabul ettiği yanıtı karışık sonuçlarla kullanırım. Nathan'ın çözümünün sorunu çözmediği her durumda, bu hile yaptı. Nathan'ın önerdiklerini hala kullanman gerektiğini unutma.
bojingo

EVET x100! 2 "kabul edilmiş cevaba" sahip olmamanız çok kötü, çünkü doğru ders hem bunun hem de kabul edilenin bir kombinasyonu gibi görünüyor. Tebrikler!
NateJ

2
Maalesef geri al. VS 2017 SSRS / SSDT kullanıyorum; Bu özelliği bulmak için iletişim kutusunu değil Özellikler penceresini kullanmanız gerektiğini anlamam biraz zaman aldı. Report Properties...
codeMonkey

1
bir süre mücadele ettikten sonra benim için çalıştı ... çok teşekkürler
Joel_J

28

Bu sorunla saatlerce uğraştıktan sonra, benim için çalışan bir çözüme rastladım:

SSDT'de (2012), başlangıçta Sayfa Yapısı / Sayfa birimlerimi Santimetre olarak ayarlamıştım. Bunu İnç olarak değiştirdiğimde, garip bir şekilde, raporumu diğer tüm sayfaları boş bırakmadan PDF'ye aktarabildim.

görüntü açıklamasını buraya girin


Bu benim için mükemmel çalıştı. İnçleri Cm olarak değiştirmek işe yarayacaktır veya tam tersi olacaktır, ancak Cm'ye bağlı kalmanıza gerek yoktur. Bir şey daha, en az 1 cm kenar boşlukları ayarlamanız gerekir, bu durumda rapor ek boş sayfa olmadan üretilir.
Ravi Shankar

21

Bir SSRS belgesini düzenlerken herhangi bir matematik hesaplamadan önce bunu tasarım yüzeyinde ( Visual Studio 2012 gösterilir ancak diğer sürümlerde yapılabilir ) yapmak daha iyidir .

Aşağıdaki adımlarla eşleşen kırmızı daireler içinde aşağıdaki sayıların altında:

  1. Tasarım yüzeyinde, bazen editör pagegerçek kontrollerden daha büyük bir tane yaratır ; dolayısıyla hayalet alan yazdırılıyor.
  2. Kontrollere göre yeniden boyutlandırın. Genişliğe / yüksekliğe görsel olarak bakın ve tasarım yüzeyindeki sayfayı kontroller tarafından gerçekten ihtiyaç duyulan alana boyutlandırmak için ve daha fazlasını yapamayacağınızı görün .
  3. Ardından bir PDF oluşturmaya çalışın ve bunun düzeltilip düzeltilmediğine bakın.
  4. # 3 sorunu çözmezse, gerçek sayfa boyutunun çok fazlasını gerektiren ve her iki uzunlukta / genişlikte aşan kontroller vardır . Bu nedenle, daha küçük bir sayfa boyutunu barındırmak için kontrollerin boyutunu küçültmek gerekecektir.

Manuel olarak düzeltmek için adımlar


Ayrıca bazı durumlarda biri sadece ayarlayarak rapor sayfasının bir özelliğini değiştirebilir ConsumeContainerWhitespaceiçin trueboşluk otomatik olarak tüketmek.


2
Teşekkür ederim! Sayılardan geçip matematik yapmaktan daha basit olması gerektiğini biliyordum. Rapor gövdesi o kadar büyük olduğu için beyaz yüzey yazdırdığının farkında değildim.
Tor

ConsumeContainerWhitespace'i true olarak ayarlamak benim için bunu yaptı. Yine de raporumu,
gövdemi

20

Benim için sorun, SSRS'nin bilerek beyaz alanınıza, onurlandırılmasını amaçlıyormuşsunuz gibi davranmasıydı:

görüntü açıklamasını buraya girin

Beyaz alanın yanı sıra, sağ kenar boşluğu olmadığından emin olun.


1
Merhaba @ jeremy-thompson, ipucunuz çok kullanışlı. Şerefe
Andy K

1
Doğru kenar boşluğunu kaldırmak benim için çalıştı ve ne web raporu görüntüleyicide ne de PDF'de işlemeyi etkilemedi.
andrej351

1
5 yıl sonra bu benim için buydu.
MPJ567

17

Sayfalar SSRS'den boş geliyorsa, rapor düzeninizde ince ayar yapmanız gerekir. Bu, bir düzen sorununun yan etkilerini onarmak için çıktıyı yürütmekten ve sonradan işlemden çok daha verimli olacaktır.

SSRS, marjların sınırlarını zorlamaya gelince çok titizdir. Rapordaki metin kutusunu veya başka bir kontrolü ayarlayarak raporu yanlışlıkla genişletmek / uzatmak kolaydır. Rapor yüzeyinin genişlik ve yükseklik özelliklerini dikkatlice kontrol edin ve olabildiğince sıkın. Büyük başlıklara ve alt bilgilere dikkat edin.


5

Şimdiye kadarki en yaygın sorun olan marjlara ek olarak, iki ek olasılık daha gördüm:

  1. +Metni birleştirmek için kullanma . Bunun &yerine kullanmalısınız .
  2. Belirtilen metin kutusunun genişliğini aşan metin. Dolayısıyla, metin kutunuz yalnızca 30 karakter içeriyorsa ve orada 300'ü doldurmaya çalışırsanız, fazladan sayfalarla karşılaşabilirsiniz.

5

SSRS ile 10 yılı aşkın bir süredir çalışıyorum ve yukarıdaki cevaplar, cevaplara giden yol. FAKAT. Hiçbir şey işe yaramazsa ve tamamen doluysanız .... sorun giderilene kadar rapordaki öğeleri kaldırın. Soruna hangi satır veya rapor öğesinin neden olduğunu belirledikten sonra, onu dikdörtgen bir kabın içine koyun. Bu kadar. Bize birçok kez yardımcı oldu! Ekstra sayfalar çoğunlukla sağ kenar boşluğunun üzerinden akan rapor öğelerinden kaynaklanır. Her şey başarısız olduğunda, bir nesnenin sağına bir dikdörtgenin veya boş bir dikdörtgenin içine bir şeyler koymak bunun olmasını durdurabilir. Orada iyi şanslar!


Benim için çalıştı. Tabloya fazladan boş sütun ekleyerek, pdf formatındaki raporum ekstra boş sayfaları göstermiyor ..!
ateş böceği

4

Raporunuzun sağ tarafında beyaz boşluk olup olmadığını görmeye çalıştınız mı? Öyleyse, raporunuzun sonuna geri sürükleyebilir ve ardından rapor arka planını aynı noktaya geri sürükleyebilirsiniz.


4

Raporun özellikler sekmesinde (myReport.rdlc), "Birlikte Tut" özelliğini Yanlış olarak değiştirin. Bir süredir bu sorunla uğraşıyorum ve bu sorunumu çözmüş gibi görünüyor. görüntü açıklamasını buraya girin


3

Yakın zamanda birkaç değişiklik yapmam gerektiğini belirten bir raporu devraldım. Yukarıdaki tüm önerileri uyguladıktan sonra, yardımcı olmadı. Raporda tarihsel olarak bu ekstra sayfa vardı ve kimse nedenini çözemedi.

Tablix ve seçilen özelliklere sağ tıkladım. Sonra bir sayfa sonu ekle yazan bir onay kutusu işaretlendi. Bunu çıkardıktan sonra, şimdi bir sayfaya yazdırır.

görüntü açıklamasını buraya girin


2

Raporunuz bir alt rapor içeriyorsa, alt raporun ve hiyerarşinin büyümesine izin verilirse, alt raporun genişliği gövdenin sınırlarını zorlayabilir. Bir hücreye yerleştirilebilen bir alt raporla ilgili benzer bir sorun ortaya çıktı (2 sütunu kapsayan). Aralık, tasarımcıda bulunabilir gibi görünüyordu ve bir winform veya bir tarayıcıda iyi işlenmişti ve başlangıçta, fazla sayfalara dökülmeden yazıcı çıktısı (veya pdf dosyası) oluşturabilirdi.
Ardından, diğer sütun genişliklerini değiştirdikten sonra (ve gövde genişliği artı kenar boşluklarını aşmadan), winform ve tarayıcı görüntülemeleri hala iyi görünüyordu, ancak çıktı (yazıcı veya pdf) oluşturulduğunda, kenar boşluklarını geçerek büyüdü ve sağ tarafa yazdı her sayfanın 2. (4. vb.) sayfası. Alt raporun yerleştirildiği colspan'i artırarak sorunumu ortadan kaldırabilirim.
Alt raporlar kullanıyor olsanız da olmasanız da, sayfa yayılmanız varsa ve vücut tasarımınız sayfanın kenar boşluklarına uyuyorsa, vücudun genişliğini dışarı iten, büyümesine izin verilen bir şey arayın.


-3

Pdf'lerde istemediğim / ihtiyaç duymadığım sayfaları kaldırmak için başarıyla pdftk kullandım. Programı buradan indirebilirsiniz

Aşağıdaki gibi bir şey deneyebilirsiniz. Alındığı burada örneklerle altında

Out1.pdf pdftk in.pdf cat 1-12 14-end output out1.pdf oluşturmak için in1.pdf'den 'page 13' öğesini kaldırın

veya:

pdftk A = in1.pdf cat A1-12 A14-end çıktı out1.pdf

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.