lisp convert to string uppercase - symbols

I would like to convert an atom to a string to check if the first letter is a capital letter but with Clisp the function string returns uppercase letters si I can't apply it to my atom.
Example :
(setq a 'ljlkj)
(upper-case-p (char (string a) 0)) ----> returns T (and I want nil)
What I am doing wrong?
Thanks you in advance!

Common Lisp reader is case-converting (step 7) by default.
This is controlled by the accessor readtable-case:
(defun test-readtable-case-reading ()
(let ((*readtable* (copy-readtable nil)))
(format t "READTABLE-CASE Input Symbol-name~
~%-----------------------------------~
~%")
(dolist (readtable-case '(:upcase :downcase :preserve :invert))
(setf (readtable-case *readtable*) readtable-case)
(dolist (input '("ZEBRA" "Zebra" "zebra"))
(format t "~&:~A~16T~A~24T~A"
(string-upcase readtable-case)
input
(symbol-name (read-from-string input)))))))
The output from (test-readtable-case-reading) should be as follows:
READTABLE-CASE Input Symbol-name
-------------------------------------
:UPCASE ZEBRA ZEBRA
:UPCASE Zebra ZEBRA
:UPCASE zebra ZEBRA
:DOWNCASE ZEBRA zebra
:DOWNCASE Zebra zebra
:DOWNCASE zebra zebra
:PRESERVE ZEBRA ZEBRA
:PRESERVE Zebra Zebra
:PRESERVE zebra zebra
:INVERT ZEBRA zebra
:INVERT Zebra Zebra
:INVERT zebra ZEBRA
See the excellent answer to Why is Common Lisp case insensitive? for the reasons why the CL reader is case-converting.

Related

Zebra printer ZT610 doesn't print polish signs while ZTC 110 does

I am trying to print polish signs with font Verdana ( contains polish signs). The problem is that on the printer ZTC 110 code :
^XA
^FS
^CWZ,E:VERDANAB.FNT^FS
^FT100,100^FH^FD żółć
^XZ
works perfectly fine and polish signs are printed , while on the new printer ZT610 polish letters are missing (font was downloaded properly with .TTF format). All I can see in a place of sign is a blank space. When I m using zebra designer 2 polish letters are printed, they also are printed when I add command ^CI28 to the code ( used ^FH^FD here and special utf 8 code for polish signs),
^XA
^CI28
^FS
^CWZ,E:VERDANAB.TTF^FS
^FT100,100^FH^FD _C5_BC_C3_B3_C5_82_C4_87_C5_B9 ( żółć // here is the blank space )
^XZ
but it worked on previous printer without doing those things. Drivers were installed properly, fonts were installed properly, any ideas why is it happening?

Can' t print Greek characters (1253 or 737) with citizen ct-s651ii embed font with Delphi 10.3

I 'm trying to print some text with Greek and Latin characters to a citizen ct-s651ii thermal pos printer using the embedded Font-A font with Delphi 10.3 Rio.
It prints the latin characters but instead of the Greek characters it prints dots (".").
I have set with the citizen pos printer utility the code page to "Space page user fonts" and i have register the wpc1253.cgh font (also tried the pc737.cgh).
I'm not sending esc commands.
I use this code:
Printer.BeginDoc;
Printer.Canvas.Font.Name := 'FontA11 [255]';
Printer.Canvas.TextOut(0,0, 'ΑΒΓΔΕ');
Printer.EndDoc;
From the pos printer utility the "test print" function prints some code pages and it prints the "user define Font-A" code page with the Greek characters without problem.
I'm using the same method and code with an Epson tm-t88v printer without a problem.
Is the citizen printer handling different the textout commands or am i doing something wrong?
Looking at the documentation, this printer supports the following code pages: Alphanumeric, International characters, Katakana, Thai code18, WPC1252, 437, 850, 852, 857, 858, 860, 863, 864, 865 and 866
Locate the characters you want to print in one of those code pages and select it.
If this doesn't work, you can always print the ticket to a bitmap and then print the bitmap. Using this method, you can use any font supported by Windows, regardless of what the printer supports.

need to print greek characters from zpl ii commands using a zebra printer

i have problem printing greek characters to a Zebra GC420 desktop printer. My code is:
$printarr[] = '^XA^CWZ,E:TT0003M_.FNT^FS^XZ^XA^FWN^FO70,50^A0,30,25^FH^FD'.labels_utf8_parse($name).'^FS^FO70,90^BY2^B3,,100^FD' . $node->field_o['und'][0]['value'] . '^FS^XZ';
What am i doing wrong? Instead of greek letters i get crosses. The strange part is that in another area of the code,the below code prints correctly greek characters:
$toprint = '^XA^CWZ,E:TT0003M_.FNT^FS^XZ^XA^FWR';
What should i do, how should i proceed to see what is the problem and how could i solve it?
You need to set the character encoding to UTF-8 using ^CI28. Put it near the top of the format, for example, after the ^XA^FWN.

How can I print a subscript like E_{n} with ZPL II?

I want to send a String to the Zebra printer in which I have e.g. the energy E_{N} printed whereas N must be a subscript of E. I can send strings to the printer which are in a normal format (e.g. 'bla=7'), but I have no idea how to include this subscript. Up to now I have strings like '^FDbla^FS'
I searched for the problem but could only find a solution for fixed problems like ^2, which were solved with a special character. There was no general solution.
The way I solved this was to strip out the subscripts and print them on the next half-line down.
^XA
^FT78,76^A0N,28,28^FH_^FDH PO ^FS
^FT78,90^A0N,28,28^FH_^FD 3 4^FS
^XZ

printing arabic on zebra ZM400 , the characters appear separated

^XA
^FO32,23
^A#E:TT0003M_.TTF,N,23,32
^PA1,1,1,1
^FH
^CI28
^FD_D9_85_D8_AD_D8_A7_D9_83_D9_85_D8_A9
^FS
^XZ
I am using the above code to print arabic on a zebra printer ZM400 but the characters appear separated instead of connected " م ح ا ك م ة" it should appear like this
محاكمة
please help
It work for me try use this command:
^XA^CI28^FT50,200^A#N,25,25,E:TT0003M_.TTF^PA1,1,1,1^FH^FD fff شامل الضريبة المضافة^FS^XZ
see the link here

Resources