Changeset 41327
- Timestamp:
- Apr 7, 2020, 1:09:55 PM (6 years ago)
- Location:
- trunk/Ohana/src/kapa2/src
- Files:
-
- 2 edited
-
PDF_Objects.c (modified) (4 diffs)
-
PDF_PrintUtils.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/kapa2/src/PDF_Objects.c
r41320 r41327 85 85 } 86 86 // reset to default color and style 87 PrintIOBuffer (buffer, "[] 0 d\n");88 PrintIOBuffer (buffer, "0.00 0.00 0.00 rg\n");89 PrintIOBuffer (buffer, "0.00 0.00 0.00 RG\n");87 // PrintIOBuffer (buffer, "[] 0 d\n"); 88 // PrintIOBuffer (buffer, "0.00 0.00 0.00 rg\n"); 89 // PrintIOBuffer (buffer, "0.00 0.00 0.00 RG\n"); 90 90 91 91 return (TRUE); … … 117 117 break; 118 118 case KAPA_LINE_SOLID: // no need to call 'd' as solid is the default 119 PrintIOBuffer (buffer, "[] 0 d\n"); 119 120 default: 120 121 break; … … 129 130 int PDF_ObjectsN (KapaGraphWidget *graph, Gobjects *object, IOBuffer *buffer) { 130 131 132 // AlphaSet emits a "q" whether or not there is a non-trivial alpha value 133 PDF_AlphaSet (object, buffer); 131 134 PDF_LineStyle (graph, object, buffer); 132 PDF_AlphaSet (object, buffer);133 135 134 136 switch (object->style) { … … 163 165 // this closes the graphic state generated by PDF_AlphaSet above 164 166 PrintIOBuffer (buffer, "Q\n"); 167 168 // reset to default color and style 169 // PrintIOBuffer (buffer, "[] 0 d\n"); 170 // PrintIOBuffer (buffer, "0.00 0.00 0.00 rg\n"); 171 // PrintIOBuffer (buffer, "0.00 0.00 0.00 RG\n"); 165 172 166 173 return (TRUE); -
trunk/Ohana/src/kapa2/src/PDF_PrintUtils.c
r41320 r41327 114 114 } 115 115 116 typedef enum { 117 PDF_RAW_ENCODE, 118 PDF_ASCII_HEX, 119 PDF_ASCII_ADOBE, 120 PDF_ASCII_HEX_DEFLATE, 121 PDF_ASCII_ADOBE_DEFLATE, 122 } PDF_Encoding_Mode; 123 116 124 // This code needs to generate a stream 117 125 int PDF_WriteStream (PDF_FILE *obj, IOBuffer *buffer) { … … 135 143 } 136 144 137 // test compression of the stream: 138 if (1) { 139 // Deflate buffer.buffer 140 IOBuffer compressed; 141 PDF_BufferDeflate (&compressed, buffer); 142 143 if (0) { 144 IOBuffer iTest, oTest; 145 InitIOBuffer (&iTest, 8); 146 strcpy (iTest.buffer, "Lion"); 147 iTest.Nbuffer = strlen(iTest.buffer); 148 fprintf (stderr, "%s\n", iTest.buffer); 149 PDF_ASCII85Encode (&oTest, &iTest); 150 fprintf (stderr, "%s\n", oTest.buffer); 145 // compression options: 146 PDF_Encoding_Mode mode = PDF_ASCII_ADOBE_DEFLATE; 147 // PDF_Encoding_Mode mode = PDF_RAW_ENCODE; 148 switch (mode) { 149 case PDF_ASCII_ADOBE: { 150 IOBuffer encode; 151 PDF_ASCII85Encode (&encode, buffer); 152 153 // Content Stream 154 PDF_Print (obj, objnum, "%d 0 obj << /Length %d /Filter [/ASCII85Decode] >> stream\n", objnum, encode.Nbuffer); 155 fwrite (encode.buffer, 1, encode.Nbuffer, obj->f); 156 break; 157 } 158 case PDF_ASCII_ADOBE_DEFLATE: { 159 IOBuffer compressed; 160 PDF_BufferDeflate (&compressed, buffer); 161 162 IOBuffer encode; 163 PDF_ASCII85Encode (&encode, &compressed); 164 165 // Content Stream 166 PDF_Print (obj, objnum, "%d 0 obj << /Length %d /Filter [/ASCII85Decode /FlateDecode] >> stream\n", objnum, encode.Nbuffer); 167 fwrite (encode.buffer, 1, encode.Nbuffer, obj->f); 168 break; 169 } 170 case PDF_ASCII_HEX: { 171 IOBuffer encode; 172 PDF_ASCIIHexEncode (&encode, buffer); 173 174 // Content Stream 175 PDF_Print (obj, objnum, "%d 0 obj << /Length %d /Filter [/ASCIIHexDecode] >> stream\n", objnum, encode.Nbuffer); 176 fwrite (encode.buffer, 1, encode.Nbuffer, obj->f); 177 break; 178 } 179 case PDF_ASCII_HEX_DEFLATE: { 180 IOBuffer compressed; 181 PDF_BufferDeflate (&compressed, buffer); 182 183 IOBuffer encode; 184 PDF_ASCIIHexEncode (&encode, &compressed); 185 186 // Content Stream 187 PDF_Print (obj, objnum, "%d 0 obj << /Length %d /Filter [/ASCIIHexDecode /FlateDecode] >> stream\n", objnum, encode.Nbuffer); 188 fwrite (encode.buffer, 1, encode.Nbuffer, obj->f); 189 break; 190 } 191 case PDF_RAW_ENCODE: { 192 PDF_Print (obj, objnum, "%d 0 obj << /Length %d >> stream\n", objnum, buffer->Nbuffer); 193 fwrite (buffer->buffer, 1, buffer->Nbuffer, obj->f); 194 break; 151 195 } 152 153 if (0) { 154 char quote[] = "Man is distinguished, not only by his reason, but by this singular passion from other animals, which is a lust of the mind, that by a perseverance of delight in the continued and indefatigable generation of knowledge, exceeds the short vehemence of any carnal pleasure."; 155 fprintf (stderr, "%d : %s\n", (int) strlen(quote), quote); 156 IOBuffer iTest, oTest; 157 InitIOBuffer (&iTest, strlen(quote) + 1); 158 strcpy (iTest.buffer, quote); 159 iTest.Nbuffer = strlen(iTest.buffer); 160 PDF_ASCII85Encode (&oTest, &iTest); 161 fprintf (stderr, "%s\n", oTest.buffer); 162 return FALSE; 163 } 164 165 // ASCIIHex encode 166 IOBuffer encode; 167 // XXX PDF_ASCIIHexEncode (&encode, buffer); 168 // PDF_ASCIIHexEncode (&encode, &compressed); 169 PDF_ASCII85Encode (&encode, &compressed); 170 171 // Content Stream 172 PDF_Print (obj, objnum, "%d 0 obj << /Length %d /Filter [/ASCII85Decode /FlateDecode] >> stream\n", objnum, encode.Nbuffer); 173 // PDF_Print (obj, objnum, "%d 0 obj << /Length %d /Filter [/ASCIIHexDecode /FlateDecode] >> stream\n", objnum, encode.Nbuffer); 174 // XXX PDF_Print (obj, objnum, "%d 0 obj << /Length %d /Filter [/ASCIIHexDecode] >> stream\n", objnum, encode.Nbuffer); 175 fwrite (encode.buffer, 1, encode.Nbuffer, obj->f); 176 } else { 177 // Content Stream 178 PDF_Print (obj, objnum, "%d 0 obj << /Length %d >> stream\n", objnum, buffer->Nbuffer); 179 180 // write stream here 181 // XXX check return to make sure all went to disk 182 fwrite (buffer->buffer, 1, buffer->Nbuffer, obj->f); 183 } 196 } 197 // XXX check fwrite return to make sure all went to disk 184 198 185 199 fprintf (obj->f, "endstream endobj\n"); … … 422 436 // base85_init(); 423 437 // if (!base85_encode (output, Nout, (BASETYPE *) quote, 1)) { fprintf (stderr, "failure\n"); } 438 439 // test compression of the stream: 440 int PDF_Encode_Test () { 441 442 if (0) { 443 IOBuffer iTest, oTest; 444 InitIOBuffer (&iTest, 8); 445 strcpy (iTest.buffer, "Lion"); 446 iTest.Nbuffer = strlen(iTest.buffer); 447 fprintf (stderr, "%s\n", iTest.buffer); 448 PDF_ASCII85Encode (&oTest, &iTest); 449 fprintf (stderr, "%s\n", oTest.buffer); 450 } 451 452 if (0) { 453 char quote[] = "Man is distinguished, not only by his reason, but by this singular passion from other animals, which is a lust of the mind, that by a perseverance of delight in the continued and indefatigable generation of knowledge, exceeds the short vehemence of any carnal pleasure."; 454 fprintf (stderr, "%d : %s\n", (int) strlen(quote), quote); 455 IOBuffer iTest, oTest; 456 InitIOBuffer (&iTest, strlen(quote) + 1); 457 strcpy (iTest.buffer, quote); 458 iTest.Nbuffer = strlen(iTest.buffer); 459 PDF_ASCII85Encode (&oTest, &iTest); 460 fprintf (stderr, "%s\n", oTest.buffer); 461 return FALSE; 462 } 463 return TRUE; 464 } 465
Note:
See TracChangeset
for help on using the changeset viewer.
