Display long text in fixed frame in Corona - coronasdk

so at the moment I have to do an assignment at school which requires me to create a Calculator for mobile devices using Corona, ive got the buttons and display classes to work.
In the display class, Ive created 2 frame (one to display the method and the others for result). The final result im looking for is something like a handheld graphical calculator's UI (Casio fx series..).
Which means you can type in a long and continuous method (the whole text will move toe the left and always show you the END of the method) as you press "=" the calculator will give you the result.
What I've got up to so far is that I created a frame which can fit 2 lines of text for displaying the method, but once you've filled up the frame with numbers, Corona will crop out the end of the string .
so what i'm going to do is by having 2 strings, the 1st one is the main one to store what the user type in (the whole method) I will select the last 10 characters from the main string and save it in the second string and display the second string.
So do you know if there's any code that i can use to select a number of characters from a string ?

You can use the built in LUA method
string.sub (yourString, startIndex , endIndex )
http://pgl.yoyo.org/luai/i/string.sub`

Related

Styling specific line of Text on Jetpack Compose

So, it's kind of a simple styling.
Text(
text = "some text which can extends to many lines"
)
how would someone build an annotated string to style only specif lines of the text? And by line I mean what it's actually rendering as a line - and not something predefined as a list of sub strings.
I've imagine to make a use of combined textLayoutResult with the annotated capability, but by reading the documentation I don't have much clue how to do so.
The plan was to the TextLayoutResult to retrieve the number of lines rendered on text. Then, it should be theoretically possible to retrieve the sub string on each of the lines rendered. And by pushing them on the annotated processor, the desired results would be achieved.
What am I missing?
I've managed to achieve the desired effect.
For those who want to do, you will need at least:
Two Text components;
A mutable state to keep track of offset on the text;
You limit the first Text by the number of maxLines - 1 and uses TextLayoutResult to retrieve the last offset of the last line. Then, you just update the state on the composable and create another Text component with the substring which starts from the last one. Then, you can apply the filters that you wish on this one.
Repeate the process for as many lines as you wish.

Is there a way to automatically feed a label after each print, then automatically backfeed that fed label before the next print in Zebra printers?

I apologize for the long title, but that is exactly what I am trying to achieve.
I'll try to explain more briefly here:
So I have a Zebra ZT610 with a scanner that checks every single label as they are printed. The problem is that we're trying to print labels solely, not in batch, and the issue with that is that the printed label will always be in a position where an operator will not be able to take the label without destroying it. The issue with this is it will become a waste of labels and ribbons if this process remains as is.
How it is now (it is not really in production, but to give you an imagination):
Operator clicks on print
Zebra prints a label (and the scanner checks the label simultaneously)
Operator feeds a label (in order to take the label without destroying it)
Operator takes the label
Repeat the process
That is the issue, in theory we would have to waste HALF of the amount of available labels (assuming that all printed labels passed the inspection) in order to finish the job, which is definitely absurd and no one in the world would do this hahah
What we're trying to achieve:
Operator clicks on print
Zebra prints a label (and the scanner checks the label simultaneously)
The printer feeds a label automatically (or maybe half of a label at least for the printed label to be taken without any issue or destroying it)
Operator takes the label
Operator prints another label
Printer backfeeds the latest fed label
Printer prints on the backfed label
Continue on from step 3, and so on.
I searched for anything related to this and all what i found was this:
^XA
^FD
^XZ
All it basically those is "print" a space on a label, thus technically feeding a label. But i was never able to get that label to go back inside the printer.
Thank you for reading this far.
EDIT:
We have also tried this:
Went into the printers settings via its IP address and login
Click on 'View and Modify Printer Settings'
Click on 'General Setup'
Below you will find 'Tear Off Adjust', we've set it to the maximum (120) but that was not enough, it is still too far inside.
But i hope the solution above helps other people out there.
Take a look at the ~JS command - Change Backfeed Sequence. By overriding the default backfeed, you can force the label media to feed forward after printing, then retract on the next print.
Not knowing how much backfeed you will need, start with 50% (~JS50) and adjust from there.

iOS How to get all words coordinates in PDF page

I have looked through many tutorials and usually stack users trow links to the pdfkitten, but as I've tested it I have not satisfied with result. So the search does not work with multiply word and etc.
So what I am looking for I need to get all words from the pdf page and highlight it if the words cross some rectangle.
I used PDFKitten for the same.
What I did was while scanning the PDF - Identify the words separated
by spaces.
Save the RenderingState(Model in PDFKitten code)word is
encountered save that word in a model with it's current
RenderingState (Model in PDFKitten code) which will be initial state.
When the complete word is found(space separated) again save the
current RenderingState as final state.
The code for converting RenderingState to actual view's frame using
above initial state and final state, is present in PDFKitten. You can
refer to that code.
apply current media box transform to frame.
And finally don't forget
to convert resulted frame into user's co-ordinate system. Otherwise
you will observe the reverse effect.

Random text in Corona

Totally new with Corona and asking for some support.
Would like to create a simple first software with Corona. My idea is to have a button and when you press the button you see different words on the screen. The idea is that they roll randomly and then stops on one word. For example 8 different words and one is chosen and a few seconds and shown on the screen.
For an expert I guess this is imple but for a rookie it´s not that easy.
Use a array of words to store the words
local words = {foo, bar, hi, no, yes, mom, dad}
Then use math.random to select a word.
local wordIwant = math.random(#words) -- # operador gets the length of a list
So if math.random returns 3 for example, wordIwant will be "hi"
:)
Now how you do your special effect and other pretty stuff, is up to you, but I recommend using the enterFrame listener for that.

XNA drawing text on screen

Is there a way to draw a long text on the screen using SpriteBatch.DrawString? I mean inserts new lines when comes to the end of the screen.
I'd suggest looking at XNAwiki - TextRendering.
Inserting new lines is something you'd have to calculate yourself it's not something you an do automatically with the XNA framework, but yes it's possible to write code to do that.
One way to do it would be to take the string want to write and to move through it a word at a time an measure it until you get enough words to fill the width of whatever area it is you want to fill. Once you've found that width, you'd either change the Y Position of the string you want to draw and move onto the next line or insert a new line character into the string at that point and start calculating the amount of words that should be on the next line.
A thing to pay attention to is that string manipulation is expensive and generates a lot of garbage so you should try and minimize the amount of times you do something like that. If the text is static and never changes it would be ideal to do this one and never again while the game is running.

Resources