Export char as Hex file

10 views (last 30 days)
rickert
rickert on 4 Nov 2016
I have a hexadecimal file that contains ESC/P2 sequences that can be sent to the printer to print a page.
00 00 00 1B 01 40 45 4A 4C 20 31 32 38 34 2E 34 0A 40 45 4A 4C 20 20 20 20 20 0A
1B 40 1B 40 1B 28 52 08 00 00 52 45 4D 4F 54 45 31 53 4E 01 00 00 4D 49 04 00 00 etc...
To import this hex page.prn file I use the following code:
fid = fopen('page.prn');
A = fread(fid, Inf, 'uint8');
fclose(fid);
Fmt = repmat('%02X', 1, 1);
prnfile = sprintf(Fmt, A);
This results in a very long string in Matlab:
0000001B0140454A4C20313238342E340A40454A4C20202020200A...
Now I want to split this long string at each 1B (or other byte) so that I obtain a number of strings. Then I want to make some changes to some of these strings, (decode run length encoding, change counters and repeated values, and compress again) and then I want to combine them again using strcat.
Then I want to export this string into a file that can be read by a hex editor. I tried using fwrite:
fid2 = fopen('newprnfile.prn','w');
fwrite(fid2, prnfile);
fclose(fid2);
But this just results in a plain text file, so with ASCII characters. How can I write the string to a hex file?

Answers (0)

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!