2012-12-07 25 views
6

Tôi muốn sử dụng hình nền và khi tôi đặt nó trong Reporting Services 2008 R2, dpi hình ảnh được giảm xuống 96 dpi. (thay vì 300)Trong dịch vụ báo cáo, tăng chất lượng hình nền trên 96 dpi

Điều đó quá thấp để người dùng có thể đọc được, tôi lo sợ.

Khi tôi đi trên Internet, tôi thấy kết quả này:

http://social.technet.microsoft.com/Forums/en-US/sqlreportingservices/thread/48de91f9-1844-40c1-9614-5ead0b4b69a5#P1Q14

Câu hỏi 14: Làm thế nào để nâng cao chất lượng PDF của báo cáo đã xuất trong Báo cáo Dịch vụ 2005?

trả lời: Các renderer PDF trong Reporting Services 2005 thay đổi kích thước tất cả những hình ảnh mà nó được đưa ra tại 96 Sở KH & ĐT không có vấn đề gì dpi hình ảnh là khi bạn vượt qua nó để các renderer. Điều đó có nghĩa là hình ảnh 300 DPI hoặc thậm chí hình ảnh 600 DPI sẽ có kích thước trong PDF như thể nó chỉ 96 DPI. Trong các từ khác, hình ảnh DPI cao của bạn có thể hiển thị lớn hơn mong đợi.
Mặc dù định kích thước hình ảnh như thể chúng là 96 DPI, trình kết xuất PDF xuất hiện để hiển thị hình ảnh DPI cao hơn ở chất lượng cao hơn 96 DPI. Ngay cả khi kích thước bị sai, hình ảnh thực tế đang hiển thị ở chất lượng cao hơn . Cách giải quyết cần thiết là định kích thước hình ảnh thành các số inch thích hợp theo số dựa trên 96 tính toán DPI. Sau đó, sử dụng Bitmap.SetResolution để đặt hình ảnh ở ít nhất 300 DPI. Điều đó có thể cung cấp hình ảnh có chất lượng cao hơn, là số lượng pixel phù hợp để phù hợp với đúng trong báo cáo.

Nhưng tôi không biết cách sử dụng Bitmap.SetResolution đó, tôi đang sử dụng điều khiển web người xem báo cáo cổ điển và tôi thực sự cần xuất pdf đầy đủ chức năng.

PS: Có thể vấn đề đó đã được giải quyết trong Dịch vụ báo cáo 2012. Có ai đó có một số thông tin không?

Kính trọng

Trả lời

4

Tôi tìm thấy trang web giải thích cách xuất PDF bằng dpi tốt. http://codeproject.com/Articles/95750/High-fidelity-printing-through-the-SSRS-Report-Vie

Điều quan trọng là để khởi tạo chuỗi deviceInfo với một mã xml

 var sb = new System.Text.StringBuilder(1024); 
     var xr = System.Xml.XmlWriter.Create(sb); 
     xr.WriteStartElement("DeviceInfo"); 
     xr.WriteElementString("DpiX", "296"); 
     xr.WriteElementString("DpiY", "296"); 
     xr.Close(); 

     deviceInfo = sb.ToString(); 

     rsExec.SetExecutionParameters(parameters, "fr-fr"); 

     results = rsExec.Render(format, deviceInfo, 
        out extension, out encoding, 
        out mimeType, out warnings, out streamIDs); 

Trong trường hợp này, giải pháp này hoạt động. Tôi có thể tạo ra một tập tin pdf với dpi tốt NHƯNG nút in với activex không hoạt động (điều này không phải là một vấn đề) và nút xuất khẩu hoặc. Tôi phải thêm nút tải xuống để in. đó là một giải pháp phần IMHO

0

Nếu bạn sử dụng giao diện WebAPI đến dịch vụ báo cáo, tôi thấy cách này hoạt động:

Để có được PDF vẽ tốt hơn về hình ảnh, vượt qua Thông tin thiết bị như thế này: http://serverName/ReportServer?/pathtoReport/ReportName&InvoiceIdOrOtherParameter=24013&rs:Command=Render&rs:Format=PDF&rs:DeviceInfo=<DpiX>300<%2FDpiX><DpiY>300<%2FDpiY>

Các vấn đề liên quan