majorsilence / My-FyiReporting

Majorsilence Reporting, .NET report designer and viewer. Fork of fyireporting,
Apache License 2.0
348 stars 201 forks source link

Text is not printed to printer in Linux #80

Open kobruleht opened 10 years ago

kobruleht commented 10 years ago

When printing report to printer in Linux, textboxes does not appear. Only lines appear. I trieal also Helvetica font instead of Arial , but problem persists.

Code to reproduce:

        var rdlViewer = new fyiReporting.RDLPrint.RdlPrint();
        rdlViewer.SourceRdl = ... some rdl report containing only Arial 12 pt font texts ...
        var pd = new PrintDocument();
        pd.PrinterSettings.FromPage = 1;
        pd.PrinterSettings.ToPage = rdlViewer.PageCount;
        pd.PrinterSettings.MaximumPage = rdlViewer.PageCount;
        pd.PrinterSettings.MinimumPage = 1;
        pd.DefaultPageSettings.Landscape = rdlViewer.PageWidth > rdlViewer.PageHeight;
        pd.PrinterSettings.PrinterName = "ml331x";
        rdlViewer.Print(pd);

Report contains TextBoxes in Arial font and lines

Observed:

Texts does not appear in printout. Only lines are printer. If printing from Windows server or creating pdf file texts appear properly.

Environment:

Debian Wheezy x64 Mono: 3.2.8 ASP.NET MVC 4 application ASP. NET Version: 4.0.30319.17020 Samsung ml331x

