7

我發現這篇文章在Crystal Reports Cutting Off Text in PDF,但它並沒有解決我的問題。水晶報告截止PDF中的文本

我有一個Crystal報表,其中包含一個文本對象(控制行間距)內的字段,並選擇「可以增長」。當我將Crystal Report導出到PDF時,會出現文本被切斷的情況。

enter image description here

在此示例中的文本被切斷的右側,但在某些情況下,當文本包括許多線,最後一行的底部部分將被部分切斷。

我使用的是與Visual Studio 2008捆綁在一起的Crystal Reports。文本區域具有「可以增長」的選中狀態,字體設置爲Helvetica LT Condensed,粗體爲14,行間距設置爲正常的0.75倍。

任何人有任何想法,我該如何解決這個問題?

回答

1

我想我已經找到了問題的邊界報表寬度比字段對象的寬度調整它的寬度固定發生在截斷。右邊

在旁註中,文字在底部被截斷似乎是調整行間距太小的結果。如果將行間距設置爲原始文本點大小的倍數並使其太小,則該行的底部會被截斷。我將其改爲「精確」並輸入了一個特定的點大小(例如我的16點文本的行間距爲18點),這似乎解決了問題。如果行間距太小,Crystal似乎會掩蓋文本的底部。

4

我也遇到過這個問題 - Crystal似乎對文本框邊框的位置有點困惑。我建議在文本框中添加一個小的右縮進(右鍵單擊文本框,選擇「格式化對象」,選擇「段落」選項卡,然後在右側文本框中輸入小數字(可能爲0.2左右)。

至於底部的截止點,沒有餘量可以添加,你可以在文本末尾添加一個換行符,因爲它來自數據庫嗎?或者,你可以嘗試一個公式字段添加換行符:

{table_name.field_name} + chr(13) + chr(10) 
+0

添加0.2釐米到正確的段落縮進解決了我的問題。 – zendar 2012-11-16 18:40:33

+0

感謝這也解決了我的問題 – Nick 2014-03-08 16:00:15

+0

我需要調整我的文本框的寬度結合正確的縮進來獲得正確的結果。 – Matthieu 2016-01-08 15:26:22

2
  • 右鍵單擊該文本字段
  • 選擇常用選項卡
  • 在水平對齊部分我改成了是「正當的」。

這調整了文本的正確跨度,並且在使用Can Grow時不會過早切斷。

0

我試過了,它解決了這個問題。

儘量做到以下幾點:

文本對象>右鍵點擊>設置文本格式>邊框選項卡

更改線條樣式:左/右/上/下單並改變顏色爲白色。

0

我在更新存儲過程時遇到此問題。我將描述字段從一個VARCHAR(100)更改爲一個VARCHAR(150),並與請求的更改內聯。預覽模式下的Crystal報表存儲了100個字符的舊限制,並截斷了標籤。我在再次驗證數據庫時糾正了這個問題。

數據庫選項卡 - >驗證數據庫

0

我也發現了這一點。只發生在HTML視圖中。我做了幾件事情,我需要做3個不同的事情,並嘗試多種場景來選擇最合適的方案。 - 從左側格式化文本至正確 - 夾住文本框的右邊緣,並從右邊距勾取它 - 將字體從Times New Roman切換爲另一個(奇怪) - 從BI LP導出爲一個CR RPT並從CR 2013客戶端導出爲PDF - 更改字體大小 - 我們有一個「和/或」中線並將其更改爲「和/或」

我們採用了合理的對齊方式,到一個完整的線,並沒有看起來不同於原來的。

很多奇怪的解決方法糾正它。對我來說,這是報告中的系統升級故障。

希望我找到的幫助別人。

0

如果你嘗試了所有的方法和仍然沒有工作,你可以嘗試以下方法:

 Local StringVar inString := 'Your text string here.......'; 

    Local NumberVar strLen := Length (inString); 
    Local StringVar result := ""; 
    Local NumberVar maxLen := 45; // adjust the length of text per line 
    Local NumberVar idx := 0; 
    Local NumberVar proceed := 0; 

    While strLen > maxLen Do 
    (
     proceed := 1; 
     idx := maxLen; 
     While (mid(inString,idx,1) <> " " and idx > 1) Do 
     (
     idx := idx -1; 
     ); 
     if (idx = 1) then 
      result := result + mid(inString,1,maxlen) + chr(10) 
     else 
     (
      result := result + mid(inString, 1, idx-1)+ chr(10); 
      strLen := strLen-idx; 
      inString := mid(inString, idx+1, strLen) 
     ) 
    ); 

    if proceed = 1 then 
     (
     result := result + inString 
     ) 
     else 
     (
     result := inString 
    ); 
    result 
0

在一個環境中使用Crystal Reports,這是一個幫助我們設置的註冊表項:ForceLargerFonts = 0

如何找到?

對於64位版本的微軟Windows的:
HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ SAP的BusinessObjects \套房XI 4.0 \ Crystal報告\出口\ PDF

對於微軟Windows的32位版本:
HKEY_LOCAL_MACHINE \ SOFTWARE \ SAP的BusinessObjects \套房XI 4.0 \ Crystal報告\出口\ PDF

也請看到 https://apps.support.sap.com/sap/support/knowledge/public/en/0001835763

0

以下解決方案這是一個困難的問題ŧ帽子,你必須從3個不同的四面出擊:

  1. 軟件熱修復
  2. 默認打印機
  3. 表單認證

軟件熱修復:你需要下載CRRuntime那包括Hot Fix 20.此Hot Fix在製作PDF時解決了截斷問題。您可以在http://downloads.businessobjects.com/akdlm/crnetruntime/clickonce/CRRuntime_64bit_13_0_20.msi

默認打印機:創建報告時使用的打印機必須與要呈現報告的打印機相匹配。在我們的服務器上,除了Microsoft XPS Document Writer以外,沒有安裝打印機。編寫報告時一定要選擇它作爲默認打印機。

表單認證:當您添加數據庫字段到報表中,不從外地資源管理器拖放到設計圖面。首先將文本對象插入到設計圖面上。當您按照您喜歡的方式定位和調整文本對象的大小時,將數據庫字段拖到文本對象上。您會看到花括號中數據庫項目的名稱出現在文本對象中。無論出於何種原因,當數據庫字段被文本對象包圍時,數據庫字段將會更好地包裝。