Solved

Question regarding printing crystal reports using printDocument

Posted on 2004-08-17
9
1,418 Views
Last Modified: 2008-01-09
Im currently developing a print report winform application that will print a crystal report without using the crystal reports viewer and the printdialog component in c# winform. Iam retrieving the data of the crystal report (line per line) using the printpage event in order for it to be a printDocument. Im enabling it to be used in the print preview dialog and pagesetup dialog. However, whenever i do this, it returns unreadable ASCII characters in the print document.

Are there any ways for me to convert these characters into a a readable one?

Thanks!
0
Comment
Question by:Keeshan
  • 4
  • 2
9 Comments
 
LVL 42

Expert Comment

by:frodoman
ID: 11819863
I assume these unreadable characters are formatting and positioning elements - you could probably do a search & replace to get rid of them or convert them to something harmless like a (space) char, etc.
0
 
LVL 100

Expert Comment

by:mlmcc
ID: 11819903
What file are you reading?  How are you creating that file?

mlmcc
0
 

Author Comment

by:Keeshan
ID: 11826832
Im reading a rpt Crystal Reports file.initially i get the file using a filestream and assigned it in a streamreader, then read it in the printpage event for print previewing, page setup, and printing.

to Frodoman: do you know the ways on how to search and replace that characters and convert them into readable codes?
0
PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

 
LVL 42

Expert Comment

by:frodoman
ID: 11827065
You'll have to first identify the characters - which may take a little effort.  I don't code c# but most languages have some variation of a "replace" function that typically looks something like this:  targetString = Replace( sourceString, searchText, replaceText )

For example in vb to replace a line-break control character with a space character the code would be: targetString = Replace( sourceString, chr(10), " ")

HTH
0
 
LVL 42

Expert Comment

by:frodoman
ID: 11827069
By the way, have you considering that instead of trying to read the .rpt file you may want to export the output of the report to a different format (.txt or .csv perhaps) and then use those as the source for your filestream?  I suspect this would give you a much cleaner file to work with...
0
 

Author Comment

by:Keeshan
ID: 11827170
I already tried to export the rpt file into a different format but still produced wrong data. i also tried your solution regarding the way replacing, but the problem is that the data generated by the report is retrieved from dbase. in this case, i dont know if that code is an equivalent for a space,char, etc.. and i dont even know what kind of ascii char it prints.. do you get my pt? :D thanks!

Another alternative im trying to do is to make use of the reportDocument of the crystal report. But i cant convert it into a printdocument in order for it to be used in printpreview and page setup dialogs in c#.. is it possible to convert reportDocument into a printDocument?
0
 
LVL 42

Accepted Solution

by:
frodoman earned 125 total points
ID: 11829575
>>> in this case, i dont know if that code is an equivalent for a space,char, etc.. and i dont even know what kind of ascii char it prints.. do you get my pt?

As I said, you'd have to identify the characters to be replaced which will take some effort.  Probably you'll have to read from the stream and dump the ascii value of each character and examine them manually to identify the non-printing values for replacement.

If that doesn't work you may need to read the report as a binary stream and then decided on a byte-by-byte basis which values to discard and which to convert to ascii for display.

It's possible to do because there are 3rd party viewers out there that obviously can parse .rpt files.  I don't expect that it's an easy undertaking however and you're unlikely to find much in the way of documentation to help you.

frodoman
0

Featured Post

PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Using If, else, then with SQL assistant or Crystal Reports on Joins 6 70
Insert timestamp data field of max summary 8 43
C# Crystal Reports 15 90
Crystal Reports 13 5 61
Crystal Reports: 5 Tests for Top Performance It is complete, your masterpiece report.  Not only does it meet your customer’s expectations, it blows them out the water, all they want is beautifully summarised and displayed in a myriad of ways. …
There have always been a lot of questions related to when Crystal Reports evaluates report components (such as formulas, summaries, cross-tabs, charts, to name a few examples). Crystal Reports uses a two-pass reporting process to provide greater …
This tutorial gives a high-level tour of the interface of Marketo (a marketing automation tool to help businesses track and engage prospective customers and drive them to purchase). You will see the main areas including Marketing Activities, Design …
Microsoft Active Directory, the widely used IT infrastructure, is known for its high risk of credential theft. The best way to test your Active Directory’s vulnerabilities to pass-the-ticket, pass-the-hash, privilege escalation, and malware attacks …

809 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question