David PHAM-VAN

Reduce the size of floating numbers

@@ -72,7 +72,18 @@ class PdfNum extends PdfDataType { @@ -72,7 +72,18 @@ class PdfNum extends PdfDataType {
72 if (value is int) { 72 if (value is int) {
73 s.putString(value.toInt().toString()); 73 s.putString(value.toInt().toString());
74 } else { 74 } else {
75 - s.putString(value.toStringAsFixed(precision)); 75 + var r = value.toStringAsFixed(precision);
  76 + if (r.contains('.')) {
  77 + var n = r.length - 1;
  78 + while (r[n] == '0') {
  79 + n--;
  80 + }
  81 + if (r[n] == '.') {
  82 + n--;
  83 + }
  84 + r = r.substring(0, n + 1);
  85 + }
  86 + s.putString(r);
76 } 87 }
77 } 88 }
78 } 89 }
@@ -27,9 +27,9 @@ void main() { @@ -27,9 +27,9 @@ void main() {
27 27
28 test('PdfDataTypes Num', () { 28 test('PdfDataTypes Num', () {
29 expect(const PdfNum(0).toString(), '0'); 29 expect(const PdfNum(0).toString(), '0');
30 - expect(const PdfNum(.5).toString(), '0.50000'); 30 + expect(const PdfNum(.5).toString(), '0.5');
31 expect(const PdfNum(50).toString(), '50'); 31 expect(const PdfNum(50).toString(), '50');
32 - expect(const PdfNum(50.1).toString(), '50.10000'); 32 + expect(const PdfNum(50.1).toString(), '50.1');
33 }); 33 });
34 34
35 test('PdfDataTypes String', () { 35 test('PdfDataTypes String', () {
@@ -84,7 +84,7 @@ void main() { @@ -84,7 +84,7 @@ void main() {
84 PdfArray(), 84 PdfArray(),
85 PdfDict(), 85 PdfDict(),
86 ]).toString(), 86 ]).toString(),
87 - '[/Name/Other false 2.50000 null(þÿ\x00h\x00e\x00l\x01B\x00o)[]<<>>]', 87 + '[/Name/Other false 2.5 null(þÿ\x00h\x00e\x00l\x01B\x00o)[]<<>>]',
88 ); 88 );
89 }); 89 });
90 90