If printing directly from MVC4 controller using code below, text appears.

       public ActionResult PrintTest()
        {
            var doc = new PrintDocument();
            doc.PrinterSettings.PrinterName = "ml331x";
            doc.PrintPage += new PrintPageEventHandler(TestProvideContent);
            doc.Print();
            return new ContentResult()
            {
                Content = "Printed"
            };
        }

        public void TestProvideContent(object sender, PrintPageEventArgs e)
        {
            e.Graphics.DrawString("Test print at " + DateTime.Now.ToString(),
              new Font("Arial", 12),
              Brushes.Black,
              e.MarginBounds.Left,
              e.MarginBounds.Top);
        }```
kobruleht commented 10 years ago

I redirected print to file and created report containing only text "Linuxi test" in Arial. This text does not appear in file created by rdlengine in linux:

%!PS-Adobe-3.0
%%Creator: cairo 1.12.2 (http://cairographics.org)
%%CreationDate: Sun Mar  2 13:33:16 2014
%%Pages: 1
%%DocumentData: Clean7Bit
%%LanguageLevel: 2
%%DocumentMedia: A4 595 842 0 () ()
%%BoundingBox: 0 841 0 841
%%EndComments
%%BeginProlog
/languagelevel where
{ pop languagelevel } { 1 } ifelse
2 lt { /Helvetica findfont 12 scalefont setfont 50 500 moveto
  (This print job requires a PostScript Language Level 2 printer.) show
  showpage quit } if
/q { gsave } bind def
/Q { grestore } bind def
/cm { 6 array astore concat } bind def
/w { setlinewidth } bind def
/J { setlinecap } bind def
/j { setlinejoin } bind def
/M { setmiterlimit } bind def
/d { setdash } bind def
/m { moveto } bind def
/l { lineto } bind def
/c { curveto } bind def
/h { closepath } bind def
/re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto
      0 exch rlineto 0 rlineto closepath } bind def
/S { stroke } bind def
/f { fill } bind def
/f* { eofill } bind def
/n { newpath } bind def
/W { clip } bind def
/W* { eoclip } bind def
/BT { } bind def
/ET { } bind def
/pdfmark where { pop globaldict /?pdfmark /exec load put }
    { globaldict begin /?pdfmark /pop load def /pdfmark
    /cleartomark load def end } ifelse
/BDC { mark 3 1 roll /BDC pdfmark } bind def
/EMC { mark /EMC pdfmark } bind def
/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def
/Tj { show currentpoint cairo_store_point } bind def
/TJ {
  {
    dup
    type /stringtype eq
    { show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse
  } forall
  currentpoint cairo_store_point
} bind def
/cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore
    cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def
/Tf { pop /cairo_font exch def /cairo_font_matrix where
      { pop cairo_selectfont } if } bind def
/Td { matrix translate cairo_font_matrix matrix concatmatrix dup
      /cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point
      /cairo_font where { pop cairo_selectfont } if } bind def
/Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def
      cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def
/g { setgray } bind def
/rg { setrgbcolor } bind def
/d1 { setcachedevice } bind def
%%EndProlog
%%Page: 1 1
%%BeginPageSetup
%%PageMedia: A4
%%PageBoundingBox: 0 841 0 841
%%EndPageSetup
q 0 841 0 0 rectclip q
Q Q
showpage
%%Trailer
%%EOF

If same output is created using pure gdi, text appears and it looks like font is embedded:

%!PS-Adobe-3.0
%%Creator: cairo 1.12.2 (http://cairographics.org)
%%CreationDate: Sun Mar  2 13:43:55 2014
%%Pages: 1
%%DocumentData: Clean7Bit
%%LanguageLevel: 2
%%DocumentMedia: A4 595 842 0 () ()
%%BoundingBox: 73 758 124 768
%%EndComments
%%BeginProlog
/languagelevel where
{ pop languagelevel } { 1 } ifelse
2 lt { /Helvetica findfont 12 scalefont setfont 50 500 moveto
  (This print job requires a PostScript Language Level 2 printer.) show
  showpage quit } if
/q { gsave } bind def
/Q { grestore } bind def
/cm { 6 array astore concat } bind def
/w { setlinewidth } bind def
/J { setlinecap } bind def
/j { setlinejoin } bind def
/M { setmiterlimit } bind def
/d { setdash } bind def
/m { moveto } bind def
/l { lineto } bind def
/c { curveto } bind def
/h { closepath } bind def
/re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto
      0 exch rlineto 0 rlineto closepath } bind def
/S { stroke } bind def
/f { fill } bind def
/f* { eofill } bind def
/n { newpath } bind def
/W { clip } bind def
/W* { eoclip } bind def
/BT { } bind def
/ET { } bind def
/pdfmark where { pop globaldict /?pdfmark /exec load put }
    { globaldict begin /?pdfmark /pop load def /pdfmark
    /cleartomark load def end } ifelse
/BDC { mark 3 1 roll /BDC pdfmark } bind def
/EMC { mark /EMC pdfmark } bind def
/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def
/Tj { show currentpoint cairo_store_point } bind def
/TJ {
  {
    dup
    type /stringtype eq
    { show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse
  } forall
  currentpoint cairo_store_point
} bind def
/cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore
    cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def
/Tf { pop /cairo_font exch def /cairo_font_matrix where
      { pop cairo_selectfont } if } bind def
/Td { matrix translate cairo_font_matrix matrix concatmatrix dup
      /cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point
      /cairo_font where { pop cairo_selectfont } if } bind def
/Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def
      cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def
/g { setgray } bind def
/rg { setrgbcolor } bind def
/d1 { setcachedevice } bind def
%%EndProlog
11 dict begin
/FontType 42 def
/FontName /ArialMT def
/PaintType 0 def
/FontMatrix [ 1 0 0 1 0 0 ] def
/FontBBox [ 0 0 0 0 ] def
/Encoding 256 array def
0 1 255 { Encoding exch /.notdef put } for
Encoding 32 /space put
Encoding 76 /L put
Encoding 101 /e put
Encoding 105 /i put
Encoding 110 /n put
Encoding 116 /t put
Encoding 117 /u put
Encoding 120 /x put
/CharStrings 9 dict dup begin
/.notdef 0 def
/L 1 def
/i 2 def
/n 3 def
/u 4 def
/x 5 def
/space 6 def
/t 7 def
/e 8 def
end readonly def
/sfnts [
<000100000009008000030010637674209670d276000007f4000006306670676d7727a9f50000
0e24000005b0676c79665e2eb4130000009c0000075868656164ca39f690000013d400000036
68686561126d0c8b0000140c00000024686d7478220503a600001430000000246c6f63610000
206000001454000000286d61787004af0c930000147c0000002070726570ebad71e20000149c
00000afd00020100000005000500000300070042b40201e40607b802994013000504e403000a
0704e4010019080605e40203bc023100090199012e00182b10f63cfd3c4e10f43c4dfd3c003f
3cfd3c10fc3cfd3c3130211121112521112101000400fc2003c0fc400500fb002004c0000001
00960000042a05ba00050033400c010204031e05000820040104b802a7400e07020320012000
01005d063b5c182b10f65d3cfd3c10e65d003f3cfd3c3f313033113311211596c202d205bafa
f3ad000200880000013c05ba00030007007d405d4f099009a009b009c009df09f0090700091f
09700980099f09b009c009df09e009ff090a1f09010001070402030906037e0100060506040a
0607250500049f04a004b004c004e00406c004f0040200042004d004e00404044e084750182b
10f65d71723cfd3c003f3f3c3fed0111123939111239393130015d7271133533150311331188
b4b4b404ebcfcffb150426fbda0000010087000003e6043e001600cc40130503061302a810b8
10e303e713f003f6130604b8fff040310b0d347910019810d018e018ff18042008140e141612
1c05070106160d0a0d0e0c0e240b40333634ff0b01ff0b010b4e18b8ffc0401a343634b018f0
18027018a018b018c01804180302331516250100b8ffc04012333634f0000100002000d000e0
0004004e1710f65d712b3cfd3cf43c105d712bf65d712bed3c103c003f3c3f3fed1139011239
3130437940160611090a080a070a0306102611060e1b010f0a121b01002b012b2b2a81015d71
002b5d71331133153633321616171615112311342626232206151187a275dd60a150100ab42a
6b4873a7042697af45704d327dfd7302866e6d4192ccfdbc00010083ffe803e00426001800bd
b9001affc0400915173402201316340fb8fff040291214342b1301240813160c0113160b0600
0a111c030b00331625181740333634ff1701c01701174e1ab8ffc04015343634b01af01a0270
1aa01ab01aff1a041a0c2509b8ffc04015333634f0090100092009d009e00904094e19475018
2b10f65d712bed105d712bf65d712b3cfde4003fed3f3f3c39390111123931304379401a0410
0e0d0f0d0206070806080508030610040c1b000d08111b00002b012b2a2a81005d012b2b2b21
350623222626272635113311141716163332363635113311033f7cd55ea34f100bb40b116e51
518e3bb49cb4486d4f35730292fdb38d314751538f880239fbda0001000f000003f104260010
0177b70f12010f22193906b8ffde40b619395a0f96049608990e9a0fc005c006c007cb0f090f
4016391a031309150d1a1035013a0b81018e0b082f1257045907590b580e9701980a980bb702
b80cc80bca0ecc10da03d509d10ddb10e50a12120606030708090901060609050403030b0f0f
100e0d0d010f0f0d100b010009020d0b030c100a060f020f0a10c600c6090210250009140000
0903020dc60d010d250c03140c0c030a090903030206100d0d0c0c000a4f120112490d7e0c22
0a0f6106097e400ab8011bb74006500680060306b80243400e20037e02224f00010049117cc4
182b10f65df4ed1a19fd5dfd1a18ed10e510f4ede65d003f3c103c103c3f3c103c103c87052e
2b5d877dc4872e182b5d7d10c400111239390f0f8708c4870e10c408c4870e10c4c408c4070e
103c3c083c313001435c58b40e181d390bb8ffde400b1d390c221739032217390bb8ffdeb221
3910b8ffc0400a15390122213909401c392b2b2b2b2b2b2b2b595d71002b5d2b2b015d330101
33171617363737330101230327010f0184fe99e1a32e1c2c25b3d7fe91018bddda3afee90228
01fef947304233fbfe0cfdce014a59fe5d0000010024fff2022a059900170080b9000affc0b3
23263409b8ffc0404123263480190100010c0d0a0103001610092b0f0a06161c030b0f102200
22010d12250c01ff070845094560077007800790070400072007a007b007c007d0070607ba02
6a00180136b166182b10f65d71f4e410ed3cfd3c10e4f43c003fed3f3cfd3c11391239113333
10c93130015d2b2b25170623222626351123353311371133152311141616333202101a4c3c62
6c2c8484b3b5b5132b281ea19f103e65a202638c01076cfe8d8cfd934d2c1a000002004bffe8
041e043e0015001d00de40641f001c150255035d055d09550b65036b056f09650b0810001001
10022712d905fa14f61a0731123a19311c41124d1a411c51125c19521c61126d1a611c780678
15f602f618100016010f0d171750166016701603161c0f9010a010021010041b1c0a0700b802
aa40090195131c040b17400db8ffc04009272a34b00d010d1a1fb8ffc0b32526341fb8ffc040
1d1e2334301f011f163310240740242a341f073f074f070307191e3437182b4e10f45d2b4dfd
e44e10712b2bf6712b4ded003fedfde43fed12392f5d3cfd713c011112393912393130015d00
5d017172011706062322001110003332001114072116163332360121262726232206035eba2c
eeb9e9feef0114dcd5010e01fce80ab285638cfdda02510c3856897ca9015617a3b4011f0103
010c0128fedefef91020afba680195864368a600000005ba001905ba001a05a7001904260018
0000ffe70000ffe80000ffe7fe69ffe805ba0019fe69ffe802ea000000b8000000b800000000
00a800ad016900ad00bf00c201f0001800af00b900b400c800170044009c007c009400870006
005a00c80089005200520005004400940119ffb4002f00a1000300a100cd00170057007e00ba
00160118ffe9007f008503d300870085000d002200410050006f008d014cff75005c00df0483
0037004c006e00700180ff58ff8eff92ffa400a500b903c8fffd000b001a0063006300cdffee
05d8ffdc002d005c0095009900df019209b500400057008000b9039d0072009a035d0401ff67
fffa00030021007700cd0004004d00cd01c0022b004c006500e70118017c034305d8ffa3ffb0
ffc40003001c005d0068009a00ba013501470221055cff4dffcd0016002d00780080009900b2
00b600b600b800bd00da010c05f0ffa4fff00019002c0049007f00b400ce01c003fefd81fe3f
000000050018002900390049006f00be00c700d0012301c1026f050c05320540057affd40014
00310055005700a700b400e601f7027e027e027f03c60446ff42000e0085009100bf00c200c5
00e1011a012f014f01560229026f029e03720008002c00310031006400690089009800c700de
012b01b6020c02cf03a304ab04fb061dfee0ff0e00060026009b009d00c1010d011801200173
018201d601e30243025f029b02e2039404a904d20761001c005e006d008d00ab00f701120138
0151015b0168017c01870191019901cd01d001e802410254026b02ef0368037103bd04420442
0453047304830586058b06e8fe58fec4fed1fef7ff32ff860051007c008100910095009e00b4
00b900cf00d900d900df00e20105010b010e010e012001210155017b017b017e018d01a201a8
01a901b401d001d001e201e901f201f501fb020002000206021b022102220222022302720277
0294029c02cf02cf02d002ec02f903170322032b0335033c0359036f037103870390039003b5
03e1041a04cf04ff053205320596059f05a805ab05c205f0060c0782080008ccfca3fd2afdde
fe00fe88fe96feb2feb4ffe100150019001a001c001f003c005100610061006a0078009600a5
00af00d3010c0118011a012a013e014c0151015f016a0171017801820184019a01a501a801a9
01ae01bc01cd01d701ef0200020d021c02210222022e02350242024f024f025e026502710290
029202b402d602fa0307030b030f0315032a0347035d036503740379039603b003cc03dd03e2
03f603fc03fc03ff040a041f04220426042b0447045f0475049e04e704e7055c05cb05e5060a
066d068606b806f10736073e07500751075d078f07b607d4086000b600c300b500b700000000
000000000000000001e00381034503b5008e0233041902ce02ce002d005f0064034d023f0000
02a80188027d01b402240578063b023b014e00f00426029402c6029f02f6023b034d014b0153
006a0231000000000000061404aa0000003c04c300ed04bc026502ce03b50078060c017e02ef
060c00b201000239000001c50330042b03cb00da03df010704a100db040a011701ed02a70350
010b01bd043e05580021039c00ae0371017d00b5024500000afb088c012b014e01aa00870054
013201f803ff0003024e00b4003703e30083006b02d800ed00770088009701640467008e0033
017c00e700a6029e0329056e062a061501c90269048a021301b4000204a90000023901240103
05140084015d039a06ef02d9007500cf040a00de03ac04bc02cf02ae034d04f005520168006d
007d00860071ff810079055804d2016700030156002504e00094007c033204210094007f0072
005c002f00b6001800ba00b80041034d00720018001f004c016a01550099009a009a009800b2
00040078006900140057006e00ce00b4065402b80067050e016500e7000004cbfe52005affa6
0099ff67006eff92002dffd40087ff7c00b800a800e5008f00a80185fe7b0070001e00d900de
014c054602cf0546ff2d028a02d90253029600b7000000000000000000000000000001250118
00ea00ea00ae0046003e05bb008a04d70053003fff8cffd500150028002200990062004a00e4
006d00ee00e5004803c00033fe4e02b1ff460370007905df0051ffa7ff1f010a0068ff6c004f
00bc00a507050061072b404141403f3e3d3c3b3a3938373534333231302f2e2d2c2b2a292827
262524232221201f1e1d1c1b1a191817161514131211100f0e0d0c0b0a090807060504030201
002c4523466020b02660b004262348482d2c452346236120b02661b004262348482d2c452346
60b0206120b04660b004262348482d2c4523462361b0206020b02661b02061b004262348482d
2c45234660b0406120b06660b004262348482d2c4523462361b0406020b02661b04061b00426
2348482d2c0110203c003c2d2c20452320b0cd442320b8015a51582320b08d44235920b0ed51
582320b04d44235920b09051582320b00d44235921212d2c20204518684420b001602045b046
76688a4560442d2c01b10b0a432343650a2d2c00b10a0b4323430b2d2c00b0172370b101173e
01b0172370b10217453ab10200080d2d2c45b01a234445b01923442d2c2045b00325456164b0
50515845441b2121592d2cb00143632362b0002342b00f2b2d2c2045b0004360442d2c01b006
43b00743650a2d2c2069b04061b0008b20b12cc08a8cb8100062602b0c642364615c58b00361
592d2c45b0112bb0172344b0177ae4182d2c45b0112bb01723442d2cb01243588745b0112bb0
172344b0177ae41b038a45186920b01723448a8a8720b0a05158b0112bb0172344b0177ae41b
21b0177ae45959182d2c2d2cb0022546608a46b040618c482d2c4b53205c58b002855958b001
85592d2c20b0032545b019234445b01a23444565234520b00325606a20b009234223688a6a60
6120b01a8ab000527921b21a1a40b9ffe0001a45208a54582321b03f1b235961441cb114008a
5279b31940201945208a54582321b03f1b235961442d2cb110114323430b2d2cb10e0f432343
0b2d2cb10c0d4323430b2d2cb10c0d432343650b2d2cb10e0f432343650b2d2cb11011432343
650b2d2c4b525845441b2121592d2c0120b003252349b04060b0206320b000525823b0022538
23b002256538008a63381b212121212159012d2c4bb06451584569b00943608a103a1b212121
592d2c01b005251023208af500b0016023edec2d2c01b005251023208af500b0016123edec2d
2c01b0062510f500edec2d2c20b001600110203c003c2d2c20b001610110203c003c2d2cb02b
2bb02a2a2d2c00b00743b006430b2d2c3eb02a2a2d2c352d2c76b8022323701020b802234520
b0005058b00161593a2f182d2c21210c6423648bb84000622d2c21b08051580c6423648bb820
00621bb200402f2b59b002602d2c21b0c051580c6423648bb81555621bb200802f2b59b00260
2d2c0c6423648bb84000626023212d2cb4000100000015b00826b00826b00826b008260f1016
1345683ab001162d2cb4000100000015b00826b00826b00826b008260f1016134568653ab001
162d2c4b53234b515a5820458a60441b2121592d2c4b545820458a60441b2121592d2c4b5323
4b515a58381b2121592d2c4b5458381b2121592d2cb0134358031b02592d2cb0134358021b03
592d2c4b54b012435c5a58381b2121592d2cb012435c580cb00425b00425060c6423646164b8
07085158b00425b00425012046b01060482046b0106048590a21211b2121592d2cb012435c58
0cb00425b00425060c6423646164b807085158b00425b00425012046b8fff060482046b8fff0
6048590a21211b2121592d2c4b53234b515a58b03a2b1b2121592d2c4b53234b515a58b03b2b
1b2121592d2c4b53234b515ab012435c5a58381b2121592d2c0c8a034b54b00426024b545a8a
8a0ab012435c5a58381b2121592d2c4b5258b00425b0042549b00425b00425496120b0005458
212043b0005558b00325b00325b8ffc038b8ffc038591bb04054582043b0005458b00225b8ff
c038591b2043b0005458b00325b00325b8ffc038b8ffc0381bb00325b8ffc038595959592121
21212d2c462346608a8a462320468a608a61b8ff8062232010238ab902c202c28a70456020b0
005058b00161b8ffba8b1bb0468c59b0106068013a2d000100000002d1ec473182665f0f3cf5
081b080000000000a2e3272a00000000b53db2c8faaffd67103a084c00000009000100010000
000000010000073efe4e00431000faaffe33103a000100000000000000000000000000000009
060001000473009601c7008804730087047300830400000f02390000023900240473004b0000
00000000006c000000bc00000160000002740000038000000540000005400000060c00000758
0001000000090100003f0063000500020010002f00420000040c0afd000300024123000f0317
00ef031700ff03170003001f0317002f0317004f0317005f0317008f0317009f03170006000f
0317005f0317006f0317007f031700bf031700f00317000600400317b2923340b80317b28b33
40b80317b36a6c3240b80317b2613340b80317b35c5d3240b80317b357593240b80317b34d51
3240b80317b344493240b80317b23a3340b80317b331343240b80317b32e423240b80317b327
2c3240b80317b312253280b80317b30a0d32c04116031600d00316000200700316000102c400
0f0101001f00a0031500b0031500020306000f0101001f00400312b32426329fbf0304000103
0203010064001fffc00301b20d1132410a02ff02ef0012001f02ee02ed0064001fffc002edb3
0e11329f414a02e200af02e200bf02e2000302e202e202e102e1007f02e00001000f02e0003f
02e0009f02e000bf02e000cf02e000ef02e0000602e002e002df02df02de02de000f02dd002f
02dd003f02dd005f02dd009f02dd00bf02dd00ef02dd000702dd02dd001002dc0001000002dc
0001001002dc003f02dc000202dc02dc001002db000102db02db000f02da000102da02daffc0
02d3b2373932b9ffc002d3b22b2f32b9ffc002d3b21f2532b9ffc002d3b2171b32b9ffc002d3
b2121632b802d2b2f9291fb802e3b3202b1fa0413002d400b002d40002000002d4001002d400
2002d4005002d4006002d4007002d40006006002d6007002d6008002d6009002d600a002d600
b002d60006000002d6001002d6002002ca002002cc002002d6003002d6004002d6005002d600
0802d0b2202b1fb802cfb226421f411602ce02c70017001f02cd02c80017001f02cc02c60017
001f02cb02c50017001f02c902c5001e001f02ca02c6b21e1f00410b02c6000002c7001002c6
001002c7002f02c5000502c1b324121fff411102bf0001001f02bf002f02bf003f02bf004f02
bf005f02bf008f02bf000602bf0222b2641f12410b02bb00ca0800001f02b200e90800001f02
a600a20800406a1f4026434932402043493240263a3d3240203a3d329f209f26024026969932
402096993240268e923240208e92324026848c324020848c3240267a813240207a813240266c
763240206c76324026646a324020646a3240265a5f3240205a5f3240264f543240204f5432b8
029eb724271f374f6b0120410f0277003002770040027700500277000402770277027700f904
00001f029bb22a2a1fb8029a402b292a1f80ba0180bc0180520180a201806501807e01808101
803c01805e01802b01801c01801e0180400180bb0138000100800140b40180400180bb013800
010080013940180180ca0180ad018073018026018025018024018020013740b80221b2493340
b80221b2453340b80221b341423240b80221b33d3e320f410f0221003f0221007f0221000300
bf022100cf022100ff0221000300400221b320223240b80221b3191e3240b80222b32a3f3240
b80221b32e3a326f414802c3007f02c3008f02c300df02c30004002f02c3006002c300cf02c3
0003000f02c3003f02c3005f02c300c002c300ef02c300ff02c3000600df02220001008f0222
0001000f0222002f0222003f0222005f0222007f022200ef0222000600bf022100ef02210002
006f0221007f022100af02210003002f0221003f0221004f0221000302c302c3022202220221
0221401d101c102b1048038f1c010f1e014f1eff1e023700161600000012110811b8010db6f7
0df8f70d00094109028e028f001d001f0290028f001d001f028fb2f91d1fb80198b226bb1f41
150197001e0401001f013900260125001f013800730401001f0135001c0801001f0134001c02
ab001f0132b21c561fb8010fb2262c1fba010e001e0401b61ff91ce41fe91cb80201b61fe81c
bb1fd720b80401b21fd51cb802abb61fd41c891fc92fb80801b21fbc26b80101b21fba20b802
01b61fb91c381fadcab80401b21f8126b8019ab21f7e26b8019ab61f7d1c471f6b1cb80401b2
1f6526b8019ab21f5e73b80401400f1f52265a1f481c891f441c621f4073b80801b61f3f1c5e
1f3c26b8019ab21f351cb80401b61f301cbb1f2b1cb80401b61f2a1c561f291cb80101b21f23
1eb80401b21f5537b80168402c07960758074f07360732072c0721071f071d071b0714081208
10080e080c080a080808060804080208000814b8ffe0402b0000010014061000000100060400
0001000410000001001002000001000200000001000002010802004a00b013034b024b534201
4bb0c063004b6220b0f65323b8010a515ab005234201b0124b004b5442b0382b4bb807ff52b0
372b4bb007505b58b101018e59b0382bb00288b801005458b801ffb101018e851bb0124358b9
00010111858d1bb900010128858d5959001816763f183f123e113946443e113946443e113946
443e113946443e11394660443e11394660442b2b2b2b2b2b2b2b2b2b2b182b2b2b2b2b2b2b2b
2b2b2b182b1db0964b5358b0aa1d59b0324b5358b0ff1d594bb09353205c58b901f201f04544
b901f101f045445958b9033e01f2455258b901f2033e4459594bb8015653205c58b9002001f1
4544b9002601f145445958b9081e0020455258b90020081e4459594bb8019a53205c58b90025
01f24544b9002401f245445958b909090025455258b9002509094459594bb8040153205c58b1
73244544b1242445445958b917200073455258b9007317204459594bb8040153205c58b1ca25
4544b1252545445958b9168000ca455258b900ca16804459594bb03e53205c58b11c1c4544b1
1e1c45445958b9011a001c455258b9001c011a4459594bb05653205c58b11c1c4544b12f1c45
445958b90189001c455258b9001c01894459594bb8030153205c58b11c1c4544b11c1c454459
58b90de0001c455258b9001c0de04459592b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b65422b2b01b33b59635c4565234560234565
60234560b08b766818b080622020b163594565234520b003266062636820b003266165b05923
6544b063234420b13b5c4565234520b003266062636820b003266165b05c236544b03b2344b1
005c455458b15c406544b23b403b4523614459b347503437456523456023456560234560b089
766818b080622020b134504565234520b003266062636820b003266165b050236544b0342344
20b147374565234520b003266062636820b003266165b037236544b0472344b10037455458b1
37406544b24740474523614459004b5342014b5058b108004259435c58b108004259b3020b0a
124358601b2159421610703eb0124358b93b21187e1bba040001a8000b2b59b00c2342b00d23
42b0124358b92d412d411bba04000400000b2b59b00e2342b00f2342b0124358b9187e3b211b
ba01a80400000b2b59b0102342b0112342002b74757375001845694445694445694473737373
74757374752b2b2b2b74752b2b2b2b2b73737373737373737373737373737373737373737373
7373732b2b2b45b0406144737400004bb02a534bb03f515a58b1070745b040604459004bb03a
534bb03f515a58b10b0b45b8ffc0604459004bb02e534bb03a515a58b1030345b04060445900
4bb02e534bb03c515a58b1090945b8ffc06044592b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
752b2b2b2b2b2b2b435c58b9008002bbb301401e017400735903b01e4b5402b0124b545ab012
435c5a58ba009f02220001007359002b7473012b01732b2b2b2b2b2b2b2b737373732b002b2b
2b2b2b2b00456944734569447345694473747545694473456944456944456944737445694445
6944732b2b2b2b2b732b002b732b74752b2b2b2b2b2b2b2b2b2b2b2b2b2b73747500000000>
] def
/f-0-0 currentdict end definefont pop
%%Page: 1 1
%%BeginPageSetup
%%PageMedia: A4
%%PageBoundingBox: 73 758 124 768
%%EndPageSetup
q 73 758 51 10 rectclip q
0 g
BT
12 0 0 12 72.5 758.5 Tm
/f-0-0 1 Tf
(Linux text)Tj
ET
Q Q
showpage
%%Trailer
%%EOF

Maybe RDLEngine in Linux ignores Arial font. How to fix this ?

RDL report used for testing is:

<?xml version="1.0" encoding="utf-8"?>
<Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition" xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner">
  <PageHeight>297mm</PageHeight>
  <PageWidth>210mm</PageWidth>
  <Width>210mm</Width>
  <Language>et-EE</Language>
  <BottomMargin>.25in</BottomMargin>
  <TopMargin>.25in</TopMargin>
  <PageHeader>
    <Height>0cm</Height>
    <PrintOnFirstPage>true</PrintOnFirstPage>
    <PrintOnLastPage>true</PrintOnLastPage>
  </PageHeader>
  <PageFooter>
    <Height>0cm</Height>
    <PrintOnFirstPage>true</PrintOnFirstPage>
    <PrintOnLastPage>true</PrintOnLastPage>
  </PageFooter>
  <Body>
    <ReportItems>
      <Table Name="Table">
        <NoRows>Selliseid andmeid pole</NoRows>
        <TableGroups>
          <TableGroup>
            <Header>
              <TableRows>
                <TableRow>
                  <TableCells>
                    <TableCell>
                      <ReportItems>
                        <Rectangle Name="TableGroup1HeaderRectangle">
                          <ReportItems>
                            <Textbox Name="PageGroupTextBox">
                              <Value>=Core.Str(Fields!Dokumnr)+Core.Str(Fields!Koopia,2)</Value>
                              <Style>
                                <Color>White</Color>
                              </Style>
                              <Height>14pt</Height>
                              <Width>30pt</Width>
                            </Textbox>
                            <Textbox Name="Label1">
                              <Style>
                                <FontFamily>Arial</FontFamily>
                                <FontSize>12pt</FontSize>
                              </Style>
                              <Top>0.25cm</Top>
                              <Left>0.51cm</Left>
                              <Height>0.50cm</Height>
                              <CanGrow>false</CanGrow>
                              <CanShrink>true</CanShrink>
                              <ZIndex>200</ZIndex>
                              <Value>Linuxi test</Value>
                              <Width>2.48cm</Width>
                            </Textbox>
                          </ReportItems>
                        </Rectangle>
                      </ReportItems>
                    </TableCell>
                  </TableCells>
                  <Height>0.74cm</Height>
                </TableRow>
              </TableRows>
            </Header>
            <Grouping Name="Group1">
              <PageBreakAtStart>false</PageBreakAtStart>
              <GroupExpressions>
                <GroupExpression>=Core.Str(Fields!Dokumnr)+Core.Str(Fields!Koopia,2)</GroupExpression>
              </GroupExpressions>
            </Grouping>
            <Sorting>
              <SortBy>
                <SortExpression>=true</SortExpression>
              </SortBy>
              <SortBy>
                <SortExpression>=Core.Str(Fields!Dokumnr)+Core.Str(Fields!Koopia,2)</SortExpression>
              </SortBy>
            </Sorting>
          </TableGroup>
          <TableGroup>
            <Grouping Name="Group2">
              <PageBreakAtStart>false</PageBreakAtStart>
              <GroupExpressions>
                <GroupExpression>=Core.Str(Fields!Dokumnr)+Core.Str(Fields!Koopia,2)</GroupExpression>
              </GroupExpressions>
            </Grouping>
            <Sorting>
              <SortBy>
                <SortExpression>=true</SortExpression>
              </SortBy>
              <SortBy>
                <SortExpression>=Core.Str(Fields!Dokumnr)+Core.Str(Fields!Koopia,2)</SortExpression>
              </SortBy>
            </Sorting>
          </TableGroup>
        </TableGroups>
        <TableColumns>
          <TableColumn>
            <Width>210mm</Width>
          </TableColumn>
        </TableColumns>
        <Left>0cm</Left>
      </Table>
    </ReportItems>
    <Height>29.70cm</Height>
  </Body>
</Report>
majorsilence commented 10 years ago

I have not tested printing directly to a printer on linux. Will need to look into that.

When it comes to using the newer itextsharp pdf export you should install mscore fonts.

See https://github.com/majorsilence/My-FyiReporting/wiki/Linux---PDF-export-and-Fonts.

kobruleht commented 10 years ago

In PageDrawing.cs probably code

                RectangleF r2;
                if (g.PageUnit == GraphicsUnit.Pixel)
                {
                    r2 = new RectangleF(r.Left + (si.PaddingLeft * g.DpiX) / 72,
                    r.Top + (si.PaddingTop * g.DpiX) / 72,
                    r.Width - ((si.PaddingLeft + si.PaddingRight) * g.DpiX) / 72,
                    r.Height - ((si.PaddingTop + si.PaddingBottom) * g.DpiX) / 72);
                }
                else
                {
                    // adjust drawing rectangle based on padding
                    r2 = new RectangleF(r.Left + si.PaddingLeft,
                    r.Top + si.PaddingTop,
                    r.Width - si.PaddingLeft - si.PaddingRight,
                    r.Height - si.PaddingTop - si.PaddingBottom);
                }

is wrong in Linux. Maybe PageUnit value something different in linux, this code only checks for one page unit. It looks like result rectange dimensions are invalid and this causes Cairo Postscript surface not to render any strings. I replaced DrawString calls in this code with

                g.DrawString(pt.Text, drawFont, drawBrush,
                    new PointF(r.Left, r.Top), drawFormat);

In this case strings are printed out. This does not clip strings so output is incorrect if text is bigger than textbox. So this is not perfect solution.

For iTextCharp we should use version whose licence is compatible with current RDLEngine licence. Btw. Cairo library which Mono uses can also create pdf files and has compatible licence. Cairo can used in Windows also to crete PDFs.

I was unable to install MS core fonts in latest Debian x64:

http://serverfault.com/questions/578409/how-to-install-microsoft-core-fonts-in-debian-wheezy

Debian recommends in this package information to use Liberation fonts instead. They have same metrics as MS fonts and maybe can used instead of them.

majorsilence commented 10 years ago

The copy of itextSharp used is https://github.com/majorsilence/iTextSharp-4.1.6. It is mit/lgpl2 licensed. It is an old copy before the license change.

If you figure out a fix send a pull request.